One of our salespeople started noticing bounced emails.
Then I started seeing them too. We went into HubSpot to investigate — pulled up the contacts Claude had given us, looked them up in LinkedIn.
They didn’t exist.
Claude had invented them. Completely fabricated people with real-sounding names, plausible job titles, and email addresses that looked legitimate. They “worked” at companies we were actually targeting. But they were entirely made up.
That was about two weeks into building an AI SDR for Enzzo, the B2B startup where I’m fractional CMO. It was the moment I understood something important about working with AI agents: they will confidently fill gaps you don’t know exist.
More on how we fixed it — and what it taught us — below.
What Is an AI SDR, Actually?
Before I get into the build, let me define the term plainly.
An AI SDR is a system that handles the prospecting and early-stage outreach work traditionally done by a human Sales Development Rep. It identifies target contacts, researches them, drafts personalized outreach, and manages follow-up sequencing.
That’s it. No magic. Just a system doing a job that used to require a person.
One clarification: my AI SDR does not automatically send emails or reach out on LinkedIn. Every message goes through a human before it goes out. That’s intentional, and I’ll explain why later. For now: if you’re building one of these and thinking “I’ll just automate the sends too,” I’d encourage you to read the whole post first.
Why I Built This
Enzzo is an early-stage company with a small sales team and a limited budget. The math on hiring a dedicated SDR didn’t work yet. But we had a real pipeline problem — not enough qualified outreach happening consistently.
So I built a system to solve it.
The goal was straightforward: give a small team the outreach capacity of a dedicated SDR function, without the headcount cost. Run it weekly. Keep improving it based on what we learn.
Two months in, here’s where we are — the good, the bad, and the things I’d do differently.
What I Built: The System
The AI SDR connects Claude, HubSpot, Notion, Gmail, and Slack. Here’s what happens each week with a single prompt:
Claude queries our HubSpot database of roughly 3,000 contacts and identifies the best prospects to reach out to right now — based on ICP fit, outreach history, and sequencing logic.
It allocates contacts by salesperson (currently our “sales” team is the CEO, me, and a marketing specialist… but I’ll use the term “salespeople” for the rest of this post to keep it simple). Each person on the team has their own ICP parameters. The CEO gets C-level targets. The marketing specialist gets manager-level contacts. Claude handles the tiering automatically.
It writes the full outreach sequence for each assigned contact — email and LinkedIn messages, personalized to the recipient, incorporating the right value proposition and messaging angle for their role and company. Not a template. Actual personalized content.
It creates a file to export to Notion in a structured format. Each salesperson logs into Notion and sees their outreach assignments organized by day of the week. Everything is ready for review and copy/paste into Gmail or LinkedIn.
It generates weekly performance reports — open rates broken down by salesperson, message type, seniority of recipient, day of week, time of day. Whatever I ask for.
The whole workflow runs in about an hour once a week. The “sales team” spends 15-20 minutes each day reviewing and sending their assignments.
Why the Manual Step Is a Feature, Not a Bug
Why not just automate the sends? Here’s my thinking.
Cold outreach lives and dies on quality. One bad message to the wrong person at the wrong company can close a door permanently. A final human review before anything goes out is a forcing function for quality control. It catches the 10% of messages that aren’t quite right before they do damage.
It also keeps the sales team connected to the outreach. They’re not just watching a machine spray emails into the world on their behalf. They read every message, make small edits when needed, and send it themselves. That ownership matters for follow-through.
Full automation would be faster. It would also remove the one checkpoint that catches the mistakes.
How I Built It: The Foundation That Had to Come First
This is the part most people skip when they talk about AI SDRs. They jump straight to tooling. That’s backwards.
Before Claude could do anything useful, I had to do three things:
- Define the ICP clearly. Not just industry and company size — actual contact-level clarity. What titles do we target? What does “good fit” look like versus “close but wrong”? I used Apollo to build tiered contact lists by ICP fit and imported them into HubSpot. That gave us a database of 3,000-4,000 contacts who actually fit our criteria.
- Nail the messaging. What does Enzzo do? Who is it for? What’s the right value proposition for a VP of Engineering versus a Head of Product? This work happened before a single prompt was written.
- Build the context documents. The Claude project runs on five documents that I keep updated and refined:
- Company & ICP Reference: Who Enzzo is, what it does, who it sells to. Stable unless the product or positioning changes. This is Enzzo’s brand & messaging guideline.
- Voice, Messaging & Writing Rules: How Enzzo sounds in outreach. Tone, structure, what to avoid. The standing rules that apply to every piece of content regardless of what angle we’re testing. This is like a best practice guide to how to write cold emails & Linkedin outreach that works.
- Content Testing Log: A living document. What angles have been tested, what’s working, what’s been retired, what we want to try next. Claude checks this before generating content so we’re not repeating ourselves.
- Sequence & Workflow Logic: The rules for how outreach sequences are structured and how they progress. Not how many touches — I specify that at runtime. This doc covers how to build a sequence once those parameters are given.
- Operations & HubSpot Workflow: Everything needed to run the system operationally. Contact sourcing, HubSpot data model, CSV output format, team coordination, quality checks, exception handling.
The AI is only as good as the strategy you load into it. These five documents are that strategy, codified.
The Hallucination Problem
Back to the fake people.
Here’s what was happening: we were using the Team version of Claude, and I had set it up so each salesperson could log in and pull their own assignments. The problem was that sharing HubSpot logins across different accounts within the same Claude project wasn’t working. Claude couldn’t actually connect to HubSpot.
But instead of saying “I can’t access HubSpot,” it just… made people up. Plausible names. Real company names. Email addresses that followed the right format. All fake.
It took about a week of troubleshooting to figure out what was happening. We found it through the bounced emails.
We fixed it two ways:
First, we added explicit instructions in the context documents: never, under any circumstances, create contact information that doesn’t come directly from HubSpot. If you can’t access the data, say so.
Second, we changed the workflow. I now run the weekly job centrally — one login, one connection to HubSpot, outputs go into Notion for each salesperson. No more shared logins. No more gaps for the AI to quietly fill with invented data.
The lesson here isn’t “Claude is unreliable.” The lesson is: AI agents will fill gaps confidently. Your job as the architect is to design out the gaps.
What Two Months Actually Taught Me
I am the architect. Claude is not.
This sounds obvious until you watch it not happen. Early on, I asked Claude to set up a content testing framework — different categories of messages, tracked so we could evaluate what was working. Claude created the categories and generated content for each one. Then moved on.
It never suggested we needed a structured tagging system to track what we were sending. It didn’t flag that without that infrastructure, the testing would be meaningless. I had to prompt Claude to ensure we had the right tracking. .
AI agents do the task in front of them. They don’t manage the system. That’s your job.
Conflicting instructions will break things quietly.
Over two months, as our processes evolved and our messaging improved, the context documents accumulated contradictions. Old instructions mixing with new ones. Claude would occasionally behave strangely and I couldn’t figure out why.
The fix: I asked Claude to read all five context documents and identify conflicts and redundancies, then propose a reorganized version. It did a thorough job. Two days of working out kinks with the revised docs, and things ran more smoothly than they ever had.
Lesson: treat your context documents like code. They need maintenance and refactoring, not just additions.
Refinement compounds.
Every week’s performance data goes back into the system. Open rates by message angle. Which titles are responding. What subject lines aren’t working. Over time, the system gets meaningfully better. Not dramatically better week to week — but the compounding is real.
This is the actual leverage of an AI SDR. Not the first week. The tenth week.
Systematic personalization beats volume every time.
We are not blasting thousands of generic emails. We are sending a relatively small number of well-researched, genuinely personalized messages.
That’s the bar. If your AI SDR is generating content that reads like a template, you haven’t done the positioning and messaging work yet.
Where Things Stand
Two months in, here are the honest numbers:
Cold email open rates are averaging 25%. That’s solid for cold outreach.
Response rates are not where we want them yet. The program has brought in several great meetings, but we are struggling to get better response rates. That’s the current focus — testing different content angles and calls to action to improve conversion from open to reply.
The tooling works well for the size of our team. Notion is cheap, clean, and easy for salespeople to work through. Ideally we’d drop the sequenced content directly into HubSpot — more scalable, better tracking. But HubSpot is expensive, and we’re being appropriately scrappy at this stage of the company.
What Has to Be True Before This Works
For anyone considering building something like this, here’s the honest prerequisite list:
Your ICP has to be defined at the contact level. Not just “mid-market SaaS companies.” Which titles? Which functions? What signals make someone a strong fit versus a weak one?
Your messaging has to be clear before you hand it to an AI. If you can’t articulate your value proposition for different buyer personas, the AI will produce generic content. Garbage in, garbage out.
Your data has to be clean. Messy CRM data produces messy outreach. The AI will work with whatever you give it.
You need someone to own the system. This isn’t a “set it and forget it” tool. It needs a weekly operator, regular refinement, and someone who understands the full workflow well enough to diagnose problems when they appear.
That last point is important. Building and running an AI SDR is an ongoing engagement, not a one-time project. The value compounds as the system learns. But only if someone is steering it.
The Bigger Point
What I’ve built at Enzzo is a small-team outreach capability that would normally require dedicated headcount. A fractional CMO who knows how to build and operate this kind of system can have it running in the first 60 days of an engagement — generating consistent, personalized pipeline for a sales team that previously had neither the time nor the infrastructure to do this at scale.
That’s the leverage that matters.
The AI isn’t the hard part. The hard part is the strategy that tells the AI what to do: the ICP work, the messaging clarity, the context architecture, the ongoing refinement. That’s the job. The AI just runs faster once you’ve done it.
If you’re building something like this or thinking about it, I’d be glad to compare notes. Drop a comment or reach out directly.

Leave a comment