Inspiration
Disaster response teams already coordinate in Slack, but during a crisis the channel can become overwhelming. Field responders post shelter updates, supply shortages, blocked roads, medical needs, and volunteer availability faster than coordinators can manually turn them into action.
DIZMO, the Disaster Intelligence Zone Management Operator, was built around one belief: responders should not have to leave Slack to understand a crisis unfolding in Slack.
What it does
DIZMO is a Slack-native disaster relief command agent that turns chaotic field updates into structured incidents, evidence-backed recommendations, and human-approved actions.
In a response channel like #response-ops, a responder can mention DIZMO with a field update such as:
@DIZMO Shelter North has only 12 water crates left. 80 people are inside and two buses are arriving in 20 minutes.
DIZMO identifies the message as an operational report, extracts the location, need, urgency, affected population, and incident type, then posts a structured incident card back into Slack. It also recommends the next human-approved action, such as dispatching supplies, creating a task, or escalating an incident.
DIZMO can also generate a situation brief on demand:
@DIZMO summarize current situation
This gives coordinators a fast operational snapshot of active incidents, top risks, and recommended next steps without leaving Slack.
How we built it
We built DIZMO as a Slack-first agent using Slack Bolt, Socket Mode, TypeScript, and a Model Context Protocol (MCP) server integration that connects the agent to relief and operational tools. Slack is the judge-facing product surface. Cloud Run hosts the private worker that keeps the Slack agent connected, while the MCP server provides operational context such as shelter capacity, supply availability, volunteer availability, and task support.
We validated the complete workflow from Slack message ingestion and incident extraction through MCP tool calls, recommendation generation, human approval, and situation-brief delivery.
The system includes:
- Slack app mentions and threaded responses
- Incident extraction and priority detection
- Greeting and test-message rejection so casual messages do not create fake incidents
- MCP-powered relief tools
- Human approval buttons for acknowledge, create task, and escalate
- Situation brief generation
- Automated tests for triage, recommendations, state, tools, and UI support
What makes it different
DIZMO is not just a chatbot. It is a command layer inside Slack.
Instead of forcing responders into a separate dashboard, DIZMO works where coordination is already happening. It combines incident triage, contextual recommendations, external operational data through MCP, and human approval in one workflow.
The agent does not try to replace response coordinators. It recommends actions, shows evidence, and keeps humans in control. This matters in disaster response, where speed is important but blind automation is dangerous.
Challenges we ran into
The hardest challenge was designing a reliable Slack workflow that could distinguish genuine operational reports from casual conversation while preserving fast, human-approved response actions. We tested Slack-hosted deployment options, but the available workspace was not eligible for Slack's next-generation hosted platform. We adjusted by keeping Slack as the full product surface while hosting the private worker separately.
We also improved the agent after testing. Early versions treated simple messages like "hey" as incidents. We fixed that by adding an intent gate so DIZMO only creates incidents from real operational reports.
What we learned
We learned that the best disaster response interface is often the one teams already use. Instead of building another dashboard-first workflow, DIZMO keeps responders in Slack and adds structure only where it helps.
We also learned how important human approval is in sensitive domains. DIZMO can detect, summarize, and recommend, but the coordinator decides.
What's next
Next, DIZMO could support persistent incident history, richer GIS context, multi-channel command summaries, real emergency resource APIs, multilingual field reports, and verified handoff workflows for NGOs, hospitals, shelters, and local governments.
Built With
- biome
- cloud-run
- fastify
- google-cloud
- mcp
- node.js
- react
- slack
- slack-bolt
- socket-mode
- typescript
- vite
- vitest
Log in or sign up for Devpost to join the conversation.