Cédric Rittié

← Back to blog
8 min
toolsobsidianautomation

My capture workflow: research, ideas and tasks in Obsidian

A Telegram bot, a Python daemon, GPT-5.4 and Obsidian. How I built a capture system that sorts, enriches and files everything I read and think.

The problem

We read 50 things a day. We retain 2. The rest disappears into a bookmark graveyard, a "Read Later" tab that will never be read, or a voice note that will never be replayed.

The typical reflex is to stack apps: Pocket for articles, Notion for notes, Todoist for tasks, an "Inspirations" folder somewhere. Four places, four systems, no connection between them. After three weeks, nobody knows where anything is.

What's missing is a pipeline. Not a trendy PKM "second brain." A pipe. One input, one process, one output.

The principle: one entry point, one destination

iPhone
Share / Dictate
Telegram
Intake bot
GPT-5.4
Sort, enrich, score
Obsidian
Filed + linked note
Claude Code
Research, content, work

The system fits in one sentence: everything goes through Telegram, everything lands in Obsidian.

Not four apps. Not three workflows. One gesture: share to a Telegram bot from the iPhone. The bot identifies what it is (an article, a tweet, an idea, a task), enriches it with GPT, and writes it to the right folder in the Obsidian vault. That's it.

Every capture arrives sorted, summarized, scored and linked to existing notes. No manual intervention.

The entry point: the iPhone

Two gestures, no more:

The share sheet. Any link (article, tweet, Instagram post): share to the Telegram bot conversation. The bot receives the URL and starts the pipeline.

The action button. The physical button on the side of the iPhone is programmed to open the Telegram bot. Press, dictate an idea or task (Wispr Flow cleans the text), send. Captured.

Why Telegram as the entry point: it's an app everyone already has, it works offline (messages send when connection returns), and the bot API is simple.

The 5 pipelines

The bot doesn't handle an article and a raw thought the same way. It classifies the message and applies the right pipeline.

Type GPT Destination Article Clipping/ scrape + summary + score 1-5 Tweet / X _Inbox/From X/ text + images + scraped links Instagram _Inbox/From Instagram/ link + comment Thought _Inbox/Thoughts/ reformulated + connection Task Captured Tasks.md tagged + appended

1. An article

I share a link. The daemon scrapes the content with trafilatura, sends it to GPT-5.4 which produces: title, author, dense summary, key ideas, an open question, a suggested action, and a relevance score from 1 to 5. Everything is written to Clipping/.

Here's what it looks like for a Craig Mod article about personal software:

https://craigmod.com/essays/software_bonkers/
Scraping with trafilatura...
GPT-5.4 analysis...
Software Bonkers — Craig Mod
Score: [■■■■□] 4/5

Summary: The article argues that code models make "N=1" software viable — tools built for a single user. Mod illustrates this with custom accounting software he built in five days.

Action: Identify a constrained workflow and launch an AI-first prototype to test the value of bespoke software.

The Obsidian note contains the summary, key ideas, open question, suggested action, and full source text in an accordion. Everything is in the frontmatter: score, tags, topics, capture date.

2. A tweet

Tweets go through the FXTwitter API (no fragile scraping). The bot retrieves the text, images (downloaded locally), video thumbnails, and crucially: it scrapes external links found in the tweet. If someone shares an article in a thread, the bot fetches the article, summarizes it, and integrates it into the note.

https://x.com/shannholmberg/status/2041097354779218190
FXTwitter API...
Downloading image...
GPT-5.4 analysis...
[■■■■□] 4/5 — @shannholmberg

Summary: The tweet argues for building a centralized knowledge base as a lever for AI-powered marketers. An agent connected to a structured corpus (hooks, creatives, competitor threads) can search and transform those resources.

Action: Structure a marketing content source folder and connect it to an LLM agent.

→ _Inbox/From X/ + 1 downloaded image

The difference with a simple bookmark: the note contains the tweet text, the image stored locally (no external link that breaks), the stats (likes, RTs), and if the tweet contains a link to an article, that article is also scraped and summarized in the same note.

3. An Instagram post

Lightweight note with the link and comment. Instagram has no usable public API, so no enrichment. It's a glorified bookmark, but at least it's in the same place as everything else.

4. A raw thought

I dictate "For Lucira, the logo could be an RSS icon shaped like a laurel leaf." The bot detects it's raw text (no link), sends it to GPT which reformulates into a dense version, generates a title, and adds an intellectual connection to an existing concept. The note lands in _Inbox/Thoughts/.

For Lucira, the logo could be an RSS icon shaped like a laurel leaf
RSS laurel logo

Reformulation: For Lucira, the logo could merge the recognizable RSS icon shape with a laurel leaf. Modern, readable, with an idea of distinction and curation.

Connection: The laurel evokes the tradition of victory. Combining it with RSS creates a bridge between symbolic prestige and information circulation.

5. A task

