Lead Generation Through Claude: ICP to Booked Meeting (2026)
By Kushal Magar · September 28, 2026 · 15 min read
Key Takeaway
Claude becomes a full outbound operating layer when the SyncGTM MCP is connected. The workflow: write ICP → find_companies (3 cr) → find_people (3 cr) → find_work_email + verify_email (1.3 cr/contact) → enrich_organization + generate first lines → push to Instantly staging → schedule daily. Three human review gates apply: ICP fit before sourcing, copy before activation, and sending volume before the sequence starts. Set a credit floor of 50 and a daily cap of 25 leads per run — domain reputation is the constraint, not Claude.
Lead generation through Claude works differently from a chat-based prospecting tool. Claude is not a database — it is a reasoning layer that can call a live database, chain the results through multiple enrichment steps, write personalized copy from what it finds, and push the final output to your sequencing tool, all inside one conversation without you copying a single cell.
What this guide covers
This is the advanced guide. The basic lead generation with Claude guide covers MCP setup and the core find → enrich → export workflow. This guide adds account brief generation, personalized first-line writing, push to Instantly or HubSpot, daily scheduling, human review gates, and the deliverability and credit guardrails that keep a daily loop from burning your domain or balance.
The full run — ICP to verified leads with personalized first lines, ready in an Instantly staging list — takes under 10 minutes of Claude time and roughly 55 credits for 25 contacts. The guardrails take another 5 minutes to configure once. After that, a scheduled agent handles it every morning while you sleep.
TL;DR
- What you build: A daily Claude Code routine that sources 25 accounts, finds decision-makers, enriches emails, writes personalized first lines, and pushes to Instantly — automatically.
- Tools required: SyncGTM MCP + Instantly MCP (or HubSpot MCP). All connect via OAuth — no API keys.
- Credit cost for 25 leads: ~55 credits total (3 find_companies + 3 find_people + 25 find_work_email + 7.5 verify_email + ~16 enrich_organization at 0.65 cr each).
- Human review gates: ICP fit (before sourcing), copy quality (before activation), and sending volume (before the sequence starts). Never skip the volume gate.
- Sending cap: 25 leads per daily run. Domain warm-up constrains volume, not Claude.
- Credit guardrail: Set a floor of 50 credits. Claude checks before each enrichment batch and stops — not pushes — if the balance drops below the floor.
What Running Outbound Through Claude Means
Most teams treat outbound as a sequence of separate tools: a database for prospecting, a spreadsheet for enrichment, a writing tool for copy, a CRM for staging, and a sequencer for sending. Each handoff is a manual step — export CSV, import CSV, paste first line, click send.
Running outbound through Claude means Claude is the operating layer between all of those systems. It calls the B2B database MCP to source accounts, pipes the results into the data enrichment MCP for contact and company data, generates copy from what it finds, and pushes the output to Instantly or HubSpot — all without a single export or import. The only things that leave the conversation are the final leads, already formatted for your sequencer.
The practical consequence: a workflow that used to take a half-day of manual work runs in under 10 minutes of wall time. The AI cold outreach guide covers why this matters for reply rates — short version: specificity beats volume, and Claude can produce specific copy at volume if you give it the right company context to work from.
What You Need Before Starting
- SyncGTM MCP connected to Claude. See the basic setup guide if you have not done this yet. Takes under 2 minutes via OAuth.
- Instantly account (for sequence push) or HubSpot account (for CRM staging). You only need one. Connect whichever you use via its Claude connector or MCP.
- Claude Code or claude.ai Pro. The scheduling step requires Claude Code. Steps 1–6 work in claude.ai Pro as well.
- At least 100 SyncGTM credits. A full 25-lead run costs ~55 credits. Run
check_creditsfirst. Top up on the SyncGTM pricing page if your balance is below 100.
Step 1 — Write Your ICP as a Claude Prompt
The ICP prompt is the only thing in this workflow a human writes from scratch. Everything downstream is Claude calling tools. Get the ICP wrong and every subsequent step produces the wrong output — the enrichment spend is wasted, and the first lines sound off because they target the wrong company profile.
A complete ICP prompt covers seven things:
| Dimension | Example value |
|---|---|
| Industry | B2B SaaS, not staffing or agencies |
| Company size | 50–500 employees |
| Geography | US or Canada HQ |
| Funding stage | Series A or B raised in the last 24 months |
| Tech stack signal | Uses HubSpot or Salesforce |
| Decision-maker title | VP of Sales, VP RevOps, CRO |
| Explicit exclusions | Existing customers (list domains), consulting firms, government |
ICP prompt template
"I am targeting B2B SaaS companies in the US or Canada with 50–500 employees that raised a Series A or Series B in the last 24 months and use HubSpot or Salesforce. The decision- makers I want are VP of Sales, VP of Revenue Operations, or CRO. Exclude staffing, consulting, government, and any company on this domain list: [competitor.io, partner.com]. Keep this ICP in context for the next steps — I will refer back to it as [MY ICP]."
Naming it [MY ICP] lets you reference it in subsequent prompts without rewriting it. Claude holds it in context for the full conversation.
Human review gate #1 — ICP fit
Before running any tool, review the ICP prompt yourself. This is the only moment you have full control over who enters the funnel. Check: Are the exclusions complete? Is the title list tight enough? Is the funding recency right for your deal cycle? Fix it here — not after you have spent 50 credits on the wrong accounts.
Step 2 — Source Target Accounts
With the ICP in context, one prompt runs the account search. Claude translates the plain-English description into structured filters for find_companies.
Exact prompt
"Use find_companies to find 25 accounts matching [MY ICP]. Return a table: domain, company name, headcount, last funding round, HQ country. Cap at 25 results."
Credit cost: 3 credits for the run. 25 results and 100 results cost the same — the cap is a workflow discipline choice, not a cost optimization. Keep it at 25 until you confirm the ICP is producing companies you would actually want to call.
If the first batch contains companies outside your ICP (a staffing firm slipped through, or headcount is too small), refine in the same conversation: "Remove companies under 100 employees and re-run." Refinement uses the existing context — no extra credit charge.
Step 3 — Find Decision-Makers
Claude carries the company domains from Step 2 in context. Pass them straight into find_people — no export or copy needed.
Exact prompt
"Use find_people to find VP-level or above contacts in Sales or Revenue Operations at the 25 companies from Step 2. Based in the US or Canada. One contact per company maximum. Return: name, title, company, domain, LinkedIn URL."
The "one contact per company maximum" constraint keeps the list clean. Without it, Claude may return 3–4 people per company and you spend enrichment credits on contacts you would never sequence simultaneously. Add recently_changed_jobs: true to the prompt to surface new buyers with fresh budget authority — just say it in plain English and Claude maps it.
Credit cost: 3 credits. See the full email finder MCP guide for how the enrichment chain works across providers.
Step 4 — Find and Verify Work Emails
Run both tools in sequence in one prompt. Only include contacts that come back with a valid or risky status — invalid and not-found contacts waste first-line generation effort downstream.
Exact prompt
"For each person from Step 3, use find_work_email with their LinkedIn URL. Then run verify_email on each result. Only keep contacts where verify_status is 'valid' or 'risky'. Show the filtered list as a table: name, title, company, domain, email, verify_status, LinkedIn URL."
| Status | Meaning |
|---|---|
| valid | Confirmed deliverable. Safe to sequence. |
| risky | Catch-all domain or inconclusive. Use on warm domains only. |
| invalid | Hard bounce. Skip. |
| not found | No email from any provider in the waterfall. Skip. |
Credit cost for 25 contacts: 25 credits for find_work_email + up to 7.5 credits for verify_email (0.3 × 25) = ~32.5 credits. Expect 70–80% of contacts to return valid or risky, so a 25-person list typically yields 17–20 usable emails.
Step 5 — Generate Account Briefs and Personalized First Lines
This is the step that separates a lead list from a ready-to-send campaign. Claude uses enrich_organization to pull company context — LinkedIn description, headcount trend, recent news, tech stack — then writes one specific first line per contact using that context as source material.
Account brief prompt
"For each company in the filtered list, use enrich_organization on their domain. Return: company description (1 sentence), headcount trend (growing/flat/shrinking), most recent funding event (date + amount), and any open Sales or RevOps job postings. Save as account_briefs."
First-line generation prompt
"For each contact in the filtered list, write one personalized first line using their account_brief. Rules: - Reference one specific detail (job opening, funding event, headcount growth, or technology they use) - One sentence, under 25 words - Do NOT use 'impressive', 'congrats', or 'I noticed you're in [title role]' - Write for a VP-level buyer who values specificity over flattery Return as a table: name, company, first_line"
Sample output for a VP of Sales at a 200-person Series B SaaS company that recently posted three RevOps job openings:
"Saw you're building out RevOps — three open roles suggests the manual data work is starting to outpace the team size."
Credit cost: enrich_organization costs 0.65 credits per domain. For 20 companies that is ~13 credits. First-line generation is pure Claude reasoning — no additional tool cost.
Human review gate #2 — copy quality
Read every first line before it goes into a sequence. Claude occasionally generates a line that is factually correct but tonally wrong — too salesy, too informal, or referencing something the prospect would find odd (a layoff, a negative press mention). First lines take 3 minutes to scan. This is not optional.
Step 6 — Push Leads to Instantly or HubSpot
Always push to a staging list first — never directly to an active sequence. The staging list is where your human review happens before any email sends.
Option A — Push to Instantly
"Add each contact from the filtered list to the Instantly campaign named 'SyncGTM Outbound — Staging' using the Instantly MCP. Use: - email: from verify step - first_name, last_name: from people search - company: from people search - custom_variable_1: first_line (from Step 5) Do NOT activate the campaign. Just add the leads. Report the count added vs. already existing."
Claude calls the Instantly MCP create_lead tool for each contact, deduplicates by email, and reports back. The staging campaign stays paused until you manually review and activate it in the Instantly UI.
Option B — Push to HubSpot
"Create each contact in HubSpot using the HubSpot MCP. Deduplicate on email. Set: - lifecycle_stage: Lead - lead_status: New - source: Outbound — MCP - hs_sales_email_replied: false Add a note to each contact: first_line from Step 5. Report: created vs. already existing."
Human review gate #3 — sending volume
Before you activate the staging campaign, check: how many emails have already sent from this domain today? Add the new batch to today's total. If the combined count exceeds your daily warm-up cap (see guardrails below), delay activation to the next send window. Volume discipline is the single most important factor in domain reputation for cold outbound.
Step 7 — Schedule as a Daily Claude Code Routine
Once the workflow runs cleanly in a single conversation, automate it. Claude Code's /schedule skill creates cloud agents that execute on a cron schedule without you being present.
Create the scheduled routine
# In Claude Code, run: /schedule # When prompted, enter: Name: Daily Outbound Run Schedule: 0 6 * * 1-5 (weekdays at 06:00) Prompt: Run the full outbound workflow: 1. check_credits — stop and report if balance < 50 2. Use find_companies for [MY ICP] — 25 results 3. Use find_people at those companies — 1 per company max 4. Use find_work_email + verify_email — keep valid and risky 5. Use enrich_organization on each domain 6. Generate personalized first lines (one per contact) 7. Push to Instantly campaign 'SyncGTM Outbound — Staging' Do NOT activate the campaign. 8. Write a summary: accounts sourced, contacts enriched, emails verified, leads pushed, credits spent today.
The agent runs at 06:00 Monday–Friday, fills the staging list, and emails you a summary. You review the list each morning over coffee and activate it when you are happy with the quality. If the credit check fails (balance below 50), the agent stops after step 1 and reports the shortfall — it does not burn partial credits on a workflow it cannot complete.
The best sales MCPs guide covers how to chain multiple MCP servers in a scheduled agent when you want to extend this workflow with LinkedIn signal triggers or intent-data filters.
Where a Human Must Review
This workflow can run fully automated. That does not mean it should. Three gates require human judgment before anything bad can happen:
| Gate | When | What to check |
|---|---|---|
| ICP fit | Before Step 2 | Are the exclusions complete? Is the title list tight enough? |
| Copy quality | After Step 5 | Read every first line. Remove anything tonally off or factually wrong. |
| Volume | Before activating | Does today's new batch exceed your daily warm-up cap? |
All three gates take under 10 minutes combined. Skipping any of them is how a domain ends up on a blocklist or a credit balance hits zero on a weekend.
Deliverability and Credit Guardrails
A runaway loop that pushes 200 leads per day and burns through credits is worse than no automation at all. These guardrails take 5 minutes to configure and prevent the two most common failure modes: domain blacklisting and credit exhaustion.
Deliverability guardrails
- Daily send cap: 20–30 emails/domain/day for weeks 1–4. Scale to 50/day in weeks 5–8. Never exceed 100/day on a domain under 6 months old regardless of warm-up tool status.
- Bounce rate threshold: If bounce rate exceeds 3% on any Instantly campaign, pause the campaign and audit the list before resuming. Instantly shows this in campaign analytics.
- Risky emails: Only send to risky-status emails on fully warmed domains (6+ months of consistent sending, bounce rate below 1%). On new domains, risky = skip.
- Unsubscribe link: Always present. Instantly adds it automatically. Do not remove it.
Credit guardrails
# Add this as the first step in every automated prompt:
"1. Run check_credits first. If the balance is below 50,
stop immediately and output:
'Credit balance low: [balance] credits remaining.
Workflow paused. No leads pushed. Top up at
syncgtm.com/pricing before next run.'
Do not proceed to any other step."The credit floor of 50 ensures Claude can always complete one full 25-lead run (cost ~55 credits) plus a buffer. Without this, Claude will start enriching a batch, run out of credits midway, and push a partial list to Instantly — half enriched, half not, with no clean way to identify which contacts are missing first lines.
For context on how credits map to the enrichment stack, the data enrichment MCP guide covers per-tool credit costs across the full SyncGTM MCP tool set.
| Step | Tool | Rate | 25-lead total |
|---|---|---|---|
| Credit check | check_credits | Free | 0 |
| Account search | find_companies | 3 / run | 3 |
| People search | find_people | 3 / run | 3 |
| Work emails (25) | find_work_email | 1 / person | 25 |
| Email verify (25) | verify_email | 0.3 / email | 7.5 |
| Company enrich (20) | enrich_organization | 0.65 / domain | 13 |
| Total | ~51.5 credits | ||
Conclusion
Lead generation through Claude is not a shortcut around good outbound — it is a way to run good outbound at a pace and consistency a human team cannot match manually. The workflow is always the same: ICP in context, accounts sourced, decision-makers found, emails enriched, first lines written from real company context, pushed to staging, reviewed by a human, activated within your daily volume cap.
The three human review gates and the credit floor guardrail are the only things standing between a useful daily routine and a burnt domain or an empty credit balance. Configure them before the first scheduled run — not after.
The Claude Code as a Clay alternative guide covers how to extend this workflow with waterfall enrichment and multi-signal targeting once the core loop is running cleanly. Create a free SyncGTM account to connect the MCP and run your first batch today.
