N Newsletters to 1 Digest, Built for AI Engineers
TL;DR
I built a private pipeline to do my AI-news reading for me. It reads a vetted set of newsletters and fetches the actual article behind every link. Summarizes each one. Then it works out which stories are the same story wearing different headlines, throws out the marketing and the noise, and hands me the twenty or thirty things that actually mattered that day. Output's public now: downstream.news. Free, no account, RSS and email and JSON. Built for people who ship with AI models and agents.
I built this for me
Eight newsletters in the inbox, checked every evening. That was my N. I was wasting too much time reading the same story multiple times and having to blow past low-value material. There was no moment of inspiration, no interesting backstory (although the AI editing this piece tried to coax me in that direction). I had a repetitive reading chore, I can write code, and the chore happens to be a use case that fits what a language model is good at if you build enough scaffolding around it to make the output trustworthy.
And there was a lot more scaffolding than you might think. I thought this was going to be an easy task, but it stretched out to a few months... shit maybe even five, now that I think about it. Two of those I threw away when I was leaning too hard on the "vibes" and building a beast with every feature that you could think of. Most of those features failed at the finish line. I had to restart after that. I am pretty embarrassed that I fell into that trap.
Now that it's actually functional and useful, I figured other people are doing the same eight-newsletter shuffle I was, so the output is public.
What it actually does
Four things it does well. This isn't a feed reader.
It summarizes
Every story gets a one-to-two-sentence paraphrase, written by a model that went and read the underlying article. Not the newsletter's blurb about it. About 81% of what the pipeline analyzes comes from the link's destination rather than the anchor text. The newsletter is a delivery vehicle; the reading happens on what it points at.
The summary is there to let you decide whether to click, and every item links to the primary source. Downstream is a router. Everything worth reading still lives on someone else's site. Plus, I want to promote these sources; they are great and I am grateful for them.
It de-dupes across sources
This was the hardest part by an embarrassing margin. "The same story across five newsletters" is a URL-canonicalization problem sitting on top of a tracker-stripping problem, because every newsletter platform wraps its outbound links differently. String comparison gets you nowhere. HubSpot doesn't even use an HTTP redirect; it returns a JavaScript page with the real URL hidden in a variable assignment that you have to parse out of the body. Matching runs in three tiers: exact URL after normalization, then fuzzy title, then embedding similarity against a vector store, over a rolling seven-day window.
The visible payoff is the badge on every item saying how many independent sources touched it. That count is real signal when you're scanning a list. It sorts, too: when two items score the same, the more widely covered one wins.
There's a second de-dupe most aggregators skip. A topic that already ran in the last seven days gets suppressed, so a story with legs doesn't show up in your digest five evenings in a row.
It throws away the noise
Every item is scored on two axes against an explicit profile: importance to a practicing AI engineer, and urgency, meaning is there a deprecation deadline or an active security issue with your name on it. The scoring rubric is anchored with worked examples of what an 8 looks like versus a 2, because a model with no anchor parks everything at 6.5 and tells you nothing.
The profile also carries explicit deprioritize hints. Funding announcements with no product angle score low on purpose. So do job listings, navigation chrome, conference promos, and the subscription marketing that newsletters interleave with their content.
What's left is the day
Roughly 250 candidate items a day come out of the sources. What ships is twenty to thirty.
On 24 July the pipeline turned 244 items into a 30-item digest. On 23 July it published seven, because 23 July was a quiet day. There's no fixed quota padding a thin day, but there is a cap on a heavy one, topping out at 30 items.
Aimed at AI engineers specifically
The scoring profile is literally a file called ai-engineering. It's not a general tech feed with an AI section bolted on.
What that looks like:
- Topic tags on every item: Models, Agents, On-device, Coding, Research, Robotics, Policy.
- Reader-skill tags telling you what kind of read it is before you commit: Internals, Depth, Product, Any.
- A published source list at /sources/, so you can judge the inputs instead of trusting the output.
- Machine-readable everything: RSS, JSON Feed, per-digest Markdown, an
llms.txt, and a /for-agents/ endpoint. If your own agent wants to read the digest, it doesn't have to scrape a webpage to do it.
Things I'd want to know if I were you
The corroboration count means "N sources touched this topic," not "N sources ran this exact story." I calibrated the semantic matching against 220 hand-labeled pairs and the gradient between those two ideas is genuinely weak: a pair I'd judged must-not-merge scored 0.796, a pair I'd judged must-merge scored 0.761. No threshold lives in that band. Anything in the gray zone now escalates to a second model that answers "same story?" one pair at a time.
Around a fifth of link fetches fail on any given day, thanks to paywalls, bot blocks, and JS-only pages. Those items still surface, marked degraded, with the anchor text as a title hint.
The input is adversarial by construction, since an attacker controls the entire body of any email the pipeline ingests. There are five layers of prompt-injection defense in front of the model, and every model response is schema-validated, and a response that doesn't fit the contract doesn't get quietly reshaped into one.
And it publishes unattended, which only works because the pipeline grades its own output. Each day's artifact carries a health block. The site publishes on green and holds on anything worse, showing a delayed notice instead. Publishing nothing beats publishing something I can't vouch for.
Go look at it
downstream.news updates every evening around 19:15 CET. There's a web archive, an RSS feed, and a daily email if you want it delivered. No account, no paywall, no plans for either.
If you're currently running the eight-newsletter shuffle, try it for a week alongside your normal reading and see what it misses.