── SKILL
enrichment-analyst✓ APPROVED

Fill the gaps: email, phone, LinkedIn, title.

Give it a name and company, or a domain, and get contacts or firmographics back. Waterfalls across your tools.

Inside: The waterfall logic across your tools and the fields it fills.

01 / HOW TO USE

Install it in one line, or paste it in.

1
In Claude Code (one command)
Copy the install line, paste it into your terminal, and restart Claude Code. The skill installs itself to ~/.claude/skills/ and runs automatically when it is relevant.
2
In Claude, ChatGPT, or a Project (no terminal)
Open the file, then upload it to your chat or paste its contents in. A skill is just a markdown file of instructions, so any capable AI can follow it.
New to skills? A skill is a plain-text file that teaches your AI a workflow. Point any capable assistant at it and it follows the steps, on your data.
02 / MAKE IT YOURS

Connect your context. Set it to your motion.

CONNECT YOUR CONTEXT · AND WHY IT HELPS
a contact-enrichment tool

emails, phones, LinkedIn URLs, and titles, run as a waterfall.

a company-enrichment tool

headcount, funding, hiring signals, and technographic profile. Either source alone works at reduced coverage; both run the full waterfall.

SET IT TO YOUR MOTION

To swap a provider, point the contact or company role at a different tool. The method does not change. Only the connector behind the role changes.

Set thisWhat it isDefault / Example
Contact-enrichment toolResolves email, phone, LinkedIn, title from a name plus companyAny contact-waterfall provider
Company-enrichment toolReturns headcount, funding, hiring intent, tech profile from a domainAny company-data provider
Identity-validation toolCross-checks a returned LinkedIn URL against the input name plus companyOptional people-search tool
CRMSystem of record you read from and write enriched fields back toOptional
Waterfall orderThe sequence providers are tried in for the same fieldCheapest provider first
Confidence tagsThe labels attached to every returned valueverified_2_sourceverified_1_sourceinferrednot_found
Minimum confidenceThe lowest confidence you accept for a given useverified_1 for dialinginferred for research
Maximum spendA per-run cost cap that stops the waterfall when reachedSet a dollar ceiling per run
03 / THE FULL SKILL

Everything the skill does, in full.

── WHAT THIS DOES

This is your data-fill agent. Give it a name and a company, and it finds the email, phone, LinkedIn URL, and title. Give it a domain, and it returns headcount, funding, a technographic profile, and hiring intent. It works one contact at a time or across a whole list, tries the cheapest provider first, and tags every value it returns with how confident it is. It never invents a value it could not find.

── THE METHOD
  1. 1
    The core pattern is a cost-aware waterfall. For any field, try providers in order, cheapest first, and stop the moment you get a confident answer.
    1. Read the input. For each row you need a name plus a company (contact mode) or a domain (company mode). Note fields already present so they are not re-bought.
    2. Run the contact waterfall. For email, phone, LinkedIn, and title, try providers in order. Take the first confident hit. Tag each field with its confidence.
    3. Run the company pass. For a domain, return headcount, funding, hiring signals, and the technographic profile.
    4. Discover the buying committee. For a "who are the decision makers" request, return the senior roles per account, each with confidence-tagged identifiers.
    5. Validate every LinkedIn URL. Cross-check the name and company on the profile against the input. If they do not match, do not return the URL.
    6. Track spend. Log credits per provider. If the run hits the cap, stop and return partial results with a note.
    7. Return confidence-tagged rows plus an audit of providers used, the confidence breakdown, and total cost.
── QUALITY GATES
  • Confidence-tagged outputs. Every enriched field comes back with its source confidence, never a bare value.
  • Identity validation on LinkedIn URLs before they ship. This blocks returning the wrong person.
  • Cost-aware waterfall. The cheapest provider is tried first. Per-provider credit use is logged.
  • Honest "not found." If a value cannot be found, return null plus not_found rather than guessing.
── OUTPUT (EXAMPLE)
EXAMPLE OUTPUT
Enrichment Complete  ·  5 contacts processed

Name       | Email                     | Phone        | Title
-----------|---------------------------|--------------|-------------------
Contact A  | a@example.co (verified_2) | +1-555-0101  | VP Sales (verified)
Contact B  | b@example.co (verified_1) | not_found    | CRO (inferred)
Contact C  | c@example.co (verified_2) | +1-555-0102  | CFO (verified)
Contact E  | not_found                 | not_found    | not_found

Audit:
  Confidence breakdown: 8 verified_2, 4 verified_1, 1 inferred, 3 not_found
  Total cost: within run cap
  Skip Contact E: source the LinkedIn URL manually before reaching out.
── WHERE THE NUMBERS COME FROM

By default the waterfall tries providers cheapest-first and stops at the first confident hit, so the same field is never paid for twice. Confidence tags come from the providers: two independent sources is verified_2, one is verified_1, a pattern-derived guess is inferred, and a value no provider could confirm is not_found. Cost figures are the per-provider credit prices of the tools you connect. To change the economics, reorder the waterfall, swap in a cheaper provider, or lower the maximum spend.

── EXAMPLE CHAT
EXAMPLE CHAT
You
Enrich this list of 20 target contacts, I only have name and company.
CLAUDE
Ran the waterfall. Here is where it landed. Field Verified_2 Verified_1 Inferred Not_found Email 9 6 3 2 Phone 4 5 2 9 LinkedIn 14 4 0 2 Two LinkedIn URLs failed identity validation (wrong company on the profile), so I dropped them instead of returning a guess. Total spend stayed under half the run cap. One sharpener: connect a CRM so I can write these fields back instead of handing you a CSV to re-upload.
04 / GO FURTHER

Where an operator takes this next.

The manual run proves the waterfall works. Here is where it goes once you trust it.

The list stops being a spreadsheet and starts being a living record.

01
Enrich on intake, not in batches

Wire a scheduled Claude task to run the waterfall the moment a new lead lands in Salesforce or HubSpot, so reps never work a blank record.

02
Build the waterfall natively

Chain the same cheapest-first provider order inside Clay, so the enrichment runs where your list already lives.

03
Alert on the misses

Have a scheduled task post the not_found rows to Slack each morning so someone can source them by hand before they go stale.

05 / PART OF A BIGGER PLAY

One skill is the on-ramp.

── GET NEW SKILLS IN YOUR INBOX

One operator-built skill a week. Free.