Project Story Inspiration The idea for this project came from a shared frustration with how fragmented and manual personal search and planning still is. Whether we were trying to remember which museums we’d visited or plan a quick weekend getaway, it felt like we were constantly switching between apps, digging through email, calendar events, and maps history. We wanted to build a system that could understand natural language prompts and surface meaningful, personalized answers automatically.

What We Learned Throughout the project, we learned how to design a modular architecture where large language models act not just as generators, but as intelligent planners. We explored prompt engineering in depth, refined a structured schema for filter generation, and built the entire planning and reasoning pipeline around Gemini. Along the way, we also developed a strong understanding of secure API integration, OAuth 2.0 flows, and how to retrieve and process large volumes of personal data efficiently while maintaining privacy.

How We Built It We designed the system as a five-step pipeline: prompt parsing with Gemini, structured filter generation, API-based data retrieval, contextual response generation, and optional post-processing for actions like calendar updates. Gemini powered both the initial query understanding and the final natural language synthesis, allowing us to keep the system tightly integrated. Our backend was built using FastAPI, and we developed dedicated adapters for Gmail, Google Calendar, Maps History, and Photos using Google’s API suite. For semantically rich searches, we embedded metadata into Pinecone and created hybrid queries that combined keyword filtering with vector similarity. The frontend remained intentionally minimal, with a single prompt input and support for real-time results.

Challenges We Faced One of the toughest challenges was managing the latency involved in multi-stage LLM processing while keeping the user experience responsive. We addressed this with caching strategies and asynchronous job handling. Another major focus was privacy—we were working with sensitive personal data, so we emphasized secure storage, encrypted transport, and OAuth-scoped access. Translating vague, open-ended prompts into accurate, actionable filter structures also required extensive iteration and careful prompt tuning within Gemini to ensure both relevance and precision.

Built With

  • api
  • auth
  • flask
  • gemini
  • google
  • google-calendar-api
  • google-cloud-vision-api
  • google-geocoding-api
  • google-gmail-api
  • google-photos-library-api
  • google-takeout
  • html
  • json
  • python
Share this project:

Updates

Submission history