In this article
- Why listen to us?
- What is AI data enrichment?
- How does AI data enrichment work?
- Which fields can AI fill, and which can't it?
- What are the 5 ways to run AI data enrichment?
- How do you score a target list with Claude and FullEnrich?
- How do you keep CRM contacts fresh without paying for misses?
- Where does FullEnrich plug in?
- Why does AI enrichment fail?
- Five habits of teams running AI enrichment at volume
- How do you get AI enrichment your reps can trust with FullEnrich?
- Frequently Asked Questions
A model sounds the same when it's wrong. Ask one for a prospect's work email and it returns first.last@company.com. Right domain, right pattern, right shape. It bounces.
That's the problem I keep coming back to with AI data enrichment, often shortened to AI enrichment. It covers two jobs: inference (deciding a company's industry or a lead's ICP fit) and sourcing (finding a work email or mobile that reaches the person).
Teams now run LLM columns across thousands of rows in Clay, HubSpot, or a Claude build. The demo looks fine. The failures show up later: in matching, in silent model changes, and in cost.
Key Takeaways
- AI data enrichment uses language models to fill or classify missing fields on company and contact records: inferring industry, persona, or ICP fit, and routing contact lookups.
- Models can't produce a reachable work email or mobile. Those must exist in a provider's data and pass verification. Asked anyway, a model returns a plausible pattern that bounces.
- Matching breaks often: in one large people search, 39% of matches pointed to the wrong person.
- Accuracy moves with every model or prompt change. In one agency's test, an employment check lifted list accuracy from about 80% to about 98%, and a cheaper model on the same control prompt missed every bad record.
- Cost per row is hard to predict. Web research swings with how much a company has online, and CRM AI fields can cost $0.10 per value with no accuracy gain over a cheap model.
- There are five ways to run it: prompt ChatGPT or Claude, add multi-provider sourcing with verification, like FullEnrich (which also runs inside Claude and ChatGPT through its MCP), use your CRM's AI, build agents in Clay, or license one large database. Pair AI for judgment with a verified source for contacts.
- Teams running this at volume match before they research, let the model say "unclear", label every AI value, prove it on a known list, and hand contact data to verified lookups.
Why listen to us?
I'm Grégoire Démogé, co-founder and CPO at FullEnrich, a B2B contact data platform that finds and verifies work emails, personal emails, and mobile numbers by asking multiple data providers in turn. That puts us on the sourcing side of AI enrichment.
We reject over 30% of the data our providers return because it fails our checks. Coverage tells you how often you get an answer. Validity tells you whether it's worth acting on.
What is AI data enrichment?
AI data enrichment is the use of language models and machine learning to add, classify, or update fields on B2B customer and prospect records. A model reads what you already know about a person or company, plus public sources like their website, and returns a value: an industry, a seniority level, a fit score, or a short company summary.
Traditional data enrichment matches your record against a stored database and appends what it finds. AI enrichment adds inference over live pages, can create fields nobody stores (like "sells to hospitals"), and runs on plain-language prompts. It also fails differently. A database returns stale data or nothing. A model returns something, unless you allow "Not found". Emails and mobile numbers still come from providers.
Oracle (database metadata), iManage (documents), and PIM vendors like Akeneo and inriver (product catalogs) use the term too; this guide covers B2B records.
How does AI data enrichment work?
AI data enrichment runs in four stages: match the record to a real person or company, infer descriptive fields, source contact fields across providers, and verify them before they reach your CRM. Models earn their keep in inference.
How does it match a record to the right person or company?
Matching checks identifiers like a domain, a LinkedIn URL, or a company ID against candidate profiles. Pick the wrong person, and every later field describes someone else.
That happens a lot. A people search across 84,083 records returned the wrong person 39% of the time, and a Claude Haiku check at about $0.0005 a record caught them. Narrow the candidates with plain rules first, then let the model judge the pairs.
How does an LLM infer new fields?
An LLM reads the record and the pages it can reach, then writes a value. Quality depends on whether it may answer "Not found" and whether it must show its source.
Cheap models are where quality slips. Splitting research and judgment across two models cut one build's cost per company from $0.10 to about $0.02. The catch: the cheap model started reading Google snippets and calling it done, so the prompt had to make it visit the pages. Compare cost per usable result.
How does it find contact data across providers?
Contact data comes from providers, and no single provider covers every market. Waterfall enrichment asks the next provider when one misses or fails checks. At FullEnrich, a lookup can run through 5, 10, or 15 sources and stops when a result passes every check, or when we're confident there isn't one.
How is contact data verified before it reaches the CRM?
Every email gets a status before FullEnrich returns it. DELIVERABLE carries a 2% bounce rate. HIGH_PROBABILITY covers catch-alls our checks consider likely valid, at 9%. CATCH_ALL bounces more, and INVALID is very likely to bounce.
Catch-alls need their own rule. One agency sending about 3 million emails a month sends to a catch-all only when two providers agree, keeping bounces under 2%. Mobile checks confirm the line is in service and mobile, plus an owner-name match in the US and Canada.
Which fields can AI fill, and which can't it?
AI can infer descriptive fields like industry, persona, and ICP fit. It can't reason its way to a reachable work email or mobile number: those have to exist in a provider's data and pass verification.
Field | Usually comes from | How to check it | What goes wrong |
|---|---|---|---|
Industry | An LLM reading the company website | Open the source URL | Vague or wrong category |
Company summary | An LLM summarizing public pages | Read it against the page | Claims the page never made |
Persona and seniority | The current title, parsed by a model or provider | Compare with the live title | Old role or inflated seniority |
ICP fit score | A model applying your rules | Hand-score a sample | Loose rules, drifting scores |
Tech stack | Provider data or web research | Open the source URL | Tools the company dropped |
Work email | Data providers, then verification | Email status per address | A guessed pattern that bounces |
Mobile number | Data providers, then line checks | Line type, service status, owner match | Landline, dead line, or wrong person |
Personal email | Data providers, then verification | Verification status | Wrong person behind the address |
The bottom three rows are where teams get hurt. OpenAI's research team argues that "language models hallucinate because standard training and evaluation procedures reward guessing over acknowledging uncertainty." An email the model never read on a page is a guess, and in your CRM it looks like a real result. "Use AI for discovery, not for clean data": let the model find a company's registration number, then let an API supply the fields.
What are the 5 ways to run AI data enrichment?
There are five common ways to run AI data enrichment, and many teams combine two: a model for judgment and a verified source for contacts. More tools in our roundup of AI solutions for GTM enrichment.
1. What do you get from prompting ChatGPT or Claude directly?
A chat model gives fast answers on descriptive fields with no setup, but nothing behind it supplies contact data.
- What you get: Paste rows and rules, and it tags industries, summarizes companies, or sorts titles into personas in seconds.
- Setup: Write the rules once, with a "Not found" option and a source page for each answer.
- What operators found: One operator who moved to a Claude Code script ran a 10-column enrichment on 5,000 rows for about $12 in API calls, against $200+ in Clay credits. Each new workflow took 2 to 3 hours to set up instead of 30 minutes.
- Limit: No provider sits behind the chat, so an unpublished email comes back as the most likely string.
2. What does multi-provider sourcing with verification add?
Multi-provider sourcing asks several data providers in turn and verifies each result before you see it. FullEnrich runs it across 25+ sources (pricing).
- What you get: Verified work emails, personal emails, and mobiles at 1, 3, and 10 credits each. Misses aren't billed.
- Setup: Connect the FullEnrich MCP server in Claude, ChatGPT, or Manus, or call it from the CLI or API.
- How it fits: The model picks who to reach; FullEnrich finds the email or mobile that reaches them, also inside Clay tables on FullEnrich credits.
- Limit: It returns data such as title and headcount, so persona and ICP fit stay with your model. Most enrichments take 30 to 90 seconds per contact because of the checks.
3. What do the AI features inside your CRM fill?
CRM AI fills fields on records you already hold. HubSpot's and Dynamics 365's features don't look up new contact emails or mobiles.
- What you get: HubSpot's data enrichment fills job title, seniority, location, and LinkedIn URL, with no email or phone. More in our guide to HubSpot enrichment.
- Setup: Switch it on in the CRM you already pay for. Close fills fields from a web search and bills 6 credits per field populated per record.
- What operators found: In one portal test on 50 contacts, judged by a model, smart properties and two cheaper models scored 97%, 97%, and 96%, but HubSpot charged $0.10 per value. In one client audit, HubSpot gave 10 Nestlé subsidiaries the same HQ phone and LinkedIn URL; the same auditor says single-entity companies come through clean.
- Limit: These tools work with your records and inbox. Dynamics 365 enriches a phone or email only for people who emailed you or organized a meeting.
4. What do you get from AI research agents in Clay?
Claygent fills any field you can describe by running a web research agent across every row of a Clay table.
- What you get: Agents that navigate websites, extract information, and make decisions. If a page says it, Claygent can usually find it.
- Setup: Build the table and write a prompt per column. Clay's Claygent guide tells you to allow "Not found" and attach a source URL.
- What operators found: An outreach agency spent $4K of AI usage re-categorizing 100,000 to 150,000 contacts for zero return. Outside Clay, a Firecrawl-based research agent used 100 to 200 credits on a well-documented company and 400 to 1,500+ on a sparse one.
- Limit: You build it, maintain it, and pay per prompt unless you bring your own API key. Our Clay pricing breakdown shows how that adds up.
5. What does a single large database cover?
A large database gives you one vendor's maintained pool of contact and company records, with no prompts to write.
- What you get: ZoomInfo describes 500M+ verified professional profiles and 122M+ company records. Our ZoomInfo pricing breakdown shows what that contract costs.
- Setup: License the dataset and pull records into your CRM. One contract, one source.
- What operators found: One Salesforce org's database industry codes were "wildly off": an automotive manufacturer also carried a Metals tag. Asking an LLM to choose only among the codes in your segment tends to work better.
- Limit: Your coverage is that one dataset's coverage. Use the database for identity, and pair it with a verifier or a second source for contacts.
How do you score a target list with Claude and FullEnrich?
You score a target list by giving Claude your accounts and ICP, letting the Score Accounts skill template pull firmographics through free FullEnrich searches, and reading a ranked list where every point shows its input.
The skill needs one connector and nothing else.
- Connect the FullEnrich MCP. In Claude, open Connectors, then Add connector, paste
https://mcp.fullenrich.com/mcp, and authorize in the browser. - Install the skill. Download the .zip from its template page, then in Claude open Customize, Create new skill, Upload a skill.
- Share accounts and your ICP. Paste domains or upload a CSV, and add 3 to 5 of your best customers so it learns Fit.
- Agree on the weights. Defaults: Fit 60 (industry, headcount, HQ geo, a target technology) and Timing 40 (a new buyer-team leader in 90 days, hiring growth, buyer-team size).
- Let it pull the data. About 4 free searches per account, and no credits spent.
- Read the ranked list. Each account gets a score, a tier (A at 75+, B at 50 to 74, C under 50), and its top reason.
What did a fit-first pass on eight accounts show?
We scored Qonto, Pipedrive, Swile, Pennylane, PayFit, Spendesk, lemlist, and Aircall against software companies with 200 to 1,500 employees in the US or France, running HubSpot, with fit weights of industry 30, headcount 30, HQ 20, and tech 20. Pipedrive, PayFit, Spendesk, and Aircall landed in A at 100. Pennylane, Swile, and lemlist landed in B at 70, and Qonto in C at 40.
The inputs exposed two problems before any credit was spent. The aircall.io search returned "Aircalls" with 0 employees, while Aircall's LinkedIn page returned the right company with 867. And four accounts had a headcount that contradicted the range on their own record.
Credits come in only at the next step, when the skill offers to enrich the buyer at your A-tier accounts and asks you to confirm the cost.
How do you keep CRM contacts fresh without paying for misses?
FullEnrich's CRM Refresh skill checks every CRM contact on free search first, so you pay only for the new emails you approve. People move: the Bureau of Labor Statistics puts median tenure with a current employer at 4.1 years (January 2026, U.S. wage and salary workers).
Paste a CRM export and Claude checks each contact against FullEnrich's people search. The CRM Refresh template page walks through setup.
What does the CRM Refresh skill return?
Each contact gets one of four statuses: still there, moved (with the new company), replaced (with the person now in the seat), or not found. On a six-row HubSpot export, it caught four things a plain export wouldn't.
Two movers, one replacement, one duplicate merged, and nothing spent yet.
- A duplicate: two Brian Niccol rows for Chipotle were merged into one contact.
- A replacement: Niccol moved to Starbucks in September 2024, and the skill named Scott Boatwright as Chipotle's CEO since November 2024.
- A weak match: for OpenAI's CTO seat, it rejected a Field CTO as Mira Murati's replacement.
- A "Not found": no profile matched my name as written, so it said a LinkedIn URL would settle it instead of guessing.
What happens before credits are spent?
Claude stops, lists the paid lookups, and waits for your yes. Here, that was new work emails for the two movers and Chipotle's new CEO, about 3 credits.
The enrichment step is priced and parked until you approve it.
The CSV it hands back keeps your columns and adds refresh_status and refresh_evidence. Original data is never overwritten.
Where does FullEnrich plug in?
FullEnrich runs through its MCP, its enrichment API, its CLI, HubSpot, Clay, Zapier, Make, and n8n. Through the MCP, a search preview of the first 10 results is free, and exports cost 0.25 credits per contact or company.
Entry point | Best for | What it does |
|---|---|---|
MCP in Claude, ChatGPT, or Manus | Ad hoc lists and agent workflows | Search, confirm, then enrich from a chat |
API | Product and data teams | Enrichment, search, and reverse email lookup |
CLI | Coding agents and personal agents | Available: search, enrich, and export verified contacts |
HubSpot | CRM-native teams | Enrich contacts and push results back |
Clay | Teams building in Clay tables | Runs on your FullEnrich credits |
Zapier, Make, n8n | No-code automations | Adds enrichment as a workflow step |
Why does AI enrichment fail?
AI enrichment fails when a model may fill every field, nobody can see where a value came from, and an upstream change breaks a column unnoticed. Beyond wrong matches, five failures show up most:
- Fabricated values: without a "Not found" option, the model fills the field anyway.
- Model swaps: an employment check missed 100% of bad records once a cheaper model ran its control prompt.
- Stale data: a model reading an old profile writes an outdated value in fresh formatting. Re-check dates before you trust it.
- Writes in the wrong place: an AI agent with write access can land last year's revenue in the wrong deal fields. Route writes through a reviewed script.
- Silent drop-offs: when a verifier runs out of credits, leads quietly fall out of campaigns. Chain a second verifier.
Compliance adds a separate risk:
- California: under the CCPA, personal information can include inferences drawn from other personal information that could create a profile of someone's preferences and characteristics.
- UK: the ICO says inferred special category details may count as special category data, depending on whether you intentionally draw the inference.
- EU: under Article 6(3) of the EU AI Act, an Annex III system that profiles natural persons is always high-risk. That applies only to Annex III uses, not to every AI feature in a CRM.
This isn't legal advice.
Five habits of teams running AI enrichment at volume
Teams that run AI enrichment at volume let the model judge and make contact data prove itself, and five habits keep both sides honest.
Five rules to write down before the first run.
1. Match before you research
- Check the domain, LinkedIn URL, or company ID before any spend, because research on the wrong record costs the run and the rep's time.
- Drop free-mail rows before any paid step. On one 28,316-record list, that removed 17,160 rows.
- Run a cheap agent first and a deep one only on its misses, with stop conditions and strict output.
2. Let the model say "unclear"
- Give it a code word to return when it isn't sure, since "say nothing if you're unsure" fails.
- Add an example of a correct answer so it doesn't swing to refusing everything.
- Return null when nothing's found, attach a source URL to each field, and flag anything inferred.
3. Label every AI value
- Prefix every AI-written field with [Auto], and never overwrite data a human entered.
- Keep a last-enriched date and a source on every field.
- Let AI explain and let code score, since a model can rationalize a weak lead convincingly.
4. Prove it on a known list, then re-test
- Set an accuracy bar before you scale. An industry-fit classifier tested on 1,000 accounts shipped only at 96% against a 95% bar. The checker was a model, so set your own bar.
- Re-run a control prompt whenever the model or the prompt wording changes, since either can move answers a lot.
5. Hand contact data to verified lookups
- Stop the model at the contact fields and pass them to a verified lookup.
- Test that lookup on emails you already know, like leads who replied to you.
How do you get AI enrichment your reps can trust with FullEnrich?
Let AI find and judge, and make contact data prove itself. Your model scores accounts, tags personas, and writes summaries, citing its source and saying "Not found" when it has nothing. FullEnrich supplies the work emails, personal emails, and mobile numbers, with a status on every email and credits spent only on data that's found and verified.
Score a cold list or refresh a CRM export from Claude, since both checks run on free search. Approve enrichment only for the rows that earn it, and start with 50 free credits.
Frequently Asked Questions
Is AI enrichment accurate?
On judgment fields like industry or fit, it can be, if you test it. HubSpot's smart properties and two cheaper models scored 96% to 97% on three classification questions across 50 contacts, judged by another model. It fails on matching, where one people search returned the wrong person 39% of the time, and on model swaps.
Can ChatGPT find someone's email address or phone number?
Only if the address or number appears on a page it can read, and even then it needs a deliverability or line check. Asked for one that isn't published, a chatbot returns the most likely string, like first.last@company.com. For contact fields, use a provider that verifies emails and phone numbers.
Which way of running AI enrichment should I pick?
Pick the way that matches how your team works. A founder working one list can prompt Claude or ChatGPT and add FullEnrich through the MCP for emails and mobiles. HubSpot, Close, or Dynamics 365 teams can start with the CRM's AI and watch cost per value. Builders get the most from Clay.
Is AI enrichment GDPR compliant?
AI enrichment can be GDPR compliant, but inferring new facts about people adds obligations. Under UK GDPR, the ICO says inferred special category details may count as special category data. In California, the CCPA treats profile-building inferences as personal information. Avoid inferring sensitive traits, document why you hold each inferred field, and respect opt-outs.
What's the difference between AI enrichment and waterfall enrichment?
AI enrichment infers or classifies fields, usually descriptive ones like industry, persona, or ICP fit. Waterfall enrichment sources contact data by asking several providers in sequence until one returns a result that passes verification. They often run side by side: AI for context, the waterfall for the email or mobile you'll use.