Back to work

Personal AI automation

ReviseBot

A voice-note-to-review tool that turns a study topic into a 1, 3, 7 and 21-day schedule.

My contribution
Self-hosted bot and scheduling workflow
Status
Self-hosted tool / prototype

Actual persistence output

Second law of thermodynamics

Synthetic topic confirmed on

  1. Day 1
  2. Day 3
  3. Day 7
  4. Day 21

Produced by the real scheduling code using isolated sample data. This is not a Telegram or speech-recognition demo.

The problem

Capturing a study note is easy. Remembering when to revisit it is a separate task. I wanted a small workflow that could accept a voice note, clarify the topic and turn that decision into scheduled review dates.

My contribution

I built a self-hosted Telegram study tool with text and voice handlers, transcription, topic confirmation, SQLite persistence and daily digests. It is presented here as a personal automation tool and prototype, not a proven learning platform or a public service with claimed retention results.

PythonTelegramSQLitefaster-whisper

What I built

01 / Capture and clarify

A voice note can be transcribed, then an agent proposes a topic. The pending draft is kept separate from a confirmed topic so interpretation does not immediately become a permanent schedule.

02 / Confirm and persist

Confirmation saves the topic and its four review dates in one transaction. The pending draft is cleared after that write. The schedule below was produced by the actual persistence code using isolated synthetic data.

03 / Return when it is due

A daily job queries the dates due for a chat and prepares its digest. The scheduler is in memory: if the process is offline at digest time, missed digests are not automatically replayed.

Decisions + tradeoffs

Confirmation is a state boundary

A proposed title is not yet a confirmed study topic. That explicit state change keeps a conversational interface from silently scheduling an interpretation the user did not approve.

Test persistence without messaging anyone

For this portfolio, the database module was run against a new isolated SQLite file. Four persisted dates, draft clearing, chat isolation and rejection of invalid inputs were checked without opening the original database or contacting Telegram.

Be precise about local processing

Speech transcription can use local faster-whisper, while topic text can still go to a configured LLM provider. Local transcription does not make the entire workflow offline or private by default.

Checks + limitations

The embedded example tests scheduling and persistence only. It is not a recording of Telegram, speech recognition or a delivered digest. Deployment needs a running process and configured services. I would improve catch-up behavior and add idempotency around repeated confirmations before treating it as a service for other people.

What it delivered

A small automation with an explicit confirmation boundary and a persistent review schedule. In the isolated check, one confirmed synthetic topic became four stored review dates, its draft was cleared and invalid input left no partial topic. The next improvements are catch-up behavior and repeated-confirmation handling.

  • Topic confirmation before saving
  • Persistent four-date review schedule
  • Daily digest workflow
Read the source on GitHub