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

cloud_download

Data Source

X API with OAuth 2.0 PKCE authentication

smart_toy

Classification

Gemini API for topic, summary, and priority tagging

send

Delivery

Telegram Bot API for daily bookmark digests

schedule

Automation

GitHub Actions for weekly refresh and daily delivery

Key
Learnings

01

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.

02

LLM-Powered Classification

Used Gemini to automatically classify bookmarks by topic, generate summaries, and assign priority levels for smarter delivery.

03

Stateful Pipeline Design

Designed a pipeline with separate state files for fetch progress, classification, and delivery tracking to ensure idempotent and resumable runs.

04

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.

← Back to Work