Describe, Don't Filter: Build a Live Cold-Email Campaign in 4 Claude Code Prompts

One sentence describing a buyer returned six job titles at six companies. Here is the 4-prompt workflow that turns a blank terminal into a live outbound campaign.

Describe, Don't Filter: Build a Live Cold-Email Campaign in 4 Claude Code Prompts

You can go from a blank terminal to a live cold-email campaign in four Claude Code prompts — Research, List, Copy, Load — by describing the buyer you want instead of ticking filter boxes you already know. Marketer Alex Vacca ran exactly this workflow: one plain-English sentence returned six different job titles across six companies, and Claude then found the contacts, wrote the emails, and pushed the whole sequence into the sending tool by itself.

The shift is subtle but decisive. Most operators use Claude Code the way they use Google — they type "find me B2B SaaS companies that raised funding," hit enter, and wait for a list. That is not what an agent is for. Give it the right tools and it works like a teammate who does the task, not one who tells you how to do it.

Why "describe the buyer" beats "filter for the buyer"

When you filter in a tool like Apollo, you can only select titles you already know exist. Describe the job instead — "the person who owns the sales number" — and the agent surfaces every version of that seat.

In Vacca's run, one sentence returned a founding VP of Sales, a VP of strategy sales, a head of sales, a chief commercial officer, a head of growth, and a VP of business development. One job, six titles, six companies. Filtering would have missed most of them — which is exactly why most agencies pull nearly identical lists every morning. Precision, not volume, is the edge now.

The 4-prompt outbound workflow

Prompt 1 — Research: earn the reason to reach out

Before anyone gets contacted, the agent earns the reason to contact them.

Find US, VC-backed companies with 50–200 employees that raised recently. Research what changed after the raise, and pull any signal we can use later in the copy.

Two jobs in one prompt: the first half is the account filter, the second half decides whether the campaign works. This run returned six Series A/B companies, each with its open-role count, how many were sales roles, and a note on how to use the signal — all written to an .md file.

A company that raised ten months ago and is now opening sales roles is telling you something: the motion is being built right now. That is a reason to send an email. "Series B, 50–200 employees" is just a filter every competitor pulled this morning.

Vacca's team runs 8–12 data points per lead before a word is written — funding stage and date, headcount trend, open roles, tech stack, who owns the number, recent site changes — so the agent can tell a company that fits from one that fits right now. Crucially: ask for the output as a file. The next three prompts read from it; you can't hand a chat window to the next step.

Prompt 2 — List: describe, then validate

Using the list-builder skill, find the head of sales or VP of sales at those six companies using Arc, and validate the emails so we know they'll land.

That single sentence produced the six titles above. Validation runs inside the same prompt, so the list arrives finished instead of arriving as another to-do.

Prompt 3 — Copy: train on your winning scripts, not the internet

Almost nobody trains the agent on frameworks that actually get replies. So it writes from whatever it absorbed online, and the reply rates say so. Vacca's copy agent is trained on campaigns run across 275+ B2B companies — scripts they watched win.

Read the copy agent, and based on the skill, write three emails for those six prospects before we push to Instantly.

And here is the counterintuitive part: more personalization does not make an email better. The same three emails go to everyone; exactly one line is personalized. Relevance does the work. If you reached the right person, in the right company, in the right week, one accurate opening line proves you did the homework. If you reached the wrong person, no amount of research about their podcast saves it.

The honest limit: this only works if you already have scripts worth training on. From zero, the agent has nothing to copy and you'll get confident, well-formatted, generic email. So send a first campaign by hand, keep what got replies, and train on those.

Prompt 4 — Load: don't touch the sequencer

This is where most people close the terminal and spend two hours pasting sequences by hand — and every manual step sets a ceiling on how many campaigns you can run per week.

Create a new campaign in Instantly named "recent funding series A series B head of sales," and push the six leads and the three emails for each prospect.

Campaign live. Six leads loaded, a three-email sequence on each, ready to send. The agent already produced finished work; making a human carry it into a second tool is the most expensive habit in the process.

The setup underneath: why the prompts are so short

The prompts are one sentence because the context lives in four files, not in the prompts:

The agent stack for the whole run: Exa and Linkup for agent-native search, Limadata to pull full pages, Arc (via API) to find buyers, and Instantly to send.

FAQ

How many prompts does it take to build an outbound campaign in Claude Code? Four: Research (find accounts + reasons), List (find and validate contacts), Copy (write emails from your trained scripts), and Load (build the live campaign in your sequencer).

Why describe a buyer instead of filtering? Filters only let you pick titles you already know. Describing the job — e.g. "whoever owns the sales number" — surfaces every version of that seat, including ones you'd never check a box for.

How much personalization should a cold email have? Just one line. Send the same three emails to everyone and personalize a single opening line carrying the signal. Relevance and timing do the work, not volume of personalization.

What tools power this workflow? Exa and Linkup (agent search), Limadata (page scraping), Arc (contact finding via API), and Instantly (sending) — orchestrated by Claude Code reading a CLAUDE.md, a list-builder skill, and a copy agent.

Does this work if I'm starting from scratch? Only partly. The copy step needs scripts that already got replies. Run a first campaign manually, keep the winners, and train the agent on those.

Conclusion

The game is no longer spray-and-pray to a huge list. It's precision and timing — a tight list of buyers who are ready this week, reached with a reason they can't ignore. Four prompts, four context files, and an agent that carries its own output all the way to a live campaign. That's how you stop being the bottleneck.

Reference source: Alex Vacca on X

#ColdEmail #Outbound #ClaudeCode #AIAgents #SalesAI #GTM #B2BSales #AItools


✍️ The Author: Do Ngoc Hoan Founder of CookConnects.ca & Wizy.ca. Bridging the gap between advanced algorithms and business execution. I write for technical founders looking to scale their impact with AI and robust engineering.

← Blog