Note: To visit our try-out link, you must be on UofM wifi (or any 35.0.0.0/8 IP address). Also, our sign-up email system limits you to 4 emails per day. If you are not able to (or do not want to) register your own account, log in with {username: johndoe@example.com, password: johndoe}.

Inspiration

As students at the University of Michigan move into their second year, >10,000 students are required to find off-campus housing. While the university provides support for first-year housing, the process of finding housing and roommates afterward is largely unorganized. Students have to rely on social media posts, word of mouth, or scattered spreadsheets to coordinate living arrangements. None of the five largest Facebook housing groups requires a UMich email to join, and 68% of roommate conflicts stem from lifestyle mismatches that nobody discussed upfront (Roomi, 2021). These approaches are inefficient and make it difficult to assess compatibility with potential roommates before committing to a lease. This lack of support creates stress during an already demanding academic schedule. Current tools offer little support for evaluating these factors meaningfully. We saw an opportunity to build a system that combines housing discovery and roommate matching into a more structured and data-driven process.

What it does

NestMate is a platform that streamlines the off-campus housing journey for students. The app first helps users discover accommodations based on personalized criteria such as budget, proximity to classes and clubs, and preferred lifestyle. Next, NestMate uses a roommate-matching system that evaluates compatibility across lifestyle and personality factors, such as cleanliness, sleep schedules, and social habits. Finally, the app incorporates locations from digital calendar events, such as classes, clubs, and one-time activities. By combining property discovery with structured roommate matching, the platform helps students build living situations that work financially, socially, and geographically.

How we built it

Data Sources

NestMate aggregates data from multiple sources to generate meaningful, accurate housing and roommate suggestions.

On the student side, NestMate analyzes a student’s Google Calendar events, including Canvas schedule, to understand their weekly routine and the locations they visit most often. The Index Matching Quiz captures lifestyle preferences to inform roommate compatibility scoring. Additionally, the University of Michigan Course Registrar data is used to enrich and correct schedule information, as calendar events may sometimes lack details such as building names, room numbers, or class sections.

By cross-referencing registrar data, NestMate automatically fills in these gaps, ensuring accurate location data without requiring additional effort from the student.

On the housing side, NestMate leverages an off-campus Ann Arbor housing database and OpenStreetMaps containing geographic information about available properties that can be accurately mapped. This dataset is combined with information from the NestMate database to match students with housing options that align with their budgets, location preferences, and daily commute patterns.

Alt text

Roommate Compatibility Scoring

Manhattan distance similarity across 10 lifestyle questions (1–4 scale):

Per-question score:

$$ \text{per_question_score} = 4 - |\text{user_answer} - \text{other_answer}| $$

Compatibility percentage:

$$ \text{compatibility} = \left(\frac{\sum_{i=1}^{10} score_i}{40}\right) \times 100 $$

For a large list of candidate roommates, indexing provides the fastest and most intuitive solution for matching roommate personalities and routines. However, unlike other roommate-matching apps, we use an LLM backend to intuitively explain the match score, similarities, and differences, making the matching process more transparent.

Weighted Centroid Algorithm

Events are weighted by type to find the ideal housing location:

Event Type Weight
class 3
study 2
club 1
gym 1
other 1

Centroid calculation:

$$ centroid_{lat} = \frac{\sum(event.lat \times weight)}{\sum(weight)} $$

$$ centroid_{lng} = \frac{\sum(event.lng \times weight)}{\sum(weight)} $$

Housing Radius (default is 67th percentile)

  1. Compute the distance from the centroid to every event
  2. Radius = 75th percentile of those distances
  3. Clamped to:

$$ 0.5\text{ km} \leq radius \leq 3.0\text{ km} $$

Location Fit Score

Linear decay from centroid:

$$ score = \max(0, 100 - distance_{km} \times 50) $$

Course Location Lookup

Calendar events are not standardized for all classes. The worst-case scenario is having only the course code on the calendar. This is used to further determine the specifics of the class on the calendar, which we can use to then extract the class's location from the course registrar data. The process is as follows:

  1. Extract course code via regex

  2. Resolve subject names

    • E.x. CS to CSE
    • ME to MECHENG
  3. Match against course registrar data by subject and catalog number

  4. Map building code and get location coords from time & day overlaps

AI-Powered Housing Ranking

NestMate uses an LLM backend to score listings from 0–100 based on:

  • user preferences
  • roommate compatibility
  • location weights
  • listing features
  • budget alignment

The system returns both:

  • a numerical score
  • a natural language explanation describing why the listing is a good match.

Tech Stack

NestMate is built using the following architecture:

Frontend

  • Next.js
  • TypeScript
  • Tailwind CSS
  • Leaflet for interactive housing maps and geospatial visualization

Backend

  • Python FastAPI
  • APIs and public databases for housing search, roommate matching, quiz processing, and calendar integration

Infrastructure

  • Supabase for authentication and data storage

AI

  • Google Gemma 3 27B for intelligent recommendation, reasoning, and explanation generation

The system processes Google Calendar and ICS data to understand where students spend their time and factor those locations into housing recommendations.

Challenges We Ran Into

Determining the mathematical algorithm for identifying the best housing properties was one of the biggest challenges.

Ultimately, we developed an approach that computes a weighted average of visited locations based on activity type, duration, and location. From this, we generate a circle with a radius that covers roughly 67% of the students’ activities, representing a realistic commuting zone.

Another major challenge was reliably integrating Google Calendar data. Parsing events, categorizing them, and mapping them to real campus locations required handling inconsistent event formats and incomplete metadata. Ensuring that these events could meaningfully influence housing recommendations required careful data processing and normalization.


What’s Next for NestMate

Moving forward, we plan to integrate NestMate into the Connyct platform to leverage its existing student community. By embedding NestMate within an active campus network, roommate discovery becomes more natural and trustworthy, allowing students to connect with potential roommates who share classes, clubs, or social circles.

We also aim to directly integrate with university tools such as Canvas LMS, enabling NestMate to better understand student schedules and campus activity patterns to provide more personalized housing recommendations.

At the same time, we plan to expand the platform’s housing data through integrations with services like Zillow, ensuring students have access to up-to-date listings.

Beyond Ann Arbor, our long-term vision is to scale NestMate to universities across many cities, creating a broader ecosystem where students can easily discover housing, find compatible roommates, and coordinate living arrangements within their campus communities.

Built With

Share this project:

Updates