Dealflow CRM · Use case

Find the few listings worth a wholesaler’s time without reading every listing on the market.

The clientA real-estate wholesaler in Dallas–Fort Worth.

The problem

He was reading a couple of hundred listings a day by hand, photos included, to work out valuations.

What it cost

Hours a day, and buying windows like a price cut or a re-list were being missed in a spreadsheet.

Before

  1. 1Scroll hundreds of listings
  2. 2Hunt for words like as-is, estate, must sell
  3. 3Eyeball photos to guess condition
  4. 4Work out value by hand
  5. 5Miss the price cut that happened yesterday

After

  1. 1Every listing is scored 0 to 100 for seller motivation
  2. 2Each score comes with its reasons in plain English
  3. 3Only listings that clear the bar get a photo review
  4. 4After-repair value and rehab estimate are produced and checked against his buy box
  5. 5He reviews 20 to 30 a day
Walkthrough · 1 of 3

The score, live

This is the real scoring function, running in your browser.

Price reductions0
Add:
Seller motivation score
0/ 100
Cold
Max offer (70% of ARV) $266,000
Math
0
Motivation
0
Timing
0
Reasons

The function returned no reasons for this listing.

Walkthrough · 2 of 3

The ranked list

Strike now, warming, cold.

AddressScoreTier
4417 Larkmoor Ln92Strike now
208 Quillfeather Ct81Strike now
1530 Emberwick Dr64Warming
77 Hollowpine Way52Warming
3902 Saltmeadow St23Cold

Illustrative data. Names are fictional.

Walkthrough · 3 of 3

AI, only where it’s subjective

Photos in, after-repair value and rehab line items out.

  1. Listing clears the bar
  2. Vision model reviews up to 8 photos
  3. After-repair value + rehab estimate
  4. Fits the buy box?
How it works
  1. Listing data (saved searches + public listings API)
  2. Deterministic scoring function
  3. Vision review for the shortlist
  4. Kanban board

Deterministic first, AI second.

The decision I’d defend
I chose

A formula for the ranking

Instead of

Asking a model to rate every listing

What it cost

Nuance: a model might catch a motivated seller the formula misses

Because

The score is free to run, repeatable, and auditable. That’s a precision-over-recall choice.

Results
20–30 / day
Listings he reviews, down from a couple of hundred
≈3.4s
Per property — scrape, enrich, score
~5,192
Properties in the scored universe
What’s next
  1. 01Multi-tenant row security before a second user ever touches it
  2. 02Measure recall: sample low scorers to see what the formula misses
The close

What this means for you

  1. 01A formula does the ranking, so the score is free to run, repeatable, and auditable.
  2. 02Every number explains itself. That’s what an auditor, or a bank’s risk team, asks for.
  3. 03AI is spent only where a formula can’t judge: condition from photos, for the shortlist, once per price.
  4. 04I learned the customer’s business well enough to encode his buy box. That’s the discovery half of forward deployed work.
Questions
Why not just use AI for the score?

Cost, consistency and auditability. A wholesaler needs to trust why a house is ranked first.

What does the formula miss?

Context. A strange remark that only reads as desperate to a human. I accepted missing a few.

Is it multi-user?

Not yet. It’s single-operator, and I’d fix the row security before adding a second.