Apartment Finder

Built a personal AI search app that turns noisy Buenos Aires rental listings into evidence-backed decisions about likely in-unit washing machines.

Outcome

Validated the core listing-summary workflow at 53/55 on labeled listings, with zero false in-unit and zero false shared-building decisions in the latest run.

Best fit

Founders and small teams turning messy real-world search, review, or triage problems into focused product surfaces.

Company

Personal Project

Summary

Apartment listing sites often treat private in-unit washers and shared building laundry as the same amenity.

I built Apartment Finder to scan real rental listings, extract the evidence that matters, and show which apartments are likely to have a washer inside the private unit.

About

The first version started as a command-line classifier for apartment photos.

The useful version became a product: build or paste a provider search, discover listings, scan them, then compare results without manually opening every listing gallery.

Product Objective

The goal was not to make a generic apartment search engine.

It was to solve one expensive decision problem well: avoid wasting time on listings where “washer” means shared building laundry instead of an in-unit machine.

Product Direction

Make the AI judgment inspectable.

The app does not hide behind a single yes/no answer. It keeps extracted descriptions, listing facts, photo galleries, washer evidence, confidence, and source links visible so the result can be checked.

Keep the product workflow faster than manual search.

The UI supports filters, raw URLs, partial scan progress, result filters, price sorting, expandable rows, and a lightbox so the user can move through many listings quickly.

Product Surface

The app wraps the search, extraction, classification, and review loop in one compact workspace.

Apartment Finder search and listing-discovery interface.

The Work

Extracted listing evidence across providers.

The system handles provider search discovery, gallery extraction, listing details, Airbnb washer amenity metadata, and cached extraction fallback for repeatable scans.

Built a two-pass classification path.

The first pass uses a cheaper vision model, then escalates ambiguous or risky photos to a stronger model before producing a listing-level summary.

Reduced cost without giving up accuracy.

I centralized the escalation policy around targeted top-k photo selection and measured the tradeoff across caps. The current default escalates up to 6 photos per listing, reducing second-pass image checks from roughly 969 to 247 while preserving the best measured 53/55 listing result. The cap sweep also showed why 6 was the right default: cap 8 added 82 extra second-pass images without an accuracy gain, while caps 4 and 3 started losing recall.

Kept CLI, UI, and evals on the same core services.

The TanStack Start UI wraps the same core search and listing-scan services used by the Bun CLI, so the product surface and the verification scripts stay aligned.

What Shipped

Apartment Finder is a public example of turning a narrow, real-life decision workflow into an AI product with extraction, classification, UI review, benchmark evidence, and measured model-cost tradeoffs.

01

Product surface

Search moved from manual tabs into one focused UI.

The app supports provider filters, raw search URLs, async scans, result filtering, price sorting, expandable listing rows, extracted details, washer evidence, and listing photos.

02

Model evidence

The workflow kept decisions auditable.

Each result can show the extracted listing details, strongest washer evidence, gallery photos, model confidence, and the original listing.

03

Evaluation

The listing-summary path was tested against labels.

The validated fixture set now scores 53/55 overall while preserving zero false in-unit and zero false shared-building decisions.

04

Cost control

Targeted escalation cut second-pass model calls.

Targeted top-k escalation reduced second-pass image checks from roughly 969 to 247 while preserving the best measured 53/55 listing result.

05

Open source

The project shipped publicly.

The public repo includes the TanStack Start UI, Bun CLI, provider extraction code, search scans, smoke tests, and fixture-based evaluation scripts.

Public Repo

The project is open source, including the TanStack Start UI, Bun CLI, extraction scripts, and evaluation fixtures.

View GitHub repo

Built With

TanStack StartReact 19TypeScriptOpenAI Vision ModelsPlaywrightPlaywriterBunTailwind CSS v4Vitest

Need senior product engineering like this?

If this case study looks close to your product constraint, bring it to a roadmap call and we’ll scope the support needed to move it forward.