SOULWIRE STUDIOCONCEPT BUILDBUILT WITH N8N + WEB SCRAPER + GPT-4.1-MINI + AIRTABLEFREE TO DOWNLOADSOULWIRE STUDIOCONCEPT BUILDBUILT WITH N8N + WEB SCRAPER + GPT-4.1-MINI + AIRTABLEFREE TO DOWNLOAD
LEAD GENINTRODUCTION

The Cold Email Personalizer

A lead-to-draft outreach system that scrapes real company context and writes personalized cold emails, with every draft held in Airtable for review before it sends.

Difficulty
Intermediate
Stack
n8n · Web scraper · GPT-4.1-mini · Airtable
Cost
n8n + scraper (~$50/mo total)
01

Section One

What You're Building

A system that turns a raw list of leads into a folder of cold emails that actually reference something real about the business they're going to. It pulls your lead list, drops any row with no email, and works through the rest one at a time. For each lead it scrapes the company's own website, hands that real page copy plus the lead's name, title, and city to GPT-4.1-mini, and gets back a subject line and a short personalized body written in your voice.

Every draft lands in Airtable, not an inbox. Nothing sends on its own. You read the batch, fix anything that reads generic, and only then point a sender tool at the ones you'd actually put your name on.

Fig. 1 — system flow

Source

Lead list

Name, title, email, city, company domain

Filter

Loop over leads

Drop no-email rows, continue past bad scrapes

Personalize

Scrape + GPT-4.1-mini

Real page copy → subject + body

Review

Airtable draft

Human checkpoint before any sender connects

The rule that makes this work

The model only writes from what it actually scraped off the lead's site. If the scrape fails, the row fails gracefully instead of quietly feeding the model an error message dressed up as content. That one rule is the difference between a draft you skim and approve, and a draft you have to fact-check line by line.

02

Section Two

What You Need

Prerequisites

  • Lead list with name, title, email, city, and company domain — verified emails only
  • n8n starter plan (this runs a batch at a time, not on a schedule)
  • Web scraper credential set up for homepage/about-page copy
  • GPT-4.1-mini API key
  • Airtable base with a drafts table (subject, body, name, title, company, status)

The Stack

n8nAutomation engine
Web scraperReal page copy per lead
GPT-4.1-miniWrites subject + body
AirtableReview queue

A note on Claude. You are not wiring nodes by hand. You connect Claude to your n8n account, describe the system in plain language, and Claude builds it, tests it, and fixes its own errors while you watch. Each step below is either a two-minute setup task or a prompt you paste into Claude.

Total stack cost if you're starting from zero: usually under $50 a month, most of it n8n and lead-sourcing credits. The writing step itself runs on GPT-4.1-mini and costs next to nothing per email.

III

Section Three

Step-by-Step Build

01

Step One

Connect Claude to n8n

In n8n: Settings, then n8n API, create an API key. In Claude (claude.ai): Settings, Connectors, Add custom connector, name it n8n, and use your instance MCP URL with the API key. Once connected, Claude can create, edit, run, and debug workflows in your account.

02

Step Two

Two-minute prerequisites

Load your lead list into a Google Sheet or CSV n8n can read. Set up your scraper credential and an Airtable base with a table for drafts (subject, body, name, title, company, status).

03

Step Three

Paste the build prompt

Open a Claude chat with the n8n connector on, paste the prompt below with your values filled in, then paste the voice prompt from the next step when Claude asks for it. Watch it build.

Copy this: the build prompt

Connect to my n8n and build a workflow called Cold Email Personalizer. My values: lead sheet URL = [YOURS], Airtable base ID = [YOURS], Airtable table = [YOURS], booking link = [YOURS].

