Case study · AI content engine
The SEO Content Engine
A full SEO blog post used to take a full day by hand. Now it takes 15 to 20 minutes, from research to paste-ready CMS metadata.
Snapshot
- Client
- A US marketing company
- Built for
- The company's in-house blog and SEO team, who create content for the company's clients
- Result
- A full SEO post went from a full day by hand to 15–20 minutes
- Workflow
- 6 phases: research, outline (approved by a person), draft, review, SEO & formatting, final delivery
- Stack
- Claude Code in VS Code, with Python scripts for topic tracking, saving files, SEO analysis and reporting. The earlier version ran on n8n, with Gemini, GPT-4.1, DALL-E, Google Sheets and WordPress
- My role
- Designed and built the engine
The problem
A good SEO blog post isn't one job. It's several: picking a topic that hasn't been covered, researching it, outlining, writing, checking keywords, then preparing everything the CMS needs. Done by hand, one full post took the team a full day. Most of that day went to the work around the writing:
- Research comes first. Current stats and sources have to be found for each audience before a word gets written.
- Topics are easy to repeat. Without a record of what's been published for each audience, it's hard to keep ideas fresh.
- SEO checks get rushed. Keyword placement in the title, the opening paragraph and the headings is easy to miss at the end of a long day.
- Publishing has its own paperwork. Meta title, meta description, focus keyword, slug and tags all have to be written for every post.
- One-shot AI drafts need rework. A single prompt gives a wall of text that someone still has to restructure and check.
How I approached it
I didn't want a faster way to write a draft. I wanted the whole job, from topic to publish-ready, to run as one process the team can trust, and run without me.
Phases, not one big prompt.
The engine works through six phases in order and saves its work at each step to files the team can open: research notes, outline, draft, final and published versions.
A person approves the outline.
After research, the engine stops and presents title options, the section plan and the highlights. Nothing gets drafted until someone on the team approves it. That's where editorial judgment matters most and costs the least time.
Code checks the SEO.
Python scripts grade the draft instead of the AI grading itself. When a check flags something, like the keyword missing from the opening paragraph, the engine makes a targeted edit and runs the check again.
What I built
Start: audience, then topic
The team opens the project in VS Code, types “start” and answers two questions: who the post is for, and which topic. Before suggesting ideas, the engine checks what has already been published for that audience.

Six phases, one process
From there, it works through six phases:
- Research. Web searches for current stats and best practices, saved as research notes.
- Outline. Title options, a section-by-section plan and highlights, presented for approval.
- Draft. The full post, written to output/blog_draft.md.
- Review. A self-check against the style rules: active voice, no filler phrases, short paragraphs, stats cited or flagged, and the company's own services mentioned naturally, not forced.
- SEO & formatting. The SEO scripts run, flagged issues get fixed, and the check runs again until the keyword is in the title, the opening paragraph and an H2.
- Final delivery. A post summary and paste-ready CMS metadata: meta title, meta description, focus keyword, slug and tags. The topic is logged so it isn't suggested again for that audience.





It also says when something still needs a person. In the run shown here, it marked the meta description as a placeholder that needed a manual update instead of passing it off as finished.
Where it started: the n8n version
This engine isn't my first build for this job. I started with a two-part blog system in n8n. I built it first for a client and designed it as a template I could reuse, and it runs on my own n8n instance.
Workflow 1: Create SEO blog posts with Gemini and publish to WordPress. A weekly schedule loads the active client projects from Google Sheets and checks each client's publishing day and frequency. For each client, it gets the approved blog topics from the sheet, makes sure a focus keyword exists and picks the first pending topic. One Gemini model researches the keyword and a second writes the SEO-optimized article. The workflow then pulls out the title and body, prepares the blog data and hands it to the publishing workflow.

Workflow 2: Publish SEO blogs to WordPress with GPT-4.1, DALL-E, Gemini and Google Sheets. DALL-E creates the featured and inline images, which are uploaded to the WordPress media library. GPT-4.1 refines the post, then the workflow publishes it to WordPress and updates the sheet with the published status and URL.

What the n8n version proved, and what came next
It proved the pipeline: scheduling, multi-client settings kept in Sheets, AI research and writing, and automatic publishing. The Claude Code engine is the next step on the same foundation. It adds deeper research, SEO checks run by scripts, and more editorial control, with a person approving the outline before anything gets drafted.
“I always try to make my systems transferable. It's not a well-built system if it can't operate outside of my control and environment.”
Christine Mendoza
Results
What this means for your business
Content teams don't lose the day to writing. They lose it to everything around the writing: research, structure, keyword checks, and the publishing paperwork at the end. That's the part a well-built system can take on.
What I took from this project is that the speed comes from the structure, not the model. Break the job into phases. Keep a person at the one decision that shapes everything else. Let code check what code is good at checking. The result is work the team trusts enough to publish, from an engine they run on their own.
So here's the question I'd start with. Which parts of your team's content process really need a person, and which are steps waiting to become a system?
Want to talk it through?
I'm happy to walk you through the engine and how I'd apply the same approach to your content process.
