DEV Community

RyanCwynar
RyanCwynar

Posted on • Originally published at ryancwynar.com

How I Automated Prospect Discovery with AI Agents

Finding potential customers is one of those tasks that feels like it should be automated but rarely is. Most sales teams still rely on someone manually searching Google Maps, scrolling through directories, and copy-pasting contact info into a spreadsheet. I built something better.

Over the past few weeks, I have been running an automated prospect discovery system that finds, qualifies, and queues local businesses for outreach — completely hands-off. Here is how it works and what I learned building it.

The Problem

I run multiple outreach campaigns targeting local businesses in South Florida: dental offices, medical practices, law firms, CPA firms. Each campaign has a different angle — AI receptionist services, review management, general automation. Finding prospects manually was eating hours every week.

The real bottleneck was not finding businesses. Google Maps has millions of them. The bottleneck was qualifying them: Does this business actually need what I am offering? Do they have a working phone number? Are they in my target geography? Is their website outdated enough that they might be receptive?

The Architecture

The system runs on cron jobs that fire throughout the day. Each campaign has its own schedule and targeting criteria:

  • Receptionist campaign runs at 10 AM and 8 PM, finding 6-8 prospects per run
  • Reviews campaign runs at 1 PM, adding 2-3 prospects
  • AI campaign fires at 3 PM for another 2-3
  • Boring campaign (traditional services) runs at 5 PM

Each job does the same basic flow:

  1. Search for businesses matching the campaign criteria (industry, location, size)
  2. Scrape their website to understand what they do and what they are missing
  3. Score them against qualification criteria
  4. Push qualified prospects into a Redis queue with all their contact info
  5. The outreach dialer picks them up and makes calls

On a typical day, the system queues 15-25 new prospects across all campaigns. The dialer then works through the queue, making 30-40 calls per day.

What Actually Matters

The interesting technical challenge was not the scraping or the scheduling. It was the qualification step. Early versions would find tons of businesses but half of them were chains, closed, or clearly not a fit.

The fix was adding a lightweight AI evaluation step. Before a prospect hits the queue, the system checks:

  • Is this an independent practice or a corporate chain?
  • Does their website look like it was built in the last 2 years? (Newer sites = less likely to need help)
  • Do they have obvious gaps in their online presence?
  • Are their Google reviews recent and do they respond to them?

This single step cut wasted calls by roughly 40 percent.

The Stack

Nothing exotic:

  • Cron jobs via OpenClaw for scheduling
  • Brave Search API and Firecrawl for discovery and scraping
  • Redis for the prospect queue
  • Claude for qualification scoring
  • Retell AI for the actual outreach calls

The whole thing runs on a single VPS. No Kubernetes, no microservices, no over-engineering. Total infrastructure cost is maybe $50 a month.

Results So Far

In the last three days alone, the system has queued over 60 new prospects. The dialer completed 37 calls from the previous batch. Conversion rates from cold call to booked meeting are still early but tracking around 3-5 percent, which is solid for cold outreach.

The real win is not the numbers though. It is that I literally do not think about prospecting anymore. The system finds leads, qualifies them, queues them, and calls them. I check in once a day to review the results.

Lessons Learned

Start with the queue, not the scraper. I built the Redis queue and dialer first, then manually added a few prospects to test the full flow. Only after the end-to-end pipeline worked did I automate the discovery step.

Stagger your jobs. Running all campaigns at once hammers your APIs and makes debugging harder. Spreading them across the day gives you natural batching and makes rate limits a non-issue.

Qualification is everything. An unqualified lead is worse than no lead because it wastes dialer time and burns your phone number reputation. Spend the extra tokens on AI qualification — it pays for itself immediately.

If you are doing any kind of local business outreach, automating the discovery pipeline is probably the highest-leverage thing you can build. The tools are all there. You just have to wire them together.

Top comments (0)