Prototype
AI Apartments Aggregator

Find apartments ranked by AI photo quality

An experimental tool that crawls real estate listings, aggregates them in one place, and uses a local AI model to rank apartments by how good their photos look — saving hours of manual browsing.

AI Apartments — St. Petersburg
All1 room2 rooms▼ AI Score
🏠AI ★ 9.2
32 000 ₽
Nevsky, 2 rooms, 54 m²
Score
9.2
🏠AI ★ 8.7
28 500 ₽
Vasileostrovsk, 1 room
Score
8.7
🏠AI ★ 6.1
21 000 ₽
Primorsky, 1 room
Score
6.1
🏠AI ★ 3.4
18 000 ₽
Kolpino, 2 rooms
Score
3.4
Ranked by Ollama vision model — photo quality score 0–10

How the pipeline works

Four automated stages from crawl to ranked results, running locally with no external API dependencies.

1

Crawl listings

The Laraue.Crawler library scrapes real estate sites, handles JS rendering, and stores raw listing data into PostgreSQL.
2

Download photos

For each listing, all available photos are fetched and stored locally, ready for AI analysis.
3

AI photo scoring

A local Ollama vision model analyzes each photo and rates it 0–10. The listing score is averaged across all its photos.
4

Browse & filter

Results surface in the web UI — sort by AI score, filter by rooms, price, district. Skip past badly photographed listings instantly.

Built with open-source tools

Everything runs locally — no paid APIs, no cloud dependencies.

Ollama

Locally-hosted LLM runner. The project uses a vision model to evaluate apartment photo quality and return a numeric score without sending data to the cloud.

Learn more →

Laraue.Crawler

The in-house C# crawler library powering the data collection. Supports static HTML and JavaScript-rendered pages via PuppeteerSharp.

View project →

ASP.NET Core + PostgreSQL

Backend API written in C# with ASP.NET Core. Listing data and AI scores are persisted in PostgreSQL, served to the React frontend.

Read the article →

36 minutes of reading, months of building

The blog article covers every mistake, dead end, and breakthrough — from the initial idea to a working AI photo-ranking pipeline.

The crawler library is public

The Laraue.Crawler library used to build this project is open-source on GitHub — reusable for any web scraping project in .NET.

Laraue.Crawler

A highly customizable C# crawler library with support for static HTML (AngleSharp) and JavaScript-rendered pages (PuppeteerSharp). Schema-based extraction, async pipelines, and proxy support.

View on GitHub

Frequently Asked Questions

It's an experiment — a personal project built to explore AI-powered apartment search. It works and is browsable live, but expect rough edges rather than a polished product.

Currently only Saint Petersburg, Russia, aggregating listings from Cian and Avito.

A local Ollama vision model rates each photo in a listing from 0 to 10 based on quality, and the listing's overall score is the average across all its photos.

No. Crawling, storage, and AI scoring all run locally — there are no paid APIs or cloud dependencies involved.

Experiment in progress

See AI-ranked apartments live

Browse the current snapshot of Saint Petersburg listings, sorted by AI photo quality. A prototype — but a working one.