Inspiration Millions of seniors manage their own medications, and their adult kids live with a quiet, constant worry: did Mom take her pills today? Is she okay? Daily check-in calls from family are well-intentioned but hard to sustain, and most "solutions" require the senior to learn a new app — a real barrier for people who just want a phone call, not a dashboard. We wanted to build something that meets seniors exactly where they already are (a ringing phone) while giving caregivers the visibility they're missing. What it does

Pill Buddy places a warm, natural-sounding phone call to a senior every day. "Emily," our AI voice agent, chats through a simple conversational flow — greeting, medication check, wellness check-in, warm closing — confirming whether they took their meds and how they're feeling, without ever sounding like a robotic script.

Every call is logged with a full transcript, a wellness note, and an adherence flag. If a dose is missed or something in the conversation sounds concerning, an alert fires immediately. On the other end, caregivers (sons, daughters, grandkids — anyone) log into a live portal showing every senior they track: call history, adherence streaks, full transcripts, and a real-time alerts feed, all updating without a refresh. How we built it

Voice agent: FastAPI service handling Twilio voice webhooks, with Claude (Anthropic) driving the conversation through staged prompting (greeting → med_check → wellness → closing) and ElevenLabs for natural-sounding TTS.

Judge agent: A separate Claude-powered service that scores every completed call transcript (naturalness, empathy, med-check accuracy, personal-detail hooks, close quality) and distills 1-3 concrete lessons. These get fed back into the voice agent's system prompt — creating a self-improving feedback loop rather than a static script.

Backend: FastAPI + Supabase (Postgres) storing caregivers, seniors, care relationships, medications, schedules, reminders, call logs, and alerts, complete with real-time subscriptions.

Caregiver portal: Built in Lovable against the same Supabase project, featuring live-updating cards per senior, expandable transcript threads, and a global alerts feed filterable by severity.

Challenges we ran into

Getting the voice agent to sound like a person and not an IVR tree was the hardest part — we had to explicitly constrain response length, ban filler phrases and markdown, and hand-tune example turns before it stopped feeling stilted. Wiring low-latency TTS into a live Twilio call loop (synthesize → serve → play → gather) while keeping the conversation feeling responsive took real tuning. Keeping three independently deployable services (voice agent, judge agent, backend) in sync on one shared data model under hackathon time pressure was its own challenge. Accomplishments that we're proud of

We shipped a genuinely closed feedback loop: real calls happen, get judged, and the lessons learned actually change how the next call goes — without a human in the loop. We also proved out the "zero learning curve" thesis: the senior's entire interaction with Pill Buddy is answering a phone call, while the caregiver gets a rich, real-time portal on the other side. What we learned

Small constraints (2 sentences per turn, no lists, no markdown, no filler affirmations) matter enormously for making an LLM sound human on a phone call — voice UX has almost nothing in common with chat UX. We also learned how much value comes from decoupling "have the conversation" from "grade the conversation" into separate agents; it made iterating on call quality dramatically faster than trying to hand-tune one giant prompt. What's next for Pill Buddy

SMS/WhatsApp alert delivery for urgent flags, moving beyond just in-portal notifications.

Multi-caregiver coordination (assigning who follows up on specific alerts).

Richer wellness trend detection across multiple calls, rather than just per-call flags.

Support for multiple daily call times and medication-specific schedules.

Sentiment/urgency escalation that can trigger an immediate caregiver phone call, not just a dashboard alert.

Built With

Share this project:

Updates

Submission history