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

# Find work emails with a waterfall

> Find work emails for a CSV with names and domains, validate the current Play without spending credits, then review a small pilot before you scale.

[Human guide: work with your agent →](https://deepline.com/docs/human/plays/email-waterfall.md)

> [!NOTE]
>
> Run and review a small work-email batch before expanding the input.

Use this guide when your CSV has `first_name`, `last_name`, and `domain` and
you need a work email for each person. The maintained batch Play tries its
configured route until it reaches its current result rule. It can return no
result.

Provider order, availability, validation gates, and price are part of the live
Play contract. Inspect that contract before a run. do not infer it from an
example or previous run.

For a LinkedIn URL, a personal email, or a company-and-role search, start with
[Example prebuilt Plays](https://deepline.com/docs/plays/tasks-overview.md) instead.

## Prerequisites

* Deepline is installed and connected to the workspace that should run the
  lookup.
* `leads.csv` has a header row and the fields the Play requires.
* You have three representative rows to inspect before you run the full file.

## Validate it without deploying or spending credits

Read the live contract and check it before you run anything:

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

`plays check` validates that the prebuilt Play is available. It does not deploy
the Play, create a run, or call an email provider.

For a LinkedIn URL, inspect and run `prebuilt/person-linkedin-to-email` or its
batch variant instead.

## Create a representative pilot file

Make `leads-pilot.csv` with the header and three rows that represent the list:
one likely match, one typical row, and one difficult row. Do not use only easy
records.

Before you start provider work, inspect any provider action named in the live
Play contract:

```bash theme={"languages":{"custom":["/languages/deepline-prompt.json"]}}
# This reads metadata only. Replace TOOL_ID with a tool named in the live Play
# contract before you run that provider route.
TOOL_ID="hunter_email_verifier"
deepline describe "$TOOL_ID"
```

Run the pilot:

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

This starts provider work and can use Deepline credits. The command prints a run
ID. Use that ID to inspect the completed result:

```bash theme={"languages":{"custom":["/languages/deepline-prompt.json"]}}
deepline runs get <run-id> --full
deepline runs export <run-id> --out leads-pilot-results.csv
```

## Review the pilot

Before you scale, check:

* Each returned email belongs to the intended person and company.
* Unresolved rows are visible rather than silently replaced with guesses.
* The current route and Deepline-credit usage are acceptable for the full list.
* The difficult row did not reveal a missing field or an unsuitable match rule.

`email_validated` means the candidate passed the current Play's validation gate.
it is not a delivery guarantee. The exact output schema and waterfall-step
outcomes are in `describe`.

> [!TIP]
>
> A completed run is not automatically a usable result. Approve the full run
> only after you have checked the returned values and unresolved rows.

## Run the full file

Run the same maintained Play against the reviewed input:

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

Use the run ID from the completed command to inspect or export the final result.
For a cost-review checklist, read [Cost control](https://deepline.com/docs/cost-control.md).

## Next step

Use the resulting list in a downstream Play only after you review it. For a
custom sequence of research, enrichment, and activation, build a
[custom Play](https://deepline.com/docs/plays/plays-overview.md).

## Verify this task

Reconcile source rows with accepted, unresolved, and failed outcomes. Check validation evidence and usage scoped to the actual run.

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.