Turns a raw or partial prospect list into a send-safe dataset by filling missing fields (work email, direct or mobile phone, title, firmographics, technographics) through a per-field provider waterfall, verifying every email, and stamping freshness. Use when someone says "enrich this list", "find the email for these people", "verify these emails before we send", "what do I do with catch-all domains", "this list is a year old, is it still good", "dedupe and clean this CSV", or "why is my bounce rate spiking". Do NOT use for selecting WHO to target and building the list itself - use prospect-list-builder. Do NOT use for tool-specific credit mechanics and filter syntax - use apollo-prospecting. Pair with cold-email-deliverability for the inbox-protection side of verification.
---
name: Lead Enrichment
description: Turns a raw or partial prospect list into a send-safe dataset by filling missing fields (work email, direct or mobile phone, title, firmographics, technographics) through a per-field provider waterfall, verifying every email, and stamping freshness. Use when someone says "enrich this list", "find the email for these people", "verify these emails before we send", "what do I do with catch-all domains", "this list is a year old, is it still good", "dedupe and clean this CSV", or "why is my bounce rate spiking". Do NOT use for selecting WHO to target and building the list itself - use prospect-list-builder. Do NOT use for tool-specific credit mechanics and filter syntax - use apollo-prospecting. Pair with cold-email-deliverability for the inbox-protection side of verification.
---
# Lead Enrichment
Enrichment is two jobs that people collapse into one and regret it: **filling** missing fields (a logistics problem - which provider has this contact, at what cost) and **verifying** the ones that touch deliverability (a risk problem - which addresses will bounce or hit a spam trap and torch the sending domain). A list is not "enriched" because the email column is full; it is enriched when every address intended for sending has been independently verified and stamped with a state, and every record carries a freshness date. The costly mistake this skill prevents: treating provider-supplied emails as send-ready. Vendors return pattern-generated guesses (first.last@domain) that were never SMTP-checked - send to those blind and expect a 12-20% bounce rate, which is how domains get throttled or blocklisted.
## Operating procedure
Follow in order: field definition gates the waterfall, the waterfall gates verification, and verification gates everything downstream. Skipping ahead means paying for fields you will not use or sending to addresses you never checked.
### Step 1: gather inputs
Collect before running anything. Label any guessed value as a guess.
- The list: row count, columns present, and source (CRM export, purchase, scrape, conference badge scan). Source predicts quality.
- The downstream play: email sequence, calls, LinkedIn, or multi-channel. This decides which fields are required.
- Domain reputation posture: warming a new domain (default: strict thresholds) or established and warmed (looser).
- Providers available and their per-credit cost for each field type.
- Cost ceiling: max credits, estimated cost per verified record, and a stop-if-over figure.
### Step 2: define the required field set