Project Info
Inspiration
Every second counts: the difference between life and death. Yet in today’s EMS-to-hospital handoffs, an estimated 80% of serious medical errors occur during patient handoffs due to vital patient information being too often delayed, distorted, or completely lost. During high-stress calls—late at night, mid-transport, or while multitasking—first responders can't always recall or relay every detail, especially without reliable tools to support them. This puts thousands of lives at risk every year. So we built Verba: A voice-first AI agent built to streamline the EMS-to-doctor handoff—accurately, instantly, and effortlessly.
What it does
Verba is a real-time voice agent that ensures nothing gets lost in translation during the most critical moments of emergency responses. Designed for EMS-to-hospital handoffs, Verba listens to paramedics’ verbal reports on scene and automatically transcribes, extracts, and structures all key medical data using a voice-first, AI-assisted workflow. It’s trained to be as efficient as possible, asking clarifying questions only when absolutely necessary. Verba then uses advanced custom agents to deliver structured reports that directly integrate with existing electronic patient care report (ePCR) systems. These reports appear instantly on the Doctor Dashboard prioritized on criticality, reducing time-to-treatment and minimizing human error.
How we built it
Voice Agent: Vapi: Built and deployed an advanced AI voice agent. Handles natural conversations in real-time, makes and receives calls, and is built to seamlessly connect with major ePCR/EHR systems. Designed to respond only when necessary to save as much time as possible. Claude: Used for advanced language understanding and summarization. Aids in refining handoff notes into concise, medically actionable key terms and summaries for rapid physician review. Frontend: React application: Real-time updates. Provides a clean, clinician-friendly UI. Leaflet Maps API: Integrated live mapping to show real-time EMS locations and scene data directly on the Doctor Dashboard. Helps doctors anticipate patient arrival and triage in advance. Backend: Supabase: Used as a scalable Postgres database with built-in authentication and row-level security. Enabled real-time syncing of structured patient data and secure access control for doctors and EMS teams. Medical database: Thousands of EMS-specific terminology, abbreviations, and field-data. Letta: A custom medical language model agent, based on GPT-4o mini and trained on medical database. Parses transcriptions from Vapi into structured, clinically relevant data fields for doctor review. Seamlessly connects with existing major ePCR/EHR systems like Zoll and ESO.
Challenges we ran into
Balancing tradeoffs between real-time responsiveness and accuracy Acquiring an extensive database that would power the report generation and semantic understanding of the analyzed speech Addressing variations in real-world speech, including background noise and enunciation Unifying multiple AI agent frameworks into one cohesive product
Accomplishments we're proud of
Created a fully functional AI agent for medical emergencies in 24 hours Minimized latency in the voice call and dashboard updates to be near instant Built flexible report-generation pipeline that can be adapted for various medical emergencies and beyond Ensured the agent is accessible via phone
What we learned
How to integrate multiple modern APIs in one cohesive project EMS reports are unstandardized and incomplete Instant verbal feedback is helpful for EMS first responders to ensure all necessary information about an emergency is recorded
What's next
Multimodal integration: live video feeds—especially body cam footage—to enhance situational understanding through real-time visual segmentation and tracking Security: HIPAA-compliance and full encryption (including voice data in transit) will be prioritized to protect patient privacy and system integrity Model base: Increasing model complexity while maintaining quick speed Integration: Further integration of EMS Patient Care Report with hospital workflow
Verba
Verba is a real-time voice agent that ensures nothing gets lost in translation during the most critical moments of emergency responses. Designed for EMS-to-hospital handoffs, Verba listens to paramedics’ verbal reports on scene and automatically transcribes, extracts, and structures all key medical data using a voice-first, AI-assisted workflow. It’s trained to be as efficient as possible, asking clarifying questions only when absolutely necessary.
Verba then uses advanced custom agents to deliver structured reports that appear instantly on the Doctor Dashboard prioritized on criticality, reducing time-to-treatment and minimizing human error.

