Neeraj Sujan
← Writing

Why Most Outbound Fails (It's Not Your Messaging)

Everyone rewrites their sequences. Almost nobody fixes their enrichment. That's the real gap.

·7 min read

Your sequences aren't the problem.

Your open rates are fine. Your copy is decent. Your follow-up cadence is textbook. And yet the pipeline is empty.

So you rewrite the subject lines. You A/B test the first line. You hire a copywriter. You switch from email to LinkedIn. You try a different tone — more direct, then warmer, then shorter.

Nothing moves.

Here's the thing nobody wants to tell you: the copy was never the bottleneck.


The wrong diagnosis is expensive

When outbound underperforms, the default fix is messaging. Rewrite the sequence. Change the hook. Find a better pain point. It's an easy assumption — copy is visible, testable, changeable in a day.

The actual problem is invisible. It's underneath the copy. It's the data you're sending that copy to.

Bad enrichment doesn't just lower your reply rates. It actively works against you. Every email sent to a contact who left that company six months ago trains your domain toward the spam folder. Every sequence fired at a VP of Finance when you needed the VP of Operations is a rep burned on the wrong person. Every "personalised" email that leads with a company detail that's three years out of date signals immediately that you didn't actually do the work.

You're not losing deals because your subject line said "quick question." You're losing because you're talking to the wrong people with outdated context, and no amount of rewriting fixes that.


What bad enrichment actually looks like

Most outbound data has four failure modes. They're usually all present at once.

Decayed contact data. The average B2B contact list loses 20–30% accuracy per year. Job changes, promotions, company pivots, layoffs. A list you built or bought twelve months ago is already a third wrong. You're personalising emails to someone's previous role at a company they left in March.

Firmographic mismatch. Your ICP filter says "Series B, 50–200 employees, SaaS." But the data source you're pulling from logged company size at last funding — two years ago. That "Series B startup" is now 400 people and mid-market. Different buyer, different cycle, different objections. Your sequence wasn't built for them.

Contact-level noise. You're reaching the right company and the wrong person. The decision-maker isn't the Head of Marketing — it's the RevOps lead who controls the tool budget. Your enrichment never surfaced that. So the Head of Marketing gets your email, doesn't know what to do with it, and doesn't forward it. Silence.

Zero intent signals. You're running the same sequence to a company that's actively researching your category right now and a company that bought a competitor two weeks ago and has no reason to switch. Same email. Same timing. Different universe of buying intent.


What the pipeline actually needs to look like

Good enrichment isn't a one-time data pull. It's a layered system — each layer qualifying the lead further before you spend a rep's time or a sequence slot on it.

Layer 1: ICP validation. Before anything else, is this account actually in your ICP? Tools like Clay, Clearbit, and Coresignal let you validate firmographics in real time — current employee count, revenue estimates, tech stack, funding stage. The key word is current. You're not pulling from a static database. You're hitting live sources and reconciling the output.

Layer 2: Intent signals. Which of your validated ICP accounts are actually in-market right now? Bombora tracks content consumption patterns across the web — if a company's employees are suddenly reading three articles a week about CRM migration, that's a signal. 6sense models buying stage. Koala and RB2B de-anonymize your own web traffic, surfacing companies visiting your pricing page before they ever fill out a form.

Intent data doesn't tell you who to contact. It tells you who to contact now. That's a different — and much more valuable — question.

Layer 3: Contact enrichment waterfall. Once you know which accounts to target, you need the right person with a verified contact. No single data source has complete coverage. The correct pattern is a waterfall: Apollo → Hunter → Datagma → Dropcontact, in that order. First verified result wins. You log every step — not just the hit, but which source failed and why. That log is how you improve the waterfall over time.

Layer 4: Fit × Intent scoring matrix. Now you have enriched, verified, intent-scored contacts. Score them on two axes:

  • High fit, high intent — Personalized high-touch sequences. Rep involvement from the start. These accounts are worth 30 minutes of research.
  • High fit, low intent — Nurture sequences. Useful content, low pressure. You're staying warm until the timing changes.
  • Low fit — Remove. No sequence. No rep time. Not yet, maybe not ever.

This matrix is where most teams stop doing GTM and start doing engineering.


The engineering layer nobody builds

The system above sounds straightforward. The implementation is where it gets hard — and where most teams stay stuck.

Data normalisation. Every enrichment source formats company size differently. Apollo might say "51-200." Clearbit might return an integer. Coresignal has its own bucketing. Before you can score anything consistently, you need a normalisation pipeline that maps these to a common schema. This is a two-hour build that most non-engineering GTM teams never do. They end up with scoring logic that quietly breaks on half their records.

Freshness modelling. Enrichment data decays. Sales and marketing contacts should be re-enriched every 60–90 days. Enterprise accounts every 30. You need a scheduled job that tracks enrichment timestamps and queues records for refresh before the data goes stale — not after you've already sent to a bad address.

Waterfall orchestration, not sequential calls. A naive implementation calls Apollo, waits for a result, then decides whether to call Hunter. A real implementation runs the waterfall with proper logging, error handling, and result adjudication. If Apollo returns a result but Hunter returns a higher-confidence match for the same field, which one wins? You need logic for that. You also need to log every API response — failures, partial matches, confidence scores — because that data is how you tune the waterfall.

Score recalculation on a schedule. Intent signals decay fast. A company showing high intent this week might show nothing by next Thursday. Your fit × intent scoring can't be a one-time calculation at import. It needs to recalculate on a schedule — weekly for intent scores, monthly for firmographic fit — so your sequences are always working from current signal, not historical snapshot.

None of this is glamorous. All of it is what separates GTM teams that scale from ones that keep wondering why their copy isn't converting.


The diagnostic you can run today

Pull 50 contacts from your last outbound sequence — any 50, randomly selected.

For each one, check four things manually:

  1. Still at the company? Search them on LinkedIn. Job change in the last six months means the record is stale.
  2. Actually a decision-maker? Not just the right title — the right title for this deal. Do they control the budget, or are they an influencer at best?
  3. Still fits your ICP? Pull the current company page. Headcount, industry, tech stack — does it match what you're selling to today?
  4. Any in-market signal? Check your web analytics. Did this company visit your site in the last 30 days? Show up in any intent platform?

If you can answer yes to all four for 70%+ of your sample, your enrichment is solid. Rewrite the sequences.

If you're getting mostly "I don't know," "probably not," or "I can't tell" — that's your answer. The messaging isn't the problem. The data underneath it is.

Fix the foundation. The copy will start working.


This is part of the GTM Engineering Handbook series — the technical infrastructure behind outbound systems that actually convert. New posts go out via newsletter.

#gtm-engineering#outbound#enrichment#revenue-systems#b2b