# 🧠 Recall **Your Intelligent Personal Relationship Manager** *An AI-powered Chief of Staff for your professional life*

💡 Inspiration

Professional networking is often chaotic. We meet people at conferences, exchange hundreds of emails, and have quick calls, but our brains aren't built to retain all that context perfectly. Existing "Personal CRMs" felt like data entry jobs—manual, tedious, and disconnected from our actual communication channels.

We were inspired by the concept of a "Second Brain" specifically for relationships. We wanted to build something that lives where we live (in our Inbox and conversations) and acts as an intelligent, proactive Chief of Staff—a butler who whispers in your ear:

"You last spoke to John 3 months ago about the acquisition, and you promised to follow up today."


✨ What it does

Recall is an intelligent personal relationship management app that acts as an automated memory layer for your professional life.

Core Features

  • 🔄 Zero-Entry Sync
    Connects directly to your Gmail, automatically ingests emails, filters out spam/promotions, and extracts meaningful interactions without you lifting a finger.

  • 🎤 Voice-to-Memory
    Record quick voice notes after a meeting (e.g., "Just met Sarah, she needs the proposal by Friday"), which are transcribed and analyzed to create contacts and agenda items.

  • 📊 Smart Health Scores
    Calculates a "Relationship Health" score for every contact based on recency and frequency of interaction. If a key relationship is drifting, Recall nudges you to reconnect.

  • 🤖 AI Butler (RAG)
    Chat with your history. Ask "What did I promise the client last week?" or "When is my flight?", and Recall retrieves relevant context to give you a factual answer.

  • ✍️ Context-Aware Drafting
    Doesn't just write generic emails; it drafts replies based on your actual history with that person (e.g., "Great to hear from you after 3 months...").


🛠️ How we built it

We built a unified full-stack Dart application to ensure type safety and speed across the entire stack.

Architecture

graph LR
    A[Flutter App] --> B[Serverpod Server]
    B --> C[PostgreSQL + pgvector]
    B --> D[Google Gemini 2.0 Pro]
    B --> E[Groq Llama 3]
    B --> F[Gmail API]

Tech Stack

Component Technology
Backend Serverpod (Dart) on Docker
Frontend Flutter (Cross-platform)
AI Brain Hybrid: Google Gemini 2.0 Pro + Groq (Llama 3)
Vector DB PostgreSQL with pgvector (768-dim embeddings)
Email Processing Custom MIME multipart parser with privacy filters

Key Components

  • Recall Server: Built with Serverpod, handling the heavy lifting of background jobs and API integrations. It runs widely on Docker.
  • Flutter App: A beautiful, cross-platform mobile interface for interacting with your data.
  • The Brain (Hybrid AI): We implemented a sophisticated AI layer that switches between Google Gemini 2.0 Pro (for complex reasoning and embeddings) and Groq (Llama 3) (for ultra-fast drafting) depending on the task.
  • Vector Database: We used PostgreSQL with pgvector to store 768-dimensional embeddings of every email and voice note, enabling semantic search.
  • Data Processing: We wrote custom logic to parse MIME multipart emails, identifying meaningful content while adhering to strict privacy filters (stripping OTPs, newsletters, and system alerts).

🚧 Challenges we ran into

1. The "Context Window" Problem

Emails can be massive. Feeding entire threads into an LLM gets expensive and slow. We had to build smart truncation and summarization logic to extract just the essence of an email (Intent Tags, Events) before embedding it.

2. Sync Logic Complexity

Syncing Gmail efficiently without hitting rate limits was tough. We implemented an incremental sync using historyId and internalDate, but handling "Data Healing" (retrospectively linking orphaned emails to new contacts) required complex fuzzy matching algorithms.

3. Hallucination Control

Early versions of the "Drafting" feature would invent meetings that never happened. We solved this by implementing a "Strict Context" prompt architecture, where the LLM is explicitly forbidden from using outside knowledge.


🏆 Accomplishments that we're proud of

🎩 The "Butler" Persona

We tuned the RAG (Retrieval-Augmented Generation) system to behave like a polite, private butler. It doesn't just dump data; it says:

  • "I don't recall seeing that in your recent emails"
  • "You have a dinner planned for Tuesday"

🔒 Privacy-First Architecture

We successfully built a system where sensitive "Secrets" (like API keys or specific PII patterns) are explicitly filtered out by the system prompt before they ever reach the user-facing chat.

⚡ Startup Speed

Using Serverpod allowed us to generate our entire client library automatically. We moved from "Idea" to "Working Sync" in record time because we never had to write manual JSON serialization code.


📚 What we learned

🎯 Structured AI is King

Asking an LLM to "summarize" is okay, but asking it to "Return JSON with {'intent': 'follow_up', 'priority': 'high'}" allows you to build powerful software features on top of fuzzy text.

🔍 Embeddings need help

Vector search is great for "concepts," but bad for "keywords" (like specific names). We learned that a hybrid search approach (Keyword + Vector) yields the best results for a CRM.


🚀 What's next for Recall

Roadmap

  • [ ] Multi-Source Sync
    Expanding beyond Gmail to include LinkedIn DMs and WhatsApp exports.

  • [ ] Proactive Agenda
    Instead of just answering questions, we want Recall to push a morning briefing to your phone:
    "Good morning. You have 3 risky relationships and a pending promise to Nithin from last week."

  • [ ] Offline Intelligence
    Porting some of the embedding logic to the device (using on-device LLMs) for even greater privacy.


👥 Contributors

Built with ❤️ by [ClusterStorm]


**Made for people who value relationships**

Built With

Share this project:

Updates