The Client
The client is a residential cleaning company operating across Florida, Texas, California, Georgia, and the DC metro area. They generate roughly 70 leads per week, almost entirely through Google Local Services Ads.
The business was growing, but 95% of its leads came from a single paid channel. There was no organic search presence, no blog, and no content strategy. If ad costs went up or lead quality dropped, there was no fallback.
The Problem
The owner knew SEO could diversify their lead sources, but didn't have time to write blog posts, didn't want to hire a content writer, and didn't want to pay an agency $2,000-5,000/month for mediocre content.
The question was: could we build a system that handles the entire content pipeline autonomously, from topic selection to publishing, with no ongoing human input?
What We Built
We built two things for this project. First, a custom website from scratch using Claude Code (an AI coding tool). Second, a fully automated blog pipeline that runs on its own.
The Website
The entire website was built using Claude Code, an AI-powered development tool. This includes 33+ pages: a homepage, 5 service pages, 12 service area pages, an About page, FAQ, Reviews, Contact, and a full blog section. The site is built on Next.js, deployed on Railway, and auto-deploys every time new content is pushed.
The site was built with SEO in mind from the start: structured data (schema markup) on every page, a dynamically generated sitemap, Google Analytics with custom conversion events, and Google Search Console integration.
The Blog Automation
The automation runs on n8n, an open-source workflow platform. Every Monday and Thursday at 9am, it:
- 1Pulls the next unpublished topic from a Google Sheet queue
- 2Sends a detailed prompt to Claude (Anthropic's AI) with SEO instructions, brand voice guidelines, and content structure requirements
- 3Receives a 1,500-2,200 word blog post back as structured JSON with title, meta description, category, and full HTML content
- 4Pushes the file directly to GitHub, which triggers an automatic website deploy
- 5Updates the Google Sheet to mark the topic as published with the date and live URL
The entire pipeline runs in about 90 seconds. No human reviews the content, picks the topic, or touches the publish button.
System Architecture
Orchestrated by n8n, running on a schedule. No human in the loop.
The Prompt Engineering
The quality of the output depends entirely on the prompt. A generic "write a blog post about cleaning" produces generic content that won't rank. The prompt we built includes specific instructions for:
- -SEO structure: keyword placement in title, H2s, first paragraph, and meta description
- -Content differentiation: specific product recommendations, pro tips, common mistakes sections, and professional experience references
- -Brand voice: writing as a knowledgeable friend, not a robot
- -Internal linking: connecting blog posts to service pages and related content
- -FAQ sections: structured Q&A format that targets featured snippets
- -Readability: short paragraphs, bulleted lists, bold key takeaways
Here's a simplified version of the prompt structure. The production version is customized for this specific business, their service areas, their internal linking structure, and their brand voice.
You are a senior content strategist writing for [Company Name], a [business type] serving [service areas]. Write a blog post about: "[Topic]" Primary keyword: "[Keyword]" REQUIREMENTS: - 1,500-2,200 words - Include 2+ specific product recommendations with reasoning - Include at least 1 "pro tip" only a professional would know - Include a "common mistakes" section - Include a FAQ section with 3-4 questions - Use the primary keyword 4-6 times naturally - Short paragraphs (2-3 sentences max) - Conclude with a soft CTA to your services OUTPUT FORMAT: Return valid JSON with: title, description, category, readingTime, and content (full HTML).
The full production prompt is roughly 3x longer and includes specific service page slugs, local area references, and detailed HTML formatting instructions.
Topic Strategy
We seeded the Google Sheet with 65 blog topics across 9 categories, giving the system roughly 8 months of content without needing any input. Topics were selected based on:
- -High-intent search queries for residential cleaning services
- -Seasonal cleaning topics that align with when people search
- -Local SEO keywords targeting specific service areas
- -Common customer questions the team hears on calls
- -Long-tail keywords with lower competition but clear intent
Each topic in the sheet includes the topic title, target keyword, category, slug, and optional service area for local targeting. When the queue runs low, seeding another batch is a one-time task.
The Numbers
Cost Comparison
Content agencies typically charge per article or per month for blog management. Here's what this same output would cost through traditional channels vs. the automated system:
| Content Agency | Freelance Writer | This System | |
|---|---|---|---|
| Monthly cost | $2,000-5,000 | $800-2,000 | ~$15-25 |
| Posts per month | 4-8 | 4-8 | 8-9 |
| Cost per post | $250-625 | $100-250 | ~$2-3 |
| Your time per post | 30-60 min review | 30-60 min review | 0 min |
| Annual cost | $24,000-60,000 | $9,600-24,000 | ~$200-300 |
System cost includes Claude API usage (~$0.15-0.25 per post) and n8n Cloud hosting (~$20/month). Does not include one-time setup cost.
Tech Stack
How to Replicate This
If you want to build this system for your own business, here's what's involved:
Honest note: The setup is the hard part. If you're comfortable with APIs, workflow automation, and prompt engineering, you can build this yourself. If terms like "OAuth," "API endpoint," or "JSON schema" aren't familiar, the setup will be frustrating. That's not a knock on you. It's just a different skill set.
Want this built for your cleaning company?
I build custom automation systems for cleaning companies. If you want a blog pipeline like this, or you're curious what else can be automated in your operations, let's talk.
Book a Strategy CallFree, 30 minutes. No pitch deck, just a conversation about your business.