I Built an MCP That Turns Claude Into a Cold Outreach Machine — and It Actually Works
Submitted for the Notion MCP Challenge 2026
Let me be honest with you.
Cold outreach is broken.
Not because the idea is bad — cold emails work. People get hired, land clients, and build relationships through cold outreach every single day. It's broken because of how long it actually takes to do it right.
Think about it. To send one good cold email, you have to:
- Find a company that's actually a fit for your skills
- Go to their website and actually read it
- Figure out what they're working on, what problems they might have
- Find a contact email somewhere on the site
- Write something that doesn't sound like everyone else's template
- Send it
- Log it somewhere so you don't forget who you've reached out to
That's 20–40 minutes. Per company.
If you do 10 companies — which is barely enough to move the needle — you've just burned a full workday on outreach alone.
So most people don't do it. Or they send lazy, generic emails that get deleted in two seconds. Both outcomes are bad.
I got tired of it. So I built something.
Demo
What I Built: Cold Outreach MCP
Cold Outreach MCP is a custom MCP server that turns Claude into a fully automated cold email agent. You paste your CV once. Claude does everything else.
Here's the exact flow:
You: "Here is my CV. Find 10 companies that match my background,
research each one, and show me your recommendations."
Claude: [researches 10 companies]
1. stripe.com → opportunity_pitch
"Their checkout onboarding has friction — matches your UX background"
2. linear.app → role_inquiry
"Fast-growing team, strong eng culture, no obvious gap spotted"
... 8 more
You: "Looks good. Send as recommended."
Claude: [generates 10 tailored emails, sends them, logs everything to Notion]
That's it. What used to take a full day now takes 3 minutes.
The Part That Actually Makes It Different
Most "automation" tools skip the part that matters most — the email itself.
They send templated garbage like:
"Hi [First Name], I came across [Company] and I was really impressed by your work in [Industry]. I think my background in [Skill] could add value to your team..."
Nobody replies to that. Everybody knows it's a template. It goes straight to the bin.
Cold Outreach MCP does something different. Before generating the email, Claude actually reads the company's website, identifies specific things about their product or team, and writes something that references what it found:
"Saw you're building a design system at scale — I've done exactly this at [Company] and ran into the same versioning problems you're probably hitting. Worth a quick chat?"
That's an email someone opens. That's an email someone replies to.
And the tone rules are hard-coded into the prompts:
- Under 120 words
- No buzzwords ("synergy", "leverage", "circle back" — all banned)
- Short sentences. Casual but not sloppy.
- One specific observation from their site
- One clear ask at the end
It sounds like a person wrote it. Because an extremely good AI was told to write like a person.
Where Notion Fits In
Every outreach — sent, failed, or pending — gets logged to a Notion database automatically.
The schema looks like this:
| Company | Website | Type | Status | Date Sent | Notes | |
|---|---|---|---|---|---|---|
| Stripe | stripe.com | hello@stripe.com | opportunity_pitch | sent | 2026-03-26 | full email body |
| Linear | linear.app | team@linear.app | role_inquiry | sent | 2026-03-26 | full email body |
No manual logging. No "I think I emailed them last week?". No spreadsheet.
And the Notion integration is set up like a proper database migration — you create an empty database on Notion, paste its ID in your config, run setup_notion_db once, and all the columns are provisioned automatically. It's exactly how backend migrations work.
The 10 Tools Under the Hood
| Tool | What it does |
|---|---|
setup_notion_db |
Migrates your Notion database — adds all required columns |
parse_profile |
Extracts structured profile from your CV text |
discover_companies |
Finds real companies that match your skills using Claude |
find_company_email |
Scrapes a company site to find a contact email |
research_company |
Analyzes a company — summary, pain points, recommended email type |
generate_email |
Writes a human-sounding outreach email |
send_email |
Sends via SMTP (Gmail, Outlook, anything) |
log_to_notion |
Logs a record to your Notion tracker |
retry_failed |
Re-attempts any failed sends automatically |
bulk_outreach |
Full pipeline for up to 15 companies at once |
It's Human-in-the-Loop by Design
This is important. The tool doesn't just fire off emails without asking you.
bulk_outreach runs in two phases:
Phase 1 — Claude researches all companies and returns its recommendations. You see everything before a single email is sent.
Phase 2 — You confirm (or override) each recommendation. Then and only then does Claude generate and send.
You're always in control. The AI is doing the tedious work, not making the decisions for you.
There's also a hard limit of 15 companies per run — enough to be productive, not enough to accidentally spam half the internet if something goes wrong.
Tech Stack
-
MCP SDK —
@modelcontextprotocol/sdk(official Anthropic SDK) -
AI — Claude via
@anthropic-ai/sdkwith adaptive thinking for research and email generation -
Scraping —
axios+cheeriofor website analysis and email extraction -
Email —
nodemailerwith lazy SMTP validation (server doesn't crash if SMTP isn't configured yet) -
Notion — raw Notion REST API (
fetchdirectly tohttps://api.notion.com/v1/...) for reliability - Language — TypeScript, Node.js 18+, ES modules
What the Setup Looks Like
git clone https://github.com/thecodedaniel/cold-outreach-mcp
cd cold-outreach-mcp
npm install && npm run build
Fill in your .env:
ANTHROPIC_API_KEY=sk-ant-...
NOTION_API_KEY=ntn_...
NOTION_DATABASE_ID=your_database_id
SMTP_HOST=smtp.gmail.com
SMTP_PORT=587
SMTP_USER=you@gmail.com
SMTP_PASS=your_app_password
SENDER_EMAIL=you@gmail.com
SENDER_NAME=Your Name
Add to Claude Desktop config. Restart. Done.
The full setup takes about 10 minutes if you already have the API keys.
The One Thing I'm Most Proud Of
It's not the scraping. It's not the Notion integration. It's not even the email generation.
It's the fact that you don't have to know which companies to target.
Every other tool in this space assumes you already know who you want to reach out to. You still have to do the research, compile the list, find the websites.
This one starts from your CV and figures out the rest. You describe what you do. Claude figures out who needs someone like you.
That's the part that changes things.
What's Next
- Web search integration for real-time company discovery (Brave Search API)
- Follow-up email scheduling ("no response in 7 days → send a nudge")
- Notion status tracking — mark a reply directly in Notion, trigger a follow-up draft
- LinkedIn integration for finding decision-maker contacts
Links
- GitHub: github.com/TheCodeDaniel/reachout_mcp
- Demo: youtu.be/x7UvlIxKoPI
Built for the Notion MCP Challenge 2026 by Daniel Ainoko (THECODEDANIEL)
If you're a developer actively job hunting or trying to land clients — this is for you. The grind is real. Automate the boring parts.
Top comments (0)