Inspiration
Every year, over 15 million freelancers and independent professionals in India lose real income to one specific, unglamorous problem: they reply too late. A client sends an inquiry, a competitor answers first, and the deal is gone — not because of bad work, but because of a slow reply. I've felt this friction myself, and I built DealFlow to fix exactly that gap, autonomously.
What it does
DealFlow watches an inbox for new client inquiries and turns them into ready-to-approve proposals — without waiting for a human to start the process. When a genuine inquiry arrives, it:
- Classifies the lead and extracts project details, budget, and urgency
- Checks real calendar availability and proposes concrete meeting slots
- Retrieves relevant past work using vector search — never inventing evidence it doesn't have
- Drafts a personalized proposal grounded in real context
- Scores its own confidence — the Signal Room — an explainable, deterministic trust score based on sender identity, calendar fit, portfolio match, and draft specificity
- Stages everything for human approval — DealFlow never sends an email on its own
When approved, it creates a real draft in Gmail. A human always sends the final message.
How we built it
DealFlow is five specialized agents orchestrated with Google's Agent Development Kit (ADK), powered by Gemini 3.5. Each agent has a single responsibility and only the tools it needs — Intake, Calendar, Research, Drafting, and Review Gate — chained as an ADK SequentialAgent.
State, processed-email tracking, and the vector-searchable portfolio all live in Firestore, chosen deliberately over a dedicated vector database to stay within free-tier, serverless constraints. Gmail and Calendar integrations use real OAuth, not mocked data.
The Signal Room is a deterministic scoring layer — not another LLM call — that evaluates every draft before it reaches a human, and a separate quality gate blocks incomplete or placeholder-filled drafts from ever entering the review queue.
Challenges we ran into
- No Google Cloud billing account access meant redesigning the entire stack around free-tier services — Gemini Developer API instead of Vertex AI, Firestore via Firebase's Spark plan instead of Cloud Run — while still meeting every mandatory requirement.
- A real async-generator bug in how ADK's
run_asyncwas being awaited, discovered only when the live pipeline was tested end-to-end. - A genuine Firestore vector dimension mismatch (3072 vs. 2048) that silently broke RAG search until diagnosed and fixed.
- Daily and per-minute Gemini free-tier rate limits, which shaped how we paced testing and recording.
We deliberately built and demonstrated a real failure-recovery path: when the Calendar tool fails, DealFlow does not invent a fake meeting time — it says scheduling needs to be confirmed separately, and the pipeline continues.
Accomplishments that we're proud of
- A fully working, end-to-end pipeline using real Gmail, Calendar, Firestore, and Gemini — verified live, not mocked
- The Signal Room: an explainable decision layer that tells a human why to trust or hold a draft, not just what it wrote
- 20 automated tests covering the quality gate, idempotent staging, and failure recovery
- Zero-billing-account architecture that still satisfies every mandatory requirement
What we learned
Building trustworthy autonomy is less about making an agent write better text and more about giving it the judgment to know when not to act — and making that judgment visible to the human who's ultimately responsible.
What's next for DealFlow
- Multi-channel intake (Slack, WhatsApp Business)
- A production deployment path via Cloud Run and Cloud Scheduler once billing infrastructure is available
- Expanding the Signal Room's scoring model per-industry (CAs, real estate, legal intake)
Built With
- fastapi
- firebase
- firestore
- gemini-api
- gmail-api
- google-adk
- google-calendar-api
- google-cloud
- google-gemini-3.5
- html
- javascript
- multi-agent-systems
- oauth-2.0
- powershell
- pytest
- python
- rag
- vector
- vector-search
- vertex-ai


Log in or sign up for Devpost to join the conversation.