Rento is a full-stack AI application built at EmpireHacks 2026. It automates the most painful parts of apartment hunting in NYC: scraping listings from StreetEasy and Craigslist, analyzing photos with Claude Vision, matching them to your preferences, and autonomously negotiating with landlords via email — all from a single dashboard.
The backend is a Python FastAPI service backed by PostgreSQL. Three autonomous agents, each implemented as a LangGraph state machine, handle distinct stages of the pipeline: image analysis, semantic match ranking, and email negotiation.
The frontend is a React + TypeScript SPA with a draggable, resizable grid dashboard. Each apartment detail view surfaces an Image & Info card, a Claude-generated Rationale card, a live map, a Neighborhood card, and a Negotiation chat card — all rearrangeable by the user.
APScheduler triggers image analysis automatically every two hours. Agent 3 runs a full negotiation loop — drafting emails, polling for host replies, and either counter-offering or generating an ICS calendar invite on acceptance.
Listing Search
Match Dashboard
Agent 1 — Image Analysis
Downloads up to 5 photos per listing, Base64-encodes them, and sends them to Claude Vision. Claude returns style labels like "bright", "minimalist", or "hardwood-floors" that feed into the matching algorithm.
Agent 2 — Semantic Ranking
Sends up to 20 matched listings to Claude in a single batch prompt, cross-referencing style labels, neighborhood context, budget, and commute time. Claude scores each listing 0–10 with a one-sentence reasoning.
Agent 3 — Autonomous Negotiation
Handles landlord outreach end-to-end. Drafts emails using the user's negotiation style and goals, sends via SMTP, polls for host replies, and routes based on Claude's classification — looping up to 5 rounds before confirming a visit or closing the thread.
Negotiation Chat
Email Outreach
Notifications