I let my AI agent build a prospect list for two weeks straight. No spreadsheets, no CRM imports, no virtual assistants. Just an autonomous system searching Google Maps, filtering results, deduplicating against its own queue, and logging everything.
The result: 256 qualified prospects across South Florida — doctors, dentists, law firms, CPAs, wealth managers — all without me touching a keyboard.
Here is what I learned.
The Setup
The system runs on a simple loop. Every few hours, a cron job fires and tells the AI agent to search for businesses in specific categories and geographies. It pulls results from Google Maps, extracts phone numbers and categories, checks them against the existing queue, and adds new ones.
No fancy tooling. PostgreSQL for storage, a Node.js API for the queue, and the AI agent (Claude, running via OpenClaw) handling the search logic and deduplication.
The Deduplication Problem Nobody Warns You About
Here is the thing about automated prospecting: you hit saturation faster than you expect.
By day 5, roughly 40-60% of every search batch was duplicates. The same medical practice shows up under three different Google listings. A law firm has separate entries for each partner. A dentist office changed its name but kept the same phone number.
Phone number deduplication caught the obvious ones. But the real wins came from fuzzy matching — catching that "MedFlorida Medical Centers" at two different addresses with two different phone numbers is still one prospect, not two.
The lesson: deduplication is not a feature you bolt on later. It is the core engineering challenge of any automated prospecting system.
Geography Saturation Is Real
South Florida has a lot of doctors and lawyers. But "a lot" is still finite.
After two weeks of searching Miami, Fort Lauderdale, Boca Raton, and Palm Beach, the new-prospect yield per search dropped from 80% to about 30%. The system was spending more cycles confirming duplicates than finding new leads.
The fix is obvious: expand geography. But it raises an interesting question about AI-driven prospecting — should the agent decide when to expand, or should that be a human decision?
I went with a hybrid. The agent flags when yield drops below a threshold and suggests new markets, but I approve the expansion. Some decisions should stay human.
What 256 Prospects Actually Looks Like
Breaking down the queue:
- Medical practices: 85 (33%) — general practitioners, specialists, pediatrics
- Dental offices: 62 (24%) — general, orthodontics, pediatric
- Law firms: 71 (28%) — family law, civil litigation, immigration
- Financial: 38 (15%) — CPAs, wealth managers, financial advisors
Each prospect has a phone number, category, location, and the campaign that found them. No email scraping, no LinkedIn stalking. Just publicly available business information.
The Real Value Is Not the List
Anyone can build a list. The value is in what happens next.
These 256 prospects feed into an AI voice calling system. The agent calls each one, has a natural conversation about their current phone system or review management, qualifies interest, and logs the outcome. That is where the actual leverage is — not in finding prospects, but in qualifying them at scale without human time.
The prospecting automation saved maybe 20 hours of manual research. The voice calling automation saves hundreds.
Build This Yourself
The stack is straightforward:
- Search: Google Maps API for business discovery
- Storage: PostgreSQL with phone-number-indexed dedup
- Orchestration: Cron jobs triggering an AI agent
- Agent: Claude via OpenClaw (any capable LLM works)
- Queue management: Simple REST API for CRUD operations
Total infrastructure cost: about $50/month for the VPS, plus API costs.
The hard part is not the code. It is designing the deduplication logic, setting saturation thresholds, and knowing when to let the AI decide versus when to keep humans in the loop.
Two weeks in, the system runs itself. I check the logs once a day, approve geography expansions, and let it do its thing. That is the promise of AI automation — not replacing humans, but eliminating the work that never needed a human in the first place.
Top comments (0)
Some comments may only be visible to logged-in visitors. Sign in to view all comments.