DEV Community

RyanCwynar
RyanCwynar

Posted on • Originally published at ryancwynar.com

How I Built an AI Agent That Finds 30+ Sales Prospects Per Day

You know what nobody tells you about outbound sales? The hardest part isn't the pitch. It's finding the right people to pitch.

I spent the last week building an automated prospect-finding pipeline using AI agents, and it's already generated over 150 qualified leads without me lifting a finger. Here's how it works.

The Problem

I'm selling AI-powered services to local businesses — doctors, dentists, law firms, CPAs. South Florida is the target market. The traditional approach is grinding through Google Maps, copying phone numbers into spreadsheets, and hoping you don't go insane from the monotony.

I tried that for about two hours before deciding to automate the entire thing.

The Architecture

The system runs on a simple loop with four campaign types, each targeting a different value prop: AI receptionist, review management, AI assistant, and a straightforward "we can help your business" pitch. Every few hours, a cron job fires off a prospect-finding agent that:

  1. Searches Google Maps for specific business types in specific cities (dentists in Boca Raton, law firms in Fort Lauderdale, etc.)
  2. Extracts business name, phone number, website, and category
  3. Deduplicates against the existing queue in Redis
  4. Adds qualified prospects to the call queue

The whole thing is orchestrated by an AI agent running on OpenClaw — basically my AI assistant that has SSH access to the server and can execute commands against Redis directly.

What I Learned Building This

Deduplication is everything

The first version had no dedup logic. Within 24 hours I had the same dental office appearing six times across different campaigns. Now the agent checks both the prospect ID and phone number against the existing queue before adding anything. Sounds obvious, but when you're moving fast, you skip the obvious stuff.

Campaigns need rotation

Running the same search queries gets stale fast. I rotate through different cities (Miami, Fort Lauderdale, Boca Raton, West Palm Beach, Palm Beach Gardens, Jupiter) and different business categories. The agent is smart enough to try new combinations each run.

Volume matters more than precision

Early on I tried to make the agent pre-qualify every prospect — check their website, assess their tech stack, estimate their revenue. It slowed everything down and the signal wasn't that useful. Now I cast a wide net and let the actual sales calls do the qualifying. Going from 5 prospects/day to 30+ made a bigger difference than any amount of pre-qualification.

Redis as a queue is underrated

I'm using Redis as a simple JSON queue. No Kafka, no RabbitMQ, no fancy message broker. Just GET, parse JSON, append, SET. It's fast, it's simple, and for a solo operation running maybe 200 prospects at a time, it's more than enough. Don't over-engineer your infrastructure.

The Numbers

After 5 days of running:

  • 153 prospects in the queue
  • 4 campaigns running in parallel
  • 5-8 new prospects added per run
  • 5 runs per day (every few hours)
  • Zero manual effort after initial setup

The next step is connecting this to automated outbound calling — the AI actually dials these businesses and has a conversation. But that's a post for another day.

The Takeaway

If you're doing any kind of outbound sales and you're still manually building prospect lists, stop. Even a basic automation that searches Google Maps and dumps results into a queue will save you hours per week.

The AI agent layer on top is what makes it actually scalable — it handles the fuzzy logic of deduplication, category matching, and search query variation that would be painful to hard-code. But you don't need anything fancy to start. A cron job and a Redis queue will get you surprisingly far.

Ship fast. Iterate on what breaks. The prospects aren't going to find themselves.

Top comments (0)