Inspiration
Not too long ago, everyone on our team was a kid. We're all 20-year-old college students, and much of society still considers us to be not-quite adults. When we heard about Hack for Social Impact, we were immediately drawn to the California Homeless Youth Project — we would actually be making an impact on our community… our friends, younger siblings / family members, roommates, and from the perspective of peers instead of the "we know what's best for you" mentality that is already ever-present in public service.
When building a trauma-informed intake tool, we have to actually be accessible and compassionate. One of our team members grew up interacting with the foster care system and navigating youth emancipation legal processes — they know how it feels to seek help and be overlooked, because the present system isn't designed to care for you. We all witnessed this firsthand when failing to call the support providers listed on the 2-1-1 Sacramento website, when seeing a completely empty dashboard when logging onto Clarity (Homelessness Management Information System interface) as a new user.
How do we design a platform that youth users actually feel supported by? How do we achieve this while ensuring that data privacy is maintained, with true digital consent and transparency?
What it does
Haven is an AI-powered intake tool for homeless youth. We prioritize the user's most pressing need — to get help, now — and allow them to have full agency of what information they choose to share.
We know that ChatGPT has become this generation's Google, and we kept this in mind when designing our platform: users interact with a RAG-integrated chat interface to find critical services, with the ability to save and keep track of resources that suit their needs. Support providers can register the resource they provide, and users can also give feedback if a resource is unreachable/inactive.
Additionally, as they interact with the platform, users are able to maintain a digital profile that can be shared with case managers / social workers as well as support providers — reducing the re-traumatization that happens when information is siloed and lost between transitions. Most importantly, this digital profile is only shared if and only if the user chooses to do so. There's no pressure to interact with "the system" because we know how invasive it feels when support/resources are gatekept behind endless forms and eligibility surveys.
Haven flips the script: instead of demanding information upfront to determine eligibility, we provide immediate access to resources and let users share their story on their own terms, at their own pace.
Accomplishments that we're proud of
Being trauma informed Creating a tool that’s not intimidating and trying to tie everything together for users, service providers and case managers Made the inaccessible accessible Always client facing first For youth by youth
We’re proud that Haven was built with empathy at its core. Our team designed every feature to be trauma-informed and accessible, ensuring that youth feel safe, supported, and in control of their information. We created a tool that brings together users, service providers, and case managers in one place, lowering the entrance barrier of just being able to gather the appropriate information. By prioritizing a client-first experience and making the previously inaccessible accessible, we built a system for youth, by youth.
What we learned
Lots on what the process looks like and how hard/unintuitive it is Hard to reach Overwhelming and overcomplicated All over the place and at times repetitive Long wait times made for a discouraging experience What were their needs Reached out to some service providers backend : gathering all the required information and commonalities between forms ADK Lovable
Throughout this process, we gained a deeper understanding of just how complex and fragmented the current intake systems are. Navigating these services can be overwhelming, repetitive, and discouraging, with long wait times and unclear processes. By speaking with service providers and analyzing existing forms, we learned how critical it is to simplify and unify data collection across agencies. Leveraging Google ADK and Lovable, we connected back-end systems to empathetic and nonintimidating front end interfaces to make technology feel more human. Ultimately, we learned that creating impact isn’t just about code but about compassion and collaboration.
How we built it
Backend: For databases, we scraped data of the 2-1-1 Sacramento Community Resource Directory’s resources using Selenium and the site’s guided search terms. Then, to ensure accurate matches, we utilized Gemini 2.5 Pro to tag the services’ focuses. We also store User Profiles so that the we prevent youth from having to fill out their information every time they need help and to adjust to their specific needs.
Chat Agent: For the chat agent portion, we are using Google ADK with Gemini 2.5 Flash to provide the user a conversational search and recommendations experience. The agent will search in our database of our scraped resource database by service category and demographic filters (youth, families, LGBTQ+, veterans, accessibility). It returns ranked matches with explanations. The service runs on Cloud Run and integrates with our Supabase edge function. If the agent times out or breaks, we add an automatic fallback to making a direct Gemini API call to still respond to the user and give back a useful response. We believe using AI agents lets users ask questions in natural language and learn efficiently. We believe that youth are most comfortable chatting with LLMs and that it is increasingly so.
Frontend: We were inspired by NotebookLM’s user experience. We wanted to make a 3-panel platform that is centered around a chat feature to help users learn about available services. The other panels distinguish between resources automatically relevant to the user and resources the user selects. We built this with Lovable.
Challenges we ran into
The biggest challenge that we ran into was how to integrate Google ADK to make an agent for the chat panel of Haven. We were easily able to follow the documentation and create the agent but we were confused on how to connect it to our backend and ensure that the agent is learning and using the databases we worked so hard on scraping. What really helped us was implementing a try function to try querying the agent, and if it doesn’t work, we fall back on the more simple Gemini integration we started with. Ultimately, after a lot of trial and error and learning with AI assistance, we were able to understand more of what the agent was doing, by reading logs in Lovable Cloud and Google Console. We also used the customer-service and financial-advisor ADK samples that Google provides for developers and learned so much about how ADK works: https://github.com/google/adk-samples.
What's next for haven
Currently, Haven operates with a subset of data (primarily food pantries and shelters) from the Sacramento 2-1-1 website. Our next step is to expand this backend to include a wider range of resources to better serve the needs of homeless and at-risk youth, such as healthcare, education, and legal support.
We also plan to build a dynamic bed-booking feature that shows real-time availability, helping youth see how many beds are left and reserve a spot directly through Haven. On the technical side, we aim to strengthen Haven’s infrastructure for long-term scalability. Instead of relying on static JSON data, we want to transition to a cloud-based database solution such as Firebase or DynamoDB to improve data persistence, reliability, and integration with our AI models. This will allow Haven to update resources in real time, adapt to new regions, and continue growing as a sustainable, human-centered system that empowers across California.
Google Prize Demo Video
Please see the Loom video link attached below, or click here.
Built With
- lovable
- postgresql
- react
Log in or sign up for Devpost to join the conversation.