If GPT detects the message is a todo rather than a thought (action verb, intention to do something), it reformulates it as a task, auto-tags it (#sewan, #perso, #ai, #kids, #finance, #heighliner), and appends it to Captured Tasks.md. No new note, just one more line in the list.

Why these choices

Telegram over an iOS shortcut or a dedicated app. Telegram has a simple bot API, it works offline (messages send when connection returns), and it's an app you already open 30 times a day. No new habit to build. The iOS share sheet sends directly to the bot, a gesture you already do when sending a link to someone.

GPT for sorting, not for writing. GPT's role here isn't to produce content. It's to evaluate and structure. It reads a 3,000-word article and outputs a 4-line summary, a score, and an action. That's processing, not generation. The prompt is calibrated to be dense and factual, not to sound nice.

A relevance score instead of a tagging system. Tags, nobody uses them after two weeks. The 1-5 score is blunter but more useful: at a glance, I know if it's worth opening the note. What changes behavior is that when you see an article you thought was interesting scored 2 ("AI slop, generic"), you stop saving noise. The filter educates.

Obsidian over Notion or a database. Obsidian stores everything as local markdown files. No vendor lock-in, no proprietary database. Claude Code can read the vault directly. If Obsidian disappears tomorrow, the files remain.

The system's intelligence

Four mechanisms beyond raw capture:

Relevance score (1-5). The grid is simple: 1 = spam or noise, 2 = generic content or AI slop, 3 = interesting but not urgent, 4 = strong signal for my topics, 5 = reference to keep. The score shows on Telegram ([■■■■□]) and in the frontmatter. In practice, I only read 4s and 5s first. 3s, I browse when I have time. 1s and 2s, I don't open.

Automatic wikilinks. At startup, the daemon indexes 440+ notes from the vault (projects, contacts, topics). Each capture is scanned: if GPT mentions a term matching an existing note, it creates an automatic wikilink. A capture about "agents" gets linked to my [[Agents and sub-agents]] note. The index refreshes every hour.

Deduplication. Before each write, the daemon checks if a file with the same source: URL already exists. If so, it replies "Already captured" and doesn't create a duplicate.

Telegram feedback. Each capture sends back an instant message. In 10 seconds, without opening Obsidian, I know what the system retained:

[■■■■□] 4/5 — Software Bonkers

Craig Mod explains how AI-assisted code lets him build ultra-customized software in days.

Action: Identify a constrained workflow and launch an AI-first prototype.

→ Clipping/2026-04-04 21h51 - Software Bonkers.md

The loop: Obsidian to Claude Code

Captures don't sit idle in the vault. They feed the rest of the system:

  • Clippings scored 4-5 feed my content:plan skill, which plans article and post topics
  • Thoughts become briefs for new projects
  • Tasks show up in Obsidian views and are visible daily
  • Claude Code accesses the entire vault through skills. When I ask "what interesting signals this week," it reads the latest captures

Intake feeds everything else.

What it costs

ComponentCost
Home server (or a VPS)0 € (or ~3 €/month)
OpenAI API (GPT-5.4)~2-3 €/month for ~200 captures
Telegram botFree
ObsidianFree (Sync optional)
Setup timeOne weekend

Zero paid apps. Zero SaaS subscriptions. The script is ~400 lines of Python, half of which is GPT prompting. The rest is Telegram plumbing and file writing.

What it changes

Since the system has been running, I don't lose anything. Last month: 180 captures, 23 scored 4 or 5. Of those 23, 4 became articles or briefs. The rest waits in the vault, indexed, linked, ready to resurface when the topic comes back.

Capture friction dropped to zero: one gesture on the iPhone, done.

The real gain isn't storage. It's that captures feed directly into work: a clipping scored 5 becomes an article, a thought becomes a brief, a task captured while walking is in my list the next morning.

A living system

This kind of system is never finished. It evolves with usage, new sources, new needs. It's a tool you maintain, adjust, repair. Like a workshop: good tools require attention. A scoring prompt that drifts, a wikilink that matches too broadly, a new content type to route. That's part of the game. It's also what makes it interesting: with each adjustment, the system becomes a bit more useful.

Here's where it stands today and where it's going:

What works well. The article pipeline is solid: reliable scrape, dense summary, useful score. The X pipeline too, with the bonus of scraped links in tweets. Dictated thoughts are the surprise: the fact that GPT reformulates and looks for a connection turns a brain dump into a usable note.

What's still fragile. Instagram remains limited to link + comment (no public API). Wikilinks have false positives on common words. Scoring is static: GPT doesn't know what I'm working on this week, so an article about MCPs can be scored 3 when I need it right now.

What's coming. An automatic weekly digest compiling captures scored 4-5. A video pipeline (YouTube) with transcription and summary. The ability to re-score a capture after the fact. And eventually, open-sourcing the script.

Found this useful?

I publish a bimonthly synthesis of what I learn and build with AI. No spam.

The AI signals that matter, the workflows that work, the shortcuts nobody explains. Twice a month, in your inbox.

Related articles