CareScribe — Listen once. Chart everywhere.
Inspiration: Clinical visits are full of nuance, but documentation time is eating clinicians alive. We wanted a consent-first assistant that could record once and chart everywhere—primary care, behavioral health, urgent care, telehealth—without locking into one specialty or EHR. The goal: reduce after-hours charting, improve note quality, and keep a verifiable trail of what happened in the room.
What we learned:
- Consent and privacy UX are product features, not footnotes. Clear, front-loaded consent and easy “off the record” controls increased trust.
- Specialty-aware notes matter. PCP wants ROS/PE; behavioral health wants MSE; urgent care wants orders and return precautions. One size does not fit all.
- Latency budgets are real. End-to-end responsiveness depends on buffering, ASR partials, and TTS chunking.
- Provenance builds trust. Timestamps, speaker diarization, and “why is this in the note?” links help clinicians verify in seconds.
How we built it:
- Voice layer: Vapi Web SDK for consented recording and event streaming (start/stop, transcripts, call lifecycle). LiveKit handles WebRTC when we need multi-party, low-latency audio.
- Reasoning layer: A Letta agent graph that ingests transcripts in chunks, tracks speaker roles, and emits specialty-aware notes (SOAP). Behavioral health sessions automatically include a Mental Status Exam and a discrete Risk Assessment; primary care notes include ROS/PE when signaled by the clinician.
- Provenance: We attach “provenance chips” (timestamps, speaker labels, model IDs) to each finalized utterance and surface inline links from the note back to the original audio/text.
- EHR export: We can package a minimal FHIR bundle (Composition + Observations + ServiceRequests) for downstream systems.
- Security: Public key in the browser; private keys on the server only. Webhook signature verification and redact-on-log for safety data.
Built With
- agent
- backend:
- bash-voice-&-streaming:-vapi-web-sdk-/-server-sdk
- html/ts)
- letta
- livekit
- node.js
- orchestration:
- webrtc)

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