Personal project 2026 → running now Built and run by me

The morning news, read to me.

Every weekday a small pipeline collects the news, picks what matters, writes a short script with an AI model, turns it into a natural voice, and sends the audio, a recap, photo cards and links to my Telegram. Built for one listener: me.

RunningSilent weekdays · around 11 am New York time
Runs every weekday
global + personal editions · recap at the weekend
Runs after the opening bell on purpose, so there are articles to summarise.
status set by me · grey if it breaks
The problem

Too many tabs before breakfast.

I wanted to keep up with markets, tech and world news without scrolling several sites every morning.

And I didn't want to make the usual low-effort AI content. If a machine was going to summarise the news for me, it had to be good enough to actually listen to, every day.

the old way
finance site · newspaper · tech feed · …every morning
The old way: several sites, a pile of articles, read it all or miss it. Every morning.
Grey = how it was. Colour, below, = what I built.
What I built

One message a day. Press play, or read the recap.

Around 11 am New York time on weekdays the pipeline runs on its own and this package lands in Telegram. That hour is on purpose: it is after the opening bell, so there are articles to summarise. First, the shape of a real run, shortened. Then the five steps that make it; the technical words are in one small block underneath.

Finance Briefingbot
Global briefing · Sep 16
Fed hikes, Dow drags in a mixed session
3:40

PolicyThe Fed raised rates a quarter point, its first hike in three years.

MarketsMost indexes slipped a little; the Dow fell harder, dragged by a few big names.

TechA public jab between two AI labs made the front pages.

10:59 AM
Photo cards
The Eccles Building, headquarters of the US Federal Reserve in Washington, DC, under a blue sky
Fed raises rates for the first time in 3 years · SCMP
Why: the Fed–White House tension, first hand.
read article
Gloved hands holding a finished silicon wafer in a cleanroom
China runs a weather model on 100,000 home-grown AI chips · SCMP
Why: domestic chips at scale, despite export controls.
read article
10:59 AM
Global · all stories
  • Fed raises rates for the first time in 3 years — SCMP
  • Takeaways from the Fed's decision — New York Times
  • Fuel prices push UK inflation higher — BBC
  • Hong Kong plans to double innovation spending — SCMP
  • … and the rest of the day's stories
10:59 AM
Message
Illustration: the shape of the real Sep 16, 2026 run, text shortened. Photos are illustrative, open-licence (the real cards carry press photos). Highlighted dots = the day’s top stories.

Photos: Federal Reserve (public domain); U.S. Dept. of Energy (public domain) — illustrative

How I built it · five plain steps
01
A timer starts itWeekdays, around 11 am New York time: after the opening bell, so there are articles to summarise. Nothing to press.
02
It collects the newsSmall Python scripts pull stories from several finance-news services and major newspapers, plus the day’s market moves, and skip repeats.
03
An AI model picks and writesIt ranks what actually moved markets, ties the moves to their causes, and writes a short script in a fixed shape — a global edition and one filtered to what I follow.
04
A voice reads itText-to-speech turns the script into audio. I tested voices first; this one takes notes on tone, so it doesn’t sound like a robot.
05
Telegram gets the packageThe audio is stored online, the bot posts the recap, audio, photo cards and link list, and a tiny status file is updated for this site.
I decide what to read in full.
Every card links back to the original article.
built runs on a schedule a person decides the old way
for the technical reader

scheduler = a program that runs a task at set times; here n8n · feed = the machine-readable version of a news site · Claude API = the AI model, called by code with my instructions and rules · Inworld TTS = the voice service, Google’s voice as the backup · Cloudflare R2 = file storage; it also feeds a private podcast app.

What a person still decides

Nothing is reviewed before it sends. That’s the point.

the green diamond

It’s my own briefing, so no one signs off on each message. What I decide is what to open (every story links back to the original), what stays in (I tweak the format run after run; the first version is never right), and what stays out. Generated charts looked convincing but their numbers weren’t reliable, so I dropped the generated charts. Video stayed an experiment.

What it removed

Three things I stopped doing by hand.

Repetition
was: open several sites, every morning

Summaries and the links now arrive in one place.

Hand-starting
was: remember to go and look

Nothing to trigger. It runs itself on weekdays and tells me if a step failed.

Reading
was: read everything to find the few that matter

Listen instead, a few minutes a day. Open a link only when I want more.

A personal tool that runs itself each weekday.
Honest split

My part, and not my part.

My part

  • The idea and the bar: useful every day, not AI slop.
  • Choosing the sources and what counts as important.
  • Designing the pipeline and wiring the pieces together.
  • Picking the voice after testing options, and tuning its tone.
  • Testing image tools (cinematic vs cartoon) and dropping charts when their numbers weren't right.
  • Tweaking the output, run after run. Adding fallbacks and the status file.

Not my part

  • The journalism. Every item links to the original article and names its source.
  • The summaries and the narration. Claude and Inworld do those, inside rules I set.
  • The timing. A scheduler starts it; I don't press anything.
  • AI helped me research each tool before I built with it, and dig further when it wasn’t sure.
Tools
Python n8n Claude API InworldTTS Cloudflare R2 Telegram

The "last run" line on the status card is written by the workflow itself, and goes grey if it is silent for two days. The code stays private for now.

Next: Does a bigger model trade better? All work