IMPORTANT: To look at functionality in demo mode, log in with the following phone number and password:

NUMBER: 6464771086 PASSWORD: hunter2

Inspiration

Every crisis tells the same story: people who need help and people who can help exist in the same place at the same time, but they never find each other. During a campus emergency, a natural disaster, or even a local food shortage, the communication explodes across GroupMe, Slack, Discord, texts, and social media. "Need a ride." "I have extra food." "Can someone check on my grandma?" The information is all there. The coordination is not.

We were inspired by real mutual aid networks that formed during hurricanes, COVID, and campus crises, where spreadsheets and group chats became overwhelmed within hours. We asked: what if the chaos itself became the input?

What it does

Bridge is an AI-powered coordination layer for mutual aid and crisis response. Users paste or forward messy messages from any source (GroupMe, Slack, Discord, texts, public posts) or simply text a dedicated crisis number. Bridge automatically:

  • Extracts needs (food, rides, medicine, shelter, information)
  • Extracts resources (cars, skills, time, supplies)
  • Matches helpers to people in need using urgency scoring (medicine > food > ride > general help)
  • Generates a live command center dashboard with a real-time map, volunteer dispatch board, and status queue
  • Detects real-time events and disasters in an area, then texts nearby registered users asking what they need or can provide
  • Flags uncertain or risky matches for human review before any action is taken

No one downloads an app. No one fills out a form. They just text.

How we built it

  • SMS intake: Twilio powers the crisis number. Users text a keyword (e.g., CORNELL) followed by their need or offer. From that point, Bridge sees everything sent to that number.
  • NLP extraction pipeline: Claude (Anthropic API) parses free-form messages and classifies them into structured need/resource objects with type, urgency, location, and contact info.
  • Matching engine: A backend matching algorithm pairs needs to resources by type, proximity, urgency score, and availability window.
  • Confirmation loop: Before any match is finalized, the system texts both parties to confirm ("Do you still have a car available? Reply YES to be matched with someone who needs a ride at 3 PM.").
  • Live map dashboard: Built with React and Mapbox, showing pinned needs and resources across the affected area. The map zooms into each active request one by one so coordinators can see exactly what is happening where.
  • Disaster detection: Integrates with public emergency alert APIs to detect events within a configurable radius and automatically trigger outreach to registered users nearby.
  • Backend: Node.js + PostgreSQL storing requests, offers, matches, and status updates in real time.

Challenges we ran into

  • Parsing ambiguous language: "I can help from 2 to 5" means availability. "I need help by 2" means urgency. Training the extraction layer to distinguish these required careful prompt engineering and edge case testing.
  • Avoiding dangerous automation: Fully automating matches felt risky, especially for medical needs. We built a human-in-the-loop confirmation step so no match goes live without both parties saying yes.
  • Location inference: Many messages do not include a precise address. We built a fuzzy location resolver that maps landmarks, dorm names, and neighborhood references to coordinates.
  • Preventing spam and bad actors: We added keyword gating (users must text a crisis-specific code first) and flagging logic for matches that look inconsistent or suspicious.

Accomplishments that we're proud of

  • Turning 30 messy, unstructured emergency messages into 11 extracted needs, 8 confirmed resources, 5 urgent cases flagged, and 6 safe matches in under 5 seconds during our demo.
  • Building a confirmation loop that feels human: it texts like a person, not a bot, and waits for real consent before connecting strangers.
  • The live map view, which zooms into each active need one by one across the crisis area, giving coordinators a spatial sense of what is happening and where gaps exist.
  • Designing a system that works with zero onboarding. You do not need an account. You just text.

What we learned

  • Unstructured text is actually very structured once you know what questions to ask. The hardest part was not the AI. It was deciding what fields mattered.
  • Crisis coordination is a human problem with a logistics core. The AI handles extraction and matching. The humans handle trust, consent, and judgment. Keeping that boundary clear made the system safer and more credible.
  • SMS is still the most universal interface. Not everyone has a smartphone app. Everyone has a number.
  • Real-time maps change how people think about a problem. Seeing 40 pins on a campus map is more urgent than reading a list of 40 requests.

What's next for Bridge

  • Verified volunteer tiers: Hospitals, nonprofits, and emergency management agencies can register as verified dispatchers with elevated permissions and a dedicated coordinator dashboard.
  • Multilingual support: Auto-detect and respond in Spanish, Mandarin, Haitian Creole, and other languages common in vulnerable communities.
  • Offline resilience: Explore USSD and basic SMS fallback for users without data plans or in areas with degraded connectivity.
  • Predictive staging: Before a storm hits, Bridge can pre-register volunteers and pre-match likely needs based on historical crisis patterns in that region.
  • Nonprofit and campus licensing: Package Bridge as a white-label tool for universities, Red Cross chapters, and municipal emergency offices so every community has a crisis number ready before they need it.

Built With

Share this project:

Updates