> ## 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 Personal Email

> Validate personal-email batch inputs, inspect a pilot, and preserve unresolved results.

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

Resolve personal-email candidates for a small, authorized contact sample.
Keep source evidence and unresolved rows. Finding an address does not establish
permission to use it in a campaign.

## Before you start

Prepare names and available person identifiers. The batch contract requires
`first_name` and `last_name` per row. Its default columns also support
`linkedin_url`, `domain`, and `company_name`.

Use a correctly parsed CSV with a header. Follow [file validation](https://deepline.com/docs/guides/validate-incoming-csv-files.md)
before running a provider-backed lookup.

## 1. Inspect the current batch contract

```bash theme={"languages":{"custom":["/languages/deepline-prompt.json"]}}
deepline auth status --json
deepline describe prebuilt/personal-email-batch --json
deepline plays check prebuilt/personal-email-batch
```

Compare your actual headers with the returned CSV contract. Use supported
column mappings if they differ. Do not assume a LinkedIn-only file satisfies
the required-name fields.

## 2. Run a small file

Prepare `contacts-pilot.csv` with representative records. Include an ambiguous
or incomplete case so the pilot can expose the acceptance boundary.

```bash theme={"languages":{"custom":["/languages/deepline-prompt.json"]}}
deepline plays run prebuilt/personal-email-batch \
  --csv contacts-pilot.csv \
  --watch
```

This starts provider work and can incur usage. Save its run ID.

## 3. Inspect and export the same run

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

If several datasets are available, select the returned dataset path explicitly.
Read source and attempt fields in the current output contract.

> [!TIP]
>
> Reconcile every input to a returned result or an explicit unresolved state.
> Review the identity evidence and actual usage before expanding the file.

Do not describe consumer addresses as permanently current. A returned address
also does not prove delivery, account ownership, or permitted downstream use.
Keep the lookup and [audience upload](https://deepline.com/docs/ads-audiences.md) as separate approvals.

Ask your agent to explain unsupported or missing results before retrying them.


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