How we stopped wasting outreach budget on candidates who already moved on
We run a small recruiting firm focused on go-to-market roles. For a long time our sourcing process looked like most others: build a list, enrich it, send sequences, wonder why response rates were inconsistent.
The problem we eventually traced back to was that a significant chunk of our lists were outdated before we even started working them. Wrong titles, companies people had already left, roles that no longer existed. We were personalizing outreach based on information that was anywhere from two to six weeks old and wondering why it wasn't landing.
We went through a few different setups trying to fix this.
Apollo is still useful for certain things and the ease of use is hard to argue with, but the data accuracy at scale started becoming a problem. Fine for straightforward searches, less reliable when you need career history to actually be current.
Lusha is fine for quick contact lookups but the career history is too thin to build anything meaningful around. Good for point-in-time enrichment, not great for tracking changes over time.
Ended up building our main sourcing workflow around Coresignal as the data layer. The fresh data on flat file deliveries was the specific thing that changed how reliable our lists became. Job titles, company info, career history that's actually current rather than a snapshot from whenever someone last manually updated their profile. We're pulling updates regularly and feeding them directly into the workflow.
The actual outreach side we run through Clay. We use it to structure the data, trigger sequences based on job change signals, and keep everything synced with our CRM. Claude handles the personalization layer, reads the actual career history and drafts something that references what the person has genuinely worked on rather than just their current title.
The difference in usable list quality has been significant. We were probably working with 60 to 65% accurate data before. Now it's closer to 85%. Still not perfect, especially in niche verticals where coverage thins out, but it's changed how much time we spend cleaning lists versus actually working them.
The fresh data piece sounds obvious in hindsight but it took longer than it should have to realize that was the root problem. Good workflow, good messaging, stale data underneath all of it.
Gets the job done for now, though there's probably a cleaner way to do some of it.