Inspiration

In a world where we’ve never been more connected to our screens yet more isolated from each other, SoulSync bridges the gap between cold technology and human empathy. We aren't just building another journaling tool; we're building a safety net for the 2 AM burnouts and the heavy, silent days. By transforming a static diary into a proactive, voice-first companion, SoulSync doesn’t just wait for you to type—it listens to the nuance in your voice, anticipates what you need before you even ask, and gently guides you back to center. Because sometimes, the most profound technological innovation isn't a complex algorithm; it's simply giving someone the space to feel heard, so they can finally feel better.

You speak. SoulSync listens.

How we built it

Frontend — React + Vite + TypeScript. Voice Orb captures speech via Web Speech API, streams to backend over WebSocket. Backend — FastAPI routes messages through Google ADK agents, returns AI response + emotion + TTS audio in one WebSocket frame. LLM — Gemini API (gemini-3-flash-preview) powers all agent responses and emotion analysis. Multi-Agent System (Google ADK) — One orchestrator routing to four sub-agents:

Core Companion — emotion analysis via Gemini, empathetic responses Journal Agent — saves entries, retrieves past reflections, offers prompts Calendar Agent — detects event mentions, saves to in-memory store Resource Agent — crisis hotlines, therapy referrals, mindfulness exercises

Voice — ElevenLabs TTS for responses (with selectable voices), Scribe STT for audio transcription. Challenges we ran into

Google ADK learning curve — ADK requires Agent instances in sub_agents, not tools. Took trial and error to get the orchestrator pattern working correctly. WebSocket complexity — Bundling AI response + emotion + TTS audio + calendar events into a single frame required careful protocol design and error handling on both ends. Emotion detection accuracy — Simple keyword matching wasn't enough. Had to build negation awareness ("I'm not angry"), tiered severity scoring, and passive crisis escalation to avoid false positives. ElevenLabs quota limits — TTS calls add up fast during testing. Had to add graceful fallbacks so the app still works when voice is unavailable. Three people, three Python versions

Accomplishments that we're proud of

A fully working multi-agent system — 5 specialized agents coordinating through a single orchestrator, not just demo-ware. Crisis detection that works — catches phrases like "I don't want to be here anymore" and immediately surfaces real resources. Voice that feels human — ElevenLabs TTS makes SoulSync sound like it actually cares, not like Siri reading a Wikipedia article. Journaling with emotional context — every entry is tagged with detected emotion, so looking back actually tells a story. The whole team learned Google ADK from scratch during the hackathon.

What we learned

Google ADK's orchestrator pattern — how to structure agents as sub_agents, not tools, and let one root agent route everything. Emotion detection is harder than it looks — negation, sarcasm, and mixed feelings all break naive keyword matching. WebSocket protocol design matters — one well-structured message frame beats multiple REST calls for real-time UX. Voice changes everything — users respond differently when the AI talks back. It feels like a conversation, not a chatbox. Ship first, optimize later — in-memory storage and stateless design let us focus on the experience instead of infrastructure.

What's next for SoulSync

Persistent storage — move from in-memory to a real database so journal entries and calendar events survive across sessions. Mood analytics — weekly/monthly emotion trends, visualized so users can track their mental health over time. Smarter agents — context-aware responses that remember past conversations and notice patterns ("you've been stressed three days in a row"). Mobile app — native iOS/Android with always-on voice, push notifications for check-ins and saved reminders. Therapist integration — let users share journal summaries and mood data with their therapist directly from the app.

Built With

Share this project:

Updates