Consistency is the hard part, not ideas
Publishing consistently good content is hard. Not for lack of ideas, but the blank page, and holding a steady voice across everything you put out.
I did the builder thing. I turned that into an engineering problem: separate the thinking from the writing, and keep a person at the wheel.
Before building, I looked at how people already ship content with AI.
The market, before I wrote a line of code
I mapped how people ship content with AI
Every option on this board can produce a post. The differences that matter are how many angles get considered, whether the voice holds, what happens to the truth, and who decides before it reaches an audience.
| Tool | More than one angle | A voice it can hold | Invented facts | A human before publish | Cost and scale |
|---|---|---|---|---|---|
| One prompt to a chatbotChatGPT, Claude | One flat take per prompt | Generic by default | Will invent examples | You are the whole pipeline | Cheap |
| AI writing toolsJasper, Copy.ai | Templates, not debate | Brand presets that drift | Same model, same risk | You edit before it ships | A subscription per seat |
| Auto posting pipelinesoff the shelf automation templates | One shot, straight through | Whatever the model gives | And it publishes anyway | None, that is the point | Cheap at volume |
| A human ghostwriterthe premium option | Real judgment | Learns yours over months | Asks instead of inventing | A person end to end | Expensive, does not scale |
| Content War Roomthis build | A panel argues on purpose | A defined voice model | Leaves a marked slot for a human | Two approval gates | Serverless, near zero at rest |
Representative options per approach. The war room is built to keep the ghostwriter's judgment and the pipeline's economics at the same time.
The gap
Every option trades away something that matters
Range of thought, a steady voice, and the truth. The cheap options give you volume with a generic voice and invented examples. The human option gives you judgment at a price that cannot scale.
I wanted the judgment and the economics. So the system runs a war room: a panel of specialized agents that look at the same idea from different angles and disagree on purpose. When two takes truly collide, a moderator forces a second round, one question both must answer. Then a synthesizer reads the whole debate, picks the strongest thread, and composes the draft in a defined voice. The exact panel and the voice model are the part I keep private. What matters is the shape: many minds argue, one writer resolves, a person approves.
Honest and on voice, by construction
The hard part of a system like this is not generating text. It is keeping it honest and on voice.
So it is built to never fabricate a person, a quote, or a number. When a real example would help, it leaves a marked slot for a human to fill rather than inventing one.
And nothing reaches an audience without a person approving it first. The machine drafts. The human decides.
The feedback loop
It learns my voice without drifting
Reviewing a draft is a comment, not an edit. I say what is wrong in plain words, the system revises, and the older version stays on the card next to the new one, so nothing is ever lost in a rewrite.
Then it goes one step further. From each piece of feedback it proposes a durable writing rule, and a rule only becomes law after I approve it. The rulebook stays small and human approved, which is what keeps the voice from drifting.
Every draft also declares what it is for. It names the part of my content strategy it advances, and when an idea serves none of it, the draft arrives flagged, and I decide.
The plumbing
How it runs
Ideas land on a Notion board that is the whole control panel. A dropped link gets read before I spend a minute on it: the system pulls the caption, the text on screen, and the audio as three separate channels, labels where each claim came from, and when the audio is only music it says so instead of inventing speech. On approval, an orchestration layer built in n8n calls the brain, a LangGraph and LangChain service running on Google Cloud Run. The agents run, the synthesizer writes, and the draft comes straight back into Notion for review. Only after a second human approval is it marked ready to publish.
The infrastructure choices were deliberate. The brain is stateless, so it runs serverless on Cloud Run and costs nothing at rest. The orchestrator is stateful and always on, so it lives on a small Compute Engine machine. Knowing when to reach for serverless and when to reach for a plain server is half the job.
Where it stands
The honest result
It is live and in daily use. Because it runs on private data and my own keys, it is not a public app you click into, by design.
What it demonstrates is the part I care about: shipping a real multi agent AI system end to end. Several agents that collaborate, a synthesizer that holds a voice, human review where it counts, a feedback loop that turns my review comments into rules it keeps, and the cloud plumbing to keep it all running quietly in the background.