u/lowkeymehdi

I stopped writing blog posts. An automation does it every 2 days. I just merge the PR.

I run an e-com website and a SaaS app. Content marketing matters for both, but I was drowning in it.

Every week, the same grind. Pick a keyword. Research intent. Write 2000 words. Format the frontmatter. Add comparison tables. Structure the FAQs. Push to GitHub. Repeat. That's 3-4 hours gone before I've done any actual work on my businesses.

So I built a system to fire myself from that job.

Here's what happens now without me touching anything:

Every 2 days, GitHub Actions wakes up on a cron schedule, spins up a runner, and calls the Claude API with a detailed system prompt, tone rules, SEO structure, word count minimums, FAQ format, internal linking instructions. The output isn't robotic filler. The posts read like a knowledgeable human wrote them: opinionated where it counts, structured for skimmability, built around real search intent.

The script commits the file to a new branch and opens a Pull Request automatically. I get a notification on my phone, read through the post, and either merge or close. That's my only involvement. Maybe 2-4 minutes.

The numbers since I fired it up:

16 posts published. Zero written manually.

If I'd done each one myself, keyword research, writing, SEO formatting, internal linking, frontmatter, pushing to GitHub, that's conservatively 3-4 hours per post. 48-64 hours of work I never did. Roughly 6-8 full working days handed back to me.

A few things that made this actually work in production:

  • Topics are never random : I feed it a prioritized keyword list. I stay in control of strategy; the AI just executes. Time-sensitive topics get written first, evergreen content fills the rest of the pipeline.
  • Deduplication is built in : it checks existing posts and skips any keyword already covered. No duplicates, no wasted runs.
  • Nothing goes live without my approval : the PR system keeps me in the loop without pulling me into the workflow.
  • No VPS, no server, no always-on machine : it runs entirely on GitHub's free infrastructure.

The part most people get wrong about AI content:

They let the AI decide what to write about. I don't. Topic selection, keyword priority, content structure, that's all mine. Claude is a writing engine, not a strategist. The moment you hand over strategy, you lose the thing that makes your content actually useful to your audience.

The result is posts that don't feel generated. They feel considered. Because the thinking behind them is human - the labor just isn't.

The whole thing cost me a few hours to build once. Now it just runs.

Happy to answer questions if anyone wants to build something similar for their niche site or SaaS.

reddit.com
u/lowkeymehdi — 3 days ago

I stopped writing blog posts. An automation does it every 2 days. I just merge the PR.

I run an e-com website and a SaaS app. Content marketing matters for both, but I was drowning in it.

Every week, the same grind. Pick a keyword. Research intent. Write 2000 words. Format the frontmatter. Add comparison tables. Structure the FAQs. Push to GitHub. Repeat. That's 3-4 hours gone before I've done any actual work on my businesses.

So I built a system to fire myself from that job.

Here's what happens now without me touching anything:

Every 2 days, GitHub Actions wakes up on a cron schedule, spins up a runner, and calls the Claude API with a detailed system prompt, tone rules, SEO structure, word count minimums, FAQ format, internal linking instructions. The output isn't robotic filler. The posts read like a knowledgeable human wrote them: opinionated where it counts, structured for skimmability, built around real search intent.

The script commits the file to a new branch and opens a Pull Request automatically. I get a notification on my phone, read through the post, and either merge or close. That's my only involvement. Maybe 2-4 minutes.

The numbers since I fired it up:

16 posts published. Zero written manually.

If I'd done each one myself, keyword research, writing, SEO formatting, internal linking, frontmatter, pushing to GitHub, that's conservatively 3-4 hours per post. 48-64 hours of work I never did. Roughly 6-8 full working days handed back to me.

A few things that made this actually work in production:

  • Topics are never random : I feed it a prioritized keyword list. I stay in control of strategy; the AI just executes. Time-sensitive topics get written first, evergreen content fills the rest of the pipeline.
  • Deduplication is built in : it checks existing posts and skips any keyword already covered. No duplicates, no wasted runs.
  • Nothing goes live without my approval : the PR system keeps me in the loop without pulling me into the workflow.
  • No VPS, no server, no always-on machine : it runs entirely on GitHub's free infrastructure.

The part most people get wrong about AI content:

They let the AI decide what to write about. I don't. Topic selection, keyword priority, content structure, that's all mine. Claude is a writing engine, not a strategist. The moment you hand over strategy, you lose the thing that makes your content actually useful to your audience.

The result is posts that don't feel generated. They feel considered. Because the thinking behind them is human - the labor just isn't.

The whole thing cost me a few hours to build once. Now it just runs.

Happy to answer questions if anyone wants to build something similar for their niche site or SaaS.

reddit.com
u/lowkeymehdi — 3 days ago

Best outreach strategy for local service businesses with no website?

i’ve been testing a local lead gen strategy targeting UK trades businesses (plumbers, electricians, heating engineers, etc.).

I built this automated system and managed to scrap ~700 businesses from Google Maps and filtered them down to 46 “hot leads”:

  • lots of Google reviews
  • active businesses
  • decent reputation
  • but no website

My current outreach angle is pretty simple:

  • compliment their reputation/reviews
  • mention I noticed they don’t have a website
  • ask whether they’ve ever considered one to bring in more direct enquiries

The interesting part is:
instead of pitching immediately, I tell them I already put together a homepage concept for their business and can send it over if they’d like to see it.

My thinking is that showing something visual first lowers resistance a lot more than trying to sell the “idea” of a website.

