Building an always-on briefing or newsletter with AI
An automated daily briefing or newsletter that arrives in your inbox, with content actually worth reading, is one of the highest-leverage AI builds. The architecture, the prompts, and the discipline that makes it sustainable.
A daily or weekly AI briefing that arrives in your inbox — covering your industry, your competitors, your interests, or your team's priorities — is one of the highest-leverage things AI can build. Done well, it replaces hours of skimming and reading with a five-minute summary calibrated to you.
Done badly, it becomes another email you skip. The difference is in the architecture and, more importantly, the iteration.
This article walks through the architecture of an always-on AI briefing, the specific patterns that produce content worth reading, and the discipline that distinguishes a briefing that becomes a habit from one that gets unsubscribed.
The four jobs of a briefing
A useful AI briefing does four things, in order:
- Gather — pull content from many sources.
- Filter — keep only what matters to your specific audience.
- Synthesise — distill into a structured, scannable output.
- Distribute — deliver to the right place at the right time.
Each is a distinct concern. We'll walk through each.
Job 1: Gathering
The sources are the foundation. A briefing fed by mediocre sources will be mediocre regardless of how clever the AI step is.
Common source types:
RSS feeds. Most blogs, news sites, and substacks publish RSS. Tools like Feedly, Inoreader, or just an RSS aggregator script can fetch new items. RSS is the most reliable source type.
News APIs. NewsAPI, ContextualWeb, Currents — for general news with structured metadata.
Specific websites scraped. Sites without RSS or APIs can be scraped, but be careful about TOS and robots.txt. Tools like ScrapingBee, Bright Data, or Playwright handle the technical side.
Social media. Hacker News, Reddit, X — most have APIs or scrapable interfaces. The signal-to-noise ratio is challenging.
Newsletters. Forward subscriptions to a dedicated email, then process them. The AI can extract content from email HTML.
Internal sources. Slack channels, internal docs, customer support tickets. For internal briefings, these often matter more than external sources.
Research databases. Semantic Scholar, arXiv, PubMed — for academic-leaning briefings.
For most briefings, 5-15 sources is the right number. More than that, the curation work gets unwieldy. Fewer, and you miss important signal.
A practical pattern: organise sources by tier.
- Tier 1 (must-read): 3-5 sources you almost always want everything from.
- Tier 2 (frequently relevant): 5-10 sources that need filtering.
- Tier 3 (occasional): 10-30 sources where you only want truly relevant items.
The filter (Job 2) treats each tier differently.
Job 2: Filtering
This is where most briefings fail. Without strong filtering, the briefing becomes a firehose. With smart filtering, it stays scannable.
Three approaches, often combined:
Approach 1: Keyword and metadata filtering
Cheap, fast, transparent. Filter by:
- Keywords in title or body.
- Publication date (last 24 hours, last week).
- Source tier.
- Categories or tags from the source.
This catches the obvious. It also misses subtle relevance.
Approach 2: Embedding-based filtering
For each item, compute a vector embedding. Compare to a vector representing "what I care about" (built from past interesting articles or a description of your interests). Keep items above a similarity threshold.
This catches semantic relevance — articles about your topics that don't use your specific keywords.
Approach 3: LLM-based filtering
For each item that passed the cheap filters, run a small LLM call:
You are filtering content for a daily briefing aimed at [audience description].
Given this article title and the first 300 words, score it 1-10 on relevance to the audience, and produce one sentence on why it might (or might not) interest them.
Output JSON: {"score": <1-10>, "reason": "<one sentence>"}
Article:
[title and excerpt]Keep items above a score threshold (typically 7+). The LLM filter is the most expensive but also the most accurate.
A practical pattern: keyword filter first (cheap, removes obvious non-matches), then embedding filter (catches semantic relevance), then LLM filter on the survivors (final judgement call). This keeps cost low while producing good results.
Job 3: Synthesis
Once you have a filtered set of items (typically 10-30 per day for a personal briefing), the AI synthesises them into a readable output.
A strong synthesis prompt:
You are producing a daily briefing for [your audience description].
You have been given [N] articles that passed our relevance filter. Produce a briefing with this structure:
**Top 3 stories.** The three articles a reader must know about. For each:
- One-line title (your headline, not the source's)
- Two-sentence summary
- The source link
- One sentence on "why this matters" for our audience
**Quick reads.** 5-8 other items worth mentioning briefly:
- One sentence each
- Source link
**Skim or skip.** Items in the borderline zone, just titles + links. Reader decides if interesting.
**Patterns this week.** (Weekly briefing only) Any themes connecting the week's stories.
Tone: direct, no preamble, no "here's your briefing today." Get straight into content.
Use [my inference] for anything you're extrapolating beyond the source material.
Do not invent quotes or numbers. If you reference a statistic, cite which article.
Articles:
[full content of all filtered articles]This produces a structured, scannable briefing. The "top 3 / quick reads / skim or skip" pyramid respects the reader's time — they can stop reading at any tier based on what they care about.
A few variations worth knowing:
- Audience-aware framing. Different briefings need different angles. A briefing for engineers should emphasise technical implications; for executives, business implications; for journalists, news value. The "audience description" line shapes the synthesis significantly.
- Themed sections. For a specific-topic briefing (e.g., "AI safety news"), organise sections by sub-topic rather than top/quick/skim.
- Comparison and contradiction surfacing. "If multiple sources report on the same event, surface where they disagree." Catches the interesting friction.
- Calibrated certainty. "Where reporting is thin or unreliable, mark with [single-source]." Prevents the briefing from blessing unsourced rumours.
Job 4: Distribution
The last step is delivery. A briefing that lands in the wrong place at the wrong time is worse than no briefing.
Practical questions:
Where? Email is the standard. Slack works for team briefings (a dedicated channel). RSS works if you want subscribers without managing email. A Notion page or daily note works for personal use.
When? Match to the reader's habit. A morning briefing should arrive 30-60 minutes before the reader's typical first review time. For most knowledge workers, that means 7-8 AM local time.
How frequently? Daily for fast-moving topics; weekly for slower ones. Don't combine — a weekly briefing of daily-frequency content is too thin; a daily briefing of weekly-frequency content has too few items.
Personalisation. If you're producing a briefing for multiple readers, consider light personalisation — different sections for different roles, different "top 3" based on their stated interests, different sources weighted differently.
The architecture
Putting it together, a typical briefing system looks like:
[Scheduled trigger: daily at 6 AM]
↓
[Fetch sources in parallel: RSS, APIs, scrapers]
↓
[Deduplicate: remove articles already covered]
↓
[Filter tier 1: keep all]
[Filter tier 2-3: keyword + embedding + LLM scoring]
↓
[Rank by score]
[Take top N (typically 20-40 items)]
↓
[Synthesis prompt with all items as input]
↓
[Distribute: email / Slack / Notion / RSS]
↓
[Log everything for review]For most personal briefings, this lives in n8n. For a serious team briefing, it might be a small custom service.
A practical setup in n8n:
- Cron trigger at 6 AM.
- RSS Read nodes for each tier-1 source.
- HTTP Request nodes for any custom APIs.
- Merge all items into a single list.
- Code node for deduplication (by URL or title hash) against the last 7 days' items.
- OpenAI/Claude node that processes each item with a scoring prompt.
- Filter to keep items with score >= 7.
- Aggregate items into one big context.
- OpenAI/Claude node for the synthesis prompt.
- Send Email (or Slack message, or Notion) with the synthesised output.
This is around two hours of setup for an experienced n8n user, or a full evening for someone new to it. Once running, it operates autonomously every day.
The discipline: keeping it worth reading
The hard part of an AI briefing is not building it. It is keeping it worth reading. A briefing that ships every day but degrades in quality gets ignored within weeks.
Some discipline habits that matter:
1. Read your own briefing critically every day for the first month
Each morning, ask: would I have read this? What was useful? What was filler? What did I want that wasn't there?
Adjust the prompts, sources, and filters based on what you notice. The first month is critical for tuning. Skip it and you have a generic system that produces generic output.
2. Track engagement
For email briefings, open rates and click rates tell you if the content is landing. For Slack, reactions and replies. For personal briefings, just notice — did you read it today or skip it?
When engagement drops, something has changed: sources are stale, the synthesis has gotten generic, the audience has shifted. Investigate.
3. Prune sources ruthlessly
Most sources will produce gold occasionally and noise often. The 80/20 rule: a few sources produce most of your "top 3" items. Find them. Remove the rest.
A useful quarterly exercise: for each source, calculate "of items from this source that passed the filter, what fraction made it to top 3?" Sources that consistently fail to deliver top items get cut.
4. Watch the synthesis quality
LLMs sometimes drift. The synthesis prompt that produced great briefings in January may produce hedged, generic ones by March because the underlying model was updated. Re-test periodically. Refresh the prompt if quality has slipped.
5. Maintain a "skip list"
Specific patterns to suppress: a story that has been covered repeatedly, a particular source's pattern of clickbait, content marketing dressed up as analysis. The skip list is a manually maintained set of filters that say "even if this passes scoring, don't include it."
6. Have a kill switch
Some days, nothing important happened in your topic. The honest move is to send nothing or to send a very short briefing. Building this in — "if fewer than 3 items score above 7, don't send a full briefing" — preserves quality.
A worked example: an AI industry briefing
To make it concrete, here's the configuration for an actual daily briefing on AI industry news:
Sources:
- Hacker News front page (filtered for AI content)
- a16z, Stratechery (Stratechery requires subscription, but Ben Thompson's free posts work)
- Anthropic, OpenAI, Google AI, Meta AI blog feeds
- The Information's AI coverage (requires a paid subscription if you want full articles; otherwise their public summaries)
- TechCrunch AI section
- arXiv cs.CL daily digest (filtered to "approachable" papers)
- @karpathy, @sama, @demishassabis, @swyx tweets (via Nitter or X API)
- /r/MachineLearning top weekly posts
- Specific company official announcement pages
Filter audience description:
A serious AI practitioner who builds with the technology, follows model releases, and cares about practical implications. They are not interested in clickbait headlines, breathless hype, or "AI will end the world" content. They are interested in: new model releases and capabilities, technical research with practical implications, business and competitive moves, policy developments that affect builders, and unusual or contrarian takes from credible voices.
Filter scoring prompt:
Score this article 1-10 for a serious AI practitioner. Penalise:
- Hype framing without substance.
- Pure prediction pieces without evidence.
- Trade press recycling press releases.
- Content marketing dressed as analysis.
- Repeats of major stories already covered widely.
Reward:
- Specific technical findings or model details.
- Competitive moves or strategic shifts.
- Practical implications for builders.
- Contrarian or unexpected analysis from credible sources.
Output JSON: {"score": <1-10>, "reason": "<one sentence>"}Synthesis prompt: the standard top-3 / quick-reads / skim-or-skip structure described above, with audience framing matching the filter description.
Delivery: Email at 7 AM local time.
This produces a 5-minute daily read that a serious AI practitioner would actually want.
A few specific patterns worth borrowing
The internal briefing. A daily summary of your company's internal sources — Slack channels, support tickets, customer interviews, sales call transcripts — produces an internal pulse-check that leadership and individual contributors both find useful.
The competitive briefing. Tracking competitors' product announcements, hiring, marketing, customer reviews. Useful for strategy, sales, and product teams.
The team-skill briefing. A weekly digest of new tools, articles, and findings in your team's discipline. Less news-driven, more "stay sharp" oriented.
The personal investment briefing. Curated news on the markets, companies, and trends you have personal stakes in. Replaces watching CNBC.
The customer-voice briefing. All customer feedback (support tickets, reviews, social mentions) processed daily into themes, surprises, and notable individual cases.
Each follows the same architecture; only the sources, audience, and filter prompts differ.
The takeaway
A daily AI briefing is two hours to build, a month to tune, and a permanent productivity asset once it works. The architecture is simple — gather, filter, synthesise, distribute. The discipline is in maintaining quality through iteration on prompts, sources, and filters.
Most people who try this give up too early — they ship version 1, it isn't quite right, they don't iterate, and they let it die. The ones who tune it for a month end up with a tool they cannot imagine working without.
Pick a topic you care about. Set up the architecture this weekend. Read your own briefing critically for the first month. By month 2, it will be one of the most useful pieces of automation you've ever built.