---
name: ravn-build-prospect-list
description: Use when someone describes their ideal customer and wants a prospect list built from scratch, with people found by title and company and emails verified.
title: Build a Prospect List from Your ICP — Ravn
---
# Build a prospect list from an ICP

Turn a description of the ideal buyer ("VPs of Operations at 51-200 person logistics companies in Texas") into a list of named people with verified work emails, using `search_people` for the profiles and Ravn's own checks for the emails.

## When to use

- The user has no list yet and wants one built from criteria.
- "Find me 50 heads of marketing at Series A SaaS companies in Canada."
- If the user already has target companies, use find-decision-makers instead.

## Before you start

1. Check the connection: call `get_account` with `{}` or run `npx ravn whoami`. Note lookups left this window.
2. `search_people` needs your own provider key connected — run `ravn keys add pdl` first; these tools run on your own provider account. If it returns 403 `provider_key_required`, stop and tell the human to add their key. `search_business_email_by_name` and email verification are ours and need no key. Every call is one lookup; misses are free.
3. Agree on a target size with the user.

## Steps

1. Turn the ICP into filters. Lists mean OR within a field and AND across fields.
   - `title`: the job titles, with common variants.
   - `seniority`: Intern, Entry, Senior, Manager, Director, VP, Head, C Suite, Owner, Partner.
   - `industry`, `country`, `state`, `city`, `department`.
   - `employee_range`: 1-10, 11-50, 51-200, 201-500, 501-1000, 1001-5000, 5001+.
   - Exclusions: `exclude_company_domain` (existing customers), `exclude_industry`, `exclude_seniority`.
2. Run a small test page first to check the filters return the right people.

```json
{
  "title": ["VP Operations", "Head of Operations", "Director of Operations"],
  "industry": "logistics",
  "state": "Texas",
  "employee_range": ["51-200"],
  "exclude_company_domain": ["currentcustomer.com"],
  "limit": 5
}
```

3. Show the user the five results and `total`. If they are off target, adjust the filters before spending more. If `status` is `not_found`, loosen one filter at a time.
4. Page through with `limit` up to 25 and the `cursor` set to the previous `next_cursor`, until you reach the target size or `next_cursor` is empty.
5. Each profile may include `business_email` and `business_email_risk_score`. For people without an email, call `search_business_email_by_name` with their name and `company.domain`:

```json
{ "first_name": "Maria", "last_name": "Lopez", "company": "lonestarfreight.com" }
```

6. Verify every email you plan to use with one `validate_emails` call (up to 1,000 addresses):

```json
{ "emails": ["maria.lopez@lonestarfreight.com", "j.chen@haulpoint.com"] }
```

7. Keep `valid`. Mark `risky` and `unknown` for review and leave them out of the send list.
8. Save the list as a CSV.

## Output

A CSV with one row per person:

- `full_name`, `title`, `seniority`, `company_name`, `company_domain`, `company_size`, `city`, `state`, `country`, `linkedin_url`
- `email`, `email_source` (`search_people` or `search_business_email_by_name`)
- `rw_verdict` (`valid`, `invalid`, `risky`, `unknown`) and `rw_risk_score`
- `rw_status` (`ok` or `not_found`) for the email step

Also report: filters used, `total` matches available, people pulled, verified emails, and lookups used.

## Rules

- People who opted out are removed from the data already. Also remove anyone the user knows has asked not to be contacted. See [/privacy#optout](https://askravn.com/privacy#optout).
- Drop invalid and risky emails before the list is used for outreach.
- No FCRA uses: never build lists to screen people for credit, employment, insurance or housing.
- This is for building a working prospect list, not bulk exporting the database. Pull what the campaign needs.
- On a 429 `fair_use_exhausted` or a 403 `provider_key_required`, stop and tell the human.

## Example prompt

> Build me a list of 40 operations leaders (director and up) at 51-200 person logistics companies in Texas, skip our current customers in customers.txt, with verified emails.
