Learn / Infrastructure

Automating cold email infrastructure with Claude Code

Your competitors aren't sending better emails than you are. They're sending more. Volume is what wins now, and volume is an infrastructure problem long before it's a copy problem. So this is how to automate cold email infrastructure with Claude Code: generating the domains, buying them, provisioning the mailboxes, confirming warmup actually turned on, and rotating the whole set before it ages out. That pipeline is what sits underneath 1.5 million sends a month.

The automation layer only. Not a warmup tutorial, and not a sizing guide for how much infrastructure your target volume needs, both of which are linked at the bottom. Six steps, set up once, one prompt after that.

Why infrastructure is the step that eats your month

Infrastructure is just the domains you send from and how many you have. At ten domains that genuinely is the easy part. At scale, every little step eats the time that should go into copy, offers, and closing. Five of the six steps below replace clicking. The sixth replaces remembering, which is the one that saves accounts.

Step 1: generate domain names that read as normal

Domains have to follow a pattern or they get flagged as spam, so you need variations on your company name that read cleanly at a glance and still look trustworthy. Coming up with 30 of those and checking every one against a registrar takes far longer than anyone budgets for.

You give Claude the best practice once, as a file. Ours is short: company name as the prefix, a short industry-related suffix, and a .info domain, because those run about $3 each. From there it generates batches that follow the convention, pings the SpaceshipAPI to confirm what's actually available, and puts the survivors in the order.

The suffix pool is what makes them read as real. A logistics company routes toward cargo, freight, fleet. A solar company routes toward energy. One run on a logistics build produced 82 compliant candidates before a single availability check.

Generate 25 domain names for [company name]. Read the naming convention file, pick the top 25, check availability, and ask me before purchasing.

Setup is one Spaceship API key, one naming convention document, and that prompt. In Claude Codeit doesn't get more complicated than that.

Step 2: buy them without opening the registrar

Buying sounds like the easy half until you picture doing it 25 times, every time you expand or rotate. Since step one already proposed the list, step two is you saying go ahead. The only setup is a pre-funded registrar account: we keep $200 to $300 sitting in Spaceship so nothing stalls waiting on a card. Twenty-five domains runs about $77.

Step 3: build the mailbox workspace once, then reuse it

Mailboxes come from a reseller. We use Premium Inboxes, which sells Google Workspace accounts at a discount. Done by hand, every order means re-entering the card, the domain hosting platform, the domains, the sending platform details, the inbox counts, and the persona.

Automated, you take the API key from the reseller's settings, plug it into Claude Code, and name the company you're building for. It checks the workspaces you already have. If one exists, it reuses everything: same card, same login, same upload settings, same personas, same naming convention. If it doesn't, it creates one and asks only for the details it's missing.

Every order after that wires itself to the right workspace the moment you name the company, which you already did in step one. One thing while you're in there: drop your reseller discount code into the billing section once and it applies to every order after. Ours takes 20% off.

Step 4: spec the inboxes so orders stop erroring out

Every order needs a complete spec: naming convention, first name, last name, password, profile picture, forwarded domain, email provider. Miss one field and the order either errors out or the inboxes ship configured wrong, which you find out a week later when something isn't sending. So the persona and the mailbox format live in the same file as everything else. We use firstname@ or firstname.lastname@ and nothing fancier.

Place the Premium Inboxes order for [company name]. Persona is [persona name]. 50 inboxes across 25 domains.

Run it a few times and the persona and the counts become defaults you stop saying out loud. One prompt, one confirmation.

Step 5: check warmup every morning, because resellers forget

Some resellers don't consistently switch warmup on after an order, and nothing tells you when they miss one. Unless you're checking daily, fresh inboxes silently ship with no warming, then either sit for days delaying your launch or go live cold and tank the reputation on money you already spent.

The automated version is a cron that runs every morning against your sequencer API: scan for fresh orders, identify untagged inboxes, tag them, turn warming on. Ours also stamps each account with the date it was uploaded, so you know exactly when it started warming and therefore not to touch it for two weeks.

Warming isn't optional theatre. Gmail judges a new sender from its first message, and Google's sender guidelines spell out the authentication and complaint thresholds it measures a fresh domain against.

Step 6: the rotation bot, which is the one that matters

This is the step that quietly kills most cold email operations, because nobody feels the problem until the damage is done. Inboxes last somewhere between 60 and 90 days. If you aren't cycling fresh ones in as the old ones age out, reply rate declines slowly enough that you don't notice until it's on the floor.

We rotate on a three-part rule: the order is at least 45 days old, the next billing renewal is 14 days or fewer away, and the client has at least one active campaign. All three true, it rotates. The 45 days lets new domains warm before the old ones go cold. The 14-day window means you aren't paying for a fresh cycle of infrastructure you won't fully use. The campaign check stops you ordering inboxes for an account that isn't sending.

