Inspiration
When someone is facing an urgent need, such as losing a job, eviction, or having no groceries, it is often nearly impossible for them to receive help; they may spend countless hours looking up old websites and calling numbers that do not get answered. To solve this, we decided to create a smart and helpful agent that will assist people in need during tough times.
What it does
With the Triage app, users provide a brief description of their situation using simple terms. After that, the data is processed by an AI system that will determine what basic requirements need to be filled (food, shelter, medical, etc.) as well as determine how urgently the requirements need to be filled. Finally, the AI will create a list showing all the local assistance programs that meet the user's criteria along with instructions on how to apply and who to contact about each of them so that the users can take prompt action.
How we built it
Triage is an isolated, self-contained HTML file composed solely of vanilla HTML5/CSS3/JavaScript (ES6 async/await) with no backend actions at runtime. The user inputs (description, zip code, urgency) are sent to Google Gemini (gemini-2.5-flash), which responds with a structured JSON Object including identified need(s), urgency, a summary and applicable program(s). If the Triage application has a valid Google Maps API Key configured, then the application will instead query the Google Places API (what's referred as "live" local organizations) and will drop those organizations that have been marked as "permanently closed" in order to power up the "verified as active" feature. If the AI call does not succeed, the application will degrade down to an internally stored dataset that is ranked based on a local scoring function and weight formula for household size and urgency.
Challenges we ran into
One of the largest difficulties we encountered was balancing a level of authority for the AI with an assurance of safety. When an AI is asked to respond to a crisis, it could mistakenly identify a user as being eligible for an aid program they are not. In addition, we had to learn to incorporate multiple different fail-safes to mitigate risk, like checking the status of live results against the Google Places database to eliminate any businesses that are currently out of business, having each program in the database show a "Last Checked" tag indicating the most recent check date, and in the event of an AI call failure, having the system devolve to deterministic data rather than simply failing or returning null.
Accomplishments that we're proud of
We are proud that Triage is single self-contained file without any backend that makes it lightweight and easy to deploy anywhere. We are especially proud of the 'verified as active' feature which checks the status of living organizations from Google Places, so that users will not mistakenly be suggested out-of-date aid programs. Most important to us is that the design of Triage is safety-first; the AI surfaces/ranks options but leaves the determination of qualification to the user and the aid providers, so that it does not mistakenly give absolute suggestions that are false. The application also gracefully downgrades to keyword-matching if the AI call fails, instead of failing entirely.
What we learned
The biggest thing we learned is that the AI should be used for determining intent, and that its output should never be treated as the final source of truth. The AI suggests and ranks alternatives, but it leaves the user and program intake employees as the final judges of eligibility. We also learned how valuable layered fail-safes are: combining live verification, recency indicators, and a deterministic fallback gives users far more reliable information than trusting the model alone.
What's next for Triage
In the future, we plan to partner with real local aid agencies in order to develop our verified program database beyond our sample data, which will allow for increased coverage across the country while providing timely updates. We also intend to offer multilingual support, as well as an SMS-supported option to ensure that people without a smartphone or reliable internet service have a chance to access assistance. Finally, we are developing mechanisms within our verification pipeline to verify and timestamp all programs prior to disseminating them to users, to make an even more reliable means of verification than crosschecking the Google Places directory.

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