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)
Share this project:

Updates