Compare
// Compare

Claude Code can call Apollo. Deepline is what it calls when it has a list.

Claude Code can call Apollo directly. Use Deepline when the work needs a checked waterfall, retries, 105+ integration schemas, or Deepline-credit controls.

~15 lines
DIY bash script per provider
5 lines
Deepline waterfall command
105+
Integration schemas included
$0
Platform fee (BYOK)

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.

01

Prompt

Describe the outcome you want.

02

Read the skill

Claude loads the Deepline recipes and tool shapes.

03

Write the command

It resolves and checks a Deepline Play.

04

Pilot the run

Start with a small pilot CSV before scaling.

05

Read the output

Inspect what hit and what missed.

06

Iterate

Adjust the pipeline and rerun.

With Deepline, Claude Code reads the skill, writes the command, runs a pilot, and iterates — no bespoke bash wiring.
# 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...
PLAY_NAME=$(deepline plays search "verified work email waterfall" --json | jq -er 'first(.plays[] | select(.inputSchema.properties.csv? != null) | (.reference // .name))')
deepline plays describe "$PLAY_NAME" --json
deepline plays run "$PLAY_NAME" --csv leads.csv --watch

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.

CapabilityDIY (raw API calls)Deepline
Provider schemasWrite and maintain per provider105+ integration schemas included, tested, versioned
Waterfall fallbackNested if/else or retry loopsBuilt-in: define provider order once
Email validationCall a separate API, parse resultsIncluded in enrichment pipeline
Credit control + monthly capsTrack manually or build a counterDashboard billing settings (not a CLI flag)
Rate limiting + retriesImplement per providerHandled per provider schema
Result storageWrite to file or wire your own DBOwned Postgres, queryable
Agent-readable docsWrite your own tool descriptionsSKILL.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 105+ integration schemas. The schemas define authentication, inputs, outputs, and errors for their tools.

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

npm install -g deepline@latest && npm exec --yes --package=deepline@latest -- deepline setup --json

Continue Reading