Most salespeople spend hours manually searching for leads, qualifying them, and adding them to a CRM. I automated the entire thing with AI agents and cron jobs. Here's how.
The Problem
Outbound prospecting is brutal. You need to find businesses that fit your ideal customer profile, research them, find contact info, and queue them for outreach. It's repetitive, time-consuming, and honestly kind of soul-crushing.
I wanted a system that would continuously find and qualify prospects while I slept, ate, or worked on actual product development.
The Architecture
The system is surprisingly simple:
- Cron-triggered AI agents run multiple times per day on different schedules
- Each agent targets a specific campaign with its own search criteria and messaging angle
- Prospects get researched, validated, and added to a call queue in PostgreSQL
- A separate system handles the actual outreach
I'm running four concurrent campaigns right now, each with a different hook:
- Receptionist — "What happens when someone calls after hours?"
- Reviews — Targeting businesses with review management pain points
- AI Tools — Practices still running traditional workflows
- Boring Tasks — "What's the most repetitive thing your staff does daily?"
How Each Run Works
Every few hours, a cron job fires and an AI agent wakes up. Here's what it does:
Search phase: The agent uses web search to find local businesses matching the campaign criteria — dentists in Miami, dermatologists in Palm Beach, law firms in Fort Lauderdale. It rotates through specialties and locations to avoid hitting the same results.
Qualification phase: For each result, the agent checks the business website, verifies the phone number exists, and confirms they're a real operating business (not a directory listing or closed practice).
Dedup phase: Before adding anything, it checks the existing queue to make sure we're not adding duplicates. This sounds trivial but it's critical — without it, the same popular practices show up over and over.
Queue phase: Qualified prospects get inserted into PostgreSQL with all their metadata — name, specialty, phone, website, location, and which campaign they belong to.
A typical run adds 1-3 prospects. That's not a lot per run, but with 5-6 runs per day across 4 campaigns, we're adding 20-30 qualified prospects daily with zero manual effort.
The Tech Stack
- OpenClaw for the AI agent runtime and cron scheduling
- Brave Search API for finding businesses (rate limits are the main bottleneck)
- PostgreSQL for the prospect queue and dedup logic
- Convex for the frontend dashboard
The whole thing runs on a single Hostinger VPS. No Kubernetes, no microservices, no overengineering. Just cron jobs, an AI agent, and a database.
What I've Learned
Rate limits are your real constraint. The AI can process prospects fast. Search APIs can't keep up. I spread runs across the day specifically to stay under rate limits.
Campaign diversity matters. Running four different angles means we're not just finding the same businesses with the same pitch. A dentist who doesn't care about after-hours calls might care about review management.
Small batches beat big dumps. Adding 2-3 prospects per run feels slow, but it's consistent and sustainable. Over a week, that's 150+ qualified leads without touching anything.
Automation compounds. Week one felt underwhelming. By week three, the queue was deep enough to keep outreach running continuously without any manual prospecting.
Results So Far
In the last week alone, the system has added 23+ prospects across South Florida — dentists, dermatologists, medical practices, and law firms. Each one has been individually researched and qualified by an AI agent.
The total cost? A few dollars in API calls per day. Compare that to a SDR's salary.
What's Next
The prospecting pipeline feeds into an AI voice calling system (topic for another post), which handles the actual outreach calls. The goal is a fully autonomous sales pipeline — from finding the prospect to booking the meeting — with no human in the loop until the prospect says yes.
We're not there yet, but we're close. And the prospecting piece? That's already running on autopilot.
Top comments (0)