Agent skill
contact-enrichment
Enrich contacts with LinkedIn URLs, verified work/personal emails, and phone numbers through the ColdIQ marketplace, layering providers cheapest-first.
Filed under Prospecting and list building.
From Cold-IQ/coldiq-marketplace-skills · 17 skill entries · 1 · pushed 2026-09-22
What it does when it runs
Enrich contacts with LinkedIn URLs, verified work/personal emails, and phone numbers through the ColdIQ marketplace, layering providers cheapest-first. Use when finding emails for a list, building an email waterfall, verifying deliverability, finding phone numbers, resolving company LinkedIn URLs from domains, or enriching contacts before a campaign. Triggers on "enrich contacts", "find emails", "email waterfall", "verify emails", "bounce check", "find phone numbers", "company LinkedIn URL", "enrich before campaign", "deliverability". Do NOT use for prospecting/search to BUILD a list (see coldiq-search-enrich / apollo-search) or list dedup (see list-dedup).
Automated analysis of the skill and the 2 files bundled beside it. A skill’s own description is written to be selected by an agent, so it describes the job and not the dependencies.
- Keys and connectors you must supply
- None found.
- Hosts it reaches
- No third-party host appears in the skill or its bundled files.
- Tool permissions it declares
- No
allowed-toolsin the frontmatter. It does act, so it runs under whatever permissions your session already grants. - Actions present in the files
- network
Install it
View source on GitHub ↗git clone --depth 1 --filter=blob:none --sparse https://github.com/Cold-IQ/coldiq-marketplace-skills.git /tmp/coldiq-marketplace-skills git -C /tmp/coldiq-marketplace-skills sparse-checkout set "skills/contact-enrichment" mkdir -p ~/.claude/skills/contact-enrichment cp -R "/tmp/coldiq-marketplace-skills/skills/contact-enrichment/." ~/.claude/skills/contact-enrichment/
Picked up without a restart. A project skill of the same name is shadowed by your personal one. For one repository only, swap ~/.claude/skills for .claude/skills. Claude Code docs ↗
Or take the whole library
This repo ships a .claude-plugin manifest, so Claude Code can install all 17 skills at once. Plugin skills are invoked as /<plugin>:<skill>, so they never collide with your own.
/plugin marketplace add Cold-IQ/coldiq-marketplace-skills /plugin
The folder is the same in every client that implements the format — 46 of them — so if yours is not above, only the destination changes.
The skill
Source on GitHub ↗Reproduced in full from Cold-IQ/coldiq-marketplace-skills/blob/495c1b4256db8c6683ac1ff59a093899228eca73/skills/contact-enrichment/SKILL.md, which is licensed MIT (repository). 587 words, 8 headings.
Contact Enrichment
Find LinkedIn URLs, work/personal emails, and phones for a list of contacts — layering ColdIQ endpoints cheapest-first and skipping anyone already enriched. The classic multi-provider email waterfall (Prospeo → Findymail → FullEnrich, then verify) runs entirely through ColdIQ marketplace endpoints, so you get one key and unified credits instead of juggling provider accounts.
ColdIQ Marketplace Endpoints
| Task | Method | Path | Credits | Endpoint ID | Notes |
|---|---|---|---|---|---|
| Company LinkedIn URL from domain | POST | /v1/limadata/find/company-linkedin | 1 | limadata.find.company_linkedin | Replaces Linkup /enrich/linkedin |
| Work email (name + domain) | POST | /v1/limadata/find/work-email | 1 | limadata.find.work_email | Free if not found |
| Work email (LinkedIn URL) | POST | /v1/limadata/find/work-email-linkedin | 3 | limadata.find.work_email_linkedin | Fallback |
| Personal email | POST | /v1/limadata/find/personal-email | 5 | limadata.find.personal_email | Last resort |
| Phone number | POST | /v1/limadata/find/phone | 10 | limadata.find.phone | Free if not found |
| Verify email (bounce check) | POST | /v1/findymail/verify | 1 | findymail.verify | Replaces Debounce |
| Email via Prospeo (waterfall step) | POST | /v1/prospeo/enrich-person | unknown | prospeo.enrich_person | First in waterfall |
| Email via Findymail (LinkedIn) | POST | /v1/findymail/search/business-profile | 1 | findymail.search.business_profile | Waterfall step |
| Email via FullEnrich (bulk) | POST | /v1/fullenrich/contact/enrich/bulk | per result | fullenrich.contact.enrich_bulk | Nuclear option, async |
| Enrich person (profile) | POST | /v1/limadata/enrich/person | 1–5 | limadata.enrich.person | Full profile |
Layer 1 — Company LinkedIn URLs
Given company domains, resolve their LinkedIn company pages first (downstream steps need them).
→ POST /v1/limadata/find/company-linkedin · 1 cr · limadata.find.company_linkedin
Layer 2 — Email Waterfall (cheapest-first, stop on hit)
- Try name + company domain.
→ POST
/v1/limadata/find/work-email· 1 cr ·limadata.find.work_email - If empty / domain missing, fall back to the LinkedIn URL.
→ POST
/v1/limadata/find/work-email-linkedin· 3 cr ·limadata.find.work_email_linkedin - Second-opinion provider on the same LinkedIn URL.
→ POST
/v1/findymail/search/business-profile· 1 cr ·findymail.search.business_profile - Provider-level enrichment as a fallback.
→ POST
/v1/prospeo/enrich-person· ? cr ·prospeo.enrich_person(unverified) - Nuclear option for whatever's still missing (bulk, async — see
resources/async-job-pattern.md).
→ POST
/v1/fullenrich/contact/enrich/bulk· per result ·fullenrich.contact.enrich_bulk - Personal email only if a work email is truly unreachable.
→ POST
/v1/limadata/find/personal-email· 5 cr ·limadata.find.personal_email
Typical cumulative hit rate: 85–95% depending on contact quality.
Layer 3 — Verify before sending
Unverified emails destroy sender reputation. Verify every found address.
→ POST /v1/findymail/verify · 1 cr · findymail.verify
| Status | Action |
|---|---|
| Valid / Deliverable | Safe to send |
| Risky / Accept-all | Send with caution (catch-all domain) |
| Invalid / Undeliverable | Do NOT send |
| Unknown | Retry with another provider |
Phone numbers
→ POST /v1/limadata/find/phone · 10 cr · limadata.find.phone (free if not found; LinkedIn URL or name+company)
Cost optimization
See resources/credit-optimization.md. Key rules: dedup first (list-dedup), cheapest input first, stop on first hit, test on 50–100 rows before the full list, export only valid/risky emails to the campaign.
Checklist
- Dedup contacts before any enrichment
- Resolve company LinkedIn URLs (Layer 1)
- Run the email waterfall cheapest-first, stop on hit (Layer 2)
- Verify all found emails (Layer 3)
- Test on 50–100 rows first; if hit rate <50%, check data quality
- Export only verified/risky emails to the campaign (never invalid)
Files bundled with it
These load only when the skill asks for them, so they cost nothing until it runs.
Other skills for the same job
Different authors, same problem. Matched on the words in the skill name, across every library in the catalogue except this one.
- fivos-contact-enrichment by fivosaresti · 1
- lead-enrichment by janskuba · 203
- data-enrichment-integration by louisblythe · 170
- account-contact-shortlist by explorium-ai · 156
- enrich-contact by explorium-ai · 156
- workflows-audience-enrichment by clay-run · 129
- enrichment-design by extruct-ai · 109
- list-enrichment by extruct-ai · 109
Need help setting it up?
This page tells you what contact-enrichment does and what it needs. Cheetah builds the agent setup it runs inside: data, CRM, sequencing and the guardrails.
Book a call →The directory stays free. There is nothing gated behind this.