Inspiration

Our inspiration for UrgentLA originates from one of our team members' very recent experiences. Just a few months ago, he was playing soccer when someone ran into him mid-jump, causing him to dislocate his kneecap. Not knowing what else to do, he simply went to the nearest urgent care without knowing any information on availability, wait times, or provided treatments. Because of that, he spent over an hour in the waiting room, denied any relief for his pain.

We have all experienced a sudden injury or sickness that needs urgent medical attention. However, finding the most suitable urgent care is always more frustrating than it needs to be. Sometimes we drive across the entire city only to find out that there is no treatment available for us. Without easily accessible information on urgent cares, patients are forced to make uninformed decisions or spend hours researching when they're already sick and in pain. This is a huge limitation in healthcare accessibility – getting urgent medical care should be easy, instant, and reliable, not something patients have to guess their way through and hope the best for.

What it does

UrgentLA helps users easily find the most suitable urgent care clinic based on wait times, proximity, and treatment specializations.

  • Understands your symptoms through an easily accessible chatbot
  • Utilizes agentic AI to combine your symptoms and location data to find the best clinic matches
  • Visually displays top choices with address, operating hours, directions, contact info, and wait times.

How we built it

Multi-Agent Architecture (Fetch.ai uAgents)

The core of UrgentLA is a two-agent system built on Fetch.ai's uAgents framework:

  • Intake Agent — The first point of contact. Receives the user's symptom description, processes it through the ASI1 LLM, and extracts structured routing data: specialty, urgency score (1–10), and a red flag indicator for life-threatening symptoms.
  • Matcher Agent — Receives the structured routing data from the intake agent and queries nearby clinics via the Google Places API. It scores and ranks clinics based on specialty match, proximity, and simulated operational data.

This separation of concerns is intentional. The intake agent handles natural language understanding. The matcher agent handles data retrieval and scoring. Each can be updated, scaled, or replaced independently — a design that supports the long-term vision of UrgentLA.

Frontend (Next.js + TypeScript)

  • Built with Next.js 16 and TypeScript for type safety
  • Real clinic data from Google Places Nearby Search API
  • Interactive map powered by Leaflet with color-coded wait time markers
  • Responsive UI with a quick call button and a button to transfer to Google Maps
  • As few steps as possible between opening the app and getting to a clinic

AI & Matching Algorithm

The chatbox is powered by ASI1 (asi1-mini), Fetch.ai's LLM. We gave it a carefully written system prompt that keeps it focused. It acts as a medical intake assistant, not a doctor. It only asks enough questions to figure out which type of clinic you need, then quietly passes that information to the matcher agent in the background.

The matching algorithm scores each clinic using weighted factors:

  • Estimated wait time — simulated per clinic (no public API exists for real-time urgent care wait data)
  • Distance — clinics beyond 15 miles are excluded; proximity is factored into scoring via haversine calculation
  • Specialty match — does this clinic treat your condition?

Challenges we ran into

  • Finalizing our project idea
  • People describe symptoms differently, which makes it hard to categorize into specific specializations that urgent cares can address
  • Learning how AI agents actually work, how to implement them, and how to make them accessible to users
  • Avoiding giving inaccurate medical advice, and diverting users to other resources (ex. 911) when necessary

Accomplishments that we're proud of

  • Effectively implementing AI agents without any prior experience with them
  • Developing interactive displays that are both intuitive and organized
  • Implementing Google Maps APIs to provide real data about urgent cares
  • Creating a system that can actually help people in dire situations
  • Developing a clear value proposition: Right care. Right place. Right now.

What we learned

  • AI agents can take the form of chatbots, much like LLMs, but have the ability to make their own decisions and carry out complex tasks
  • They have a relatively simple workflow as a baseline - set up the agent, its protocols, and its handlers.
  • Google Maps provides so much valuable information about basically every place imaginable (at least in the US and other countries that use it)

What's next for UrgentLA

  • Integrate real-time clinic data APIs (wait times, insurance compatibility)
  • Add insurance filtering and cost transparency for further informed decision-making
  • Develop an adaptive matching algorithm that moves from a fixed equation to a self-improving system — validated by historical data first, then live data over time
  • Consider adding general medical advice that can be helpful for certain situations
  • Add new language options for increased accessibility
  • Expand across new geographic locations (already built into backend)

Built With

Share this project:

Updates