Inspiration
Housing is already brutal for students, and it gets even worse when someone is paying for a place they are not even using. With OSAP cuts and rising rent, we kept coming back to the same problem: students going on co-op, exchange, or summer work terms need a better way to sublet their place without losing money or getting buried in low-quality leads.
That is where Sublet-Me came from. We wanted to build something that feels more intelligent than facebook marketplace by actually understanding timing, budget, lifestyle fit, and landlord requirements, then helping the right people find each other faster.
What it does
Sublet-Me is an AI-assisted subletting platform built for students and young renters. Hosts can create a listing, upload a walkthrough video, and let our media pipeline generates a polished gallery and an edited highlight clip automatically. From the landlord dashboard, they can review AI-ranked tenant matches, open conversations, and schedule virtual tours with on google meet all in one place.
On the renter side, users can save their preferences and use an assistant that remembers their city, budget, term, and lifestyle signals to surface more relevant recommendations. The platform also includes landlord notifications based on real activity, persistent chat and tour flows, and a public listing experience that showcases the media generated from the uploaded video.
How We Built It
We built SubletMe with Next.js 16 App Router for the frontend and product-facing API layer, and MongoDB/Mongoose for the core data model across users, listings, matches, conversations, and tours. One of the biggest things we focused on was replacing mock data with real Mongo-backed flows, so the landlord dashboard, listing detail pages, matches, messages, and tours all behave like an actual product instead of a static prototype.
Cloudinary: Cloudinary is engine behind our entire media pipeline. When a landlord uploads a video, the browser sends it directly to Cloudinary using a signed upload payload (no server relay, no file size limits from Next.js). From that single uploaded asset, we use Cloudinary's on-the-fly video-to-image transformations to extract 10–40 frames at calculated intervals, no ffmpeg, no video download, just URL-based transforms with start_offset, gravity: "auto", and effect: "upscale" for gallery-quality stills. Each frame then gets re-uploaded temporarily with COCO object detection and auto-tagging (confidence threshold 0.5), giving us structured labels like "couch", "dining table", "potted plant" that our AI agents use to understand what's in each room. We also generate an 8-second branded highlight clip using Cloudinary's e_preview:duration_8 effect with auto-crop, displayed on the public listing page with text overlays composited via Cloudinary transformations. The AI Studio page takes it further, letting landlords preview Cloudinary's real-time image transforms on their actual listing photos.
Backboard: Multi-Agent Orchestration: For the AI layer, we built three specialized Backboard assistants that collaborate through a structured pipeline. The Curator agent receives all extracted frames with their Cloudinary AI tags and selects the best 5–6 for the gallery, designating a hero image and labeling each room. The Reviewer agent quality-checks the selection, if it's not satisfied (missing a kitchen shot, too many similar angles), it sends feedback and the Curator re-selects with double the frames (10 → 20 → 40). This feedback loop runs up to 3 rounds, ensuring gallery quality without human intervention. Once the gallery is locked, the Copywriter agent takes the selected frames, their room labels, detected tags, and listing metadata, and generates the title, description, amenities list, neighbourhood summary, and even estimates beds/baths/sqft from the video. Each agent uses Backboard's thread-based API with automatic memory management, so context carries cleanly across messages. The whole pipeline, from video upload to fully enriched listing runs asynchronously and patches results back into MongoDB when complete.
We also built a FastAPI "SubletOps" orchestrator backend that handles profile memory, assistant turns, history, and recommendation flows. When available, it uses Backboard assistants and thread memory to power the conversational experience and help students find the right place through natural language.
Agentic Matching: The matching system scores tenant-listing compatibility on a 0–100 scale across lifestyle tags, budget fit, location preference, term alignment, and university proximity. Every match comes with explainable reasons so students see exactly why a listing was recommended ("2 shared lifestyle tags", "Under your $900/mo budget") and landlords see AI-ranked match cards on their dashboard. This feeds into the notification system, chat, and tour scheduling, so the entire landlord-tenant interaction is driven by match intelligence. If you put "I like nice views and nice restaurants" our agents will do research on the surrounding areas and pull the image tags from Cloudinary to find you're best options.
Challenges we ran into
The biggest challenge was media upload reliability. Early on, sending videos through the app server caused request-size and parsing problems, so we redesigned the flow around direct signed uploads to Cloudinary and changed the pipeline to operate on an uploaded asset reference instead of raw bytes. That ended up being a much better architecture. Another challenge was keeping the AI assistant, backend contracts, and UI all aligned. The assistant experience depends on history, profile memory, recommendations, and graceful fallbacks, so we had to make the orchestration layer much more disciplined than a typical hackathon chatbot. We also spent a lot of time making sure the product degrades honestly and predictably, because async AI workflows are impressive only when the surrounding product experience is still coherent.
Accomplishments that we're proud of
We are proud that Sublet-Me is not just a concept demo. A host can log in, create a listing, upload a property video, see the listing appear in the dashboard, open a real detail page, review ranked matches, send messages, and schedule tours using persistent data.
We are also proud of how much product thinking went into the AI workflow. The video-to-gallery pipeline, the conversational assistant with memory, the match ranking, and the fallback/reliability work all combine into something that feels much closer to a real platform than a weekend mockup. The result is a demo that is both technically interesting and product-coherent.
What we learned
We learned that architecture decisions matter immediately, even in a hackathon. Direct uploads are dramatically better than routing large media through your app server. We also learned that AI features only feel good when the surrounding product contracts are solid, which means explicit response shapes, persistence, loading states, and fallback behavior matter just as much as the model itself.
The other major lesson was that reliability is part of the product. Seeded data, deterministic fallbacks, run books, and smoke tests are not glamorous, but they are what make AI-heavy systems believable in practice.
What's next for Sublet-Me
Longer term, we see Sublet-Me becoming the operating system for student subletting: one place to create media-rich listings, rank the right matches, coordinate conversations and tours, and reduce the wasted time and money that usually comes with short-term housing
Built With
- auth0
- backboard.io
- cloudinary
- fast-api
- mongodb
- react
- typescript

Log in or sign up for Devpost to join the conversation.