Available for work — Book a 30-minute call

Multi-Agent Content Generation Pipeline

A content system for a writer who publishes a paid newsletter. Ideas arrive over WhatsApp and are filed in Airtable. A research and drafting stage is grounded in her own past writing through a vector store, so drafts sound like her rather than the model. Once she has written an article, a separate editorial stage runs seven agents over it: fact check, legal check, SEO review, pull quotes, ad copy, meta description and paywall title. Eleven workflows, 326 nodes and 24 agents, with Airtable holding the state between every stage so a failed step can be re-run on its own.

Role
Designed and built
Sector
Newsletter publishing
Status
Built and tested on Meta's WhatsApp test number; not taken into daily use
Stack
n8n, Airtable, Supabase (pgvector), OpenAI embeddings, OpenRouter, Gemini, WhatsApp Cloud API, JavaScript

The problem

The business owner writes a paid newsletter herself. Research, idea capture and the checks before publishing (facts, legal risk, SEO, the paywall title, hooks and ad copy) all took her time. Ideas arrived scattered across WhatsApp messages, links and notes, and many were lost before anyone looked at them.

What was built

Eleven coordinated workflows, 326 nodes, 24 AI agent nodes.

  • Idea inbox — 67 nodes. Takes an idea, a link and a line of context over WhatsApp and files it in the bucket she chooses, reading images and enriching links on the way.
  • Retrieval ingestion — loads her past writing, splits it recursively, embeds it and writes it to a vector store.
  • Content generation — 60 nodes. Research and drafting, with a branch for incoming ideas; its copywriter agent retrieves her own writing so drafts match her voice.
  • Draft intake — 31 nodes. Every 30 minutes, reads her drafts out of the newsletter platform into Airtable and a Google Doc and hands them to the editorial stage.
  • Editorial QA — 26 nodes, seven agents, each with one job: fact check, legal check, SEO review, highlight quotes, ad copy, SEO meta and paywall title.
  • Plus a weekly context generator, a reading-view generator, a hooks form and an idea classifier.

Airtable holds the state between every stage.

The hard part

Three decisions carry this build.

The writer stays at the centre. She writes the articles. The generation stage is a research and drafting aid, and the editorial agents run on her draft after she has written it. Each agent has one narrow job, so a fact check is a fact check and not a rewrite.

A platform wall turned a stage around. The plan was to push finished drafts into the newsletter platform, but its API only lets Enterprise accounts create posts. Rather than pay for an upgrade, the intake was turned around: it reads her drafts out of the platform on a schedule and sends them to review, with a person publishing at the end.

State lives between the stages, not inside them. Eleven workflows means eleven things that can fail. Because Airtable holds the state, each stage reads what it needs and writes what it produced, so a failure is re-run on its own rather than regenerating everything upstream of it.

What can be verified

  • 11 workflows, 326 nodes, 24 AI agent nodes.
  • 42 Airtable operations carry state across the system.
  • The editorial stage runs 7 agents over the writer's own draft.
  • Retrieval is a genuine vector pipeline — document loader, recursive text splitter, embeddings, vector store — not keyword matching.
  • Built and versioned in place from December 2025 to May 2026.

The workflows

The n8n graph for the generation path. A chat trigger on the left checks whether an incoming message is an idea or a piece of content and routes it accordingly. One branch downloads and transcribes voice notes, another extracts text from PDFs, and both converge on a shared content record. A research agent and a copywriting agent then draft against a vector store shown at the bottom of the canvas, and the right-hand third is an approval loop: the draft goes out for review, feedback is written back, a revision agent rewrites it, and the final post is recorded. (select to enlarge)
The generation path, sixty nodes. Read it left to right: capture and transcribe, route by input type, draft against retrieved context, then loop through human approval before anything is recorded as final. The boxed strip under the top-left node covers a webhook address. Select the image to enlarge it — a graph this wide is not legible on a phone.
The n8n graph for the editorial review stage. An inbound webhook fetches the draft, then seven review agents run across the canvas in sequence - a fact check, a legal check, an SEO review, a quote highlighter, an ad-copy pass, an SEO metadata generator and a paywall title generator - each attached to one of the two chat models drawn beneath them. The right-hand end splits: one branch writes the combined review into a document, the other splits generated hooks into separate records. (select to enlarge)
The review stage, twenty-six nodes and seven agents, none of them the agent that wrote the draft. The two circles below the row are the shared models. Nothing here is published automatically; the last node notifies a person. Select the image to enlarge it — a graph this wide is not legible on a phone.
The n8n graph for the idea intake agent, shown small enough that individual node labels are not readable. Sixty-seven nodes fan out from a single trigger on the left into roughly a dozen parallel branches - one per source an idea can arrive from - which converge again on the right into a shared grading and storage path. (select to enlarge)
Intake, sixty-seven nodes. Reproduced deliberately small: this is the shape of the thing, not a diagram to read. Several node labels name a real person, so rather than cover them one by one the capture is published at a size that resolves none of them.

On numbers: every figure above is an artefact count or a measured technical value. No business-outcome metric, whether time saved, revenue or conversion, was captured on these engagements, so none is claimed.

On status: reflects repository evidence and platform backups, not a live systems check.

Book a 30-min call