Tactical: building a 12-provider enrichment waterfall
A walkthrough of stacking Hunter, Snov, Apollo, RocketReach, ZoomInfo, Dropcontact, Clearbit, Lusha, and four more into a single cascade with stop-on-match logic.
Why a waterfall
Skip this section if you're already convinced. Otherwise: single-source enrichment caps at ~60–70% match rate in most B2B segments. A 12-source waterfall reliably hits 85%+. The math is in The waterfall pattern is eating the email-finder market. This post is the how-to, not the why.
What you'll build in this tutorial:
- Take a 500-row CSV (first name, last name, company domain).
- Run it through a 12-source waterfall with pay-on-match credit cost.
- See source attribution on every match.
- Push the verified emails to your outbound rail (Smartlead in this example).
- Schedule the run to repeat weekly.
Time required: 10 minutes for the first run, 30 seconds for every subsequent one.
Prerequisites
- A TexAu account. If you don't have one, sign up free — no card required, 100 credits on the free tier, every feature including the API.
- A 500-row CSV with three columns:
first_name,last_name,company_domain. (Or any equivalent prospect list.) - Optional: a Smartlead, Instantly, or Lemlist account for the outbound push step. Skip this if you only want to enrich.
That's it. No vendor contracts to sign, no API keys to manage, no canvas to build.
Step 1 — Upload your list (1 minute)
Sign in to TexAu. Click + New table. Drag-and-drop your CSV. Confirm the column types — first_name and last_name as text, company_domain as a domain.
The table appears with your 500 rows. Each row is a lead. Each column is a piece of data we'll either keep, transform, or enrich.
If you want to test with a smaller list first, the free tier's 100 credits cover ~80 enriched leads — enough for a real evaluation.
Step 2 — Add the waterfall (2 minutes)
Right-click the empty space next to your company_domain column. Click Add column → Find email.
A configuration card appears. The defaults are:
- Input columns:
first_name,last_name,company_domain(auto-detected) - Verification: on
- Failed-lookup cost: zero (this is the pay-on-match default)
- Source attribution: returned on every match
You don't pick the providers. The cascade order is tuned automatically based on your list's geographic and industry profile. If you have a strong reason to lock a specific provider as primary, the option is in advanced settings — but for 95% of buyers, the default cascade is the right answer.
Click Run on column.
Step 3 — Watch it run (3 minutes)
The table enriches row by row. You'll see the email column populate with verified addresses. A second column, source, populates with the provider that delivered each match: hunter.io, apollo, snov, rocketreach, etc.
Failed lookups (where all 12 sources had no verified match) leave an empty email cell with a not_found status. You're not billed for those.
Around minute 3, the status bar shows the run complete. Typical results on a clean B2B list:
- ~85% of rows have verified emails
- ~10% are flagged as catch-all (deliverable but to a generic inbox)
- ~5% are not found
The dashboard shows your real numbers, not ours.
Step 4 — Check source attribution (30 seconds)
Sort the source column. You'll see something like:
| Source | Matches |
|---|---|
| hunter.io | 187 |
| apollo | 122 |
| rocketreach | 64 |
| snov | 41 |
| datagma | 9 |
| ... | ... |
This is the part most enrichment tools don't show you. In a single-source world, you'd be paying $0.15 per lookup with one vendor and getting ~60% of these results. In TexAu's waterfall, you paid 1 credit per match (not per attempt), and you can see exactly which sources are doing the heavy lifting for your specific list.
Two operational reasons this matters:
- Vendor concentration risk. If 80% of your matches are coming from one source, you're more exposed to that source's pricing and uptime than you'd think. The dashboard surfaces this so you don't get surprised.
- Geographic / industry bias. If you're targeting a non-US segment, the cascade order shifts to put the right provider first. Source attribution lets you verify the cascade is doing what you think.
Step 5 — Push to your outbound rail (2 minutes)
Filter the table to email_status = verified. Right-click the filtered selection. Click Push → Smartlead.
A configuration card appears:
- Smartlead account: select your connected account (one-time OAuth).
- Campaign: pick the destination campaign.
- Field mapping: confirm
email,first_name,last_name,company_domainmap to your Smartlead merge fields. - Dedup: check against existing Smartlead contacts (default on).
Click Push. The leads land in Smartlead with merge fields populated. If you have a sequence already configured in Smartlead, it kicks off on the next send-window per your existing rules.
The same pattern works with Instantly, Lemlist, Apollo Sequences, and HeyReach. Native integrations, not Zapier.
Step 6 — Schedule the recurring run (90 seconds)
Click Schedule in the table header. Configure:
- Trigger: weekly, every Monday at 4:00 AM your timezone.
- Action: re-run the waterfall on rows where
last_enriched_atis older than 7 days. - Conflict policy: if the email changed, update; if the source changed, log.
Click Save schedule.
The table now self-refreshes every Monday morning. Failed alerts route to email or Slack if you connect either. The next time you log in to do outbound, the data is already current.
Step 7 (optional) — Run it from the API or MCP (1 minute)
If you want the same waterfall from your code:
curl -X POST https://api.texau.com/v1/enrich/email \
-H "Authorization: Bearer $TEXAU_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"first_name": "Jane",
"last_name": "Cooper",
"company_domain": "acme.com"
}'
{
"email": "[email protected]",
"verified": true,
"source": "hunter.io",
"credits_used": 1,
"took_ms": 842
}
If you want it from Claude Desktop or Cursor, drop your TexAu API key into MCP settings and call texau.enrich.email like a built-in tool. Same input shape, same response.
What this cost
A 500-row run with ~85% match rate spends ~425 credits. On the free tier (100 credits), you can run a 100-row evaluation. On the Pro tier ($99/mo, 5,000 credits), you can run this 500-row workflow ten times a month before topping up.
For comparison: at competitor parallel-waterfall pricing (5 sources called per row, all charged), the same coverage costs ~2,500 credits — roughly 6x more. The pay-on-match difference is not subtle.
What you've actually built
In ten minutes, you assembled:
- A 12-source enrichment waterfall with pay-on-match billing.
- Source attribution on every result.
- A push to your existing outbound rail with field mapping.
- A weekly recurring refresh that self-maintains.
- An API endpoint and MCP tool for the same workflow, callable from your code or your AI agent.
Most teams that hit this article are evaluating Clay, Apollo, ZoomInfo, or BitScale. The architecture above is the same as what those tools deliver in their best configurations — just shipped as the default behavior, on the free tier, without a workflow-builder ceremony.
Honest comparison reading: TexAu vs Clay, TexAu vs Apollo, TexAu vs BitScale. Each is honest about where the other tool wins.
If you want to run this on a real list right now: start free. The 100-credit free tier is enough for a real evaluation end-to-end.