Long term, I’m also thinking about upselling:

  • automated booking systems
  • quote request automation
  • missed-call text back
  • review collection systems
  • AI/chat automations for lead handling

Basically helping small local businesses capture and convert more leads automatically.

Curious to hear from people experienced in outreach/sales:

  • Would you approach these businesses differently?
  • Better outreach channels for this niche?
  • Would you charge upfront, monthly, or both?
  • Any major mistakes/red flags with this strategy?
reddit.com
u/lowkeymehdi — 12 days ago
▲ 18 r/n8n

My self-hosted n8n keeps disconnecting.

Hey everyone, I'm self-hosting n8n on a VPS, (Docker) behind an nginx reverse proxy and I'm running into a really frustrating issue, the server keeps randomly disconnecting, and now I can't even access the web UI at all.

Here's my setup:

- n8n running in Docker with restart: always

- nginx as reverse proxy handling SSL (Let's Encrypt)

- 8GB RAM, n8n only using ~256MB so it's not an OOM issue

- DNS resolves correctly to the right IP

- Websocket headers are set in nginx (Upgrade, Connection)

- N8N_TRUST_PROXY=true is set

- proxy_read_timeout 86400 is set

- Namecheap DNS — pointed subdomain to my IP address

What I found in the logs before it went down:

- ERR_ERL_UNEXPECTED_X_FORWARDED_FOR validation errors from express-rate-limit

- Received SIGTERM. Shutting down... (container restarts fine but UI becomes unreachable)

The curl to the /healthz endpoint from inside the nginx container returns {"status":"ok"} so nginx CAN reach n8n internally. DNS is pointing to the right IP. But the browser just shows a failed request.

Has anyone dealt with random SIGTERMs on self-hosted n8n? Could the express-rate-limit error actually be causing n8n to shut itself down? And any idea why the site would be completely unreachable even when the container is up?

Running n8n v2.19.5. Any help appreciated 🙏

EDIT : Guys, Thank y'all for all the comments and tips, i actually managed to fix it, the fix was super easy, it was by switching to Google DNS 8.8.8.8, The server was never really broken, just my local DNS was the culprit the whole time. i Keep 8.8.8.8 as my DNS and i'm good.

reddit.com
u/lowkeymehdi — 13 days ago
▲ 1 r/automation+1 crossposts

I built an automated system to find local businesses losing leads online

I've been experimenting with automating lead research for local service businesses and the results genuinely surprised me.

I focused specifically on plumbers, electricians, and heating companies across multiple UK cities.

The goal was simple:
Find established local businesses that already have strong reputations on Google, but are potentially missing customers because they have little or no online customer capture system.

So I built an automated workflow in n8n that:

• Scrapes Google Maps listings
• Filters businesses with strong ratings/reviews but weak online presence
• Detects things like missing websites, missing booking systems, or no click-to-chat setup
• Scores leads based on review count, niche urgency, and other signals
• Generates personalized outreach drafts referencing their actual Google profile

Current results:

• 737 businesses analyzed
• 46 qualified businesses after filtering
• Several businesses scored extremely high based on the signals tracked
• Every lead ended with a ready-to-review personalized message

One thing that stood out:
A lot of established trades businesses already have trust and reputation built through Google reviews, but many still lose potential customers because there’s no fast way for people to contact, book, or follow up.

The whole system cost about $20 total to run, mostly Outscraper credits for the Google Maps scraping, plus a few cents in Claude API costs for the personalized message generation.

Next step is testing actual outreach and measuring response rates.

Happy to hear any tips, feedback, or suggestions from people who’ve already gone down this path, especially around outreach, lead qualification, or scaling the process without hurting deliverability/reply rates.

reddit.com
u/lowkeymehdi — 13 days ago
▲ 4 r/B2BForHire+1 crossposts

Built an automated lead gen system that scrapes Google Maps, scores leads with AI, and writes personalized outreach. got 46 hot leads out of 737 businesses in one run

I've been experimenting with automating my client acquisition workflow and the results genuinely surprised me.

The problem I was trying to solve:

I do web development + automation work, and manual cold outreach is painfully inefficient. Most leads aren't qualified, messages feel generic, and researching businesses one-by-one takes forever.

So I built an automated pipeline in n8n that:

• Scrapes Google Maps across 40 keyword/city combinations
• Filters businesses with no website, 30–300 reviews, and 4.3+ ratings
• Removes duplicates against existing lead databases
• Scores each lead based on review count, niche urgency, missing booking flow, etc.
• Uses Claude to generate personalized outreach messages referencing their actual Google profile
• Pushes everything into Google Sheets ready for review

Current results:

737 businesses scraped
• 46 qualified leads after filtering
• 8 leads scored 90+
• Highest score was 106/106 based on all tracked signals
• Every lead ended with a ready-to-send personalized draft

The interesting part is how much signal you can extract from public business data with a relatively simple workflow.

Most of the businesses scoring highest were established local tradesmen with strong reputations but almost no customer capture systems online, no booking flow, no conversion-focused site, no automation, etc.

Next step is testing actual outreach and tracking response rates.

The whole system cost about $20 total to run, mostly Outscraper credits for the Google Maps scraping, plus a few cents in Claude API costs for the personalized message generation.

For people who’ve already worked with Outscraper at scale, does that pricing sound reasonable for ~700 businesses scraped across 40 searches?.

reddit.com
u/lowkeymehdi — 13 days ago