Blog
ENPL

AI cold outreach — the pipeline that works for me

Generating personalized offers for agritourism, carpentry, physiotherapy. AI takes a lead list, runs research, builds demo sites, drafts brand briefs and emails. Showing the pipeline structure.

·4 min read
AI cold outreach — the pipeline that works for me

Cold outreach via AI isn't spam-bombing. It's an individualized process where every lead gets materials made specifically for them, company research, brand brief, an actual demo site with their data. Showing the structure of my pipeline that runs for agritourism, carpentry, physiotherapy and other niches.

Philosophy

Classic outreach: "I send 1000 emails, 10 reply." Mine: "I make 10 emails, 5 reply."

Difference: each email has research + demo + a concrete idea. That costs 30 minutes of LLM time per lead but conversion is 10×. Numerically: 1000 × 1% = 10 replies vs 10 × 50% = 5 replies at 1/100 the time.

Pipeline in seven steps

1. Company research (Google Places + scraping)
2. Brand brief (LLM)
3. Design preset selection (manual based on industry)
4. Demo site generation (Next.js template)
5. Demo deploy to subdomain
6. SEO audit PDF
7. Email draft in Polish

Each step is a script. Chain: first 3 in n8n, last 4 in bash + Claude Code.

Step 1: Company research

A Vikunja task triggers the pipeline. n8n workflow:

[New Vikunja task in "Cold outreach Q3"]

[Google Places API: lookup name + address]

[Web scraping if site exists]

[Save to JSON: company-{slug}.json]

The JSON has: name, address, phone, hours, services, photos, social media, Google reviews.

Step 2: Brand brief

LLM call to Claude Sonnet 4.6 (cheaper, batchable):

Prompt template:
"Based on [research JSON], describe this company's brand voice.
Format:
- Tone (formal/casual/playful/luxury)
- Target audience
- 3 values they communicate
- 5 keywords for positioning
- Brand colors (from photos, if any)"

Output: 200-300 words of markdown. Not perfect, but 80% lands.

Step 3: Design preset

A human returns here. I have 5 visual presets for different niches:

PresetWhere it fits
agro-warm-stoneRustic agritourism
editorial-warmPremium guesthouses
editorial-mountainMountain destinations
workshop-craftCarpentry, crafts
medical-cleanPhysio, dentist, clinic

Manual because "vibe" is something the LLM still doesn't feel well.

Step 4: Demo site generation

The last n8n step triggers a script on the mini PC:

./scripts/generate-demo.sh \
  --slug company-name \
  --preset workshop-craft \
  --research /home/kkaletka/research/company-x.json \
  --brief /home/kkaletka/briefs/company-x.md

Script:

  1. Clones the Next.js template (demo-template/)
  2. Personalizes content (section names, copy, colors from the brief)
  3. Pulls reference images (if the client has them)
  4. Generates a portfolio thumbnail
  5. Pushes to /home/kkaletka/demo-{slug} on forge PC

Time: ~3 minutes per demo.

Step 5: Deploy

Script on forge:

ssh forge "cd /home/kkaletka/demo-{slug} && \
  docker compose up -d --build"
 
# Update Cloudflare ingress
./scripts/cloudflare-add-route.sh demo-{slug}.kamilkaletka.dev forge:{port}

The subdomain demo-{slug}.kamilkaletka.dev is alive in 30 seconds.

Step 6: SEO audit PDF

I generate an SEO report of the client's current site (if they have one) + suggestions:

./scripts/seo-audit.sh \
  --url www.client-company.pl \
  --output /home/kkaletka/audits/company-x.pdf

The audit has: PageSpeed, missing meta tags, structured data, top 10 niche keywords (Google Trends), comparison with 3 competitors. 3-page PDF.

Step 7: Email draft

Final step. Claude Code gets:

  • research JSON
  • brand brief
  • demo link
  • audit PDF
  • previous-conversations history (if any)

Generates a draft in Polish with concretes:

Hi {first name},
 
I was on your website. I see {concrete detail from research}.
I made a proposal for what a new version could look like:
{demo link}
 
Plus a short audit of the current site — mainly {concrete finding from audit}:
{PDF link}
 
No obligations. If it clicks — let's talk.
 
Best,
Kamil Kaletka
602 148 729

Every email is unique. Personalization sits in the things a spam-bot can't do, research, demo, audit.

What works, what doesn't

Works:

  • Conversion ~30-50% reply rate on 10 sent
  • Reactions like "wow no one made me a site before pitching"
  • The demo is strong social proof, the client sees what they'll get

Doesn't work:

  • Scale. 30 minutes of LLM per lead = max 5 leads per day
  • Some industries (law firms, finance) need a formal voice the LLM struggles with
  • Demos without actual client photos look generic, I ask for photos after first contact

Costs

Per lead:

  • Claude Sonnet 4.6 (research analysis + brief + draft): ~$0.30
  • Claude Opus 4.7 (final email personalization): ~$0.20
  • Google Places API: ~$0.05
  • Compute (forge VM): negligible
  • Total: ~$0.55 per lead

30% conversion × average 5000 PLN deal = +1500 PLN expected per lead. Math closes.


AI cold outreach isn't a spam bot with mailmerge. It's a pipeline that for each lead does research, brand strategy, prototype and a draft email. The "1000 emails" era is passé. The "10 emails, 30-min LLM each" era, works.