How to Set Up AI-Curated Weekly Newsletter: RSS Feeds to Polished Digest — n8n Workflow in n8n
Every Sunday your team needs a newsletter. Someone has to open a dozen RSS feeds, skim forty articles, pick the five that matter, write a sentence or two on each, format it, and hit send. That someone
Every Sunday your team needs a newsletter. Someone has to open a dozen RSS feeds, skim forty articles, pick the five that matter, write a sentence or two on each, format it, and hit send. That someone burns two hours on work that is 90% repetitive triage and 10% editorial judgment. This article shows you how to automate the triage — and most of the writing — with a single n8n workflow that runs itself every Sunday at 6pm, reads your feeds, ranks the stories, and hands you a polished digest powered by GPT-4o.
The problem: curation doesn't scale on human time
Newsletters die from inconsistency. The first three issues ship on time, then a busy week hits, an issue slips, subscribers forget you exist, and open rates collapse. The bottleneck is never the sending — it's the weekly act of reading everything and deciding what's worth a reader's attention.
For a technical founder or a lean ops team, that two-hour block is the most expensive part of the week because it's cognitively heavy and non-delegable in its current form. You can't hand it to a junior without them missing the context of why a story matters to your audience. So it stays on your plate, and eventually it falls off.
The insight that makes automation viable: reading and ranking are pattern-matching tasks, and drafting an editorial summary is a language task. Both are things a large language model does well when you give it the raw feed items and a clear editorial brief. What remains for you is a five-minute review before send — the actual judgment call — instead of two hours of manual assembly.
The solution: an RSS-to-digest pipeline in n8n
The workflow is a linear pipeline with one AI decision point. At a high level it does five things: it triggers on a schedule, pulls fresh items from every RSS feed you care about, filters them down to the last seven days, sends the batch to GPT-4o with an editorial prompt, and delivers the formatted digest to your inbox or straight into your email platform as a draft.
The entire thing lives in one n8n workflow with roughly eight nodes. It has no external database dependency for the basic version — the schedule window handles deduplication for you, since you only ever look at the last week. GPT-4o handles both selection (picking the best five to eight stories from the pool) and composition (writing a two-sentence editorial take on each), which collapses what used to be two separate human steps into one API call.
Step-by-step: building it with n8n nodes
1. Schedule Trigger. Add a Schedule Trigger node. Set the interval to Cron and use the expression 0 18 * * 0 — 6pm every Sunday. Set the node's timezone under workflow settings so 18:00 fires in your local time, not UTC. This is the only entry point; the workflow has no webhook.
2. RSS Read (one per feed, or a loop). For a handful of feeds, add multiple RSS Read nodes in parallel, one per source URL. For a longer, editable list, store your feed URLs in a Code or Set node as an array, follow it with a Split Out node to fan them into individual items, then a single RSS Read node reading {{ $json.feedUrl }}. The loop approach means you add feeds by editing one array instead of wiring new nodes.
3. Merge and normalize. If you used parallel RSS Read nodes, add a Merge node (mode: Append) to pool all items into one stream. Follow with a Set node to keep only the fields you need — title, link, contentSnippet, and isoDate — so you don't blow past the model's context with full article bodies.
4. Filter to the last 7 days. Add a Filter node with a condition comparing dates: keep the item when {{ new Date($json.isoDate) }} is after {{ new Date(Date.now() - 7*24*60*60*1000) }}. This is your deduplication and freshness gate in one — anything older than the window never reaches the model, so consecutive Sundays never repeat a story.
5. Aggregate into one payload. Add an Aggregate node (aggregate: All Item Data) or a small Code node that maps every remaining item into a single numbered list string. You want one text block containing all candidate headlines and snippets, because you're going to ask the model to rank across the whole set in a single call — not summarize items one at a time.
6. The AI curation call. Add an OpenAI node (or the AI Agent / Basic LLM Chain node with an OpenAI Chat Model set to gpt-4o). In the system prompt, define the editorial voice: "You are the editor of a weekly newsletter for [your audience]. From the numbered stories below, select the 6 most valuable. For each, write a 2-sentence editorial summary explaining why it matters to this audience. Output clean HTML: an <h3> headline linked to the source, followed by a <p>." Set temperature to around 0.4 for consistent, non-flowery output, and paste the aggregated list into the user message.
7. Assemble the digest. Follow with a Set or Code node that wraps the model's HTML output in your masthead, intro line, and footer. Keep this template in the node so branding changes never touch the AI logic.
8. Deliver. End with a Send Email node (SMTP) to drop the digest in your own inbox for a final read, or a Gmail / Mailchimp / Beehiiv node to create a draft campaign. Ship it as a draft, not an auto-send, until you trust the output — the five-minute human review is the point, not a bug.
Why this beats the manual routine
Consistency becomes the default. The workflow never has a busy week. The issue is drafted and waiting in your inbox every Sunday evening whether or not you remembered it existed, which is exactly what fixes the churn problem.
Your time goes to judgment, not assembly. You stop reading forty articles and start reviewing six pre-written summaries. Two hours becomes five minutes, and the five minutes are spent on the part that actually needs a human — catching a story the model over-weighted, or tweaking a take that misses your angle.
Editorial quality stays even. GPT-4o writes in a consistent voice defined once in the system prompt. No more issues that read great when you had energy and flat when you didn't.
It scales with your reading, not your hours. Adding a tenth or twentieth feed costs one line in an array. The marginal cost of covering more sources is effectively zero, so your curation gets broader without getting slower.
Common pitfalls and how to avoid them
Feeding full article bodies to the model. Many RSS feeds include the entire article in content. Pass all of them raw and you'll blow the context window and the token bill. Trim to title plus a snippet in the Set node — the model ranks fine on headlines and lead paragraphs.
Trusting the schedule timezone. n8n defaults to UTC. If your instance runs in UTC and you set 18:00, your digest lands at 1pm or 3pm your time. Set the timezone explicitly in workflow settings and confirm with one manual test execution.
No dedup across weeks. The 7-day filter prevents repeats within the window, but a slow-news week can surface a story that already ran. If that bothers you, add a Google Sheets or n8n Data Store node that logs sent links and a Filter that excludes any link already logged.
A single broken feed killing the run. One 404 or malformed feed can throw the whole workflow. Turn on Continue On Fail for the RSS Read node so a dead source is skipped instead of aborting the digest.
Auto-sending before you trust it. Ship to a draft for the first month. Read every issue before it goes out, note where the model's picks diverge from yours, and tighten the system prompt. Once three issues in a row need no edits, flip it to auto-send with confidence.
Vague editorial prompts. "Summarize these articles" produces generic wire-copy. Name the audience, the number of stories, the sentence count, and the exact output format. The specificity of the prompt is the difference between a newsletter people open and one they mute.
Ja construimos isso pra voce
Nao comece do zero. O AI-Curated Weekly Newsletter: RSS Feeds to Polished Digest — n8n Workflow e um workflow n8n pronto para instalar — conecta suas ferramentas em minutos, sem codigo.
Instalar por $49.0 →