The multi-provider enrichment system we built after single-source data failed us across 8 clients. This is proprietary process published openly.
Rees Bayba
Founder, Astra GTM
TL;DR
The biggest bottleneck in cold email is not copy or deliverability. It is data quality. Most teams use a single provider -- Apollo, ZoomInfo, or LinkedIn Sales Navigator -- to find emails. Single-provider coverage maxes out at 55-70%. That means 30-45% of your target accounts are unreachable before you write a single email. We solved this by building what we call an enrichment waterfall: multiple data providers queried in sequence, with verification between each step. We run this system across 8+ clients. Here is exactly how it works.
Every email data provider has gaps. Apollo has strong coverage for tech and SaaS companies but 30-40% of their data is stale for non-tech industries like manufacturing, logistics, or professional services. ZoomInfo has the strongest enterprise database, but it starts at $15K+ per year and still misses most SMB contacts. LinkedIn Sales Navigator is excellent for finding people but gives you zero verified emails.
The key insight: different providers have different gaps. Apollo might miss a VP of Engineering at a manufacturing company, but LeadMagic finds her through LinkedIn data. LeadMagic might miss a CEO at a private equity firm, but FullEnrich gets the email through enterprise domain crawling. No single provider wins every lookup. Stack them and you cover the gaps.
vs. 55-70% from any single provider. That 25-35% gap represents hundreds of decision makers per campaign who would otherwise be unreachable.
| Provider | Best at | Weak at | Coverage alone | Cost |
|---|---|---|---|---|
| Apollo (free tier) | Tech/SaaS contacts | Non-tech, SMB, stale data (30-40%) | 50-60% | $0.01-0.05/contact |
| ZoomInfo | Enterprise, large companies | SMB, startups, $15K+ annual | 55-65% | $0.15-0.50/contact |
| LinkedIn Sales Nav | Finding people and titles | No verified emails at all | 0% (no emails) | $80-140/month |
| Multi-provider waterfall | All industries, all sizes | Very niche or private contacts | 90-95% | $0.08-0.12/contact avg |
The waterfall queries providers in a specific sequence, cheapest first, most expensive last. After each step, we verify any emails found before moving to the next provider. Contacts that already have a verified email skip all remaining steps. Contacts still missing an email cascade down to the next provider. This structure minimizes cost while maximizing coverage.
Want this built for your team?
We implement these systems end-to-end. First campaigns live in 14 days.
Using this exact waterfall. The remaining 33% were contacts at companies with extremely restrictive email policies or individuals with no findable business email.
Provider order is a cost optimization decision. Blitz is free. If it finds the email, you pay nothing. Running Blitz first means 60-65% of your contacts cost $0 in enrichment. LeadMagic at $0.05 runs second -- only on the 35-40% that Blitz missed. FullEnrich at $0.30 runs last -- only on the 15-20% that both cheaper providers missed.
If you reversed the order and started with FullEnrich, you would pay $0.30 per contact on everyone -- including the 60-65% that Blitz would have found for free. On a 1,000-contact batch, the wrong order costs $300. The right order costs $80-120. Same coverage, 60% cheaper. Multiply that across 5,000 contacts per month and the savings compound fast.
| Step | Provider | Contacts queried | Emails found | Cost per lookup | Step cost | Cumulative coverage |
|---|---|---|---|---|---|---|
| 1 | Blitz | 1,000 | 625 | $0.00 | $0 | 62.5% |
| 2 | LeadMagic | 375 | 75 | $0.05 | $18.75 | 70.0% |
| 3 | FullEnrich | 300 | 38 | $0.30 | $90.00 | 73.8% |
| 4 | BounceBan (all) | 738 | 701 pass | $0.005 | $3.69 | 70.1% verified |
| Total | 1,000 | 701 verified | $112.44 | $0.11/contact avg |
That table shows real economics from an actual batch. Average cost per verified email: $0.11. Starting with FullEnrich alone would have cost $300+ for the same coverage. Starting with Apollo free tier would have covered 550 contacts but left 150 more unreached than the waterfall caught.
Even verified emails from reputable data providers bounce 5-15% of the time. People change jobs. Domains expire. Email servers go down and come back up with different configurations. An email that was valid six months ago might bounce today. Verification is not a nice-to-have -- it is the last line of defense before your sending infrastructure takes damage.
Our gate is strict: deliverable result AND score of 97 or above. A score below 97 typically means the domain is catch-all -- the server accepts every email, so you cannot confirm the specific address exists. Catch-all domains are a trap. The email might work, or it might silently fail and count as a bounce. We block them. The 3% of contacts this filters out are not worth the deliverability risk.
We learned this the hard way. Early in our operations, we pushed 195 contacts without running them through verification. Twelve bounced. That 6% bounce rate triggered spam filters across 15 mailboxes -- mailboxes that took 3-4 weeks to warm and cost $180/month to maintain. One shortcut cost us weeks of lost sending capacity across multiple client campaigns. We added the hard gate the same day. It has blocked roughly 8% of contacts since. Every one of those blocks was cheaper than the alternative.
Score below 97 = catch-all domain = blocked. We process every email through this gate regardless of which provider found it. No exceptions, no overrides.
Here is a problem most outbound teams never think about: LinkedIn data is stale. Not slightly stale. A full 20-25% of LinkedIn profiles show a job the person no longer holds. They changed roles three months ago but have not updated their profile. Your data provider pulled the old title and company. You write personalized copy referencing their role at Company A. They left Company A in January.
We run employment verification on all contacts before enrichment begins. Using LinkedIn profile data via RapidAPI, we confirm that the person still works at the target company and still holds a relevant title. This catches three categories of bad data: wrong company (they moved), wrong title (they got promoted or changed roles), and gone entirely (they left and the profile is a ghost).
On a recent 500-contact batch, employment verification flagged 23% as stale. That is 115 people who would have received an email referencing the wrong company or the wrong role. Those emails do not just fail to convert -- they actively harm your sender reputation when recipients mark them as spam out of confusion or annoyance. The check costs seconds per contact. Skipping it costs meetings.
People change jobs, get promoted, or leave. Your data provider pulled the old information. Without employment verification, one in five emails goes to the wrong person or references the wrong role.
This is the gate nobody talks about because most teams do not know it is a problem. The enrichment waterfall sometimes finds an email from a previous job -- and that email still works. Target works at Vint. Waterfall finds their old email at The Weather Company. BounceBan says deliverable because the old email is still active on Weather Company's servers. Every automated check passes. But the email goes to the wrong company.
Our domain match gate is simple: the email domain must match the target company's domain. If you are targeting someone at acme.com, their email must end in @acme.com. Not their Gmail, not their previous employer, not a personal domain. The only exceptions are known parent company aliases (subsidiary domains that route to the same company) and founder personal domains that match the person's name.
Target: Jordan Jez, VP at Vint (vint.co). Waterfall found: jordan.jez@weather.com (The Weather Company). BounceBan: deliverable, score 99. Every automated check passed. Domain match gate caught it because weather.com does not equal vint.co. Without this gate, Jordan would have received a cold email at a company he left months ago. He would have replied something like 'yikes, might be time to check LinkedIn.' We found 6 mismatches in that single batch.
You do not need our exact stack to benefit from the waterfall approach. The principle is simple: query cheap providers first, expensive providers last, verify everything, and add validation gates. The specific providers matter less than the architecture. Here are three tiers depending on your volume and budget.
Use Apollo's free tier or Blitz as your primary source. Run every email through a verification service like BounceBan or ZeroBounce before it enters any campaign. This is the minimum viable waterfall. It will not catch everything, but it will catch the bounces that destroy your infrastructure. Coverage: 55-65%. Cost: $0.005-0.05 per contact. Good enough for 500 contacts per month.
Add a second provider for the contacts your first source misses. Blitz first, then LeadMagic for the gaps. Add LinkedIn employment verification on any batch over 50 contacts. This catches stale data before you waste enrichment credits on people who have changed jobs. Coverage: 75-85%. Cost: $0.05-0.10 per contact. Right-sized for 1,000-3,000 contacts per month.
Three or more providers in sequence, plus employment verification, domain match validation, and strict BounceBan gating. This is what we run. It handles enterprise catch-all domains, validates every contact against their current employer, and blocks any email that does not match the target company's domain. Coverage: 90-95%. Cost: $0.08-0.15 per contact. Built for 3,000+ contacts per month across multiple clients.
| Tier | Providers | Verification | Coverage | Cost/contact | Best for |
|---|---|---|---|---|---|
| Starter | Apollo or Blitz | BounceBan | 55-65% | $0.005-0.05 | Under 500 contacts/mo |
| Growth | Blitz + LeadMagic | BounceBan + employment check | 75-85% | $0.05-0.10 | 1,000-3,000 contacts/mo |
| Agency/Enterprise | Blitz + LeadMagic + FullEnrich | BounceBan + employment + domain match | 90-95% | $0.08-0.15 | 3,000+ contacts/mo |
Every shortcut in data quality has a cost. Skip verification and you get bounces that burn mailboxes. Skip employment verification and you send emails referencing the wrong company. Skip the domain match gate and you email people at companies they left months ago. Skip the waterfall entirely and you miss 30-45% of your target accounts.
The math is simple. A campaign targeting 1,000 accounts at 60% single-provider coverage reaches 600. At a 3% positive reply rate, that is 18 interested prospects. The same campaign at 90% waterfall coverage reaches 900. Same 3% reply rate, that is 27 interested prospects. Nine additional meetings from the same account list. If each meeting is worth $300-500, the waterfall paid for itself ten times over.
The cost of skipping is not just missed coverage. It is compounding damage. Bad data leads to bounces. Bounces damage sender reputation. Damaged reputation means more emails land in spam. More spam means lower reply rates. Lower reply rates mean fewer meetings. Fewer meetings mean the channel looks broken. The channel is not broken. The data is.
The difference between 60% single-provider coverage and 90% waterfall coverage at a 3% positive reply rate. At $300/meeting, that is $2,700 in additional pipeline from a $112 investment in better enrichment.
Track four metrics. First: coverage rate -- what percentage of target contacts did you find a verified email for? Below 60% means your provider stack has gaps. Above 85% and you have a working waterfall. Second: bounce rate after sending. This is the real test. Your verification gate should keep this below 2%. Above 3% and something is wrong with your verification process.
Third: wrong-person reply rate. If more than 1% of replies say something like "I don't work there anymore" or "wrong person," your employment verification is missing stale contacts. Fourth: cost per verified contact. Track this monthly. If it is creeping above $0.15, audit which providers are getting queried most and whether your waterfall order is still optimal.
What is an enrichment waterfall for cold email?
An enrichment waterfall is a system that queries multiple email data providers in sequence to find and verify contact emails. Cheap providers run first (catching 60-65% of emails at low cost), then progressively more expensive providers catch the remaining contacts. Every email from every provider goes through verification before entering a campaign. The result is 90-95% coverage at a fraction of the cost of using expensive providers alone.
Why not just use Apollo or ZoomInfo for all my email data?
No single provider covers more than 55-70% of contacts. Apollo is strong in tech/SaaS but weak in non-tech industries. ZoomInfo has broad enterprise coverage but costs $15K+/year and still misses SMB. Every provider has gaps in different places. A waterfall stacks providers so one covers the gaps of another. It is the difference between reaching 600 or 900 out of 1,000 target accounts.
How much does an enrichment waterfall cost per contact?
With a well-ordered waterfall (free providers first, expensive last), average cost is $0.08-0.12 per verified contact. The free first step (Blitz) catches 60-65% of contacts at zero cost. The $0.05 second step (LeadMagic) catches most of the remaining. The expensive third step ($0.30 FullEnrich) only runs on the 15-20% that cheaper providers missed. Verification adds $0.005 per email.
What does a BounceBan score of 97 mean?
BounceBan scores emails from 0-100 based on deliverability confidence. A score of 97+ means the email is confirmed deliverable at a specific mailbox. Scores below 97 typically indicate a catch-all domain -- the server accepts all emails regardless of whether the specific mailbox exists. Catch-all domains are risky because the email might silently fail and count as a bounce. We block anything below 97.
How do I verify that someone still works at the company I am targeting?
We use LinkedIn profile data via RapidAPI to confirm current employment. The check validates three things: the person still works at the target company, they still hold a relevant title, and their profile is active. This catches the 20-25% of contacts whose LinkedIn data is stale -- people who changed jobs but have not updated their profile. Without this step, one in five emails references the wrong company or role.
What is a domain match gate in email enrichment?
A domain match gate checks that the found email address matches the target company's domain. The waterfall sometimes finds old emails from previous jobs that are still deliverable. Someone works at Vint but the waterfall finds their old Weather Company email. BounceBan says deliverable. Without the domain match gate, that person gets an email at the wrong company. The gate blocks any email where the domain does not match the target.
Can I build an enrichment waterfall without technical skills?
The starter tier requires minimal technical skill. Use Apollo or Blitz to find emails, then run them through BounceBan verification before adding to your campaign. That is two tools and a spreadsheet. The growth and agency tiers require scripting ability to automate the provider sequencing, API calls, and verification gates. Most teams either build this themselves or work with an agency that already has the infrastructure.
How long does the enrichment waterfall take to process a batch?
For a 1,000-contact batch, the full waterfall (three providers plus verification) takes 15-30 minutes running in parallel. Blitz is near-instant. LeadMagic returns in seconds. FullEnrich can take 2-5 minutes per batch due to their deep crawling. BounceBan verification runs in under a minute for 1,000 emails. The whole process is automated -- you start it and come back to verified results.
We implement these systems end-to-end. First sends within 14 days.