How to systemise cold outreach so it's easy enough that you actually do it
Cold email replies at 1% to 3%, which means a hundred sends for one conversation. Here's the system that turns that from ten days of work into an afternoon.
Cold outreach is the cheapest customer acquisition channel most small businesses have, and it's the one most people abandon in week two. The reason is arithmetic rather than willpower. Cold emails reply at somewhere between 1% and 3%, so assuming the worse end of that range, you need to send around a hundred emails to get a single reply. Not a booked call, not a client, just a reply.
Done manually, finding those hundred businesses means searching Google, copying names into a spreadsheet, opening each website and writing each email from scratch. That's two days of work for one conversation, which is why people quit before luck has any surface area to land on. The fix isn't discipline. It's removing enough friction that a hundred emails takes an afternoon.
The version I run scrapes a directory, filters out the businesses that aren't a fit, merges the good ones into a base template, and drops finished drafts into my Gmail. I open the drafts folder, personalise one sentence, and send. About thirty seconds per lead. Three steps do the heavy lifting, and if you get those right the rest is plumbing.

Step one: pick your scraper source
Match the source to who you're going after. For local B2B, a Google Maps scraper is hard to beat. One pull gives you business name, website, phone, review count and category, which is everything you need to both qualify and contact. For anything where the buyer is a role rather than a business, like heads of operations or practice managers, LinkedIn is the better source.
Then stay with it. Switching sources mid-campaign makes your results impossible to read, because you've changed two things at once and can no longer tell which one moved the number.
Step two: decide your search inputs and filters
This is the step that decides whether the whole thing works, and it's the one people rush.
- Start with the search terms. Get into the head of the version of you that would do this manually. What would you actually type into Google, is there a suburb boundary, a category, a minimum review count that tells you the business is real and trading. Those answers become your search variables, and varying them is how you get a new batch each time you run the workflow.
- Then filter, because the scrape will always return more than you want. Most tools ship with basic filters built in, and something as simple as a minimum review count will strip out businesses that launched last Tuesday. Where the built-in filters fall short, add a step of your own. There are two ways to do that, and the difference matters.
- Regex handles anything binary, and it's free. Is the website field empty, does the business name contain "budget", is the category wrong. Cut those rows before they cost you anything downstream.
- An LLM handles anything that needs judgement, and it costs credits. Pass the scraped fields across with a criteria prompt and let it make the call on fit. It runs slower and it bills per row, so keep it for the decisions a regex genuinely can't make.
Step three: get the drafts into your inbox in bulk
Build a base template, then leave one gap in it. The structure I use is three paragraphs: a personalised opening, two lines on who I am, and the CTA. The second and third never change, so there's no reason to regenerate them fifty times.
The gap is the first paragraph. I leave it as a placeholder containing the business website, which works as a prompt to me rather than to a machine. Go and look at their site, find one true thing, write one sentence.
That's also why I don't hand the whole email to an LLM. I've tried it, and it burns credits producing something that reads like a machine trying to sound like a person, because that's what it is. The value in a cold email sits entirely in the human-ness of the opening hook, and that takes thirty seconds when the rest of the draft is already sitting there waiting for you. Automate the parts that don't need you and keep the part that does.
What it feels like to run
You open n8n, change the suburb and the category, and run it. Twenty to fifty drafts appear in your drafts folder with the recipient address already filled in, and you work down the list adding a sentence to each and sending as you go. That's the whole job, and it's small enough that you'll still do it on a Thursday when you're tired. Run it for five days and you should have a reply.
The one thing that will bite you is send volume. Around twenty a day is the sweet spot, and pushing much past that teaches mail providers to treat your domain as a spam source. Once that reputation is set your outbound stops landing at all, including the emails that matter, so stagger your sends. The rate limit node in the workflow above exists for exactly that reason.
Building it yourself
If you want to start from scratch, this prompt will get you most of the way there:
I want to automate cold email outreach via n8n. The process should be: I vary the search terms (suburb, business category), it scrapes Google Business and returns the listings, filters out the ones that aren't worth reaching out to, then merges the relevant fields into draft copy so it all lands in my inbox as a draft ready to go. Ask me any clarifying questions, then give it to me as a JSON I can import into n8n.
Answer the clarifying questions properly rather than skipping through them. The quality of your filter criteria is the quality of your list, and the quality of your list is most of the result.
Automation Corner is where I break down business processes worth automating, and how to actually build them. If you'd rather have it built for you, book a 15 minute call.