SixAM

Content Engine: A Blog That Writes Itself

One bilingual article a week, written, checked and published without anyone touching it, and held for a human whenever it fails a quality check. Underneath: eight agents, a deterministic quality gate, and a self-critique loop with a budget.

Multi-agentQuality gateSEOBilingualSelf-improving

Eight runs, eight articles, no missed week (3 Aug - 14 Sep 2026).

The problem we had

Every consultancy knows it should publish. Almost none do it for more than six weeks. We had the same failure on record: six good articles, then a three-month gap, because the founder was doing client work.

"Use AI to write it" is the obvious answer and it is usually wrong. What it produces is the thing everyone now recognises on sight: confident, shapeless, faintly wrong, and worse for your brand than publishing nothing.

So the question we actually had to answer was not can a model write an article. It was what has to be true for an unattended pipeline to be safe to publish under your own name.

What is running

Eight agents in a fixed sequence: idea-scout, strategist, researcher, writer, editor, SEO, publisher, critic. The writer and editor loop against each other. One article per week, in English and Persian, published to sixam.ca without anyone touching it, unless it fails the gate, in which case it waits for a human.

The four decisions that separate this from slop

1. The orchestrator is ordinary code, not a manager agent.

This is the one most people get wrong. Sequencing, the revision loop, and the quality gate are plain control flow. There is no "manager" model deciding which agent runs next. Creative judgement belongs to the agents; the plumbing does not. A manager agent would add cost, latency, and a new category of failure, and buy nothing.

2. Anything countable is checked in code, never asked of a model.

Models are bad at counting and confident about it. So meta title length, meta description range, heading structure, word count, keyword coverage and markdown conformance are all verified deterministically. The SEO agent only makes judgement calls.

One detail worth stealing: we score keyword term coverage, not exact-phrase repetition. A long-tail phrase like "how to start an AI project for business" almost never appears verbatim in prose that reads well. Requiring exact repetition would systematically penalise good writing in favour of keyword stuffing. Most SEO tooling gets this backwards.

Checks are also split into blocking and advisory. Blocking means the article would render or index wrongly, so it must not auto-publish. Advisory means we would have preferred something else. A well-written article does not get held hostage by a preference.

3. The gate is explicit, and failing it is normal.

Auto-publish requires three things at once: the editor's verdict is approve, the score is 75 or higher, and zero blocking checks failed. The writer gets at most two revision rounds. Anything that does not clear all three waits in the Studio for a human decision.

The actual record, from the database: eight articles, scores between 75 and 82. Six published themselves the same day. Two waited for me, one for six days and one for forty-one.

That forty-one-day draft is the most useful number in this document. The pipeline did its job and stopped, exactly as designed. Then it sat there, because nothing told me it was waiting. The gate was never the bottleneck. My review habit was. If we build this for you, that is the failure mode to plan for, and it is why the run now reports what is waiting rather than assuming someone will look.

4. It criticises itself, and the criticism has a budget.

After every run a critic writes at most three lessons, each addressed to one specific agent. Not general advice, a named correction for a named role. Those lessons are injected into that agent's prompt on the next run. Each agent holds at most eight active lessons; older ones retire.

The cap is the interesting part. Unbounded "learnings" become a bloated prompt that degrades quality while looking like improvement. Eight, addressed, and expiring is what makes it a control loop instead of a landfill. A thumbs-down from a human in the Studio feeds the same loop.

Bilingual by construction, not by translation

Each idea has a lead language. The second language is written as a localisation of the same argument, not a translation of the finished sentences. Anyone who has watched a translated blog read like a translated blog will know why this matters.

Being straight about it: all eight articles so far are English-lead. The seeded idea bank holds Persian-first ideas and the machinery handles them, but we have not shipped one yet. The capability is built and unproven, and we will describe it that way until it is not.

Articles also ramp in difficulty: a level only unlocks once eight articles exist at the level below, so the blog builds a foundation before it writes the advanced piece.

An honest constraint

Our hosting plan allows two scheduled jobs and both were already used. Rather than upgrade, the weekly run rides along on an existing cron and no-ops on every tick except the first one on a Monday. It is not elegant. It costs nothing, and across eight consecutive Mondays it has not missed one. We would rather show you that trade than hide it.

What this costs to have built for you

S2 · Content Engine. CAD 8,000-15,000 to build, plus a monthly retainer to run and tune it. Three to four weeks. Bilingual is standard, not an add-on.

Starts, like everything, with an AI Readiness Snapshot (CAD 750). If your constraint is distribution rather than production, a content engine will not fix it and we will tell you so.

Read what it produced: sixam.ca/en/blog. Everything published from 30 July 2026 onward is pipeline output, unedited. Judge it yourself.

Want this for your business?

Every engagement starts with an AI Readiness Snapshot: one session, a short report, and one quick win. If what you need is not what we build, we will say so.