I Automated Cold Email With Claude Code & n8n (Full Guide)
If you’re running cold email campaigns right now, you’re probably getting sick and tired of juggling five to ten different tools, messing around with CSV files, or clicking around in Clay tables trying to get every column and row to finish running so that you can enrich your lead list.
I built two campaign workflows in Claude Code that take care of all of this for me. One of them is a multi-signal campaign builder that takes about 15 to 20 minutes to set up with you basically just chatting with Claude Code and answering its questions. Once it has all the information it needs, it sets the entire campaign up for you end-to-end and notifies you in Slack as soon as that is done.
The second workflow is LinkedIn engagement monitoring, and this is my favorite workflow. It gets the highest positive reply rate of anything that I’ve built so far. It monitors people engaging with yours or your competitors’ LinkedIn posts, qualifies them, personalizes the messaging to them, and then adds them into multi-channel campaigns.
I’m going to walk you through exactly how these two workflows run.
The Multi-Signal Campaign Builder
Let’s start with the multi-signal campaign builder. Claude Code is going to ask you a bunch of questions to understand who you want to target, what signals you want to run, job titles, stuff like that. And then once it has all that information, it’s going to kick things off.
Claude Code is the one running everything, making sure that each step happens in sequence, and it’s basically going to chain through every single step, running batches of rows at a time to run them faster instead of just running them one at a time.
Step 1: Company Search
The lead database that I’m loving at the moment is AI Arc. The first step that we’re going to do is probe AI Arc to find out how many companies meet your search criteria in their lead database.
Once you get that number back from Claude Code, it’s going to tell you, “Okay, is this enough companies for you? Is it too many? Do you need to adjust any of the settings?” You have a chance right there to just dial things in a little bit more. Maybe you want to adjust the headcount, the employee headcount range slightly, or maybe you want to filter out some technologies.
Then it’s going to return the number again and say to you, “We have this many AR credits available. If we pull all of these companies, we’re going to have this many credits available after that finishes.” It’s going to tell you how many credits that’s going to use to pull those companies. You’re going to say, “Okay, let’s go ahead.”
So it’s going to run that and pull those companies into a Google Sheet. A Google Sheet is going to be your single source of truth that’s very easy for you to navigate. Everyone in the world knows how to use Google Sheets.
Step 2: Company Qualification
It’s going to start qualifying those companies. Even though this is Claude running this, we don’t use the Anthropic API because it’s more expensive. We use cheaper models, the cheapest models available for this—OpenAI 4.0 mini or 4.1 mini.
We’re going to use a prompt to analyze the company description of every single company in that list and determine if they’re an actual fit for our ICP or not. And it’s going to write the result to the Google Sheet in batches. You’re going to see batches of rows just getting updated with like, “Yes, yes, yes, yes, yes, no, yes, yes” until it completes.
In some cases, a company description from AI Arc is empty, missing, or just less than like 20 words. That’s not enough. So we want to get a more detailed company description so that we can accurately determine if this company is an ICP fit. Maybe they’re a competitor, for example.
Claude Code is going to run Serper.dev on that company and get a detailed company description from Google. Then OpenAI is going to run to qualify that company and write the results to the sheet.
Step 3: Signal Waterfall
Once all of that has happened, we move on to the signal waterfall. We’re going to check for LinkedIn posts or new enroll signals or relevant job posts at that company. You can choose whether to run all of those, or some of those, or none of those. It’s totally up to you. The tool that we use for that is various Apify scrapers that are built into the workflow.
Step 4: People Search
From there, we’re going to do the people search and find decision makers at the qualified companies only. This is why we wanted to qualify those companies first of all, because a bunch of them are going to be just not a fit, and you don’t want to waste more AI Arc credits pulling people from those companies that are just not a fit. We only pull people at the qualified companies to save credits and make sure that we’re reaching out to the right people.
Once we pull those people, we’re going to qualify them by job title. Even if you tell AI Arc, “Hey, I want to find people like founder, CEO, managing director, business owner, things like this,” there are going to be some people that slip through who are just not a fit. For example, they might have a title like “executive assistant to the CEO.” Obviously that person is not a fit.
We run another GPT prompt to qualify them based on the job titles. We only run downstream enrichments on the people with qualified job titles at the qualified companies.
Step 5: Email Export and Validation
From there, we then do the email export. The great thing about AI Arc, or one of the many great things about it, is that they give you email addresses that have been validated within the last 30 days by BounceBan. If they have not been validated in the last 30 days, then they will validate it with BounceBan during export. So you know that these email addresses are good to send to.
The great thing about BounceBan is that they can validate catch-all email addresses and determine if those are deliverable or not. Both of those tools are excellent.
Step 6: Personalization
From there, we’re going to write the personalizations. Based on the best signal that’s been found for each lead, we’re going to write a personalization as an opening sentence—an observation based on that signal that was detected to make the reason for the outreach relevant. When you think about why am I reaching out to you specifically right now, this is the prompt that’s going to generate that sentence.
Personalizations get written to the Google sheet so you’re able to review that.
Step 7: Add to Sequencers
Those leads are going to get added to your LinkedIn sequencer. We like to use HeyReach. You can also use like Growth Machine or Expandi or Lemlist or anything you like. And also your cold email sequencer—we use SmartLead. You can run this with Instantly or QuickMail or Plus viable, whatever it is you want to run.
The LinkedIn Engagement Workflow
Now let’s look at the LinkedIn engagement workflow. This is by far my best performing campaign type. It’s actually two campaign types because you have your people that are posting every day—we’ll call them post authors—and then you have everyone engaging with them. There’s two groups of people: the commenters and then you have reactors. Those are people who are just clicking like.
A like doesn’t really count for much. They’re still showing some level of interest in the post topic, but they’re not spending the time to write their own thoughts about it. So there are more of them, but it’s less of a strong signal. But it’s still a very strong one and we’re seeing some excellent results with this.
Let’s walk through how this workflow works. Once it’s set up and running, you don’t need to touch it. It’s an evergreen workflow.
Step 1: Scrape Engagers
You’ve got your seed list of post authors. They’re posting every single day, hopefully, and they’re getting tons of engagement on their posts. We scrape the engagers using an Apify scraper to scrape these people. It gives us people that commented on each post and people who reacted to each post on that seed list of authors.
Step 2: Gate Filters
From there, we have our gate filters. This is just to make sure that we don’t reach out to anybody that’s already ran through this workflow and has already been added to a campaign. It also checks that they’re not on our block list. If they’ve been disqualified in the past, we look them up in our block list, and if they are there, then it stops right here. If they’re not on the block list, then they continue to the next step.
Step 3: Initial Filtering
When we run that initial Apify actor, it gives us a little bit of data on these leads. I think it gives us their headline, but that is enough to filter out some of the unqualified people. For example, if they’re competitors, then this is easy to filter out those without letting them run downstream, and it’s a great way to save usage and credits in Apify and other tools that you’re using.
We use the data we have available to do an initial filtering step.
Step 4: Full Profile Enrichment
From there, we run another Apify actor to get the full profiles of the people that have reacted to those posts. This is going to give you all of their work history, their current job title, their current location, their industry, and their company information. You’re going to have all the information that you need at this point to be able to qualify those leads.
Step 5: Detailed ICP Check
From there, we run another ICP check, and this time it’s in a lot more detail. This prompt is pretty long and it has a lot of inputs so that we’re able to filter people in various ways.
Step 6: Email Validation
If they pass that stage and they’re qualified leads, we run email validation on them. We look them up in AI Arc, which is my lead database of choice at the moment, and we see if AI Arc has a valid email address for them. Any email address that comes from AI Arc has been validated within the last 30 days, or if not, it gets validated during export.
You know that the email address you get is valid and it’s validated with BounceBan, that is probably my favorite email validation tool because it validates super fast and it tells you if catch-all emails are deliverable or not.
Step 7: Personalize Messaging
From there, we personalize the messaging. We run a series of GPT prompts to make the messaging a lot more relevant to each lead.
Step 8: Load Into Sequencers
And from there, we load them into our sequencer. For LinkedIn sequencers, I personally use HeyReach, but you can use like Growth Machine or Expandi or Lemlist or any tool you like.
And then for the cold email sequencer, I load them into SmartLead. That’s my sequencer of choice for cold email. You could load them into Instantly or QuickMail.
The Results
These two workflows are just two of the strategies that I’m using to generate 250 positive replies per month for my own business and the exact strategies I’m using for my clients. The LinkedIn engagement workflow, in particular, has been an absolute game-changer. The response rates are significantly higher because you’re reaching out based on actual engagement signals—people who have already shown interest in topics related to what you do.
The beauty of these automated workflows is that once they’re set up, they run continuously in the background. You wake up every morning to a pipeline of qualified leads who have already been personalized to, validated, and loaded into your outreach sequences. No more manual CSV exports, no more clicking around in multiple tools, no more wondering if your data is up to date.
Want help automating your lead generation? Book a call