Project Overview
Voice Agent:
- Vapi: Built and deployed an advanced AI voice agent. Handles natural conversations in real-time, makes and receives calls, and is built to seamlessly connect with major ePCR/EHR systems. Designed to respond only when necessary to save as much time as possible.
- Claude: Used for advanced language understanding and summarization. Aids in refining handoff notes into concise, medically actionable key terms and summaries for rapid physician review.
Frontend:
- React application: Real-time updates. Provides a clean, clinician-friendly UI.
- Leaflet Maps API: Integrated live mapping to show real-time EMS locations and scene data directly on the Doctor Dashboard. Helps doctors anticipate patient arrival and triage in advance.
Backend:
- Supabase: Used as a scalable Postgres database with built-in authentication and row-level security. Enabled real-time syncing of structured patient data and secure access control for doctors and EMS teams.
- Medical database: thousands of EMS-specific terminology, abbreviations, and field-data.
- Letta: A custom medical language model agent, based on GPT-4o mini and trained on medical database. Parses transcriptions from Vapi into structured, clinically relevant data fields for doctor review. Seamlessly connects with existing major ePCR/EHR systems like Zoll and ESO.

Features
- Key medical term/feature extraction through Vapi workflow: Speech-to-Text, LLM, Text-to-Speech
- Responsive dashboard with real-time updates and map integration
- Helpful reports for doctors with critical information from paramedics and suggested further action
Getting Started
- Environment Setup
# Activate the Python virtual environment
source first_responder_env/bin/activate
- Backend Setup
Install dependencies:
cd verba-folder
npm install
Set up environment variables by creating a .env file in the verba-folder directory:
# verba-folder/.env
LETTA_API_KEY=your_letta_api_key_here
AGENT_ID=your_agent_id_here
SUPABASE_URL=your_supabase_url_here
SUPABASE_KEY=your_supabase_key_here
Start the backend server:
# From verba-folder directory
node api/index.js
The API will run on http://localhost:3001
- Frontend Setup
Install dependencies:
cd verba-folder/ui
npm install
Start the development server:
npm run dev
The dashboard will be available at http://localhost:5173
- Testing the system
- Call the Voice Agent: +1 (650) 252 7577
- Follow Verba's instructions and provide emergency data
- Visit the dashboard at http://localhost:5173 to see structured reports appear in real-time
- Continue calling the number if desired
Analysis
View
Metric
- 24
- 11
- 2
Figures cover GitHub contributors during the hackathon window. A co-authored commit counts in full for each author, so per-member totals add up to more than the whole-team figures.
Technology
- CIn code
- C++In code
- CSSIn code
- ExpressIn code
- HTMLIn code
- JavaScriptIn code
- PythonIn code
- ReactIn code
- Tailwind CSSIn code
- SupabaseClaimed
9 of 10 appear in the indexed code. 1 claimed on Devpost could not be matched to code, which may simply mean the tool leaves no trace in the repository.
AI coding agents
No AI coding agent signals were found in this repository.
Detected from committed agent config files and commit authorship. Absence of a signal is not proof an agent was unused.
Codebase size
Source size
44 MB
Source files
3,055
Counts recognized source files only; vendored directories, binaries and lockfiles are excluded, so this is smaller than the repository on disk.
Repository
jmx1e/verba
4,000 files · 147.9 MB · @ cd3ca13
Structure
Interface
24 files · 1%Screens, components and styles rendered to the user.
API & routing
144 files · 4%Request entry points: routes, handlers and controllers.
Application logic
3,669 files · 92%Domain rules, services and shared utilities.
Data & schema
93 files · 2%Schema definitions, migrations and data access.
Supporting
Layers are inferred from where files sit in the tree, not from reading the code. A project that names its directories unconventionally will read oddly here — open the file browser to check anything the diagram implies.
Languages
- Python77%
- C23%
- C++0%
- Markdown0%
- Shell0%
Share of indexed source by file size. Binary and vendored files are excluded.
Dependencies
verba-folder/ui/package.json
npm · 14- axios
- leaflet
- react
- react-dom
- react-leaflet
- +9 more
verba-folder/package.json
npm · 13- @letta-ai/letta-client
- canvas
- dotenv
- leaflet
- lucide-react
- node-fetch
- p-memoize
- react-leaflet
- react-markdown
- +4 more
verba-folder/api/package.json
npm · 6- @letta-ai/letta-client
- cors
- dotenv
- express
- node-fetch
- +1 more
Declared in the repository’s manifests at the indexed commit. A declared package is not proof it is used, and runtime dependencies are listed first.
This repository has more files than are indexed here, so the diagram and browser show a partial tree. Open it on GitHub for the complete structure.
This project’s features have not been analysed yet.
Export this project's context (description, README, evidence, key source files) to chat with an AI agent elsewhere.