WorkMarch 21, 2023

Automating lead research with the Google Maps API

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. 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. 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.