Inspiration I was drowning in voice notes, bill photos, LinkedIn jobs, shopping lists, and random PDFs. Existing apps force forms and folders up front. I wanted WhatsApp-level capture with an agent that files, extracts money, and proposes real actions — without acting behind my back.

What it does Hub is a personal multimodal organizer.

1) Capture: send voice, photo, PDF, link, or text to a Telegram bot. 2) Understand: a Google ADK agent on Gemini (Vertex AI) classifies the capture into themed folders (Finance, Links, Documents, Workout, etc.). 3) Act with confirmation: it can propose Google Calendar events and Gmail (e.g. job CV) — nothing is created/sent until you tap Confirm in Telegram. 4) Review: a Cloud Run dashboard shows the living archive, P&L, and weekly reports, with an EN/PT UI toggle.

Bonus models in the stack: Gemma (filing hints), Veo (week recap), Lyria (week theme).

How we built it - Telegram webhook → FastAPI on Cloud Run

  • Isolated ADK session per capture
  • Gemini 3.6 Flash via Vertex (location global)
  • Firestore for inbox cards, GCS for media
  • OAuth for Calendar / Gmail / Drive (confirm-before-send)
  • Dashboard: static UI + finance/reports APIs
  • Link dedupe for repeated LinkedIn/job posts
  • Deploy script: scripts/deploy_cloud_run.ps1

Architecture: https://github.com/IACFO/hub/blob/main/docs/ARCHITECTURE.md

Challenges we ran into LinkedIn login walls, Gmail API enablement, attaching CV from GCS (not local disk), Cloud Run cold starts, and keeping side effects behind human confirmation so the agent never “fires and forgets.”

Accomplishments that we're proud of End-to-end live demo on Cloud Run: Telegram capture → agent filing → Calendar confirm → dashboard. English-ready UI, English README, architecture diagram, and a ≤4 min demo video with English captions.

What we learned Agent UX is as important as model quality: propose → confirm beats silent automation. Hosted proof (*.run.app) matters more than local demos for judges.

What's next for Hub — Inbox-to-Life Hard delete for discarded items, stronger auth on the public dashboard, and tighter job-application workflows.

Built With

Share this project:

Updates

Submission history