Projects

Guided tour

Doc Coach. Every consult graded and coached within minutes.

Every recorded patient consultation gets graded against a 7-part playbook by an LLM, turned into a color-coded coaching report, and emailed to the clinician, their coordinator, and leadership within minutes of the transcript landing.

LLM pipeline · Consultation QA 6 steps · synthetic data

Walk through it, six steps

Step 1 of 6

A recording finishes

The video platform fires a webhook the moment a transcript is ready. The service verifies the signature, dedupes by meeting id, and filters out anything that is not a patient consultation: staff meetings, trainings, calls under 10 minutes, or meetings tagged to skip QA.

IngestSynthetic data
$ webhook recording.transcript_completed
signature ok · meeting 7f3a…d2 claimed (idempotent)
filter: topic ok · 34 min ok · 3 participants ok
→ dispatched to pipeline (run #482)
Step 1 of 6

Every name, transcript and document in this tour is synthetic, and so are the numbers on the sample screens. The numbers under The problem and Where it landed are real. The production system and its data stay private.

The problem.

Consultations are where treatment gets accepted or lost, and nobody had time to review them. Recordings piled up unwatched, coaching happened on gut feel, and every clinician ran the conversation their own way. The ask: make every consult reviewable, comparable, and coachable, automatically, without adding a minute of anyone's day.

  • Delivery SLO < 10 min transcript ready to inbox
  • Scoring 7 criteria · 70 pts 25 sub criteria, versioned rubric
  • Consults scored 471 live from May 19 to Oct 28, three offices
  • Auto reports 2 / week+month zero clicks, scheduled

How it fits together.

4 layers, left to right
  1. Ingest

    • Video platform webhooks, HMAC-verified per account
    • Firestore claim for idempotency
    • Consult filters: topic, duration, participants, opt-out tag
  2. Understand

    • Diarized transcript parsing
    • 3-layer identity resolution
    • 30-day per-clinician baselines from the ledger
  3. Score and render

    • Gemini 2.5 Pro, structured output vs JSON Schema
    • Versioned rubric in markdown, editable in the app
    • Jinja2 → email-safe HTML → PDF
  4. Deliver and audit

    • Archive · 49 column ledger
    • Audit rows in BigQuery
    • Gmail delivery · 5-min retry sweeper · Terraform

Where it landed.

Every consultation is now reviewed within minutes, against the same bar, with evidence quotes a coach can act on. Leadership reads one weekly report instead of watching hours of recordings, and the rubric itself is versioned, so every scoring change is on record. The seven criteria shown here carry generic names; the real playbook is company IP and stays private.

Concepts

Structured outputsJSON Schema validationLLM evalsIdentity resolutionPrompt versioningIdempotent pipelines

Stack

PythonFastAPICloud RunVertex AI Gemini 2.5 ProFirestoreBigQueryTerraformGmail API