Inspiration
Everyone drowns in email. Most of it falls into a few buckets: truly urgent, needs a reply, needs to become a task, pure FYI, or junk. Sorting that out is repetitive, low-judgment work , exactly the kind of chore an agent should handle end-to-end, not just chat about. The Taskmaster track's framing , "give the agent a real chore and have it do the whole thing" , was a perfect match for this.
What it does
Inbox Copilot watches an inbox and, for every new email, autonomously decides:
- Is this urgent?
- Does it need a reply , and if so, drafts one ready to send
- Should it become a follow-up task?
- Or can it just be archived?
All of this happens asynchronously in the background. The agent runs on its own schedule, completely independent of whether anyone is looking at a dashboard , you could close every tab and it keeps working.
How we built it
- A new email is written into Firestore with status "pending".
- A scheduled GitHub Actions workflow queries Firestore for pending emails every 10 minutes (and can be triggered manually).
- Gemini 3.5 Flash analyzes each one via the Google GenAI SDK, using structured JSON output, and returns: category, priority, a one-line summary, a drafted reply if needed, and exactly one action to take.
- The decision is written back to Firestore.
- A lightweight local dashboard (FastAPI) polls Firestore and displays what the agent has done — it plays no role in whether or when processing happens.
We also built an optional Google ADK-based version of the same agent logic to showcase the framework directly.
Challenges we ran into
The biggest challenge wasn't the agent logic . it was cloud billing friction. Getting a Google Cloud billing account verified in India required a prepayment step that repeatedly failed card verification. Rather than lose a day of the hackathon to that, we redesigned the architecture around genuinely free-tier Google Cloud services: Firestore's Spark plan requires no billing account or card at all, and GitHub Actions provides free scheduled compute to replace what would otherwise be Cloud Run + Pub/Sub. This turned out to be a better story than the original design , the "runs in the background" claim is arguably stronger when proven by a scheduled job with zero dependency on any deployed server at all.
Accomplishments that we're proud of
- A fully working, end-to-end agent pipeline with zero cost and zero billing setup required — anyone can clone this and have it running in under 20 minutes.
- Genuine asynchronous processing, verified live via GitHub Actions logs, completely decoupled from the dashboard.
- Clean, structured LLM output (JSON schema) that's reliable enough to act on autonomously without a human review step.
What we learned
That "using Google Cloud" doesn't have to mean the most expensive or most complex path ,Firestore's free tier plus a scheduled job can satisfy a genuinely production-shaped architecture (ingest, process, persist, present) without any infrastructure cost at all.
What's next for Inbox Copilot
- Swap the simulated inbox for a real Gmail account via the Gmail API and push notifications.
- Add a "create calendar event" action alongside task creation.
- Add a second reviewing agent that approves drafted replies before they're sent, for a lightweight human-in-the-loop safety net.
Built With
- fastapi
- firestore
- gemini
- github-actions
- google-adk
- google-cloud
- google-genai-sdk
- python
Log in or sign up for Devpost to join the conversation.