DEV Community

RyanCwynar
RyanCwynar

Posted on • Originally published at ryancwynar.com

I Built an AI Prospecting Machine That Never Sleeps

Last week, my automated prospecting system added 133 qualified leads to my outreach queue. I didn't lift a finger.

Here's how I built a fully autonomous lead generation pipeline using cron jobs, AI, and a Redis queue — and why it's been one of the highest-ROI things I've ever built.

The Problem

I'm building AI products for local businesses — voice receptionists, review management tools, automation workflows. The classic indie hacker problem: I'd rather build than sell. Cold outreach felt like a chore, and I'd do it in bursts before getting sucked back into code.

The pipeline was feast or famine. Some weeks I'd make 50 calls. Other weeks, zero.

The Architecture

The system runs on five cron jobs spread throughout the day, each targeting a different campaign angle:

  • Receptionist campaign (10 AM, 8 PM) — finds medical practices, law firms, and dental offices that could use an AI receptionist
  • Reviews campaign (1 PM) — targets businesses with mediocre Google ratings that need review management
  • AI campaign (3 PM) — broader search for businesses that could benefit from AI automation
  • Boring campaign (5 PM) — wealth managers, CPAs, dermatologists — less sexy but steady verticals

Each job does the same thing:

  1. Search — Uses web search to find businesses in South Florida matching specific criteria
  2. Qualify — AI evaluates each result: Do they have a website? Phone number? Are they the right size? Already using competitors?
  3. Deduplicate — Checks Redis to avoid adding businesses already in the queue
  4. Queue — Pushes qualified prospects into Redis with campaign tags, contact info, and notes

The whole thing runs on a single VPS. No fancy infrastructure. Redis for the queue, cron for scheduling, and Claude for the intelligence layer.

What I Learned Building It

Start with one campaign, then multiply. I built the receptionist campaign first, got it working reliably, then cloned the pattern for reviews, AI, and boring. Same bones, different search queries and qualification criteria.

Deduplication is harder than you think. Business names are messy. "Dr. Smith's Dental" and "Smith Dental Office" might be the same place. I match on phone number as the primary key — it's the most reliable unique identifier for local businesses.

Batch sizes matter. I tried adding 20 prospects per run. The quality dropped. 3-8 per run with higher qualification standards produces better leads. The system runs 5 times a day, so volume adds up.

Redis is perfect for this. I needed something lightweight that could handle queue operations, dedup checks, and campaign tagging without the overhead of a full database. Redis sorted sets let me prioritize by campaign and track queue depth trivially.

The Numbers

Over the past 5 days:

  • 133 prospects added to the queue
  • 5 campaigns running autonomously
  • 4 verticals covered (medical, legal, dental, financial)
  • 3 cities targeted (Miami, Fort Lauderdale, Boca Raton)

The prospects feed into an automated dialer that handles the actual outreach calls. That's a story for another post, but the key insight is this: the bottleneck was never making calls — it was having enough qualified people to call.

Why This Matters

Every founder I know has the same complaint: not enough pipeline. They'll spend weeks building a product, then panic when they need customers. The fix isn't hiring an SDR or buying a lead list. It's building a system that generates qualified leads as a background process.

My prospecting machine costs me about $2/day in API calls and runs on a $15/month VPS. It finds businesses, qualifies them, deduplicates them, and queues them for outreach — all while I'm sleeping, coding, or doing literally anything else.

The best part? It gets smarter over time. Every campaign teaches me which search queries produce the best leads, which qualification criteria matter, and which verticals convert. I tune the prompts, and the whole system improves.

Build Your Own

You don't need a complex stack. The core loop is:

  1. Cron job triggers on schedule
  2. Search for businesses matching your ICP
  3. AI qualifies each result against your criteria
  4. Deduplicate against your existing queue
  5. Push qualified leads to your outreach system

The intelligence is in the qualification step. Be specific about what makes a good prospect for your product. Industry, size, location, tech stack, online presence — the more criteria you define, the better your leads.

Stop prospecting manually. Build a machine that does it for you.

Top comments (0)