Build Log: A Google Business Lead Tool, And The Sneaker Bot Brain That Almost Built It Wrong
Shipped an internal tool this week that pulls business listings from the Google Places API to feed our outbound list with targeted leads by category and geography. Pull rate is solid, the data quality is good enough to act on, and it took maybe two days end to end. Clean build, working code, moving on.
Here's the part I want to write about.
The first thing I did when I started the project was open a tab to research residential proxy providers. The second thing I did was check which Playwright stealth plugin was current. The third thing I did was start sketching out a request-jitter strategy so the traffic pattern wouldn't look like a bot. I had ten browser tabs open about anti-detection before I'd written a single line of actual code.
Then I remembered Google has an API for this. You sign up, you get a key, you pay per request, you stay inside their rate limits, and you get clean structured data with no scraping necessary. The whole project that I had mentally framed as "extract data from a hostile system" was actually "make HTTP requests to a documented endpoint." It took ninety seconds to find the API documentation. The build was straightforward from there.
I built sneaker bots in 2018. The reflexes from that work are still completely intact, seven years later. The instinct to assume you're working against the site is so ingrained that I almost spun up a residential proxy account before checking whether the legitimate path existed. The legitimate path was right there. I just don't naturally see it first.
This is funny, but it's also worth thinking about. There's a brain pattern that comes from spending your formative technical years in adversarial systems, and it's persistent. The first frame I bring to a data problem is "how do I get this past detection." That frame was useful in 2018 because the data I wanted was on the other side of detection. The frame is misleading in 2026 for the kind of work I do now, because the data I want is usually behind an API key and a credit card. Adversarial mode is occasionally the right answer. It's almost never the first one.
I've been thinking about whether other former bot kids feel this. The cohort of people who learned to code by trying to outsmart Shopify checkout queues is non-trivial, and a lot of them are now founders or operators or engineers building real businesses. The technical skills transferred. The pattern recognition transferred. The instinct to default to adversarial framing also transferred, and it's a slightly weird inheritance. We learned to build by treating the system as the enemy. That's a useful skill for some problems. It's a stupid skill for most of them.
The lesson I'm taking from this small build is to check for the API first. Always. Even when my brain is already three tabs deep into proxy provider comparisons. Especially then.
The tool works. The list is feeding the cold email pipeline. Total infrastructure cost is a Google Cloud bill rather than a residential proxy bill, and the API is the boring answer that took two days instead of two weeks. The boring answer is usually the right one. I just have to remember to look for it first.
Operations Map
Map your operations.
Twenty minutes, no deck, no proposal. Walk through what your team does, and find out what software could be doing instead.
Map your operations