Inspiration
When the Eaton fire hit Altadena in January 2025, many couldn't get themselves out even when their neighbors did. Dispatchers in a disaster don't have time to call every household one at a time, figure out who needs help, and find someone nearby who can give it. One of our team members almost lost their home in a wildfire, making this problem even more personal to our team. We wanted dispatchers to never lose again: something that coordinate efforts and information management at scale, while a human stays in charge of every decision.
What it does
Sealert is an AI dispatch assistant for community evacuations and incidents support. When a problem happen - from wild fire missing children - an AI system helps dispatchers gather information at scale: Cartesia gathers firsthand updates through parallel calls and incoming reports, while Claude turns them into clear next steps for human review with responsive context management from SpacetimeDB.
If something changes, the plan changes with it. A new pickup location withdraws the old approval, a declined match leads to another option, and an unsafe or unknown location goes to human review instead of being matched. Everything shows up on a live map of the affected area, along with a call log, a relationship graph, and a coordinator chat you can ask "what is the pattern, and where can attention be drawn to?"
How we built it
- Voice: Cartesia reaches multiple people at once through reliable phone communication, adaptive questions, and brings incoming reports into the same case.
- Coordination: Claude identifies information gaps and suggests who to contact or match. Consent, call limits, and human approval keep those suggestions under dispatcher control.
- Shared state: SpacetimeDB keeps reports, calls, and decisions connected to the right case as new information arrives, even when actions are retried.
- Dashboard: A live map and case view help dispatchers spot needs, follow calls, review proposed matches, and share an incident record.
Challenges we ran into
- Scope changes. We started with a missing-child search demo, generalized it into an incident tool that works for any situation, and then moved to general incidents coordination with dispatch. Each change meant rewriting the data model and the docs our coding agents worked from.
- Getting reports back from calls. Our first real call finished, but the report callback never fired. State management fell lose in earlier iterations.
- Not letting the AI make things up. In an emergency, a wrong guess is dangerous. "Unknown," a refusal, or an unclear answer has to go to human review, and a possible match is never treated as a confirmed pickup.
- Timing. Communication isnt straight forward when people lives are at risk.
What we learned
- Cartesia agents go as far as the agentic loop supporting them. We started with a very inflexible AI graph, but quickly realize system has to be responsive to any surprising updates at any time, while still has a good operating principle from the loop itself.
- Separating environment state from agent reasoning context helped us designed and modeled SpacetimeDB better.
- Connecting voice agents, a main coordinator, and human dispatchers was much harder until we learnt how to delegate responsibilities and have strong grounds for decisions.
What's next for Sealert
- Stronger action-oriented solutions and escalation pipelines to authorities
- Multi-language support for diverse communities

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