news scraper
It started with a brief from the marketing team. One problem stood out: a media outlet has to react to news fast, but nobody has time to read hundreds of industry telegram channels every day. Stories were found late, some were missed entirely.
I built a workflow that does it instead. Every morning the work chat gets a digest: 20 stories from the past day, each summarised and already rewritten in the company’s voice.
how it works
At 10 am the workflow wakes up and pulls industry telegram channels through RSS Bridge. A custom prompt scores every story from 1 to 10, and that score decides what survives.
The top 20 go to the chat: headline, link to the source and a ready preview comment — take it and publish. The full list for the day, rejects included, lands in a separate sheet.
a human stays in the loop
Any story can be rewritten, given an image and scheduled. The bot checks the queue every two minutes and publishes on its own.
under the hood
- n8n on our own server, in docker, fires at 10 am
- 20+ telegram channels via rss bridge, 100+ stories a day — the only limit on sources is the server
- dedupe and clean-up in javascript: 24-hour window, duplicates matched by link
- scoring on gemini with a custom prompt
- a second agent builds the digest: telegram formatting and brand voice
- python bot, apscheduler for timing, publishing queue in google sheets
results