Daily briefing bot
An automated digest that watches the sources you care about and emails you the few items worth your time. Seven posts on the same system — one diagram at a time — with an engineering reference at the end.
-
01
A daily briefing bot on AWS for a few dollars a month
The whole system on one page — an ingestor, a ranker, a postman, all sharing one config.
-
02
How the ingestor walks your sources
A small dispatcher reads your source list, hands each source to a specialist worker, and drops everything new into one mailbox.
-
03
How the bot picks what matters
Three filters in order, cheapest first. Most items die at the free filter; the smart AI only sees the few borderline cases.
-
04
How the digest gets delivered
Five short blocks in your inbox at 7am — or nothing on quiet days. The bot never trains you to ignore it.
-
05
How you change what the bot watches
Two short Drive docs are the entire interface. Edit, save, the bot picks up the change tomorrow.
-
06
What the briefing bot costs
A coffee a month, possibly less. Where the dollars actually go in a serverless briefing bot on AWS.
-
07
Engineering reference: the briefing bot architecture
Same system, drawn purely for engineers. Service names, resource identifiers, region, Bedrock model IDs.
Frequently asked questions
- What does the daily briefing bot do?
- It watches the sources you care about (RSS feeds, public APIs, plain web pages), reads what’s new each morning, scores every item against a short topic description you wrote, and emails you the few items worth your time. Quiet days send nothing — empty inboxes are a feature.
- How much does it cost to run?
- About $1–$3/month at typical volume. Lambda runs, the morning timer, queues, alerts, and small DynamoDB tables sit inside the AWS always-free tier. The real spend is Bedrock tokens for embeddings and the smart-AI judge on borderline items, plus Amazon SES for delivery — pennies a day. An AWS Budget alarm at $5/month catches anything weird.
- Which sources can it watch?
- Anything reachable from a Lambda. Three worker types cover most of the web: an RSS worker for tidy feeds (most blogs and newsrooms), an API worker for sites that expose JSON, and a page worker that scrapes and extracts article text from plain HTML. You list the URLs in a Drive doc; the dispatcher routes by source type.
- How does the bot pick what matters?
- Three filters in order, cheapest first. Filter 1 is free rules (duplicates, too short, wrong language, muted source) — clears roughly half the morning’s haul. Filter 2 is similarity scoring against your topic via Bedrock Titan Text Embeddings v2, a fraction of a cent per item. Filter 3 is Bedrock Claude Haiku 4.5 in JSON mode, but only on borderline items — usually a handful per day.
- How is the digest delivered?
- You pick one channel: email via Amazon SES (most common, lands at 7am SGT), a chat channel like Telegram or Discord, or a fresh Google Doc each morning. The digest is five short blocks — headline, one-line summary, why it matters, link per item. The subject line carries the top two headlines so you can decide whether to open before you do.
- How do I change what the bot watches?
- Two short Drive docs are the entire interface. The
sourcesfile lists one URL per line; thetopicfile describes what you care about in plain English. Saving a doc fires a Drivechanges.watchnotification to a sync Lambda, which validates and promotes the new content. Tomorrow’s digest reflects the change. If a change is broken, the old version stays live and you get a comment in the doc. - Which AWS services does it use?
- Lambda (with one Function URL for Drive notifications), EventBridge Scheduler, SQS with paired DLQs, DynamoDB on-demand, S3, SNS, Amazon SES, Secrets Manager, CloudWatch Logs with seven-day retention, AWS Budgets, and Bedrock (Claude Haiku 4.5 via Global cross-Region inference plus Titan Text Embeddings v2). No API Gateway, no NAT Gateway, no always-on compute.