← All postsOUTBOUND · 5 MIN READ · OCT 2026

Claude Code for cold outbound, with a human on every send

A checkpoint setup for using Claude Code in outbound: the agent researches and enriches, and a person approves the list, the first lines and every send.

Yes, Claude Code can do useful work in outbound without ever sending an email. The setup I would use has the agent research and enrich, and a person approving three things: the list, the first lines and the send.

I have not published a benchmark for this, and this post does not claim one. It is a method, with the checkpoints written down.

Why keep the agent away from the send button?

Because sending is the only step you cannot undo. A bad enrichment row takes a few minutes to fix. A bad batch of emails damages domain reputation, which takes weeks to rebuild, and it puts your name in front of real people.

I have sent 5.5M+ emails, and the failures I remember are almost never about writing. They are about the wrong list or the wrong infrastructure going out at speed. An agent that can send makes that failure faster. An agent that can only prepare makes it visible first.

What does the agent do, and what do I do?

Split the work by whether a mistake can be reversed.

StageAgentHuman checkpoint
Define the ICP and tiersDrafts rules from your notesYou approve the rules
Find companies and peopleRuns searches, proposes a listCheckpoint 1: approve the list
Enrich and verifyFills fields, flags gapsSpot-check 20 random rows
Score fit and signalScores and explains each rowYou read the reasons for the top tier
Draft first linesWrites from table facts onlyCheckpoint 2: approve the first lines
Load into the sending toolPrepares a fileCheckpoint 3: you upload and press send
Handle repliesSorts and summarisesYou answer the interested ones

Three checkpoints, and the agent has no write access to the sending tool at all.

How do I set it up?

  1. Write the rules down once. Put your ICP tiers, banned opening phrases and word limits in a project instruction file (Claude Code reads a CLAUDE.md at the start of a session). My classification approach is in how I classify an ICP, and the first-line rules are in AI first lines that don't sound like AI.
  2. Connect the data source through MCP. Claude Code can connect to tools over the Model Context Protocol. On Clay's side, the changelog lists Clay in Claude (26 January 2026), Advanced Search in Clay MCP (7 September 2026) and Clay Ads in the CLI (5 October 2026), plus a Clay Agent Plugin for coding agents. It does not mention Claude Code by name, so read Clay's docs before assuming a specific install path.
  3. Restrict permissions. Claude Code has permission rules and asks before running commands or editing files by default. Deny anything that touches your sending tool or CRM. Hooks can also run a script before or after an action, which is a good place to log what the agent did.
  4. Give it a working folder, not your accounts. The agent writes CSVs and notes to a folder. Moving a file into the sender is your job.
  5. Run a three-row test first. The same discipline I use in Clay, see how to stop burning Clay credits. Read every output before widening.

What do I check at each checkpoint?

Checkpoint 1, the list. Pull twenty rows at random and read them as a buyer would. Right title, right company type, right size? If more than a handful are wrong, the rules are wrong, not the rows. Check that the count matches what the market can actually supply, as in why your TAM is smaller than your inbox count.

Checkpoint 2, the first lines. Read at least ten, and every line for high-value accounts. Search for banned phrases, raw dates, blank names and any fact that is not in the table. This is the same read-the-outputs routine I use in my own tables, where a raw timestamp once leaked into an opener until I caught it.

Checkpoint 3, the send. Confirm the verified-address filter ran, the daily volume per inbox is within what the infrastructure can take, and the first batch is small. Then you press send.

What should I measure?

  • Rows proposed against rows approved at checkpoint 1
  • First lines rewritten by hand, as a share of the batch
  • Bounce rate on the first batch
  • Time saved on research, estimated honestly from a before-and-after of one list

If you cannot measure the last one, say so. A claimed time saving with no baseline is just a feeling.

Where this advice stops working

It is slower than letting an agent run end to end, and on a very small list the checkpoints take more attention than the research saved. It also assumes a person who actually reads. If the approvals become automatic, you have the risks of autonomy with an extra step on top.

I have also not tested every agent and model combination, and tool features change quickly. Re-check feature names against the vendor's own docs before you build.

If you are deciding how much of this to hand to an agent in the first place, qualify inbound leads with AI shows the same split on the inbound side, and what is a GTM engineer covers who owns the system. I'm Malik, and the rest of my work is on the about page.