TLDR
Waterfall enrichment tries multiple data providers in sequence to find verified work emails. It starts with the cheapest provider, falls through on a miss, and stops at the first valid hit. You only pay for the provider that works.
In Claude Code, you tell the agent what you need in plain English. Deepline handles the waterfall behind the scenes:
Tell Claude Code
"Find verified work emails for these 50 contacts using waterfall enrichment. Start with 5 as a pilot."
Result: Higher match rates than any single provider, because misses fall through to the next source instead of coming back empty. Specific lift varies by ICP and region. Cost: ~$0.03-0.04 per verified email in managed mode, or free orchestration with your own API keys.
What is waterfall enrichment?
When you search for someone's work email using one provider (say, Apollo), you get a result ~60-70% of the time. The other 30-40% come back empty.
A waterfall fixes this by trying multiple providers in sequence:
- Provider A (cheapest): try first. If it returns a verified email, stop.
- Provider B (next cheapest): try only if A missed.
- Provider C: try only if A and B both missed.
- Continue until a valid email is found or all providers are exhausted.
You only pay for the provider that succeeds. If Provider A finds the email, you never call B or C.
Why it matters: Per Instantly, teams using waterfall enrichment see a 20-40% improvement in coverage over any single provider. As one community data point (not a Deepline benchmark): on r/gtmengineering, a single user reported going from 60% to 91% match rate after switching from Apollo-only to a waterfall approach.
How to run it in Claude Code (step by step)
Step 1: Install Deepline (30 seconds)
Terminal
curl -s "https://code.deepline.com/api/v2/cli/install" | bash deepline auth register
This installs the Deepline CLI and provisions a workspace. Deepline auto-installs its Claude Code skill, so Claude can call it immediately.
Step 2: Prepare your list
Create a CSV with the people you want to find emails for:
leads.csv
first_name,last_name,company,domain Jane,Smith,Acme Corp,acme.com John,Doe,Widget Inc,widget.io Sarah,Lee,FooBar Labs,foobar.dev
Step 3: Run the waterfall (pilot first)
Open Claude Code and paste:
Claude Code prompt
"I have a CSV at leads.csv with first_name, last_name, company, and domain columns. Run waterfall enrichment to find verified work emails. Start with 2 rows as a pilot."
Claude Code reads the Deepline skill, writes the enrichment command, and runs it. The pilot (--rows 0:1) processes only 2 rows so you can see the output before committing credits.
Or run the CLI directly:
Terminal (advanced)
deepline enrich --input leads.csv --with-waterfall email --rows 0:1
Step 4: Review and scale
The output shows each row with:
- The verified email (or "no result" if all providers missed)
- Which provider found it (Apollo, Hunter, PDL, etc.)
- The cost in credits
If the pilot looks good, run the full list:
Full run
deepline enrich --input leads.csv --with-waterfall email
Step 5: Deploy as a daily workflow
Tell Claude Code:
Deploy
"Deploy this enrichment as a workflow that runs every weekday at 8am on new leads from HubSpot."
What providers are in the waterfall?
Deepline waterfalls across 95+ integrations in cost-optimized order. The cheapest providers run first so you pay the least possible per resolved email.
| Provider | Typical cost | Strength |
|---|---|---|
| Dropleads | Lowest tier | High volume, good NA coverage |
| Hunter | Low tier | Domain-based search, built-in verifier |
| Prospeo | Low tier | Strong North American B2B |
| LeadMagic | Low-mid tier | 97% advertised accuracy |
| Apollo | Mid tier | Largest B2B database, good firmographics |
| People Data Labs | Mid tier | 3B records, highest recall |
| RocketReach | Mid tier | Best senior-leader coverage |
| ContactOut | Mid tier | Strong LinkedIn-to-email resolution |
| Lusha | Mid-high tier | Best phone + email combo |
| And 20+ more | Various | Specialized coverage per region/vertical |
Bring your own keys (BYOK): If you already have an Apollo contract or a Hunter API key, paste it in the Deepline dashboard. Deepline uses your key for that provider. You keep your contract pricing, your rate limit, your billing. Deepline charges $0 for orchestration in BYOK mode.
How much does it cost?
| Mode | Cost per verified email | How it works |
|---|---|---|
| BYOK (bring your own keys) | $0 platform fee + your provider cost | Paste your API keys. Deepline orchestrates for free. |
| Managed credits | ~$0.03-0.04 per email | Pay per credit. Deepline covers the underlying provider costs. |
| Pilot mode | 2 rows for ~$0.06 | Always test with --rows 0:1 before running a full list. |
Worked example: 1,000 contacts
| Deepline (managed) | Apollo alone | Clay | ZoomInfo | |
|---|---|---|---|---|
| Emails found | ~800-910 (waterfall) | ~600-700 (single) | ~750-850 | ~700-800 |
| Cost | $30-40 | $80 | $90-150 (dual credits) | $25K+/yr contract |
| Pilot mode | Yes (--rows 0:1) | No | No (auto-run) | No |
| Credit surprises | Impossible | Moderate | Common | Hidden in contract |
Waterfall enrichment vs. single-provider enrichment
| Waterfall (Deepline) | Single provider (Apollo, Hunter, etc.) | |
|---|---|---|
| Match rate | Higher; misses fall through to the next provider (varies by ICP/region) | 60-70% |
| Cost per email | $0.03-0.04 (only the winning provider charges) | $0.05-0.15 (full charge even on misses for some) |
| Provider lock-in | None. Swap providers anytime. | Yes. Your workflow depends on one API. |
| Fallback on miss | Automatic. Tries next provider. | Manual. You build the retry logic. |
| Works with Claude Code | Native skill. Describe what you want. | Manual API integration. |
Waterfall enrichment vs. Clay
| Deepline | Clay | |
|---|---|---|
| Interface | Claude Code + CLI (programmatic) | Spreadsheet UI (click-based) |
| Waterfall | Built-in, one flag | Manual formula columns + conditionals |
| Pilot mode | --rows 0:1 (forced before full run) | No pilot. Auto-run burns credits. |
| Credit model | Pay per waterfall hit (BYOK = $0) | Dual credits: Data Credits + Action Credits |
| Row limits | Unlimited (CSV) | 50K per table ("unlimited" on Enterprise) |
| Data ownership | Postgres database you own | Clay's cloud (export required) |
| Reproducibility | Shell command in git | UI-only (no version control) |
| Claude Code native | Yes. Official skill. | No. Separate tool. |
Common questions
"Can I customize the waterfall order?"
Yes. The default order is cost-optimized. You can override it by specifying providers explicitly: --with-waterfall "email" --waterfall-order "apollo,hunter,pdl".
"What happens when no provider finds an email?" The row stays in the output CSV with an empty email field and a note saying "no result after N providers." You're not charged for missed rows.
"Can I add email validation after the waterfall?"
Yes. Chain a validation step: --with 'verify=leadmagic_email_validation:{"email":"{{email}}"}'. This runs after the waterfall and validates every resolved email before it reaches your sequencer.
"Does this work with Instantly / Smartlead / Lemlist?" Yes. After enrichment, tell Claude Code: "Push verified contacts to my Instantly campaign 'Q2 Outbound'." Deepline handles the sequencer import.
"Can I run this on a schedule?" Yes. "Deploy this as a workflow that runs every Monday at 8am." Deepline wraps the prompt as a recurring workflow.
Get started
Install + first waterfall in 60 seconds
curl -s "https://code.deepline.com/api/v2/cli/install" | bash deepline auth register deepline enrich --input leads.csv --with-waterfall email --rows 0:1
Or tell Claude Code: "Find verified work emails for the contacts in leads.csv using waterfall enrichment. Pilot on 2 rows first."
Free with your own API keys. Managed credits start at $0.10/credit.
Install Deepline Read the quickstart