TLDR: I built my client a free working demo before I ever sent a pitch — and his first-call reaction told me more than any discovery call ever could have.
the setup
my client runs a real estate investment business (Cincinnati, Ohio) — buys beat-up single-family homes in improving B/C neighborhoods, renovates, rents.
He's also been coaching my pitch for my consulting practice. So yeah, I wanted to impress him.
The idea: instead of sending a deck about what I could build, build the actual thing first.
A free demo. No cost to my client. A bet that if he saw it working, the conversation would shift from "what would this even look like?" to "when can we start?"
what I figured out before writing a line of code
Most builders jump straight to the build.
I sat with my client's psychology first.
His pain is data overwhelm — not FOMO, not missing a deal. He's a former investment analyst. He trusts his own numbers over a machine's. He hates black-box AI scores that say "buy" or "pass" without showing their work.
So I made one rule going in: no AI verdicts. Raw decomposable data only.
The demo would show what the data says, not what an AI thinks he should do. That one constraint changed every design decision that followed.
the build
One autonomous session with Apollo (my AI coding agent). The brief: "don't stop until it's live."
The first wall: Zillow's data.
Everyone who tries to scrape www.zillow.com gets a 403 from Cloudflare. The CDN is a different story. files.zillowstatic.com serves the same research CSVs — ZHVI home value and ZORI rent index (Zillow's monthly ZIP-level price and rent benchmarks) — at HTTP 200, no auth, no drama. Non-obvious, genuinely annoying to discover the hard way.
Design-wise: I deliberately went warm-paper / evergreen instead of the dark-glass dashboard that every AI product defaults to. Something a former investment analyst would actually trust.
Stack: Next.js 16 + Tailwind 4. No database — static snapshot. Fast to ship.
LIVE on my domain before the day was out. SMS to my client with the link, the passcode, and a Loom walkthrough.
the reaction (the part you can't get from a pitch deck)
Three days later we were on a call.
The feedback was surgical.
School systems as a neighborhood indicator? He waved them off — not relevant to his thesis. County auditor pipeline? He named it specifically — every recorded sale, price, owner, date, per parcel. That was the data he actually wanted, and he had a name for it.
He'd also gone and found HouseCanary (an off-the-shelf real-estate data platform) and put our build on the fence against it.
Some builders hear "on the fence" and deflate.
I heard QUALIFIED SIGNAL.
You don't comparison-shop something you're not interested in. You don't name specific data sources you want added if you're not seriously considering the product. The demo didn't close the deal — but it opened a real sales conversation that a pitch deck never gets to.
why this matters to me
A pitch deck tells your customer what they might want.
A live demo shows you what they actually want — because they react to something real.
My client's exact feature requests, his HouseCanary research, his wave-off on schools — none of that surfaces in a discovery call. It surfaces when you put something in front of a smart person and watch what they do with it.
Build the demo. Ship it. Watch what they do. That's the only market research that counts.
P.S. The Zillow CDN trick (
files.zillowstatic.comnotwww.zillow.com) is genuinely non-obvious and will save you a few hours of 403 debugging. Consider it filed.