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
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.