Inspiration

Daily standups are the most frequent Scrum ceremony — over 250 per team per year — yet they remain the most dysfunctional. As a Certified Scrum Master with years of experience, I've watched the same patterns destroy sprint velocity: developers saying "almost done" for days, hedge words like "probably" masking hidden blockers, meetings drifting from 15 to 30+ minutes, and action items that never become JIRA tickets.

Current tools like Otter.ai and Fireflies solve transcription, not comprehension. They record what was said but miss what was meant. The cost is real: 16–24 hours of lost productivity per sprint from undetected blockers, velocity estimates off by 20–35% from hedge words, and 125+ hours wasted per team per year from standup drift.

When I saw the Gemini Live Agent Challenge, I knew the Live API could finally make a real-time Scrum Master copilot possible — one that listens, reasons, and speaks back.

What it does

SprintBot is an AI Scrum Meeting Copilot that joins your Zoom standup and does what no tool has done before:

  • HEAR: A Recall.ai bot joins the meeting, captures audio, and Gemini 2.5 Flash analyzes the transcript — detecting hedge words, extracting commitments, identifying blockers, and scoring meeting health (0–100).
  • SEE: SprintBot cross-references verbal updates against actual JIRA board status. When someone says "almost done" but their ticket has been In Progress for 4 days, SprintBot flags the discrepancy.
  • SPEAK: Scrum Masters can ask SprintBot questions by voice using the Live Q&A widget — powered by Gemini Live API with bidirectional audio streaming and sub-second latency.

Anti-Pattern Detection (Key Differentiator):

  • Eternal Almost-Done: Same ticket "almost done" for 3+ days → flags for re-estimation
  • Silent Blocker: Hedge words ("should," "probably," "trying to") → private SM alert
  • Repeat Offender: Same person blocked every sprint → surfaces systemic trend via Firestore history
  • Standup Drift: Meeting exceeds 15 minutes → flags for the Scrum Master

After analysis, SprintBot auto-creates JIRA tickets, posts a formatted summary with anti-pattern alerts to Slack, and generates a voice summary using Gemini TTS.

How we built it

Backend (Cloud Run + FastAPI):

  • Recall.ai bot joins Zoom meetings and sends a transcript.done webhook when transcription completes
  • Gemini 2.5 Flash analyzes the full transcript with a Scrum Master-tuned prompt that detects anti-patterns, hedge words, risk levels, and confidence scores
  • Results are enriched with repeat offender flags from Cloud Firestore history
  • JIRA tickets are auto-created via REST API, summaries posted to Slack
  • Audio summaries generated using Gemini 2.5 Flash TTS (voice: Kore)

Live Q&A (Gemini Live API):

  • WebSocket connection from frontend to backend
  • Backend connects to Gemini Live API (gemini-2.5-flash-native-audio-preview) with bidirectional audio streaming
  • Scrum Masters speak naturally, get voice responses with sub-second latency
  • Text fallback for typed questions with streaming responses

Frontend (Firebase Hosting):

  • React 18 + TypeScript + Vite + Tailwind CSS + shadcn/ui
  • Dashboard with animated health score gauge, meeting history grid, participant profiles
  • Floating "Ask SprintBot" chat widget with voice input/output
  • Dark/light theme, responsive design, auto-refresh every 60s

Tech Stack: Gemini 2.5 Flash, Gemini Live API, Gemini TTS, Google Cloud Run, Cloud Firestore, Firebase Hosting, Cloud Logging, Secret Manager, google-genai SDK, google-adk, Recall.ai, JIRA API, Slack API, React, TypeScript, Python, FastAPI

Challenges we ran into

  • Encoding Scrum Master intuition into prompts: Teaching AI that "should be done by tomorrow" actually means "I'm stuck and don't want to admit it" took dozens of prompt iterations. Domain knowledge was harder than code.
  • Gemini Live API bidirectional audio: Getting 16kHz PCM mic input to stream correctly to the Live API and playing back 24kHz PCM responses required careful buffer management and audio format handling.
  • Recall.ai webhook reliability: Handling edge cases like bot being kicked from meeting, empty transcripts, and network drops required multiple fallback methods for transcript fetching.
  • Cross-sprint pattern detection: Building the Firestore data model to track anti-patterns across meetings and flag repeat offenders without false positives required careful threshold tuning.

Accomplishments that we're proud of

  • Anti-pattern detection actually works. In testing, SprintBot correctly identified hedge words, eternal almost-done patterns, and silent blockers with high accuracy — catching things a human SM would miss.
  • Voice Q&A feels like talking to a real team member. The Gemini Live API's sub-second latency makes SprintBot feel conversational, not robotic. Asking "Who had the most blockers today?" and getting an instant voice response is genuinely useful.
  • End-to-end automation. Bot joins meeting → transcript analyzed → JIRA tickets created → Slack summary posted → dashboard updated → audio summary generated. Zero manual steps after the bot joins.
  • Built by a Scrum Master, for Scrum Masters. This isn't a generic AI demo — every feature solves a real pain point I've experienced running standups for years.

What we learned

The hardest part of building SprintBot wasn't the code — it was encoding years of Scrum Master intuition into prompts. Anyone can transcribe a meeting. Detecting that "should be done by tomorrow" actually means "I'm stuck" requires domain expertise that can't be Googled.

The Gemini Live API's bidirectional streaming was a game-changer — once you experience sub-second voice AI, you can't go back to text-in/text-out. Firestore's real-time sync made cross-sprint pattern detection trivial to implement. And Cloud Run's serverless deployment meant I could focus on the product, not infrastructure.

What's next for SprintBot — AI Scrum Meeting Copilot

  • Real-time in-meeting alerts: SprintBot will speak into the meeting live when it detects anti-patterns — "We're at 15 minutes, let's take this offline."
  • Full Scrum ceremony coverage: Extend beyond Daily Standups to Sprint Planning (estimation assistant), Sprint Review (demo feedback capture), and Retrospectives (automated retro insights from sprint history).
  • Sprint health dashboard for Engineering Managers: Cross-team standup health comparisons and trend analysis across sprints.
  • Google Meet native integration: Direct integration without Recall.ai for Google-native teams.
  • Deeper Firestore analytics: Long-term team velocity correlation with anti-pattern frequency — proving that healthier standups lead to faster delivery.

Built With

  • cloud-firestore
  • fastapi
  • firebase-hosting
  • framer-motion
  • gemini-2.5-flash
  • gemini-live-api
  • gemini-tts
  • google-adk
  • google-cloud-run
  • google-genai-sdk
  • jira-api
  • python
  • react
  • recall.ai
  • shadcn/ui
  • slack-api
  • tailwind-css
  • typescript
  • vite
Share this project:

Updates

Submission history