Inspiration

Hackathons are integral in a CS student's life – it offers a unique experience replicated by no other. Whenever I look for hackathon related emails in my inbox – I am met with a cluttered mess of club meetings, general announcements, and spam. Critical deadlines get buried, and opportunities slip away. I was manually scanning 20+ emails per day to find opportunities – a tedious, time-wasting process. This frustration inspired me to build Hackathon Radar Agent, an autonomous AI agent that handles the entire workflow for me, so I never miss a hackathon again.

What it does

Hackathon Radar Agent is an autonomous, event-driven AI agent that transforms your cluttered college inbox into a personalized hackathon opportunity pipeline. The agent fetches unread emails from Gmail API, classifies them using Gemini Flash into categories like Hackathon, Meeting, Deadline, or Junk, and extracts structured event details including name, deadline, prize, and URL. It supports multimodal extraction from PDF and image attachments, saving you from building complex OCR pipelines. The agent uses Firestore for persistent state management with intelligent deduplication and fuzzy matching to prevent duplicates. Each hackathon is scored on priority from 1-10 based on deadline urgency and prize value, and the agent sends real-time Discord alerts with priority emojis. It also creates Google Calendar reminders two days before each deadline, ensuring you never miss a registration deadline. Everything is logged with structured JSON and trace IDs for complete observability.

How we built it

I built the agent using Gemini 3.6 Flash via Gemini API for classification and extraction, with Google GenAI SDK as the Agent Framework and Firestore for state management. I integrated Gmail API for fetching emails, Google Calendar API for reminders, and Discord Webhooks for alerts. The backend runs on FastAPI with Python 3.11, using OAuth 2.0 for authentication and a service account for Firestore. The system follows a modular architecture with clear separation between fetching, classification, extraction, and actions.

Challenges we ran into

The ADK threw import errors because the API changed, so I switched to Google GenAI SDK. Cloud Run deployment failed due to missing IAM permissions, so I used Firestore as my infrastructure instead. Gemini couldn't extract dates from unstructured text, so I added a fallback parser using dateparser. Duplicate events with name variations would save twice, so I implemented fuzzy matching as well.

Accomplishments that I'm proud of

I built an agent that actually works – it runs on its own, reads emails and attachments, and finds hackathons I would have totally missed. I added smart features like fuzzy deduplication, priority scoring with fire emojis for urgent deadlines, and deadline change detection. The entire thing runs on Google Cloud's free tier, so it costs me absolutely nothing. I also made it production-ready with structured logging, a health check, and proper error handling. Most importantly, it meets all mandatory requirements: Gemini API, GenAI SDK, and Firestore.

What I learnt

Gemini Flash is surprisingly capable for classification and extraction at a fraction of the cost. Firestore with doc.exists checks made deduplication elegant, and fuzzy matching caught name variations effectively. Cost optimization is achievable with Cloud Run's min-instances=0 and Firestore free tier. Permission management and IAM roles were the biggest cloud deployment challenges.

What's next for Hackathon Radar Agent

In the short term, I am planning to add WhatsApp and Slack integration as alternative notification channels, include email preview links in Discord alerts for quick access, implement auto-reply to organizers expressing interest, and enhance the priority scoring system with ML-based relevance prediction. I aim to build a web dashboard with sorting and filtering capabilities and integrate Google's Gemma as an alternative model when needed.

In the long term, I hope to add auto-filling hackathon applications using portfolio data, mentor matching to connect with previous hackathon winners, SMS reminders for critical deadlines, and multi-inbox support.

Built With

  • calendar
  • cloud-logging-|-apis:-gemini
  • discord-webhook-|-auth:-oauth-2.0
  • gmail
  • google-genai-sdk-|-google-cloud:-firestore
  • languages:-python-3.11-|-frameworks:-fastapi
  • service
  • uvicorn
Share this project:

Updates

Submission history