Cruzetec Solutions
Property Grip 2024 Featured work

Property Grip — Image Recognition for Real Estate

AI image recognition that classifies real estate listing photos automatically — rooms, features, quality. Model runs on its own dedicated service; the web app talks to it over a REST API.

01

The challenge

What needed solving

Real estate agents spend a real chunk of their day uploading and tagging listing photos — which photo is the kitchen, which is the master bedroom, which one to use as the hero. Property Grip wanted to take that grunt work off agents' plates entirely. Drop the photos in, get them automatically labeled, sorted, and quality-scored.

The technical bar wasn't just "can a model classify rooms" — that's been solved for years. The bar was building it production-grade: fast enough to process a 30-photo listing in seconds, accurate enough that agents trust the labels, integrated cleanly into the consumer-facing platform, cheap enough per inference that it doesn't eat the margin, and architected in a way that didn't lock the model and the web app into each other's release cycle.

02

The build

How we built it

We split the system into two services from the start. The consumer-facing web app runs on PHP / Laravel — the part agents log into, upload photos through, and review listings on. The image classification model runs on its own dedicated Python service, with its own deployment, its own scaling profile, and its own update cadence. The two talk over a REST API.

This separation pays off in several places at once. The model can be retrained and redeployed without touching the web app — a routine task that would otherwise require coordinated releases. The inference service can scale independently (image classification is compute-bound; the web app isn't), so we right-size each independently. And the security boundary is clean: the model server has no access to the application database, only to the photos it's asked to classify.

The classifier itself is a fine-tuned vision model trained on a curated dataset of labeled real estate photos covering interior rooms, exterior shots, common amenities, and quality issues like blurry photos or poor lighting. An active-learning loop lets agent corrections feed back into periodic retraining, so the model gets quietly better with use.

03

The result

What shipped

Listings now process in seconds instead of the 10–15 minutes of manual tagging an agent would do. Around 80% of the manual tagging time is gone — agents review and adjust rather than label from scratch.

The architectural decision to separate the model service from the consumer app is the part that compounds over time. New consumer products can be built against the same inference API without touching the model deployment. Model upgrades ship without web-app downtime. And the security posture is something Cruzetec can defend in front of any reviewer — model isolation isn't a marketing claim, it's how the system is actually built.

Tech stack

What we built it with.

Python PyTorch Computer Vision Laravel PHP REST API

Have a similar project in mind?

Let's build yours.

Send us a description. We'll respond within one business day with a clear next step.

Start the conversation