Inspiration

When searching for homes, one of the most important factors homeowners must consider is the neighborhood the property is located in. Whether the surrounding area is safe, having quality amenities such as schools, parks, restaurants, having easily accessible transport and several other significant details. Not to mention that isn't even considering the addition of having to pick out a ‘perfect’ home among a wide breadth of selections. With current consumer-based proprietary apps, like Zillow, users have to scroll through every listing and tediously pick out potential homes. We also faced uncertainty around the home’s livability and overall quality of life, since standard housing details don’t fully capture the true living conditions- something that could have been better reflected through insights from actual residents. Thus our initial idea was to create a website that was similar to Yelp, a community driven platform where users could leave reviews on their neighborhoods and homes, sharing their experiences to potential buyers looking for a new home. However, our idea transformed into something more unique - we pivoted away from the original idea and instead focused on a “Would You Rather”-style smart selection system that trains our AI on user preferences to generate a personalized list of recommended homes.

What it does

Knock Knock condenses and streamlines the home searching process into a user-friendly and AI powered search engine with user-preference learnt recommendations. Unlike your typical home search software, Knock Knock uses a trained AI model to learn the user’s home preferences. Using our AI-powered chat-box, users can first search for their best-fit neighborhood where they can thereafter find specific housing by playing a game of “Would You Rather”. In essence, users are given a choice between two homes, and they can ‘knock’ on the one preferred, and after each choice they make our trained AI learns their preference and can return a personalized list of best-fit homes by the end of the game. Knock Knock additionally leverages our own API to show in-depth livability statistics and insights on the neighborhoods and homes searched by our users.

How we built it

Knock Knock runs on Next.js with TypeScript using the App Router. We styled everything with TailwindCSS and a custom brand palette to get a warm, approachable look that doesn't feel like every other real estate site.

On the backend, we used Supabase (PostgreSQL) for the database and auth. Since no single API had the neighborhood data we needed, we built our own by pulling from multiple public APIs and scraping, then storing everything in Supabase. The database holds neighborhood boundaries as GeoJSON MultiPolygons, livability scores across 7 dimensions, demographic data, points of interest, school districts, and individual home listings, all queryable through API routes we wrote in Next.js.

AI search is powered by Cerebras Cloud SDK running GPT-OSS 120B. When someone types something like "quiet area near parks with good schools," our endpoint pulls 50+ neighborhoods with their livability metrics and aggregated POI data, feeds it all as context to the LLM with a tuned system prompt, and gets back ranked recommendations with match scores and reasoning. We enforce structured JSON output with low temperature (0.1) and a fixed seed to keep results consistent.

For the Knock Knock game, we built the preference-learning system from scratch. It fetches homes within a geographic radius, pairs them randomly across 5 rounds, and lets users "knock" on the one they prefer. After all 5 rounds, the algorithm compares winning vs. losing picks to infer things like price range, bedroom/bathroom count, property type, and living area, then scores every remaining home against those preferences to generate a personalized ranking.

The image model lives on a separate Hetzner VPS. We trained it on a dataset of hundreds of houses so we can classify and match against homes in our database, surfacing visually similar buildings. That's what connects the visual preferences users express during Knock Knock to actual listings.

For the map, we use Leaflet with React-Leaflet, dynamically imported with SSR disabled. The map renders multiple toggle-able layers: livability regions color-coded by score, neighborhood boundaries, school districts, and clustered address markers. We also wrote a custom point-in-polygon ray-casting algorithm to match clicks to the correct geographic regions.

Challenges we ran into

Several of the major challenges we faced throughout this hackathon had to do with being able to achieve our primary goals and functionalities of our app with the limited datasets we had access to as well as iterating upon what began as a simpler idea.

At the beginning of the hackathon, we really struggled to find comprehensive datasets on properties and livability standards without paying unrealistic costs. As such, we needed to be resourceful with what APIs we found and we decided to create our own API by using Supabase and combining several pieces of data from APIs and web scraping. This allowed us the ability to heavily customize how our AI agent functioned, as we were able to feed it and immensely wide set of information that allows the searching functionality of our app to be incredibly in-depth, as well as show impressive and in-depth livability statistics for communities on our front-end.

After some reflection on our current progress on the app midway through the hackathon, we decided to add more depth and uniqueness to the functionality of our app. Therefore, we delved into changing both the user flow of the app as well as expanding our implementation of AI into our app, with the knocking feature, choosing between houses, powered by an AI trained on a data set of several images of houses.

Accomplishments that we're proud of

We built a fully custom API from scratch. No single affordable dataset covered what we needed, so we pieced together our own from multiple public APIs, web scraping, and manual curation. That gives us full control over our data and is what makes the depth of our livability insights possible.

The Knock Knock game is probably our favorite part. Instead of filters and checkboxes, we turned home preference discovery into something that feels fun. The inference algorithm behind it just analyzes winning vs. losing picks to derive ideal price ranges, property types, and sizes, but it works surprisingly well.

Training and deploying our own image classification model on a Hetzner VPS was new territory for most of the team. Getting it to accurately find visually similar houses across our database was a real challenge, but we got it working.

Image Classification Model Image Classification Model

Most of us were using Next.js, Supabase, and TailwindCSS for the first time, so shipping a full-stack app with AI integration, geospatial mapping, auth, and a custom-trained model within the hackathon window felt like a lot.

What we learned

As beginners to hackathons, we learned a lot about the process of creating apps in such a limited and short amount of time. For most of the team, we knew close to nothing about creating a generative AI agent or training an AI with images so the research and implementation was both a difficult and enlightening process for us. Additionally, we really wanted to challenge ourselves with the tech stack and for several of us, it was the first time we used frameworks like Supabase, Next.js, and TailwindCSS. Lastly, the time constraints forced us to really think about realistic ideas that can be implemented within the time-frame, how our ideas might change due to the limitations of our API or unexpected limitations of our available tools, as well as make key decisions to implement more ideas and expand our app once we realized we had more time to continue development.

What's next for Knock Knock

In our ongoing effort to build a more transparent and efficient home search platform, we seek to incorporate structured input from both buyers and sellers. Recognizing that listing descriptions often fail to reflect actual living conditions, we look forward to developing a new feature that enables residents to rate and comment on their communities. These insights can reduce the gap between expectations and lived reality.

Resident sentiment also functions as a behavioral market signal. Properties with stronger positive sentiment tend to sell more quickly, while negative commentary, particularly in condos and HOA-governed communities, can materially affect demand. By structuring and analyzing this data, our platform could enhance the consumer search experience while also generating meaningful market insights to improve market prediction models. By converting qualitative feedback into quantifiable insights, our platform adds a complementary intelligence layer to existing property, HOA, and valuation datasets across the real estate ecosystem. We also intend to increase the scope of our dataset by expanding past Irvine homes and communities to allow this app to be helpful to those outside of the area.

Built With

Share this project:

Updates

Submission history