Skip to content

GastoBot

2025

Logging an expense in the time it takes to send a voice note

A Telegram bot that understands text, voice notes and receipt photos, and writes the expense into a monthly spreadsheet.

Personal project. I use it every day.

Stack

  • Python
  • Gemini
  • Telegram
  • Google Sheets

The problem

Tracking expenses in a spreadsheet works right up until you have to open it. Entries get logged late, logged wrong, or not at all.

How it works

  • You send "I paid 15 euros at the supermarket", a voice note, or a photo of the receipt.
  • Gemini extracts merchant, amount, description and category as JSON.
  • The bot shows what it understood and you can accept it, correct any field or cancel.
  • On confirmation the row is appended to that month’s tab.

Decisions

Confirmation is not optional. A model gets a crumpled receipt wrong, so nothing reaches the sheet without me seeing it first.

The bot only answers my Telegram user. The monthly summary command groups by category, which is the only view I actually look at.