I automated the outreach system.
Then I took the AI out of the phone call.
I built an AI-run prospecting and outreach engine that finds therapists, reads their websites, scores them against a proprietary framework and turns the results into a prioritized daily calling workflow. Then live use exposed where the automation should stop.
A cold call earns seconds, not patience.
Generic outreach was never going to work for this market. To earn the next thirty seconds, I needed something specific and defensible to say about the person on the other end of the phone.
The evidence existed across public directory profiles and practice websites, but finding the useful observation manually would turn prospecting into a research job. A large part of the market also had missing or nontraditional websites, and outbound calling added compliance requirements that had to be solved before the first dial.
The website was evidence.
It was never the problem.
I reframed the system around identity gaps rather than website criticism. “Your homepage needs work” is a generic design critique. “The specialization that makes you right for this person is effectively invisible” is a useful observation.
That framing was encoded into the system itself. The model could not simply return generic design advice. The output that reached the call queue had to identify the specific identity or positioning gap worth discussing.
From public directory to prioritized conversation.
Find
Pull prospects from public directories and resolve missing websites through search while excluding directory, EHR and social domains.
Read
Crawl each practice site, including sitemap-first crawling and a browser fallback for JavaScript-rendered pages.
Score
Apply deterministic checks first, then pass the evidence into an AI scoring layer built around a 26-point framework.
Prioritize
Rank the calling queue using buying-intent signals plus the urgency exposed by the site itself.
Protect
Normalize phone numbers, check federal and internal do-not-call lists and prevent blocked leads from entering outreach.
Navigate
Give the caller a live decision tree rather than a page of AI-generated dialogue to read while another person is talking.
A script is something you read.
A call is something you navigate.
The obvious path: generate a personalized call script, voicemails, objection responses, email sequence and LinkedIn messages for every prospect.
What I changed: after the initial system shipped, I removed 179 lines of per-lead generated outreach from the live working surface and replaced the phone experience with a seven-moment decision tree.
The AI kept one job inside the call: surface the prospect-specific observation that had required reading and comparing information at scale. The human kept the conversation.
The operating system, privacy-safe and visually refined.
These views are rebranded from the working product and use synthetic contacts and sample data. The workflow and information architecture remain faithful to the system I built.






A repeatable capability, not a one-off campaign.
The system can run the same operating model against a new market without rebuilding the process from scratch. Research that would have required manually reading one practice at a time now becomes a prioritized daily work queue with a specific observation attached to every qualified prospect.
I am intentionally not publishing conversion metrics until the live outreach data is mature enough to support them. The proof at this stage is the capability itself and the documented product decision that came from using it.
Knowing what to automate is useful.
Knowing where to stop is more valuable.
The expensive part of this workflow was reading, comparing and judging at volume. That is where AI created real leverage. The live conversation was not the bottleneck, and automating more of it made the experience worse.
That is the same question I bring into client work: where does AI genuinely make the system better, and where does a person still create the value?