No new integrations. Same three APIs: the registrar for the new domains, the reseller for the new order and the old cancellation, the sequencer for the active campaign count. Set A warms while set B works, so one of the two is always good.

Build a rotation command. Check every workspace in Premium Inboxes for age and next billing date. Hit the sequencer for active campaign count. Flag any workspace at least 45 days old, with 14 days or fewer until renewal, and at least one active campaign. When I confirm, run the full onboarding flow on that workspace and cancel the old subscription.

After that it's a slash command: type it, read the list of workspaces that need ordering, confirm. It could run fully unattended and we choose not to, because anything that spends money keeps a human in the loop. Once a week is enough.

What the automated pipeline runs on
1.5M/mo
Cold emails this infrastructure supports
82
Compliant domain candidates generated in one run
$77
Cost of 25 .info domains at roughly $3 each

The expensive part of infrastructure was never the domains. It was the clicking.

The whole pipeline, before and after

StepThe manual versionWhat Claude Code does
1. Domain namesInvent variations, check them against your conventions, check each against the registrar.Reads the naming file, generates compliant candidates, pings Spaceship for availability.
2. PurchaseSearch each domain one at a time, add to cart, check out. Every expansion, every rotation.Buys the available list from a pre-funded balance once you say go ahead.
3. Mailbox workspaceRe-enter card, hosting platform, domains, sending platform, inbox counts and persona per order.Looks the company up, reuses its workspace, or creates one and asks only for what's missing.
4. Inbox specFill in naming format, names, password, picture, forwarding domain and provider without missing a field.Pulls persona and mailbox format from the same file, so the spec is identical every time.
5. Warmup checkOpen the sequencer, click into every new account, confirm warming and sending limits.A daily cron that tags fresh inboxes with their upload date and turns warming on.
6. RotationTrack order ages and renewal dates by hand, and hope you notice before reply rates slide.Flags anything tripping the 45-day rule, orders the replacement, cancels the old sub.

What this deliberately leaves out

Automation doesn't decide how much infrastructure you need. That's a sizing question, and the per-inbox send limits behind it are in how many cold emails to send per day. The fundamentals underneath the pipeline, authentication, warming, what actually burns a domain, are in the cold email infrastructure guide. The other jobs we hand to the same tool are in six ways we use Claude Code for cold email, and if you're building the channel from a standing start rather than just the plumbing, start with the complete cold email guide.

One honest caveat: automating this makes bad infrastructure decisions faster, not better. If the naming convention is sloppy or the rotation rule is wrong, you now buy burnt domains on a schedule. Get the rules right on 25 domains before you point it at 250.

tl;dr: put the naming convention, the persona, and the rotation rule into files once, hand Claude Code three API keys, and the whole pipeline becomes one prompt a week with a human confirming the spend.

FAQ

Can Claude Code actually buy domains for me?

Yes, through the registrar's API. We use Spaceship: Claude generates candidates against a naming convention file, checks each one for availability, and asks for confirmation before it spends anything. Pre-fund the registrar account so there's no card prompt mid-run. Twenty-five .info domains costs roughly $77 at about $3 each.

How often should you rotate cold email inboxes?

Sending inboxes stay healthy for roughly 60 to 90 days. We rotate on a three-part rule: the order is at least 45 days old, the next billing renewal is 14 days or fewer away, and the account has at least one active campaign. New domains then warm up before the old ones go cold, and you're not paying for a cycle you can't use.

Why do fresh inboxes ship without warmup turned on?

Resellers don't always switch it on automatically after an order, and nothing tells you when they miss one. Unless somebody checks daily, those inboxes either sit unused and delay the launch, or go into a live campaign completely cold. A morning script against your sequencer API that tags every new inbox and turns warming on removes the check entirely.

Which cold email sequencer does this work with?

Any sequencer with an API. The warmup check and the active-campaign lookup are ordinary API calls, so EmailBison, Smartlead, Instantly and PlusVibe all behave the same way. Pull the key from your sequencer's settings, hand it to Claude Code, and describe the check in plain language. Nothing here is specific to one sending platform.

Do I need to write code to automate cold email infrastructure?

No. Every script in this system was described to Claude Code in plain English and written by Claude. What you supply is account access (registrar key, reseller key, sequencer key), a naming convention, the persona and mailbox format, and the three rotation rules: minimum order age, days before renewal, and what counts as an account being in use.

If you'd rather run outbound at this volume without building any of it, that's what we do: infrastructure, lists, copy, and the replies, with 3,000+ sales calls booked for clients in the past year. Book a call and see if it fits. Or keep it DIY: the full video is on YouTube, and every training we've published sits on the trainings hub.

PS - the rotation bot is the step almost everyone skips, and it's the only one here that pays for itself while you're asleep.