The system, in order:
1. Read leads from my Google Sheet (or CSV): name, job title, email, city, company domain.
2. Filter: drop any row with no email.
3. Loop over leads one at a time, continue on error so one bad scrape never kills the run.
4. Scrape each lead's company domain for real homepage/about-page copy. If the site won't load, fail that row gracefully. Never pass an error message downstream as if it were content.
5. A GPT-4.1-mini node that reads the lead's name, title, company, city, and scraped site copy, and writes ONE personalized cold email: a subject line and a short body in my voice, closing with an invite to book a call at my booking link.
6. Save the subject, body, and lead info to my Airtable base as a new draft row. Nothing sends automatically.

Use my existing n8n credentials for the scraper, GPT-4.1-mini, and Airtable. Build it, then validate it, and tell me what you built before running anything.
OUTPUT: 1 n8n workflow · 6 nodes

Why the order matters

Scrape first, write second. The model never sees a lead without also seeing something true about their business, which is what keeps every draft grounded instead of generic. Dedupe your lead list by email before it ever loads into the sheet — it's the difference between 500 raw leads and a clean list you're not double-drafting.

04

Step Four

Paste the voice prompt into the writing node

This is the asset. It's what makes a draft sound like you instead of every other AI cold email. Replace the bracketed lines with your name, business, and audience. Keep the structure rules and the ban exactly as written.

Copy this: the voice prompt

You write cold outbound emails for [NAME] at [YOUR BUSINESS], which helps [YOUR AUDIENCE] with [WHAT YOU DO].

Voice: direct, specific, no hype, no "I hope this finds you well." Reference one real detail from the lead's company, pulled from the scraped site copy, in the first line.

Structure: one-line personalized hook, two sentences connecting their situation to the problem you solve, one sentence naming a concrete result you've delivered before, then a single soft ask to book a call.

Keep the body under 120 words. Subject line under 60 characters.

Never invent facts not present in the scraped content or lead data.

Why the ban matters

"Never invent facts" is the trust anchor. It's what lets you review a batch of drafts in minutes instead of fact-checking every line, because the ban already did that job before the draft reached Airtable.

05

Step Five

Test it in small batches

Run it against ten or twenty leads first. Read the drafts in Airtable. Check that the personalization holds up and the voice sounds like you, not a template with names swapped in.

06

Step Six

Connect a sender when ready

Airtable is the holding pen, not the send button. Wire up your sender of choice (Instantly, Smartlead, or similar) only after a batch has passed review and you trust the voice consistently.

Sample draft output — illustrative example

Subject: A faster way to handle intake at [Company]. Hi [Name], I saw [Company] runs a lean team out of [City] handling a lot of manual coordination work. That kind of volume usually means someone's rebuilding the same process by hand every week. We helped a similarly sized team automate their intake and reporting and get real hours back. Worth a quick 30-minute audit call to see if something similar fits here? — Illustrative example from the guide; the actual build was tested against a real, verified lead list before scaling up.

Good to know

If the writing node ever returns something that reads generic, it's almost always a thin scrape: a JS-heavy homepage the scraper couldn't read, not the prompt. Fix the scrape before you touch the voice prompt.

04

Section Four

The Upgrade Path

Run the first batch or two as a review exercise, not just an error check. You're tuning the voice prompt against real drafts. Once a batch clears review with no edits, raise the limit and run the full list.

From there the same skeleton branches. Add a reply-tracking step so responses route into a CRM stage instead of sitting in an inbox. Split the voice prompt by industry so different verticals get different proof points and a CTA that actually matches their world. And treat the lead list the same way as a content source list: prune sources that never convert, add ones that do.

"Never invent facts" is the trust anchor. It's what lets you review a batch of drafts in minutes instead of fact-checking every line.

— The Cold Email Personalizer, p. 6

Or this

§ Fin.

Rather have it built for you?

This guide is one system from the Soulwire Studio workflow library. We build AI automations for businesses that run on process: intake, scheduling, proposals, compliance-heavy operations. If you'd rather spend your time closing deals than debugging lead gen, book an audit and we'll find the automation hiding in your business.

Soulwire Studio

Systems with soul: custom websites, AI automation, and the digital ecosystems behind them, built for mission-driven businesses.

© 2026 Soulwire Studio · Veteran-owned · San Antonio, TX