Here's the updated text with the silo problem woven into Inspiration, accomplishments filled in, and future work expanded:
Inspiration
Student housing groups on WhatsApp are chaotic. Hundreds of messages a day, most aren't even listings, the ones that are use inconsistent formats, and if you don't respond within hours, the good ones are gone. We experienced this firsthand at UMD every summer, the subleasing scramble is the same story.
But the deeper problem is that these groups are siloed. Every city has its own WhatsApp housing groups Boston interns have theirs, DC has a different set, College Park has another. If you're a UMD student heading to Boston for a summer internship, you have no idea which Boston groups even exist, who to ask for an invite, or how to find them. Meanwhile, three other students from your own campus are searching for the exact same thing in the exact same city and you'd never cross paths because you're all stuck in different group chats. This isn't just a UMD thing. It's a phenomenon across every university in the US students at Georgia Tech, Michigan, Berkeley, all of them go through the same cycle every May. The listings are out there. The demand is out there. They just can't see each other.
We realized the problem isn't a lack of listings, it's a lack of signal. The information is already flowing through groups students are already in. It just needs to be parsed, understood, and routed to the right person at the right time. That's an AI problem, not a marketplace problem.
What it does
Scout is a real-time sublease matching agent with three core components. First, an ingestion bot connects to WhatsApp via QR code and listens to every message across your selected groups. Second, a Gemini-powered parsing pipeline extracts structured data from unstructured messages price, location, dates, amenities, room type, photos and runs a scam detection pass assigning a risk score and flagging suspicious patterns like missing photos, pressure tactics, or pricing anomalies. Third, a matching engine scores every parsed listing against your natural-language preferences using Gemini's semantic understanding, and if the score exceeds your threshold, a Cloud Function fires a push notification to your device with the match details and a predrafted inquiry message. The entire pipeline runs in under 5 seconds from message received to notification sent.
How we built it
The backend runs on Firebase Firestore for listings, matches, and user preferences, Cloud Functions for the matching trigger and FCM push notifications. The ingestion bot uses whatsapp-web.js to connect to WhatsApp and stream messages in real-time. Each message is sent to the Gemini API for structured extraction and classification (listing vs. not-listing vs. spam). The frontend is a responsive web app with Google Auth, a plain-text preference input (no rigid forms just describe what you want), a data source management panel, and a match dashboard with score breakdowns. The architecture is designed to be source agnostic WhatsApp is the first connector, but the same parsing and matching pipeline works for Facebook Marketplace, Reddit, and Craigslist, which are on the roadmap.
Challenges we ran into
WhatsApp messages have zero structure. The same listing can be written ten different ways some have bullet points, some are one long paragraph, some are just a photo with a caption. Getting Gemini to reliably extract structured fields from this noise required careful prompt engineering and a two-pass approach: first classify whether the message is a listing at all, then extract fields with confidence scores.
Accomplishments that we're proud of
The end to end pipeline works a message lands in a WhatsApp group and a matched user gets a push notification with a pre-drafted reply in under 2 seconds. We got natural language preference matching working with Gemini where users just describe what they want in plain English and the AI handles the scoring, which outperformed every structured form approach we tried. We built the silo breaking network model where one user connecting a group benefits every user on the platform.
What we learned
The biggest insight was that natural language preferences outperform structured forms for this use case. When we let users just write what they want instead of filling in dropdowns for price range, location, and dates, the matching quality improved significantly because Gemini can understand nuance like "open to Greenbelt if the price is right" or "quiet roommate preferred" that structured fields can't capture. We also learned that latency matters more than precision in this domain a good enough match delivered in 2 seconds beats a perfect match delivered in 2 minutes, because subleases get claimed fast.
What's next for Scout
Adding Facebook Marketplace, Reddit, and Craigslist as data sources using the same parse-and-match pipeline. Building a community contribution model where users can add their WhatsApp groups to a shared pool so everyone benefits. And expanding beyond subleases to full rental listings, roommate matching, and furniture marketplace posts.
On the security and performance side: adding end-to-end encryption for all user data at rest and in transit. Implementing a PII filtering layer that auto-redacts phone numbers, addresses, and personal information before anything hits Firestore. Reducing match latency through caching storing parsed listing embeddings and Gemini extraction results so repeat-pattern messages skip the API call entirely. Adding a Gemini powered smart digest that sends users a daily summary of market trends (average price shifts, new listings by neighborhood, demand hotspots) instead of just individual match alerts. Building a verified poster reputation system where listing history and response rates are tracked across groups so users can distinguish reliable posters from one-time accounts. And implementing collaborative filtering if users with similar preferences save the same listings, Scout can boost similar matches for others, turning individual interactions into a recommendation signal across the platform.
Built With
- firebase
- gemini
- node.js
- react
- typescript
- whatsapp-web.js
Log in or sign up for Devpost to join the conversation.