Case study · Personal build · Shipped and in use

Content War Room

An AI system that turns a rough idea into a finished, on voice draft by making a panel of agents argue about it first. Nothing publishes without a human.

The problem
Publishing consistently is not an ideas problem. It is the blank page, and holding one steady voice across everything you put out.
What I built
A multi agent pipeline. Specialized agents debate the same idea from different angles, a synthesizer writes the strongest thread in a defined voice, and every draft lands in Notion for approval.
My role
Solo, end to end. The agent architecture, the brain on Cloud Run, the n8n orchestration, the guardrails.
The difference
Divergence, then convergence. Many minds argue, one writer resolves, and a person approves at two gates. It never fabricates a person, a quote, or a number.
Live and in daily useTwo human approval gatesNever fabricatesServerless brain on Cloud Run
01 · The problem

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.

ToolMore than one angleA voice it can holdInvented factsA human before publishCost and scale
One prompt to a chatbotChatGPT, ClaudeOne flat take per promptGeneric by defaultWill invent examplesYou are the whole pipelineCheap
AI writing toolsJasper, Copy.aiTemplates, not debateBrand presets that driftSame model, same riskYou edit before it shipsA subscription per seat
Auto posting pipelinesoff the shelf automation templatesOne shot, straight throughWhatever the model givesAnd it publishes anywayNone, that is the pointCheap at volume
A human ghostwriterthe premium optionReal judgmentLearns yours over monthsAsks instead of inventingA person end to endExpensive, does not scale
Content War Roomthis buildA panel argues on purposeA defined voice modelLeaves a marked slot for a humanTwo approval gatesServerless, 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.

02 · The guardrails

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.

Tech & tools

LangGraphLangChainn8nGoogle Cloud RunGoogle Compute EngineNotion APIGemini APICloudflareMulti agent orchestrationHuman in the loop

My role

  • Mapped how people ship content with AI, and positioned the build to keep a ghostwriter's judgment at a pipeline's cost.
  • Designed and built the whole system: the agent debate and synthesizer on LangGraph and LangChain, served from Google Cloud Run, orchestrated by n8n on a Compute Engine machine.
  • Kept a human in charge: Notion as the control panel, two approval gates, and guardrails so drafts stay on voice and never fabricate. Feedback is a comment in plain words; the system revises, keeps the previous version, and proposes rules I approve before they stick.