Danny Morris
← Back to work Case study · October 2026

Automated content pipeline

Turns one topic into first drafts in four formats: a YouTube script, three shorts scripts, seven Substack Notes and a newsletter. Built in n8n with the Claude API, delivered to Notion with a Telegram alert.

Tools · n8n (self-hosted), Claude API with web search and structured outputs, Notion, Telegram Role · Solo build
4 formatsfrom one topic idea
~4 minper topic before my edit, against about 4 hours by hand
Under £1in API costs per run
9 → 18newsletter score out of 25, over three test rounds
The full n8n workflow from a real run
The full workflow from a real run. One brief fans out to four writers, each with its own Notion page and Telegram message. The newsletter line also runs two automatic quality checks.

The problem

I built this for The 600, my YouTube channel and newsletter about living abroad, which is now dormant. Every topic meant the same work: research the facts, then write a long-form script, a few shorts, a newsletter and Substack posts. By hand, that took about four hours per topic, and longer when a topic needed proper research.

The four pieces also had to tell the same story, and the facts had to be right. In an early version of this pipeline, the writer filled a gap with numbers of its own: international school fees in Bulgaria of €25,000 to €32,000 a year. The real figure was €11,860 to €18,480. A channel like this depends on accurate numbers, so this was the error I most needed to fix.

What I built

An n8n workflow that takes one topic, researches it with Claude's web search, turns the research into a five-field brief, and hands that brief to four Claude writers. Each draft lands in its own Notion page, labelled by type, and a Telegram message arrives with the link.

  1. Research before writing. Up to six web searches under strict rules: official sources first, a source link next to every key fact, the newest figure first when sources disagree, and anything it can't confirm labelled as unconfirmed.
  2. The brief. A second call turns the research into a brief with five named fields: angle, target reader, hook, a three-point structure and a call to action. It comes back as structured JSON, so every writer gets exactly the same brief and the four pieces tell one story.
  3. A facts-only rule. Every writer receives the research and the brief, and may only use facts from those two. This is the change that stopped the invented figures.
  4. The long-form script. The writer follows the structure of my best-performing videos and, wherever my own experience belongs, leaves a marker printed as [YOUR STORY] instead of inventing one.
  5. Delivered to Notion and Telegram. A run starts when I send a topic to the webhook. Every draft goes into one Notion database with a Type label, and a Telegram message brings the link, so I don't need to open n8n to see the results.
Notion database with four drafts from one run, each labelled by type
One run in Notion: four drafts in one database, each labelled by type.
From a real run · the opening of a long-form script, before my edit“Since 31 March 2026, temporary residents in El Salvador only have to spend 90 days a year in the country. And the country doesn't tax what you earn abroad. On paper, that's about as light as it gets. So what's the catch? And who is it a catch for?”

How I know it works

I tested the newsletter writer the way you'd test any process. Same five topics every round. Five yes or no checks per newsletter, so 25 points. One targeted change between rounds. I fact-checked accuracy line by line against current sources, including ones the pipeline never saw.

RoundChange before the roundLayoutAccuracyClarityNo waffleAnswersTotal
1None (baseline)0/50/54/51/54/59/25
2Research passed to the writer, plus the facts-only rule0/50/53/52/55/510/25
3Title kept out of the body; more searches and longer research notes5/51/54/53/55/518/25

Round 2 only added one point, but the remaining errors now came from the research, not the writer. The facts-only rule worked, and that told me where to look next. By Round 3, every remaining accuracy error traced back to a source (a date that had since changed, a misread currency, a missing visa), and none to the writer.

Accuracy is still the weakest check, at 1/5. Since Round 3 I've tightened the research rules. A fourth round will show whether that moved it. Two more checks run inside n8n on every newsletter: is the title repeated in the body, and was any text cut or lost when it was split into Notion blocks.

Choosing the model

I built and compared three versions on one test topic: all Claude, all ChatGPT, and ChatGPT researching with Claude writing. ChatGPT's research was cheaper and more accurate; Claude's writing sounded more natural. At one run a week the saving was small, so I kept Claude for every step: one API key, one bill and one set of prompt rules to maintain. If accuracy is still the weak point after a fourth round, swapping the research step to ChatGPT is the first thing I'd test.

What broke, and how I fixed it

A silent failure. The brief field was called “Brief” in one node and “brief” in the next. The writer received an empty brief, didn't error, and wrote a full newsletter about Panama, a topic nobody asked for. Fixed at source.

Empty replies. One writer spent its whole token allowance thinking and returned nothing. Thinking and the answer share one budget, so raising it from 3,000 to 16,000 fixed it.

Words cut in half in Notion. The text was cut into fixed 2,000-character blocks, which split words in half, and my own check flagged it on my phone. The cut now stops at the end of a paragraph.

Missing sections. The script was cut into blocks at blank lines. When the model added two extra blank lines, the last two sections disappeared. It now cuts at the section names, which are always there.

Four Telegram messages from one run, including a failed split-word check
Four messages from one run. The ✗ is the split-word check catching words cut across Notion blocks, before I fixed it.

Result

One topic becomes first drafts in four formats in about four minutes (4 min 16 s on the run shown), for under £1, before my edit. By hand, the same set took me about four hours. I ran 15 scored test runs across five topics, plus full four-format runs end to end.

What still needs me: an edit of each draft, my own stories wherever the writer left a [YOUR STORY] marker, and a check of the key facts before anything goes out. The pipeline does the research and the first drafts.

What I'd do next

  • Run a fourth round of the eval after the research changes, and add checks for the other three formats.
  • Put the source links on each Notion page, so fact-checking happens in one place.
  • Move it off my laptop onto a server with a secured webhook, so a form can trigger it.
Workflow JSON on GitHub Next case study: The 600 →