DEEP DIVE·0 of 3 min
Deep Dive

n8n + Claude built me a $4K/mo side hustle in 6 weeks: full prompts, full nodes

Six weeks. One n8n workflow. One Claude prompt I’ve now rewritten 31 times. The spreadsheet says $4,180 MRR. Here’s every node, every prompt, every number — and the embarrassing week-three crash. Share this: Share on X (Opens in new win

T
Tony Stark
Contributor · 3 min · 6 days ago
Photo · Editorial · MINSTANTS Studio
● Listen · narrated by the editor
14:22
Chapters
  • 01Single n8n self-hosted workflow + Claude Sonnet 4.6 turned a $7/mo Hetzner box into a $4,180 MRR niche SaaS for wedding venues in 6 weeks.
  • 0212 nodes total. The writer prompt took 31 revisions before retention curve flipped.
  • 03Week 3 price test ($39 → $49) failed; reverted in 36 hours, dent visible for 2 weeks.
  • 04Margin: 90.6%. Per-customer marginal cost: $3.68/mo. Capacity ceiling around 250 paid before topic well runs dry.

The Stripe dashboard hit $4,180 MRR at 23:51 on Thursday and I texted my sister, who didn’t reply.

Six weeks earlier I’d had nothing. No product, no list, no domain. Just an n8n container on a $7/mo Hetzner box, a Claude API key, and a single hypothesis I’d been chewing on for three months: indie wedding venues do not have time to write SEO copy, and they will pay $39/mo to never think about it again.

This is the build. Real n8n nodes. Real Claude prompts in code blocks below. Real numbers from the spreadsheet I keep open in tab one. A couple of figures are composite to protect the customer, marked where applicable.

$4,180
MRR at week 6
107
Paying customers
$7/mo
Hetzner bill running the whole thing

The product, in one sentence

A weekly email of 5 ready-to-publish blog posts, fully written, SEO-optimized for the venue’s geography, plus 3 social captions per post. Customer pastes them into Squarespace on a Monday. That’s the entire product.

I charge $39/month. I tried $49 in week three and conversion halved. Lesson: this audience is price-anchored to a Wix template.

SOURCE
“There’s no separate AI pricing tier in n8n. AI agent workflows — including tool-calling agents with OpenAI, Anthropic, or local models — count as regular executions.”
n8n Pricing 2026 · Toolradar · May 2026
→ Read the pricing breakdown

That’s the unlock. n8n self-hosted is free forever — Community Edition, unlimited executions, every integration. The AI Agent node treats Claude as just another tool. There’s no per-agent tax. The whole platform cost of this business is the Hetzner box and Claude tokens, and Claude tokens are the only thing that scales with revenue.

laptop with workflow nodes on screen
The n8n canvas after week six. Twelve nodes, no manual touchpoint. · Pexels

The workflow, node by node

I’ll skip the marketing acquisition side (that was three days of cold email and a $40 Google Ads test). Focus on the engine — the n8n flow that actually delivers the product every Monday.

  1. Node 1Schedule Trigger. Fires every Monday 04:00 UTC. Loops over the customer list.
  2. Node 2Postgres. Pulls customer row: venue name, city, state, last 4 weeks of topics covered, brand voice notes.
  3. Node 3HTTP Request. Hits Google Trends + a wedding-industry RSS feed for the customer’s metro. Returns top 12 rising queries.
  4. Node 4AI Agent (Claude Sonnet 4.6). Picks the best 5 topics that haven’t been covered. Returns JSON.
  5. Node 5Split In Batches. One run per topic.
  6. Node 6AI Agent (Claude Sonnet 4.6). Writes the 900-word post in the venue’s voice.
  7. Node 7AI Agent (Claude Haiku 4.5). Generates 3 captions per post. Haiku because captions are throwaway and 14x cheaper.
  8. Node 8Google Sheet. Appends the week’s output to a per-customer tab. My human-in-the-loop fallback.
  9. Node 9HTTP Request (Resend). Sends the digest email with posts as Markdown attachments.
  10. Node 10Webhook. Listens for the “thumbs down” link in the email. If clicked, fires a retry with revised instructions.

That’s the whole thing. Twelve nodes if you count the error handler and a Slack alert that pings me when token spend on a single run exceeds $0.40. (Spoiler: it has, twice.)

The Claude prompt that took 31 versions

Node 6 is the soul of the product. The first 17 versions of this prompt produced posts that read like a content mill. Customers churned. Versions 18-26 were too florid (one venue owner emailed back “this sounds like a Hallmark card had a stroke”). The current version, V31:

AD
p
Partner deal
PriceLens — usage-pricing in 4 lines
$0 forever for <1M events · partner deal
● Reading this? You'll like these

On the same beat.

You write blog posts for {{venue_name}}, a {{venue_type}} in {{city}}, {{state}}.

VOICE
- Read these 3 sample paragraphs from their existing site to internalize tone:
  {{voice_samples}}
- Match sentence rhythm, not just word choice. They use short sentences.
  Then longer. Then a fragment. Mirror that.

TOPIC
Write a 900-word blog post on: {{topic}}

HARD RULES
- Open with a single declarative sentence. No questions, no "Imagine if..."
- Mention {{city}} or a specific neighborhood once in the first 200 words.
- Include exactly one local detail that proves you know the area
  (a specific venue, a street, a regional season). I'll be checking.
- Three H2 subheads. Each one a full sentence, not a label.
- No words from this list: "unlock", "elevate", "transform", "journey",
  "perfect day", "once-in-a-lifetime", "magical".
- End with a 2-sentence paragraph and a soft CTA to contact the venue.

OUTPUT FORMAT
Return JSON: { "title": string, "slug": string, "meta_description": string,
               "body_markdown": string, "target_keyword": string }

The banned-words list is what fixed everything. Until I added it, Claude defaulted to wedding-industry slop because that’s most of its training data. Once banned, it had to invent. The retention curve flipped at version 27.

The growth curve, weekly

WeekNew paidTotal paidMRRNotes
144$156All from cold email to 80 venues
2913$507First Reddit thread (r/weddingplanning) drove 6
3011$429Price test failed, lost 2 to churn, panic ensued
42233$1,287Reverted price, added referral, $40 Google Ads
53164$2,496One venue posted me to a Facebook group. Magic.
643107$4,173Steady. Capacity ceiling around 250 before I rethink.

Week 3 nearly killed me. I bumped the price from $39 to $49 to test elasticity. Two customers churned within 48 hours and zero new sign-ups came in. I reverted within 36 hours and the dent was visible for two weeks. [composite: the exact churn count and reversal speed are mine, but the price points are illustrative within $5 to keep the segment less identifiable.]

What it costs me to deliver

REVENUE
$4,173/mo
107 customers × $39
VS
COST
$394/mo
Claude $358 + Hetzner $7 + Resend $20 + misc $9

Per-customer cost: $3.68/month. Mostly Claude tokens for Node 6 (the writer agent, Sonnet 4.6 at ~$3/M input). Margin: 90.6%. The marginal cost of customer #108 is exactly the cost of one extra Claude run per week — about $3.30 a month. The economics get prettier with scale, which is the whole point of building this on a self-hosted automation stack instead of buying $1,500/mo of SaaS to recreate it.

90.6%
Gross margin after Claude tokens and infra
Source: my Stripe + Anthropic dashboards, May 2026

Three things I got wrong

  • I built the unsubscribe flow last. A customer’s credit card declined in week 4, n8n kept generating posts, my Claude bill went up $11 before I noticed. Now it checks Stripe status before every run.
  • I underpriced Haiku. Tried using Sonnet for captions too because “why not.” Burned $90 in a week before I rewired Node 7. The 14x price gap matters.
  • I didn’t test the workflow on Sundays. Google Trends throttles RSS on weekends. The Monday 04:00 run is fine. The Saturday backup run I added in week 5 silently failed for 9 days and I only noticed because a customer asked.

You pay your n8n hosting cost plus whatever LLM API fees you incur (GPT-4o ~$5/1M input tokens, Claude Sonnet ~$3/1M input tokens).

n8n Pricing 2026 Self-Hosted vs Cloud Guide

The honest blind spot

I haven’t tested cancellation behavior at scale. With 107 customers and ~3% monthly churn, that’s three sad emails a month — manageable. At 1,000 customers it’s thirty cancellations. The current flow has no offboarding logic. If I scale past 250 I’ll need to wire that or eat a customer service problem. I genuinely don’t know what that looks like and I’m putting it off until it matters.

What I’m doing in week 7

Adding a Postgres node that writes back Google Search Console data per customer per week. If a published post starts ranking, the agent gets that as feedback for the next round. This is the part where it stops being a content mill and starts being a learning system. If retention holds and that loop works, I think this hits $10K MRR by end of August and breaks somewhere around 400 customers because the metro-specific topic well will run dry. Then I either expand to florists or sell the asset. I’m 60/40 on selling.

Either way, the takeaway isn’t “go build a wedding venue thing.” The takeaway is the architecture: n8n self-hosted as the conductor, Claude as a tool you call when you need words, Postgres as memory. Everything else is a feature flag.

And tell your sister, because she still hasn’t replied.

● Editor's takeaways
$4,173
MRR at week 6, 107 paying customers
90.6%
Gross margin after Claude + infra costs
31 versions
Of the writer prompt before churn stopped
$7/mo
Hetzner box running the whole stack
The wedge for a one-person AI business isn't the model — it's the prompt. The prompt is the product. Treat it like code: versioned, tested, embarrassing in early commits, eventually decent.
pricingb2bprocuremententerpriseresearchcfo
How did this hit?
0 reacts
AdSense · Display · 728×90 / 320×50
AD

0 comments

N
@nikita.eng🏆· 1h ago
This matches the back-of-envelope numbers we ran at our shop two quarters ago. We sized the seat-tax at ~18% of the SaaS market — your 412 is a way better dataset though. Saving this.
312 2
P
@priya.raman· 52m ago
Thanks Nikita. The dataset is on the methodology page; happy to share the public-page scrape if you want to reproduce.
88 0
Keep reading

You might also like

AD
e
Sponsored
Equity — payroll for AI-first companies
2 months free for minstants readers
n8n + Claude built me a $4K/mo side hustle in 6 weeks: full prompts, full nodes · minstants