Inspiration

People escaping violence or homelessness usually have to call shelter after shelter. Most go to voicemail or end in "no beds tonight." We wanted something that makes those calls instead so survivors aren’t stuck dialing one by one.

What it does

Eden is an AI placement coordinator. Individuals fill out a short form (needs, kids, pets, location). Eden calls nearby shelters, talks to intake staff about beds and waitlist, and handles follow‑ups like "hold on, let me check." Results show up live on the page. When a shelter has a bed, the user receives the address and phone, ready to be warm‑transferred. The form is available in English and Spanish, and there’s no signup or app in order to best protect users privacy.

How we built it

Intake is a web form that sends data to an Express API. We query a PostGIS database of Bay Area shelters, rank by distance and fit, and apply filters for kids, pets, pregnancy, and sobriety. The voice agent uses Twilio for calls, ElevenLabs for TTS, and OpenAI for conversation logic. We route short replies like "yes" or "hold on" through a fast regex path and only call the model for longer or ambiguous answers, so we stay under Twilio’s 10‑second webhook limit.

Challenges we ran into

Phone audio was a main issue. Twilio often returned empty transcripts even when someone spoke clearly. We switched to the phone_call speech model, added DTMF (press 1 for yes, 2 for no) as a fallback, and set actionOnEmptyResult="true" so we always get a webhook and can re-prompt instead of dropping the call. We also had to avoid hanging up on unclear input. A repetition guard now only ends the call after several repeated availability questions instead of after two.

Accomplishments that we're proud of

Getting a real voice agent to talk with shelter staff instead of breaking on "hold on" or "yeah." Building a solid fallback so we don’t hang up on people when the AI fails or times out. Supporting English and Spanish without extra setup. Implementing safety controls (no-call lists, escalation flags) so we don’t worsen risk.

What we learned

Shelter placement is still largely phone-based. Voice AI on real phone calls is noisy and fragile; you need timeouts, fallbacks, and clear logic for silence or unclear speech. Twilio’s speech params matter a lot, and the webhook timeout forces tight response times.

What's next for Eden

Scaling beyond Bay Area shelters, adding SMS intake for people without reliable web access, and improving multi-language support. We’re also interested in connecting with hotlines and existing referral systems so Eden can plug into established workflows instead of replacing them. This last point would also better equip us to ensure we're not doing the opposite-overwhelming these already understaffed and complicated systems-and making sure we are a trusted service so as to not fall into "spam call" category.

Built With

Share this project:

Updates