Side-by-side
The DIY script vs the Deepline command
This is what enrichment looks like when you wire it yourself in Claude Code versus when you use Deepline. Both work. One scales.
Prompt
Describe the outcome you want.
Read the skill
Claude loads the Deepline recipes and tool shapes.
Write the command
It turns the prompt into deepline enrich.
Pilot the run
Start with --rows 0:1 before scaling.
Read the output
Inspect what hit and what missed.
Iterate
Adjust the pipeline and rerun.
# DIY: Claude Code calling Apollo directly
curl -s -X POST "https://api.apollo.io/v1/people/match" \
-H "x-api-key: $APOLLO_KEY" \
-H "Content-Type: application/json" \
-d '{"first_name":"Jane","last_name":"Doe","domain":"acme.com"}' \
| jq '.person.email // empty' \
|| {
# Apollo missed — try Hunter
curl -s "https://api.hunter.io/v2/email-finder?company=acme.com&first_name=Jane&last_name=Doe&api_key=$HUNTER_KEY" \
| jq '.data.email // empty' \
|| {
# Hunter missed — try Icypeas
curl -s -X POST "https://app.icypeas.com/api/email-finder" \
-H "Authorization: Bearer $ICYPEAS_KEY" \
-d '{"firstName":"Jane","lastName":"Doe","domainName":"acme.com"}' \
| jq '.email // empty'
}
}
# Still need: retries, rate limits, validation, storage, credit tracking, error handling...
# Deepline: one command, same result
deepline enrich --input leads.csv \
--with '{"alias":"email","tool":"name_and_domain_to_email_waterfall","payload":{"first_name":"{{First Name}}","last_name":"{{Last Name}}","domain":"{{Domain}}"}}'
The DIY version works for one person. The Deepline version works for 10,000. The difference is everything between the curl and the CSV.
What Deepline encapsulates
What you would wire yourself
Deepline is not a different data source. It calls the same providers you would. The value is in the wiring layer that sits between your agent and those APIs.
| Capability | DIY (raw API calls) | Deepline |
|---|---|---|
| Provider schemas | Write and maintain per provider | 44+ schemas included, tested, versioned |
| Waterfall fallback | Nested if/else or retry loops | Built-in: define provider order once |
| Email validation | Call a separate API, parse results | Included in enrichment pipeline |
| Credit control + monthly caps | Track manually or build a counter | Dashboard billing settings (not a CLI flag) |
| Rate limiting + retries | Implement per provider | Handled per provider schema |
| Result storage | Write to file or wire your own DB | Owned Postgres, queryable |
| Agent-readable docs | Write your own tool descriptions | SKILL.md ships with the CLI |
Honest concession
When DIY is still the right call
Deepline is not always the right tool. The DIY path is simpler when:
• You are doing a one-off lookup against a single provider
• Your script does not need waterfall fallback across multiple sources
• You want zero dependencies and full control over every HTTP call
• You are prototyping and do not yet know which providers you need
Deepline's value starts at two or more providers, waterfall logic, or any workflow you plan to rerun.
The line
Where DIY ends and Deepline begins
Stay with raw API calls when...
✓ One provider, one lookup, done
✓ You enjoy wiring retries and parsing errors
✓ Zero external dependencies is a hard requirement
Use Deepline when...
✓ You need 2+ providers in a waterfall
✓ You are enriching a list, not a single record
✓ You want credit caps and cost visibility before every run
✓ Results need to land in a queryable database
✓ You plan to rerun or extend the workflow later
Common questions
FAQ
Can Claude Code already call Apollo directly?+
Yes. Claude Code can curl any REST API, including Apollo, Hunter, and PDL. Deepline does not replace that ability. It encapsulates the wiring you would build yourself: provider schemas, waterfall fallback logic, retries, email validation, credit caps, and result storage.
When should I just use Claude Code without Deepline?+
If you are doing a one-off lookup against a single provider and do not need waterfall logic, retries, or result storage, calling the API directly is simpler. Deepline adds value when you have a list, need multiple providers, or want to rerun enrichments without re-wiring.
Does Deepline replace Claude Code?+
No. Deepline runs inside Claude Code. It is a CLI tool that Claude Code calls, the same way it calls git or curl. Claude Code is the agent. Deepline is the enrichment layer.
How many providers does Deepline support?+
Deepline supports 44+ provider schemas across enrichment, email finding, company lookup, and person search. Each schema handles authentication, rate limiting, pagination, and error parsing so the agent does not have to.
What does waterfall fallback mean?+
Waterfall enrichment tries providers in sequence until one returns a result. If Apollo returns no email, Deepline automatically tries Hunter, then Icypeas, then Prospeo. You define the order once. The agent does not manage retries or provider switching.
Get started
curl -s "https://code.deepline.com/api/v2/cli/install" | bash