At Prevision, building a prospecting list meant someone sitting with a spreadsheet and a
browser, searching for companies one at a time, copying addresses and contact details by
hand. It was slow, it was inconsistent between people doing it, and the resulting data
had exactly the quality you would expect from repetitive manual entry.The bottleneck was not effort. It was that the work was structurally repetitive, which
meant it should not have been done by a person at all.
The approach
I split the problem into two stages, each a small Python program that does one thing.Stage one — address resolution. Reads a spreadsheet of business names, queries the
Google Maps API for each, and writes back a spreadsheet with resolved addresses and place
identifiers. Built on pandas, so the input and output stay in the format the commercial
team already worked in.Stage two — enrichment and discovery. Takes those resolved addresses and searches
within a configurable radius for businesses in the target segment, returning name,
website, formatted address, and rating. This is the stage that turns a known list into a
larger qualified one, because it finds companies nobody had thought to search for.Keeping the stages separate mattered. Address resolution is cheap and idempotent;
radius search is the expensive call. Splitting them meant stage two could be re-run with
different radii or segments without paying for stage one again.
Outcome
Manual research time dropped by roughly half, and the prospecting database grew
substantially — not because anyone worked harder, but because the search space expanded
beyond what manual research could cover. Data quality improved as a side effect:
API-sourced addresses are consistent in a way hand-copied ones are not.Both stages are open source.Address resolution ·
Enrichment and discovery
Related projects
Finding intervention targets in organic waste behaviour
Clustering and classification on survey data about organic waste disposal, identifying a specific subgroup where intervention would have measurable effect.
Julia Mandelbrot: a market regime analysis toolkit
A Python library that classifies financial time series into six market regimes using trend, volatility, fractal, and tail-risk features, with fuzzy classification and Markov transition analysis.