How to Automate Lead Enrichment with Claude
How to replace manual lead enrichment with Claude, covering both Claude Desktop (non-technical) and Claude Code (technical) paths, with real API calls, reusable skills, and CRM write-back patterns.
Published
May 3, 2026
Written by
Abhilash Chowdhary
Reviewed by
Chris Pisarski
Read time
7
minutes

How to Automate Lead Enrichment with Claude
Most enrichment workflows run across five or six tools that never talk to each other. You pull a company list from Apollo, look up funding data in Crunchbase, find contacts in Sales Navigator, verify emails in a separate tool, stage everything in a spreadsheet or Clay, and then format it for CRM import. Each tool holds a piece of the picture, and none of them share context. One GTM lead described the result: "We have Apollo for contacts, Crunchbase for funding, LinkedIn for org charts, and a spreadsheet stitching it all together."
Claude collapses most of that loop into a conversation. You describe what you need in plain language, Claude calls a data API, and returns structured output you can export to your CRM. There are two paths: Claude Desktop if your tools have MCP connectors, or Claude Code if you need to reach tools via their REST APIs directly. This guide covers both, with real API calls and working examples you can copy.
What a Claude enrichment workflow replaces
The manual enrichment loop has five steps, and there's a trade off of either time or accuracy.
Step 1: Build the account list. You filter companies in Sales Navigator or Apollo by size, industry, and geography, then export the list. The filters are rigid. If your ICP is "Series B+ fintech companies with 200 to 1,000 employees headquartered in the US," you are building that query from scratch every time.
Step 2: Enrich company records. You look up each company in a second tool to fill in funding data, headcount, tech stack, and growth metrics. If your primary provider does not cover a company, you check a second provider. If the second provider disagrees with the first on employee count, you pick one and move on.
B2B contact data decays at over 30% per year, meaning nearly a third of the records you enriched last quarter are already out of date.
Step 3: Find the right people. You search for VP of Sales, Head of RevOps, or whatever title maps to your buyer committee. Sales Navigator gives you the name. It does not give you verified email, current employer tenure, or prior company history without opening each profile individually.
Step 4: Verify contact data. You run emails through a verification tool, discard the bounces, and manually check the ones that look suspicious. Bounce rates from Apollo alone can run as high as 35% depending on ICP and region.
Step 5: Load into CRM. You format the spreadsheet to match your CRM field structure, import via CSV, and hope nothing breaks the mapping. If you use Clay as an intermediate layer, the data lives in Clay's tables, not your warehouse, and your workflow is locked to their tables.
Claude replaces steps 1 through 4 with a prompt. You tell Claude what you need, Claude queries a live data enrichment API, and returns a structured table with the fields you asked for. If your CRM has an MCP, Claude can directly enrich the fields in your CRM.
Two ways to run enrichment in Claude: Desktop vs Claude Code
Before you enrich anything, you need to decide which Claude interface to use. Both support MCP (Model Context Protocol) connections, skills for saving reusable workflows, and multi-step task chaining. The core difference is how Claude connects to your tools.
Claude Desktop or claude.ai: You connect data providers and CRMs through MCP servers, save enrichment workflows as skills, and run everything from a conversational interface. If your data provider and your CRM both have MCP connectors, you can build the full enrichment pipeline without writing code. Claude handles the API calls, returns structured output, and can chain multiple steps together. For the full list of available MCP servers for sales workflows, see our guide to the best MCP servers for sales teams.
The constraint is that Claude Desktop can only reach tools that publish MCP servers. If your data provider, CRM, or outreach tool does not have one, Desktop cannot connect to it.
Claude Code: Claude Code runs in your terminal and connects to tools the same way Desktop does, through MCP, but it can also call any REST API directly by writing and executing code. You load a provider's API documentation into a project, and Claude builds the API calls, runs them, and processes the response. That means Claude Code can connect to tools that have no MCP server at all, whether that is a niche data provider, an internal enrichment service, or a CRM with only a REST API.
Claude Code also writes output to files on disk (CSV, JSON), runs custom processing logic between steps (scoring, deduplication, format transforms), and stores workflows in version-controlled project files that your team can review and share through git.
A GTM infrastructure company we spoke with described how even their non-technical team members had adopted Claude Code for roughly 80% of their daily work, running enrichment by typing prompts like "pull 10 contacts for this account."
Dimension | Claude Desktop / claude.ai | Claude Code |
|---|---|---|
Tool access | MCP servers only | MCP servers + any REST API |
Setup time | Minutes (add MCP server config) | 30 min to 1 hour (load API docs, configure project) |
Technical skill | None needed | Comfortable reading API responses |
Custom logic between steps | Limited to MCP tool capabilities | Full code execution (scoring, transforms, dedup) |
Output format | In-chat tables, file downloads | CSV, JSON, structured files on disk |
Workflow sharing | Skills (local files) | Skills in git (version-controlled, reviewable) |
Best for | Teams whose tools all have MCP connectors | Teams that need to connect tools without MCP servers |
Pick Claude Desktop if your data provider and CRM both have MCP servers. Pick Claude Code if any tool in your workflow does not, or if you need custom processing logic between enrichment and CRM loading.
How to enrich a lead list from a natural-language prompt
This is the core how-to. Whether you are on Claude Desktop or Claude Code, the process starts the same way: you describe what you need, and Claude handles the API call.
Company enrichment
What to say to Claude (Desktop or Claude Code):
"Find all Series B or later fintech companies headquartered in the US with 200 to 1,000 employees. Return company name, domain, headcount, 6-month headcount growth, total funding, and last funding date. Format as a table."
Behind the scenes, Claude translates this into a Company Search API call:
curl -X POST 'https://api.crustdata.com/screener/companydb/search' \ -H 'Authorization: Token $CRUSTDATA_API_KEY' \ -H 'Content-Type: application/json' \ -d '{ "filters": { "op": "and", "conditions": [ {"filter_type": "hq_country", "type": "=", "value": "USA"}, {"filter_type": "last_funding_round_type", "type": "in", "value": ["series_b", "series_c", "series_d", "series_e"]}, {"filter_type": "linkedin_industries", "type": "(.)", "value": "fintech"}, {"filter_type": "employee_metrics.latest_count", "type": ">", "value": 200}, {"filter_type": "employee_metrics.latest_count", "type": "<", "value": 1000} ] }, "limit": 100 }'
curl -X POST 'https://api.crustdata.com/screener/companydb/search' \ -H 'Authorization: Token $CRUSTDATA_API_KEY' \ -H 'Content-Type: application/json' \ -d '{ "filters": { "op": "and", "conditions": [ {"filter_type": "hq_country", "type": "=", "value": "USA"}, {"filter_type": "last_funding_round_type", "type": "in", "value": ["series_b", "series_c", "series_d", "series_e"]}, {"filter_type": "linkedin_industries", "type": "(.)", "value": "fintech"}, {"filter_type": "employee_metrics.latest_count", "type": ">", "value": 200}, {"filter_type": "employee_metrics.latest_count", "type": "<", "value": 1000} ] }, "limit": 100 }'
curl -X POST 'https://api.crustdata.com/screener/companydb/search' \ -H 'Authorization: Token $CRUSTDATA_API_KEY' \ -H 'Content-Type: application/json' \ -d '{ "filters": { "op": "and", "conditions": [ {"filter_type": "hq_country", "type": "=", "value": "USA"}, {"filter_type": "last_funding_round_type", "type": "in", "value": ["series_b", "series_c", "series_d", "series_e"]}, {"filter_type": "linkedin_industries", "type": "(.)", "value": "fintech"}, {"filter_type": "employee_metrics.latest_count", "type": ">", "value": 200}, {"filter_type": "employee_metrics.latest_count", "type": "<", "value": 1000} ] }, "limit": 100 }'
The response returns structured JSON with every field you asked for. Claude formats it into the table you requested. On Claude Desktop, this appears directly in chat. On Claude Code, Claude can also write the output to a CSV or JSON file on disk.
Credit cost: 1 credit per 100 results returned through the Company Search API. No charge when no results match.
People enrichment
Once you have your company list, the next step is finding the right contacts.
What to say to Claude:
"For each company in the list, find the VP of Sales or Head of Revenue. Return their name, current title, employer, tenure at current company, and verified business email."
Claude calls the People Search API with filters for title, seniority, and the company identifiers from the previous step. The People Enrichment API returns 90+ datapoints per profile, but you only pull the fields your workflow needs. Requesting only name, title, employer, and email instead of the full payload keeps credit usage lean: 1 credit for the base profile, scaling up to 7 with business email and phone add-ons.
The output is a table with one row per contact, linked to their company record. On Claude Code, this can be a CSV ready for CRM import. On Claude Desktop, you can copy the table directly from chat.
What makes this different
The examples above use Crustdata's published API with real endpoints, real parameters, and a real response structure. The same pattern works with any data provider that exposes a REST API.
Claude's value here is as a translation layer: you describe what you need in plain language, and Claude handles the structured JSON that the API requires.
How to build a reusable enrichment skill
Running a one-off enrichment query is useful. Turning it into a saved skill that anyone on your team can run without re-prompting from scratch is what makes it automation.
A Claude skill is a saved prompt file that encodes your search criteria, your ICP definition, your preferred output format, and your filter logic. You write it once and any team member can invoke it by name.
Here is an example of a saved skill for fintech account enrichment:
# /enrich-fintech-accounts ## About Us We sell a sales engagement platform to mid-market B2B SaaS companies. Our product helps outbound teams manage sequences, track replies, and book meetings. ## ICP Definition - Series B or later fintech companies headquartered in the US - 200 to 1,000 employees (large enough to have a dedicated sales org, small enough that they have not built internal tooling) - Actively hiring SDRs or AEs (signals they are scaling outbound) - Buyer: VP of Sales or Head of Revenue (owns the outbound tooling budget) ## Workflow 1. Search for companies matching ICP filters using Company Search API (hq_country: USA, last_funding_round_type: series_b through series_e, linkedin_industries: fintech, employee count: 200-1000) 2. For each company, check 6-month headcount growth. Flag companies growing faster than 15% as priority accounts. 3. Find the VP of Sales or Head of Revenue at each company using People Search. If no exact title match, fall back to "Director of Sales" or "CRO." 4. Pull verified business email for each contact. ## Output Format CSV with these columns in this order: | Column | Source Field | Notes | |--------|------------|-------| | Company Name | company_name | | | Domain | domain | | | Headcount | employee_metrics.latest_count | | | 6-Mo Growth (%) | employee_metrics.six_month_growth | Flag >15% as "Priority" | | Total Funding ($) | crunchbase_total_investment_usd | | | Last Funding Date | last_funding_round_date | | | Contact Name | person.name | | | Contact Title | person.title | | | Contact Email | person.business_email | Verified only | | Tenure (months) | person.tenure_at_current_company | | Save to: enrichment-output/fintech-accounts-{YYYY-MM-DD}.csv
# /enrich-fintech-accounts ## About Us We sell a sales engagement platform to mid-market B2B SaaS companies. Our product helps outbound teams manage sequences, track replies, and book meetings. ## ICP Definition - Series B or later fintech companies headquartered in the US - 200 to 1,000 employees (large enough to have a dedicated sales org, small enough that they have not built internal tooling) - Actively hiring SDRs or AEs (signals they are scaling outbound) - Buyer: VP of Sales or Head of Revenue (owns the outbound tooling budget) ## Workflow 1. Search for companies matching ICP filters using Company Search API (hq_country: USA, last_funding_round_type: series_b through series_e, linkedin_industries: fintech, employee count: 200-1000) 2. For each company, check 6-month headcount growth. Flag companies growing faster than 15% as priority accounts. 3. Find the VP of Sales or Head of Revenue at each company using People Search. If no exact title match, fall back to "Director of Sales" or "CRO." 4. Pull verified business email for each contact. ## Output Format CSV with these columns in this order: | Column | Source Field | Notes | |--------|------------|-------| | Company Name | company_name | | | Domain | domain | | | Headcount | employee_metrics.latest_count | | | 6-Mo Growth (%) | employee_metrics.six_month_growth | Flag >15% as "Priority" | | Total Funding ($) | crunchbase_total_investment_usd | | | Last Funding Date | last_funding_round_date | | | Contact Name | person.name | | | Contact Title | person.title | | | Contact Email | person.business_email | Verified only | | Tenure (months) | person.tenure_at_current_company | | Save to: enrichment-output/fintech-accounts-{YYYY-MM-DD}.csv
# /enrich-fintech-accounts ## About Us We sell a sales engagement platform to mid-market B2B SaaS companies. Our product helps outbound teams manage sequences, track replies, and book meetings. ## ICP Definition - Series B or later fintech companies headquartered in the US - 200 to 1,000 employees (large enough to have a dedicated sales org, small enough that they have not built internal tooling) - Actively hiring SDRs or AEs (signals they are scaling outbound) - Buyer: VP of Sales or Head of Revenue (owns the outbound tooling budget) ## Workflow 1. Search for companies matching ICP filters using Company Search API (hq_country: USA, last_funding_round_type: series_b through series_e, linkedin_industries: fintech, employee count: 200-1000) 2. For each company, check 6-month headcount growth. Flag companies growing faster than 15% as priority accounts. 3. Find the VP of Sales or Head of Revenue at each company using People Search. If no exact title match, fall back to "Director of Sales" or "CRO." 4. Pull verified business email for each contact. ## Output Format CSV with these columns in this order: | Column | Source Field | Notes | |--------|------------|-------| | Company Name | company_name | | | Domain | domain | | | Headcount | employee_metrics.latest_count | | | 6-Mo Growth (%) | employee_metrics.six_month_growth | Flag >15% as "Priority" | | Total Funding ($) | crunchbase_total_investment_usd | | | Last Funding Date | last_funding_round_date | | | Contact Name | person.name | | | Contact Title | person.title | | | Contact Email | person.business_email | Verified only | | Tenure (months) | person.tenure_at_current_company | | Save to: enrichment-output/fintech-accounts-{YYYY-MM-DD}.csv
A team member types /enrich-fintech-accounts in Claude Code, and the entire workflow runs. No re-prompting, no remembering filter values, no manual API calls.
Skills also compound. Over time, you refine the skill based on what works, adding filters to exclude companies you have already enriched, narrowing the title search to match your actual buyer committee, or adding a scoring step that flags high-growth accounts.
A recruiter at a staffing firm we spoke with described saving reusable prompts as skills so their team could run natural-language people searches and get formatted Excel reports without rewriting detailed queries each time.
You do not need a technical background to get value here. One practitioner who builds outbound workflows with Claude Code described it plainly: "Claude Code is built for developers. I'm not a developer. But it turns out you don't need to be one to get serious value out of it for outbound."
Guided skills are more reliable than open-ended chat because they remove the variability of free-form prompting.
From enriched data to your CRM
Enrichment that stays in a chat window or a CSV on your desktop is not enrichment. The last mile is getting structured data into HubSpot, Salesforce, or whatever CRM your team runs on.
The export path (where most teams start)
Ask Claude to format the enrichment output as a CSV with column headers that match your CRM field names. Map company_name to Account Name, employee_metrics.latest_count to Company Size, crunchbase_total_investment_usd to Total Funding. Import the CSV through your CRM's standard import tool.
This is the right starting point. Most practitioners we found do not let Claude write directly to their CRM yet. One outbound operator put it bluntly: "I don't let Claude Code write to CRMs. I don't trust it to not break something."
Starting with read-only enrichment and CSV export lets you validate the output before it touches your system of record.
The write-back path (for Claude Code users ready to automate)
Once you trust the enrichment output, you can add a CRM write-back step to your skill. Claude Code can call the HubSpot or Salesforce API to create or update records directly. The build internal sales tools solution page covers the full signal-to-CRM pipeline for teams ready to productionize, and our guide on how to build internal sales tools with real-time data walks through the architecture from webhook ingestion to CRM write-back.
Field mapping checklist
Enrichment field | CRM property | Notes |
|---|---|---|
| Account Name | Match on domain to avoid duplicates |
| Company Size | Numeric, not range |
| Total Funding | Currency format |
| Funding Stage | Custom picklist in most CRMs |
| Contact Name | Split first/last if CRM requires |
| Job Title | Exact from API, not abbreviated |
| Verified by provider |
For teams running enrichment on a CRM enrichment workflow, the field mapping stays the same whether Claude or a direct API integration handles the write.
What to build next: prospecting, signal monitoring, and TAM expansion
Enrichment is one step in a larger workflow. Once you have enriched accounts and contacts flowing into your CRM, three natural next steps open up.
1. Automate prospecting from enriched lists. The enrichment skill from the previous section gives you accounts and contacts. The next step is building ICP-scored prospect lists and pushing them into outreach sequences. Our guide on how to automate sales prospecting with Claude Code covers the full workflow, from ICP definition through to sequence loading.
2. Set up signal monitoring on enriched accounts. Once you have accounts in your CRM, you want to know when something changes, whether a VP of Sales leaves, a new funding round closes, or headcount spikes by 20% in a quarter. The Watcher API delivers these events as webhooks so your team can act on them within hours.
A GTM lead we spoke with described incomplete TAM models as their core problem: "We know we're missing accounts that are really good fits for us." Signal monitoring on existing accounts catches the ones that become good fits after enrichment, including accounts that did not match your ICP on day one but do now.
3. Expand your TAM beyond what is already in your CRM. Company Search with 95+ filters lets you find accounts matching your ICP that you have never touched. Run the search quarterly, deduplicate against your CRM, and surface net-new accounts to the team. This is how teams go from "we enriched the accounts we know about" to "we found the accounts we were missing."
All three paths sit inside the same Claude workflow. The pillar guide, The Complete Guide to Automating B2B Workflows with Claude, maps out how enrichment, prospecting, signal monitoring, and research fit together as one system.
Products
Popular Use Cases
Competitor Comparisons
95 Third Street, 2nd Floor, San Francisco,
California 94103, United States of America
© 2026 Crustdata Inc.
Products
Popular Use Cases
Competitor Comparisons
95 Third Street, 2nd Floor, San Francisco,
California 94103, United States of America
© 2025 CrustData Inc.
Products
Popular Use Cases
95 Third Street, 2nd Floor, San Francisco,
California 94103, United States of America
© 2025 CrustData Inc.


