The old era is one template, blasted to hundreds. The new era is a unique, researched message to every person, and AI is what finally makes that doable without a team behind you. Built with Claude, Apify and Apollo / Prospeo. No Clay.
The same template sent to 500 people gets ignored by 500 people. One message written for one person gets read. This is the exact engine we built for RecruiterGTM's own outbound: a 35,000-company market, gated down to a verified pool, then skimmed weekly for the warmest names. Below is that process, stripped to what you need to start, plus the one prompt that runs it.
The short version
The old way, and the way AI finally makes possible on your own.
Everyone fixates on reply rates. These three things matter more.
Tailored
Each message is built around that person's specific pain point. And you approve every one yourself before it sends.
Deliverability
Unique, researched messages don't trip the spam filters that flag the same template sent to hundreds. Your inboxing stays high and your domain stays healthy.
Your time
Run the whole thing inside your CEO power hour. While you're there, engage their content and follow their company, so you're warm before you ever message.
Claude is the brain. The other two are the hands.
The brain
Defines the ICP, runs the qualification gate, researches each person, drafts their unique message, and orchestrates the weekly routine.
The data
Pulls companies, firmographics, decision-maker contacts and emails. Prospeo free tier first, Apollo as the top-up.
The research layer
Reads live LinkedIn: what each person is doing now, so every message references something specific, and confirms they still work there.
You can't personalise a bad list. Before you write a single message, every company and person clears four gates. One contact per company: the founder, owner or CEO.
Match every company by its domain, never its name.
Skip it → a same-named company sneaks in and every field is wrong.
Claude reads what they actually do and rules FIT / MAYBE / NOT.
Skip it → about 20% of a 'clean' list is off-target.
LinkedIn employeeCountRange, never the profile count.
Skip it → you drop your best-fit accounts by accident.
Current employer confirmed on live LinkedIn, plus a valid email.
Skip it → job-changers, bounces, and a burned sender reputation.
It runs in phases and stops for your approval at each one. The only thing you set up is a Google Drive folder. Paste it into Claude Code, answer its questions, and approve each batch.
The TAM Engine master prompt
Copy it whole. Swap in your ICP and seed accounts when it asks. Everything downstream depends on getting those two sharp.
The AI proposes. You approve. It gets things wrong, which is the whole reason you read every batch yourself. And every correction you give it makes the next run better.
1 · Verify
You catch what the tools miss: a wrong-fit company, a title that isn't really the buyer, a description that doesn't match the domain.
2 · Correct
Be specific about the miss. Vague feedback teaches nothing.
"This is an R&D lab, not a manufacturer. Exclude clinical-stage companies."
3 · Store
Have Claude write that correction into your ICP or a rules file. Next run it applies the rule on its own and doesn't repeat the mistake.
The compounding
Correct it once and it stops making that mistake. A few weeks of that and your sourcing runs on your own judgement instead of a tool's defaults. Nobody else is running your version.
150 fresh leads land each week, ranked by intent so your best writing goes to the warmest names first.
Open, relevant job req
Hiring for the role you solve. The clearest sign they need you now.
New leader in the buying role
A new founder-level or hiring decision-maker in the last 90 days.
Funding, M&A, or a new office
Fresh money or expansion means fresh hiring pressure.
Headcount climbing month over month
The team is growing and capacity is stretched.
Best ICP-match, no signal yet
Fills the quota to 150 once the signals are exhausted.
The routine, your CEO power hour
Pick a fixed weekly slot. Claude skims your gated pool, ranks the warmest first, live-verifies that week's batch, and drops anyone already contacted. 150 verified leads land in one clean sheet, each ready for its own unique message. Prefer a daily rhythm? Set it to hand you 25 a day, into Slack or a desktop folder.
No. This engine runs on three tools: Claude as the brain, Apollo or Prospeo for company and contact data, and Apify to read live LinkedIn. Claude does the qualifying, research and drafting that a Clay table used to hold, and it costs less to run.
A signal is a live reason to reach out now: an open job req, a new leader in the buying role, fresh funding, a new office, or climbing headcount. A message that names the signal in line one reads like you actually looked them up, and signal-fired outreach replies far higher than a cold list everyone else also bought.
You build the verified list once, then each week is about a ten-minute skim: Claude re-scans intent across your pool, ranks the warmest names first, live-verifies that week's batch, drops anyone you've already contacted, and hands you 150 fresh leads in one clean sheet.
You are the verifier. The AI proposes and you approve, in batches of 50, which is exactly why you read every batch yourself. It will get things wrong. Every correction you give it gets written into your ICP or a rules file, so the next run is sharper and nobody else is running your version.
A name lookup can quietly return a different, same-named company, and then every field on that row is wrong. Matching on the root domain is the single gate that keeps your list clean. Company size is verified per company with LinkedIn's employeeCountRange, never the profile count.
More on the outbound engine in the Outbound Guide, the BD checklist, and the deliverability checklist.
Inside a RecruiterGTM pilot we install the Claude ops layer, the verified TAM and the weekly lead engine on your desk. Or start free: subscribe to the newsletter and get a new breakdown every week.
Or DM Reyhan 'OUTBOUND' on LinkedIn