> ## Documentation Index
> Fetch the complete documentation index at: https://deepline.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# How to Run Waterfall Enrichment in Claude Code (2026)

> Search and inspect a maintained Deepline Play, run a representative CSV pilot from Claude Code, review usage and provenance, then scale or own the workflow.

[Human guide: work with your agent →](https://deepline.com/docs/human/guides/waterfall-enrichment-claude-code.md)

> [!NOTE]
>
> Run a checked, CSV-safe email pilot and evaluate the actual route rather than
> a remembered provider list.

# How to Run Waterfall Enrichment in Claude Code

Claude Code can operate Deepline from the terminal. Use a maintained or owned
Play for multi-step work. Inspect its contract, run a pilot, and review the
output.

> **113+**
>
> catalog integrations

> **1 Play**
>
> production Play contract

> **Pilot first**
>
> review before scale

> **Observable**
>
> status, usage, and errors

Install

## Define the email enrichment task

This guide covers **verified work-email lookup**, not email sending. Match the person and employer, validate the returned address, and stop when the declared acceptance rule passes. Treat permission to contact the person and the sending channel as separate checks.

Before running anything, choose what counts as a usable record. A waterfall tries providers in a declared sequence. It advances only when the current result fails the Play's acceptance rule. A returned value alone is not success. If every stage misses, the Play returns its declared no-result output. The maintained Play is the source of truth for its current stages.

The [evaluation guide](https://deepline.com/blog/data-enrichment-guide-2026) separates identity, validation, cost, and CRM write eligibility. The [B2B waterfall guide](https://deepline.com/docs/guides/b2b-data-enrichment-waterfall.md) explains when the pattern is useful.

## Give Claude Code the Deepline skill

```bash theme={"languages":{"custom":["/languages/deepline-prompt.json"]}}
npm install -g deepline@latest
npm exec --yes --package=deepline@latest -- deepline setup --json
```

Then ask Claude Code:

> [!NOTE]
>
> Find verified work emails for leads.csv with a maintained waterfall Play.
> Inspect the contract and run a three-row pilot before the full file.

Discover

## Resolve the current workflow

Claude Code searches the live catalog and inspects the selected Play:

```bash theme={"languages":{"custom":["/languages/deepline-prompt.json"]}}
deepline plays search "verified work email waterfall"
deepline describe prebuilt/name-and-domain-to-email-waterfall-batch
```

Check the accepted CSV fields, output shape, current workflow identity, and pricing information. The Deepline catalog contains 113+ integrations. The described Play declares the smaller route used for this job.

Pilot

## Run the production-shaped Play on representative rows

Create `leads-pilot.csv` with [CSV-safe record selection](https://deepline.com/docs/sdk-v2/batch-csv.md#2-select-representative-csv-records) before the pilot commands.

```bash theme={"languages":{"custom":["/languages/deepline-prompt.json"]}}
# Create leads-pilot.csv using CSV-safe record selection before this run.
deepline plays run prebuilt/name-and-domain-to-email-waterfall-batch --csv leads-pilot.csv --watch
```

Review:

* accepted, ambiguous, invalid, no-result, and failed rows
* provider provenance for accepted values
* output columns and downstream compatibility
* usage and pricing units for stages that executed
* errors, retries, and validation behavior

If the result fits the job, use the same contract on the full file:

```bash theme={"languages":{"custom":["/languages/deepline-prompt.json"]}}
deepline plays run prebuilt/name-and-domain-to-email-waterfall-batch --csv leads.csv --watch
```

Own

## Put a custom route in version control

Use an owned Play when you need a different provider sequence, custom validation, approvals, CRM writes, schedules, or webhooks:

```bash theme={"languages":{"custom":["/languages/deepline-prompt.json"]}}
deepline tools search "work email finding and validation"
# Claude Code authors email-waterfall.play.ts from the inspected contracts.
deepline plays check email-waterfall.play.ts
deepline plays run --file email-waterfall.play.ts --csv leads-pilot.csv --watch
deepline plays publish email-waterfall.play.ts
deepline describe email-waterfall
deepline plays versions --name email-waterfall
```

The durable artifact is the checked Play, not a remembered shell flag or provider list.

Billing

## Estimate from the route that actually ran

* **BYOK:** Provider requests use your connected account under its agreement. Deepline compute or other applicable usage charges can still apply.
* **Managed billing:** Some tools charge for returned results, while others charge per request or page. Attempted calls can therefore carry usage even when the row has no result.
* **Standalone examples:** A successful DropLeads Email Finder result costs
  0.26 Deepline credits. Hunter Email Finder costs 0.30 credits. Prospeo Enrich
  Person costs 0.55 credits. These rates do not define a waterfall total.

Recheck live pricing before publication or execution. Use the pilot's usage to estimate your own input mix.

Related

## Evaluate coverage and usage

Use the same dated sample and acceptance rule when comparing sources or routes.
Keep comparison outputs separate from production CRM properties.

1. Label the sample's identity inputs and the criteria for an accepted result.
   Include the segments and missing-input cases your actual process encounters.
2. Run representative rows through each inspected route with bounded credit
   limits. Preserve the run IDs and exported outcomes.
3. Count accepted results, ordinary misses, rejected candidates, conflicts, and
   provider errors separately. A failed request is not evidence of zero coverage.
4. Compare incremental accepted coverage on previously unresolved rows. Do not
   count duplicated accepted results as additional coverage.
5. Compare recorded Deepline usage per accepted result. For BYOK comparisons,
   include your provider-account costs separately. Deepline does not expose its
   internal provider spend.
6. Record the route version, sample date, and acceptance policy. Revisit the
   evaluation when those conditions or the target population change.

Completed work can be reused under its cache contract. Independent misses or
refreshes can execute again, so do not assume a comparison rerun is free.
Contract and workflow costs should include retry and human-repair work where
those costs matter to the team's decision.

See [Waterfall evaluation](https://deepline.com/docs/guides/b2b-data-enrichment-waterfall.md),
[Enrichment cost](https://deepline.com/docs/guides/enrichment-cost-optimization.md), and
[Provider consolidation](https://deepline.com/docs/guides/gtm-provider-consolidation.md) for interpretation.

## Keep reading

Continue Reading

* [Deepline GTM execution layer](https://deepline.com/features/gtm-data-layer)
* [Data enrichment evaluation guide](https://deepline.com/blog/data-enrichment-guide-2026)
* [Maintained email-waterfall Play documentation](https://deepline.com/docs/plays/email-waterfall.md)

> **How do I run waterfall enrichment in Claude Code?**
>
> Install Deepline. Ask Claude Code to search the live Play catalog and inspect the selected contract. Create a representative pilot CSV. Run the maintained Play with --watch. Review its output, provenance, usage, and errors.

> **Which providers are in the waterfall?**
>
> The maintained Play contract is the source of truth for its current stages. Deepline has a broader integration catalog, but an individual waterfall uses only the providers declared by that Play. Run deepline describe before execution instead of relying on a fixed marketing-page list.

> **How much does it cost?**
>
> The total depends on which stages execute, the result path, and your billing mode. BYOK means you pay providers directly. Managed tools may charge per result, request, or page. Use a representative pilot and the live pricing contract rather than a universal per-row estimate.

> **What match rate should I expect?**
>
> A waterfall can fill gaps left by one provider. Lift depends on input quality, ICP, geography, field, provider route, and validation policy. Measure accepted, ambiguous, invalid, no-result, and failed rows on representative data.

> **Can I change the provider order?**
>
> Yes. Create an owned .play.ts workflow from the inspected contracts, edit its stages, and run deepline plays check. Publish it when the route, validation, retries, and review boundaries should become a reusable team contract.

## Verify this task

Compare accepted coverage, missed or rejected candidates, provider errors, and scoped recorded usage on the same input sample.

Ask your agent to explain a failed check before repeating work or expanding the scope.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.