Finding sales targets in public property records
- Status
- Production, delivered
- Result
- ~160 verified contact-ready targets against a 150–200 ask
- Role
- Sole engineer
What it does
Public parcel and assessment records in, a ranked list of qualified organisations with named contacts out, each row carrying the reasoning a salesperson can read before picking up the phone. The pipeline filters records down to candidate buildings, matches each address to the organisation occupying it, applies qualification gates, then resolves the people worth contacting.
Making the model argue against itself
Ask a model "is this a real lead?" and it agrees with you. Ask it to refute the lead, and tell it to return refuted when the evidence is thin, and the survivors are worth acting on.
That killed about 40% of candidates as wrong or unverifiable before anyone made a call. Which matters beyond the wasted time: a list where a third of the rows are junk trains the sales team to stop trusting the list, and one bad batch can end adoption of a system that's right most of the time.
The verifiers are given different angles rather than being run repeatedly. Running the same skeptic three times reproduces the same blind spot three times.
Counting what should be conserved
An audit of the counts between stages found a qualification gate tuned too tightly, discarding good records before they reached enrichment. Widening it recovered roughly 75 more qualified leads — close to doubling the list — with every recovered record put through the same adversarial check.
Nothing had failed. A stage that quietly drops records is invisible unless you compare its output count against its input count, which is cheap and worth doing at every stage.
Shipping it as something people use
The output is a working surface rather than a report. It upserts on re-run and never overwrites human-entered columns, so the sales team's notes survive regeneration and feed the next pull.
The first version was a pile of scripts. Restructuring it so a campaign is a config file plus reference data meant entering a new market required no code at all — and the first preflight against a new market failed honestly on a real data gap instead of running on stale assumptions.
Limits
- Bounded by what the local jurisdiction publishes and how often.
- Address-level matching degrades in multi-tenant buildings.
- Contact resolution is credit-metered and is the per-run cost driver.