Case Study 03
Daily X Bookmarks Feed
Fetch your X bookmarks, classify them with AI, and receive a curated daily digest on Telegram.
Automation Pipeline // 2026
The What
A fully automated pipeline that fetches my bookmarks from X, classifies them using Gemini, and delivers a curated daily digest of up to 3 bookmarks via Telegram.
The pipeline runs in two recurring jobs. A weekly refresh fetches newly bookmarked posts from X using OAuth 2.0 PKCE, classifies them with Gemini (adding topic, summary, and priority), and merges them into the main dataset. A daily delivery job selects the top unsent bookmarks — highest priority first, oldest first within the same priority — formats them into a single Telegram message, and marks them as sent.
The project runs locally with uv and is fully automated via GitHub Actions, with workflows that commit updated state files back to the repo after each run.
Tools: Claude Code, GitHub Actions, Telegram Bot
The Why
I bookmark a lot of posts on X (previously Twitter) but rarely go back to read them. This project turns that passive habit into an active one: every day I get a Telegram message with 3 bookmarks worth revisiting, already classified and prioritized by an LLM.
The great thing is that it works in getting me to actually read my bookmarked posts.
TECH STACK
Data Source
X API with OAuth 2.0 PKCE authentication
Classification
Gemini API for topic, summary, and priority tagging
Delivery
Telegram Bot API for daily bookmark digests
Automation
GitHub Actions for weekly refresh and daily delivery
Key
Learnings
OAuth 2.0 PKCE Flow
Implemented the full OAuth 2.0 PKCE flow for X API authentication, with token caching locally and refresh token handling in CI.
LLM-Powered Classification
Used Gemini to automatically classify bookmarks by topic, generate summaries, and assign priority levels for smarter delivery.
Stateful Pipeline Design
Designed a pipeline with separate state files for fetch progress, classification, and delivery tracking to ensure idempotent and resumable runs.
GitHub Actions CI/CD
Set up two automated workflows: a weekly refresh that fetches and classifies new bookmarks, and a daily job that delivers them via Telegram.