Phone number: (984) 302-3261
Inspiration
1 in 7 Americans face food insecurity. At the same time, 30% of grocery store food gets thrown away every year, meaning 114 billion meals go straight to the trash. The problem isn't that there's no food. The problem is that no one is connecting the two.
We kept coming back to one specific gap: the people who need food most are the same people locked out of every existing solution. No smartphone. No data plan. No documentation. No English. Apps like Too Good To Go require an account and a credit card. Nothing serves the undocumented farmworker in Sacramento who just needs to know where to get dinner tonight.
We wanted to build something with zero barriers. One phone call. Any language. Done.
What it does
Mesa is a multilingual AI voice platform that connects surplus food from restaurants and grocery stores to verified food shelters and community members in need.
A donor calls one number and says "50 burritos ready at 9pm." Mesa's AI parses the listing, saves it to the database, and immediately calls nearby verified food banks to alert them. A food bank says yes, the listing is claimed, and the donor gets a callback confirming pickup.
On the recipient side, anyone can call the same number in English or Spanish, get connected to nearby food shelters with available food, and find out exactly where to go, with no account, no ID, no app required.
How we built it
- Vapi — AI voice agent handling all inbound and outbound calls, bilingual conversation management, and tool call dispatch
- FastAPI — backend webhook server receiving and routing Vapi tool calls
- Supabase (Postgres) — database storing donors, food banks, users, listings, claims, and verification queue
- Claude API — powers the agentic AI core: natural language understanding, bilingual conversation routing, and automated organization verification
- Railway — deployment, auto-deploying from GitHub on every push
- ProPublica Nonprofit API — EIN verification for food bank registration
- Nominatim / OpenStreetMap — geocoding for address validation
We built nine tool handlers covering the full flow: identifying callers, registering donors and food banks, saving listings, notifying food banks via outbound calls, claiming listings, verifying organizations, and finding nearby shelters. Mesa is an agentic system, so when a donor texts surplus food, the AI autonomously classifies it, routes it to the highest-need recipient, escalates as expiry approaches, and confirms pickup, all without a human dispatcher.
Challenges we ran into
The hardest part was the two-sided marketplace problem, in that food banks won't register if there are no donors, and donors won't call if no food banks are listening. We solved this by seeding the supply side manually and routing through verified organizations rather than individuals.
Getting Vapi's webhook integration right was technically challenging, as the dispatcher has to respond within ~5 seconds with exactly the right payload format or Vapi rejects it. Parallel async checks for organization verification (EIN, geocode, web presence) had to be carefully time-bounded to stay within that window.
Accomplishments that we're proud of
- Built a fully functional bilingual voice agent handling the complete donor → food bank → recipient flow end to end
- Automated food bank verification using three parallel checks with no human required for clean cases
- Designed a dignity-preserving system where undocumented users never have to register, prove need, or identify themselves
- Deployed a live production backend on Railway connected to a real Vapi phone number
What we learned
Building for accessibility means every design decision has a cost. Every field you add to a form is a barrier. Every language you don't support is a community you're excluding. Every ID requirement is someone who won't call.
We also learned that agentic AI in production is harder than it looks, not because the AI fails, but because all the infrastructure around it (webhooks, timeouts, database constraints, phone number formatting) has to be exactly right or the whole thing silently breaks.
What's next for Mesa
- Expanding language support beyond English and Spanish
- Radius-based zip matching so listings reach food banks in adjacent neighborhoods
- Expiry escalation: automatically re-notifying food banks as pickup windows close
- A donor dashboard so restaurants can see the impact of their donations in real time
- Partnerships with regional food bank networks like Feeding America to seed supply in new cities
Built With
- next.js
- python
- supabase
- vapi


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