The Blog Engine
SEO blog posts, drafted and shipped on a schedule

About Centauri Media
Centauri Media is a creative and technical agency in Birmingham with a marketing arm and a software arm. Its own content marketing runs on a steady stream of blog posts, the kind of consistent, keyword-targeted output that is easy to start and hard to sustain by hand while client work competes for the same hours.
Objectives
- Keep the newsroom publishing consistently without it eating the team's time.
- Ground every post in the agency's real work, so the content is credible rather than generic filler.
- Target SEO keywords and avoid near-duplicate posts that compete with each other.
- Keep a human in the loop: draft automatically, publish only after review.
- Make the engine configurable and auditable, from the model to the cadence to a log of every run.
The Challenge
SEO rewards consistency, but consistency is exactly what a busy agency runs out of. Writing keyword-targeted posts by hand competes with client work for the same hours, so the newsroom goes quiet. Generic AI filler is worse than nothing: it reads as spam and can compete with the pages that already rank. The content had to be steady, genuinely useful, and grounded in real work.
The Approach
The key decision was to write from the agency's own case studies rather than from a blank prompt. A generic 'write a post about X' produces filler; feeding the model a real project as source material produces something specific and credible. From there it was a scheduling and de-duplication problem: rotate through the case studies and the target keywords so no two posts land too close together, and never publish straight to live.
The Solution
A daily job picks a few case studies in rotation, builds a prompt from each, and generates an SEO article through a language model. It derives and rotates a target keyword per post so titles do not repeat within a cooldown window, drops each result into the newsroom as a scheduled draft, and lets the team review and edit before it goes live. Every run is logged, and the whole engine, its model, cadence, keywords and system prompt, is configurable without touching code.
Built as scheduled jobs on the agency's own back-office. A daily cron drafts posts through OpenRouter, so the underlying model is swappable, converts them to the CMS's rich-text format, and stores them as scheduled drafts. Keyword rotation and a per-study cooldown are read from settings and a log of past runs, so the engine does not repeat itself. A second job publishes drafts to the public site once their review window passes.
Written from real work, not a blank prompt
Instead of asking a model to invent a post about a topic, the engine feeds it one of the agency's real case studies as source material. The result is specific and credible, tied to actual projects and clients, which is exactly what generic AI content never manages and search engines increasingly discount.
- Each post drafted from a real case study in rotation
- Specific detail, not topic-level filler
- A case-study footer links the post back to the work

SEO targeting that never repeats itself
Every post gets a target keyword, and the engine rotates through them, advancing the choice until it lands on one it has not used within a cooldown window. Back-to-back near-duplicate titles cannot slip through, so the posts reinforce each other instead of competing for the same search term.
- A derived, rotating SEO keyword per post
- A cooldown window so nothing repeats too soon
- Case studies picked round-robin, not the same few

Automatic drafts, a human on the switch
Nothing publishes straight from the model. Each post lands in the newsroom as a scheduled draft the team can edit, and a separate job takes it live only after a review window. The agency gets the speed of automation without handing its public voice to a model unattended.
Drafting automatically but publishing on a delay means the newsroom is never truly hands-off: someone still has to glance at the queue. The upside is that a bad draft never reaches the public site; the cost is that the review window is a small standing task rather than zero.

Technologies
Conclusion
The newsroom stopped depending on someone finding time to write. It fills itself with posts grounded in real work, targeted at real keywords, and checked by a human before they publish, so the agency stays visible without the content ever becoming the job nobody does.
Have a project in mind? Let's talk