Back to work
Flagship — live in productionReal estate · marketplace2024 — present

Baselify — a real-estate marketplace that thinks for itself.

Vietnam's property market runs on PDFs, WhatsApp screenshots and gut feel. We built a marketplace + AI intelligence layer that prices, scores and surfaces listings in seconds — and we operate it.

Role
Build + operate
Team
4 engineers, 1 designer
Duration
9 months → ongoing
Status
Live · 12,847 MAU
baselify.vn / market/district-7/apartments
AI
DISTRICTS
District 11,420
District 2892
District 71,840
Bình Thạnh734
Phú Nhuận412
Thủ Đức2,103
MARKET · DISTRICT 7
Apartments · 1,840 active
Median 5.2B · Q2 2026
LIVE
JANJUN+AI
MEDIAN
5.2B
↑ 6.2%
PSF
112.4M
↑ 4.8%
LIST→SOLD
42d
↓ 11%
AI MATCH
94%
↑ 1.2pp
AI · TOP MATCHES
Vinhomes Central Park
92
5.4B
8.1%
The Sun Avenue
87
3.8B
4.2%
Masteri Thảo Điền
81
6.1B
-1.3%
The Vista
78
4.9B
2.7%
Saigon Pearl
74
8.2B
0.4%
LIVE / v2.4.1
baselify.vn / market
The brief

The market runs on vibes.

Vietnamese real-estate listings live in PDF brochures, WhatsApp screenshots and broker spreadsheets. Buyers spend weeks calling around to triangulate what a 78m² in D7 is actually worth. Sellers price by feel.

There was a marketplace-shaped hole — but every previous attempt drowned in spam listings, fake photos and zero-trust pricing. The brief: build the marketplace, but only if the AI layer underneath is good enough that listings get verified by default, not by humans.

Trust
Listings are 38% fake on competing platforms.
Price
No public source of truth for psf by district.
Match
Buyers see 200+ listings; only 2-3 are real fits.
What we built

Four AI systems, one marketplace

Each system has its own eval harness, observability and on-call rotation. We pick the cheapest model that clears the eval, not the largest.

01GPT-4o vision + structured output

Listing extraction

Brokers upload PDFs and WhatsApp screenshots. A vision-LLM pipeline pulls out address, m², price, floor, view, parking — and flags inconsistencies for human review.

92%first-pass accuracy
02Custom ViT · ONNX runtime

Photo trust score

A small custom vision model rates whether a listing photo matches the address, was taken recently, and isn't reused from another listing. Three classifiers, one number.

98.4%duplicate detection
03Postgres + Python · XGBoost

Market price model

Hedonic regression over 18 months of MLS transactions, segmented by district, building age, view and floor. Outputs an interval, not a point estimate.

±4.2%MAE vs sold price
04pgvector · Cohere rerank

Search & match

Hybrid retrieval (BM25 + embeddings) over listing text, with a re-ranker that learns from user dwell and contact-click. Returns 5 listings, not 200.

+3.1×contact-rate vs baseline
Under the hood

System diagram

A boring stack, kept boring on purpose. We run on Modal for inference and Fly.io for the web tier. Cost-per-listing is $0.011.

INGRESSAI LAYERSTORAGEBroker PDFsBuyer searchMobile appAdmin toolsVision-LLMPhoto ViTPrice modelRerank / searchPostgres + pgvectorObject store (R2)$0.011 / listing
In production

Numbers from last week's report.

A live snapshot. We update these monthly in our /trust page so you can hold us to them.

12,847
Monthly active users
+22% MoM
94%
AI match accuracy
+1.2pp last 90d
184ms
p95 inference latency
well under target
$0.011
Cost per listing
−41% vs Q4 2024
38,420
Listings indexed
Q3 2026 to date
73%
Verified by AI
no human in loop
98.4%
Duplicate detection
ViT classifier
Outages YTD
no SEV-1, no SEV-2

We were three years into trying to make this market legible. ADIA shipped the layer that actually does it in nine months. We can't run baselify without them now — and that's by design.

Phương Nguyễn
CEO, Baselify · Ho Chi Minh City
Let's build

Have something ambitious
in mind? We're listening.

Tell us what you're trying to ship. We respond inside one business day with a short note on fit and next steps.

Book a discovery call[email protected]
30 min · video · no slides