Inspiration
In India, therapy still carries stigma, and a first session with a licensed psychologist can be expensive and intimidating for someone who just wants to talk. But almost everyone already has WhatsApp open. We wanted to meet people where they already are — on WhatsApp, in their own language, whether that's English, Hindi, or Hinglish — and give them a low-friction first step: talk to an AI companion first, then get matched to the right level of human support, at a price that matches the severity of what they're going through.
What it does
BaatCheet is a WhatsApp-first mental health companion. A user messages "Dr. Prachi," an AI therapist persona that listens, reflects, and gently gathers context over the first several messages — what's bothering them, how long it's been going on, how it's affecting their sleep, work, and relationships. Based on that conversation, it silently classifies the user into one of three tiers:
🟢 Green – mild stress → a psychology student listener (₹150) 🟡 Yellow – moderate, recurring issues → a master's-level listener (₹250) 🔴 Red – severe/clinical needs → a licensed therapist (₹2000)
If the AI detects crisis language (in English or Hindi), it immediately shifts into a calming, safety-focused response and force-escalates the case to Red tier so a real professional is alerted right away — no waiting on the normal triage flow. On the other side, a therapist/listener dashboard shows incoming requests in real time; when a listener accepts, the AI goes silent ("muted") and the human takes over the same WhatsApp thread. At the end of a session, the user gets a payment link (via Razorpay) and a request to rate the experience.
How we built it Node.js/Express as the WhatsApp orchestration layer — receives Twilio webhooks, manages sessions in Firestore, mutes/unmutes the AI, sends messages back out, and creates Razorpay orders per tier. Python/Flask as the AI microservice — runs "Dr. Prachi," a carefully engineered system prompt enforcing tone, language-matching (English/Hindi/Hinglish), and a structured tier-classification output that gets parsed out of the model's reply. It calls out to an LLM through a fallback chain — Groq (Llama 3.3) → Gemini 2.0 Flash → Claude Haiku — trying each provider (and each API key) in turn so a single rate limit or outage doesn't take the whole demo down. Firebase Firestore as the shared real-time backbone between the Node service, the Python service, and the dashboard — triage logs, active sessions, and chat messages all flow through it so the dashboard updates live. A therapist/listener dashboard (HTML/CSS/JS) for professionals to go online, see incoming requests, accept a case, chat live with the user, and track sessions/earnings/ratings. Razorpay for tiered checkout (₹150 / ₹250 / ₹2000 depending on severity), with a demo mode that works even without live keys. Challenges we ran into Coordinating state across two different backend languages (Node and Python) that both needed to read/write the same session and triage data reliably. Getting crisis detection to work across languages and scripts without becoming either over-triggered or missed — and making sure that even when it fires, the AI's response stays warm rather than robotic or alarming. Keeping the AI in character: preventing it from slipping into casual slang, breaking into English when the user is writing Hinglish, or asking multiple questions at once — tone control needed a lot of explicit prompt rules and examples. Making sure the human handoff was clean — once a listener accepts a case, the AI needs to go completely silent so the user isn't getting mixed signals from a bot and a person at once. Keeping the demo resilient under free-tier LLM rate limits, which is what pushed us toward the multi-provider fallback engine. Accomplishments that we're proud of A working end-to-end pipeline: WhatsApp message → AI triage → severity-based matching → live human listener → payment → rating, all in real time. An AI persona that actually adapts tone and script across English, Hindi, and Hinglish rather than forcing one language. A crisis-safety layer that guarantees a human gets alerted immediately, even if the normal AI conversation hasn't finished its assessment yet. Getting a genuinely cross-stack system (Node + Python + Firestore + a live dashboard) talking to each other reliably under hackathon time pressure. What we learned How to design for graceful degradation with LLM providers — a fallback chain across multiple APIs and keys is a small amount of code that buys a lot of demo-day reliability. How much prompt engineering it takes to keep a conversational AI consistently in a specific persona and tone, especially across languages and scripts. Practical patterns for using Firestore as a lightweight real-time message bus between otherwise-separate services. That building anything touching mental health means safety-net logic (crisis detection, human escalation) can't be an afterthought — it has to be the first thing that's bulletproof. What's next for BaatCheet Real listener/therapist verification (the dashboard already has an RCI-credential-verification flow stubbed out). Moving Razorpay from demo/test mode to a live, production-ready checkout and receipt flow. In-app voice/video for sessions instead of routing everything through WhatsApp text. Expanding language support to more Indian languages beyond Hindi/Hinglish/English. An admin approval queue for listener onboarding, plus analytics for listener performance and user outcomes over time.
Log in or sign up for Devpost to join the conversation.