Inspiration

Finding a home is about more than just square footage and rent price; it's about finding a place that fits your life story. We were inspired by the complexity of moving to a new city like Los Angeles. Traditional search engines rely on rigid filters, but they fail to capture the nuance of a user like Samwell—an academic father who doesn't just need "3 bedrooms," but specifically needs a safe, quiet neighborhood with a public library and parks nearby for his child. We wanted to build a system that listens to the user's narrative and acts like a knowledgeable local guide, not just a database query.

What it does

Compass is an intelligent, agentic relocation assistant. Firstm it analyzes user profiles, it takes a natural language description of the user (e.g., "I'm a young parent looking for safety and libraries") and then performs a data-driven scoring evaluating neighborhoods based on data recolected (crime rates, average rent, density) using a custom scoring algorithm.

Real-World Verification: Compass connects to OpenStreetMap (OSM) in real-time. If a user asks for a library, the system physically scans the candidate neighborhoods to verify if one exists within a specific radius, and then performs the recomendation of the neighborhood based on its findings.

Dynamic Negotiation: Users can chat with the system. If they change their mind (e.g., "Actually, I want a gym instead"), Compass updates its criteria on the fly, removing old requirements and hunting for new amenities.

How we built it

We built the backend using Python and the frontend is made using react.js The backend follows the following process: Orchestrator: A central script manages the state and flow between agents. Agent 1 (Profiler): Extracts key variables (budget, safety level) from the user's text. Agent 2 (Scorer): The heavy lifter. It combines CSV statistical data with live queries to the Overpass API (OpenStreetMap). It calculates a match score for each neighborhood, applying bonuses if specific venues (libraries, gyms, parks) are found. Agent 4 (Negotiator): Handles user feedback. It intelligently distinguishes between adding a requirement and replacing one, modifying the search parameters dynamically.

Challenges we ran into

Choosing specific datasets to capture all the information needed to understand the neighborhood features was a difficult task. One of the hardest parts was teaching the "Negotiator" agent to understand the difference between "I also want a gym" and "I now want a gym instead of a library." We had to implement specific logic to handle state updates and clear old OSM tags. Merging static CSV data (crime stats) with dynamic API results (OSM locations) into a single coherent score required careful normalization. Querying the Overpass API for multiple neighborhoods can be slow, so we had to optimize when and how we search for specific amenities.

Accomplishments that we're proud of

We are particularly proud of the Live Amenity Verification. The system doesn't just assume a neighborhood is "good for families"; it proves it by finding the exact coordinates of the nearest library or park. We also successfully implemented a feedback loop where the user can pivot the entire search strategy in plain English, and the backend re-calculates scores instantly.

We also consider we have developed a nice-looking platform where the user can find the perfect LA neighborhood depending on its needs, and modify them in real time interacting with a chatbot.

What we learned

We have learned that the process of finding the necessary data to perform a study it's probably the most important part of the process, all the models defined will depend on that information, and that creating a lanchain process of diferent reasoning models can be a very powerful tool to make predictions, and improve them with a reasoning chain between models.

What's next for compass

We can turn compass into a powerful tool if we consider data of future housing projects, and instead of recommend the best neighborhood go deeper and recommend the best house to live taking into account the overall characteristic of the neighborhood, and the house characteristics. That house could also be built in the future, so the user can take into account future houses to live in.

Built With

Share this project:

Updates