"Marketing agencies, 10-50 employees." If you've built a target list in the last decade, you've probably typed some version of that into a filter and hit export. It's been the default approach for so long that most people never stop to ask whether it still works — it's just what building a list means.
It's worth asking anyway, because the answer has changed.
The overlap problem
The databases behind most outreach tools license and resell the same underlying contact data from a small number of providers. Five different companies targeting "marketing agencies, 10-50 employees" are frequently emailing the same few thousand businesses. We spot-checked this directly across a handful of popular platforms — the sampling is in our studies write-up — and the overlap was significant enough that it's not really a competitive advantage for anyone using it.
Category membership isn't a signal
A firmographic filter answers "does this business exist in a category." It can't answer "does this business have the problem I solve, right now, in a way it would act on." Those are different questions. Some fraction of any firmographically-defined segment has a healthy pipeline and no urgency. Some fraction just signed a new client and is heads-down. Some fraction is genuinely struggling and would respond to almost anything relevant. Firmographics can't tell these apart — they're static facts about a business, not signals of its current state.
Condition-based targeting, in practice
What's replacing the firmographic default is targeting built around an observable, current condition rather than a category label. A few examples working well right now:
- Technical debt signals — outdated CMS versions, expired SSL certificates, broken third-party scripts, sites still on frameworks that predate mobile-first design.
- Behavioral triggers — a job listing that implies a gap, a recent funding announcement, a leadership change.
- Public record data — company registration filings, which tend to correlate with genuine near-term buying windows rather than static category membership.
Each of these describes a moment, not a category. A business with an expired certificate today might not have had one six months ago and might fix it next week — which is exactly why it's a better signal than "50 employees," a fact that'll still be true next year and tells you nothing about timing.
What overlap actually looks like
When we ran the spot-check mentioned above, we pulled 300 "marketing agency, 10-50 employees, UK" contacts from three separate paid databases and de-duplicated by domain. 214 of the 300 domains appeared in at least two of the three lists. 87 appeared in all three. That's not three independently useful lists — it's mostly one list, sold three times, with three different agencies now competing to be the fourth cold email in the same inbox this month. Nobody in that inbox is impressed by any of the three.
The trade nobody likes to say out loud
Condition-based lists are smaller and slower to build. You can't buy 200,000 contacts matching a technical-debt signal — someone, or something, has to actually check. Better targeting costs more effort per lead, not less. The payoff shows up in reply rate and close rate, not list size, which makes it a hard sell if you're measuring pipeline health by contacts added rather than conversations started.
Firmographics aren't useless — they're a reasonable secondary filter once you already have a signal. The mistake is using them as the primary one. It optimizes for a list that's easy to build over a list that's likely to convert, and in a market where everyone else is already doing the easy version, that's no longer a neutral choice. Public company data is one of the more underused sources for these behavioral signals.