Skip to content
Farhat Ullah.
AI

Vision AI that verifies property leads, and traces the humans behind the LLCs

Two Node.js pipelines: one scores Street View imagery for multi-unit signals and routes leads by confidence into a CRM, the other identifies the people behind LLC-owned properties by fuzzy-matching against a 75,000-record dataset.

Client
Real estate investment firm, New York
Sector
AI
Stack
Node.js · OpenAI Vision API · Google Street View API · Google Sheets API · Follow Up Boss CRM · Fuzzy record matching
Year
2026
By Farhat UllahSenior Full Stack + AI EngineerUpdated

The problem

A real estate investment firm was paying staff to open Street View for every lead and judge, by eye, whether a property looked like a multi-unit building. Slow, inconsistent between people, and impossible to scale past a few hundred rows.

Then a second wall. When a property turned out to be owned by an LLC, the lead was effectively dead — a company name is not someone you can call, and the owner's identity is not in the property record.

What I built

Phase 1 — lead verification from imagery. A Node.js pipeline takes a Property Radar export, pulls each property's Google Street View image, and scores it with a vision model for the physical signals that indicate multiple units: door count, mailbox banks, meter clusters, exterior staircases.

The scoring is the easy half. The useful half is what happens to the score, because a vision model that is right most of the time still needs somewhere for its uncertainty to go. A confidence router splits the output three ways:

  • 80% and above — pushed straight into the Follow Up Boss CRM, tagged AI Verified Multi-Unit
  • 45–79% — appended to a Google Sheet for a human to review
  • Below 45% — skipped, but written to a timestamped CSV so nothing is silently discarded

Nobody wastes time reviewing the confident cases, and no borderline case is thrown away on the model's say-so. The pipeline dedupes against the sheet on every run, retries on rate limits, and has a mock mode so the client can test without spending API credits.

Phase 2 — tracing the owner behind an LLC. This one is not an AI problem, it is a record-matching problem. The pipeline reads the LLC's mailing address, normalises it — expanding street suffixes, stripping unit numbers — and fuzzy-matches it with a Dice coefficient against a 75,000-record county single-family dataset. Where the similarity clears 80% and the city agrees, it surfaces the actual person's name.

The city guard is the part that matters. Address similarity alone will happily match "123 Main St" in one town to "123 Main St" in the next one over, and a false positive here means a letter to a stranger. Rows outside the county are flagged for manual lookup rather than guessed at.

Outcome

Both pipelines are live and the client runs them without me. That was a deliberate deliverable, not an afterthought: they ship as double-click launchers for Windows, macOS and Linux that install Node if it is missing, with a three-step start guide and a troubleshooting document.

I also sent a memo costing three extensions — direct Property Radar API integration, four-angle vision verification instead of a single Street View frame, and a review dashboard to replace the spreadsheet — with a recommended order.

Why it mattered

The delivery layer is the part that usually gets skipped, and it is the difference between a tool that gets used and one that gets used once while the developer is still on the invoice. A non-technical client who has to open a terminal will not run your pipeline twice.

The confidence router is the other transferable idea. Most "AI does X" projects treat the model's output as an answer. Treating it as a score with three destinations — act, review, archive — is what makes it safe to put in front of a business process, and it is why the low-confidence rows are still kept rather than deleted.

County records matched against
75,000
Confidence tiers, routed automatically
3

Have a system that needs to work in production?

Tell me what's breaking — or what you're building.

Chat on WhatsApp