> ## 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.

# 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.

<CardGroup cols={2}>
  <Card title="112+">catalog integrations</Card>
  <Card title="1 Play">production Play contract</Card>
  <Card title="Pilot first">review before scale</Card>
  <Card title="Observable">status, usage, and errors</Card>
</CardGroup>

<p>Install</p>

## 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](/docs/guides/b2b-data-enrichment-waterfall) explains when the pattern is useful.

## Give Claude Code the Deepline skill

```bash theme={null}
npm install -g deepline@latest
npm exec --yes --package=deepline@latest -- deepline setup --json
```

Then ask Claude Code:

<Note title="Tell Claude Code">
  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.
</Note>

<p>Discover</p>

## Resolve the current workflow

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

```bash theme={null}
deepline plays search "verified work email waterfall" --json
deepline plays describe prebuilt/name-and-domain-to-email-waterfall-batch --json
```

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

<p>Pilot</p>

## Run the production-shaped Play on representative rows

```bash theme={null}
awk 'NR <= 4' leads.csv > leads-pilot.csv
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={null}
deepline plays run prebuilt/name-and-domain-to-email-waterfall-batch --csv leads.csv --watch
```

<p>Own</p>

## 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={null}
deepline tools search "work email finding and validation" --json
# 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 plays describe email-waterfall --json
deepline plays versions --name email-waterfall --json
```

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

<p>Billing</p>

## Estimate from the route that actually ran

* **BYOK:** Deepline charges no platform fee for provider requests; you pay providers under your own contracts.
* **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.

<p>Related</p>

## Keep reading

<p>Continue Reading</p>

* [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](/docs/plays/email-waterfall)

<AccordionGroup>
  <Accordion title="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.</Accordion>
  <Accordion title="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 plays describe before execution instead of relying on a fixed marketing-page list.</Accordion>
  <Accordion title="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.</Accordion>
  <Accordion title="What match rate should I expect?">A waterfall can fill gaps left by one provider, but the 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.</Accordion>
  <Accordion title="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.</Accordion>
</AccordionGroup>


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