Inspiration
NYC apartment hunting is broken. Listings vanish within hours, brokers charge thousands, and the process eats weeks of your life that could go anywhere else. We wanted to see what would happen if you handed the entire grind to an agent. Scout listings, do the diligence, message brokers, book viewings. And we wanted the payment story to be honest. The agent only gets paid when something actually happens, on success, on chain.
The no show problem caught our attention too. Brokers lose hours every week on tenants who book viewings and ghost. So we built that into the economics. The user puts down a $25 hold in USDC at booking time. Show up, get it back. Don't show up, the broker gets it.
What it does
Javier is an autonomous apartment hunting agent for Manhattan.
You chat with Javier to describe what you want. He asks the right follow ups, fills in your search criteria as you talk, and tells you when he has enough to start hunting.
Behind the scenes, Javier continuously monitors live listings in the East Village (or whatever neighborhood you point him at), enriches each match with a Fair Price Analysis covering comps, building violations, and broker history, then texts the listing broker directly to schedule a viewing time that fits your calendar.
When a viewing gets booked, Javier holds $25 USDC of your funds in escrow. If you show up, you get it back. If you no show, Javier asks the broker for a wallet address and wires the hold to them as a no show fee.
You watch all of this happen in real time on a dashboard with live agent activity, SMS threads with each broker, and your booked viewings on a calendar view.
How we built it
Four people, four hours, four sponsors.
The frontend is Next.js 14 with the App Router, TypeScript, Tailwind, and shadcn/ui. The chat experience runs on the Vercel AI SDK with streaming tool calls that update the search criteria card live as the user talks to Javier. The user watches their search take shape.
The agent stack: Nimble scrapes StreetEasy listings, with Apartments.com configured as a fallback when StreetEasy blocks. ClickHouse stores the inventory for the chosen neighborhood and powers our sub second matching and comps queries. Senso publishes the Fair Price Analysis as grounded, citeable Markdown that other agents and LLMs can discover. Twilio handles the actual SMS back and forth with brokers.
The conversational agent runs on Anthropic with tool calls for updating criteria and signaling readiness to search. A separate orchestration process picks up new listings from ClickHouse, runs the diligence pipeline, drives the SMS conversation, and ultimately books the viewing on Google Calendar.
Payments run on CDP. A single platform escrow wallet on Base Sepolia custodies all user funds. When a no show is claimed, the broker provides a wallet address (any EVM address, no onboarding required) and the platform sends the held amount on chain in one transaction that anyone can verify on the Base Sepolia explorer.
Challenges we ran into
StreetEasy fought us harder than expected. Cloudflare challenges hit us in the first hour, and we burned thirty minutes confirming that Nimble's residential proxy could get through reliably. We kept Apartments.com warm as a fallback the whole time, just in case.
Twilio's 10DLC verification flow nearly cost us the SMS demo. We almost gave up and switched to WhatsApp Sandbox before realizing the Verified Caller ID path lets you text any individual number in under two minutes with zero business registration. Wrong turn corrected.
The chat agent and the orchestration agent had to agree on a contract early or the whole thing would have stalled. We spent the first ten minutes of the hack on a whiteboard nailing down exactly which tool calls the chat agent would emit and how the orchestration agent would consume new criteria. Worth every minute.
Time. Five and a half hours sounded reasonable until we lost the first ninety minutes to environment setup, API keys, and someone forgetting to commit the env example file.
Accomplishments that we're proud of
Closing the loop end to end. A new listing appears, Javier evaluates it, publishes a citeable diligence report, texts the broker, parses the reply, checks your calendar, books the viewing, and places the escrow hold. None of it requires you to touch anything.
The Fair Price Analysis is genuinely useful, not theater. Real comps drawn from real building history, real DOB violation records, real broker license lookups, all with citations that link back to the source.
The no show economics. This isn't a paywall, it's an insurance product. Users only put money on the line when they're booking something they should show up for. Brokers only get paid when they were actually wronged. The platform takes nothing on the happy path.
Shipping a chat experience that actually feels like talking to an agent, with the search criteria filling in live as you describe what you want. Multiple people who walked past our table stopped to ask if it was real.
What we learned
Tool calls in the chat protocol are underrated. Having the conversational agent emit structured updates as it learns about the user, instead of parsing intent afterward from a transcript, made the UX feel ten times smoother than a regex pass would have.
ClickHouse is overkill for one neighborhood's worth of listings, and that's exactly why it's the right choice for a hackathon. Sub millisecond match queries meant we never had to optimize anything. We just wrote the obvious query and moved on.
CDP removes almost all of the crypto onboarding friction we expected. The single slowest step was getting test USDC from the faucet, and that took ninety seconds.
Brokers don't need to onboard if they only get paid on rare events. The address only model, where the broker provides a wallet only at claim time, is a real unlock. We didn't invent this idea, but actually building it taught us how clean it is in practice.
What's next for Javier the Rental Hunter
Expand beyond the East Village to all of Manhattan, then the rest of the city.
Flip the economics. Listing brokers pay Javier a small lead fee when he delivers a qualified tenant who actually shows up to a viewing. Renters never put up money at all.
Add a rental application pipeline. Once you decide you want a place, Javier submits the full application package (proof of income, references, credit auth) through whichever platform the broker uses.
Plug into broker CRMs like Compass and Douglas Elliman so when Javier texts, the broker sees a real qualified tenant in their workflow rather than an unknown number.
Fine tune a smaller model for the diligence step. Most of what Javier does at that stage is bounded enough to specialize, and the cost savings compound at scale.
And eventually, become a buyer's agent. Same model, larger numbers, more leverage for the user.
Built With
- clickhouse
- gemini
- nimbleweb
Log in or sign up for Devpost to join the conversation.