← All articles

The Problem With a Bought List Isn't the Price

August 29, 2026 · 4 min read · By Growth7

You bought the list because the math looked good. A few hundred dollars for thousands of contacts in your category, delivered as a CSV within the hour. Then you uploaded it, sent your first campaign, and watched the bounces roll in. Some addresses were dead. Some were generic inboxes nobody reads. A handful of recipients replied asking who you were and where you got their details, and you didn't have a good answer. Your sending domain took the hit, and the next campaign — to people who actually knew you — landed in fewer inboxes than it should have.

The money wasn't the problem. The problem is that a purchased list is a snapshot of work someone else did, at a time you don't know, using criteria you didn't choose. You inherit all of it: the staleness, the mismatched targeting, the absence of any story about why these particular people should hear from you. And once those contacts are in your audience, they contaminate everything downstream. Your open rates stop meaning anything. Your engagement scores get diluted by people who were never real prospects. You can no longer tell whether a quiet campaign underperformed or simply reached the wrong crowd.

Sourcing Your Own List Gives You the Why

When you pull leads from Maps, you're choosing the geography, the business category, and the radius. When you pull from LinkedIn, you're choosing the role, the company profile, the sector. Those choices are the difference between a list and a segment. You know why every record is there, because you defined the filter that put it there.

That matters immediately and practically. It changes what you write, because you can address a specific situation rather than a lowest-common-denominator pitch. It changes how you sequence, because a list of independent restaurants within twenty miles wants a different opening than a list of operations leads at mid-sized logistics firms. And it changes what you learn when a campaign underperforms — a bad result against a list you defined tells you something about your targeting or your message. A bad result against a bought list tells you nothing at all.

It also means your list is current as of when you built it, not as of whenever the vendor last refreshed. Businesses close, people change roles, categories shift. Sourcing on demand, for a specific campaign, keeps that decay window short.

The List Is the Beginning, Not the Deliverable

Where most teams stumble is treating sourcing as a separate step. Leads get pulled into one tool, exported, cleaned, uploaded somewhere else, and by the time they reach a campaign the context is gone. Nobody remembers which filter produced which contacts, and the segment dissolves back into an undifferentiated blob.

In Growth7, leads sourced from Maps and LinkedIn land directly in the same audience your campaigns run against. That's the part that compounds. From day one, every contact carries the criteria that brought them in, and from the first send, engagement scoring starts separating the curious from the inert. Someone who opens twice and clicks through is a different prospect than someone who has never reacted — and you can act on that difference without exporting anything.

Because email, SMS, AI voice, and social all run against that single audience, the follow-up can escalate sensibly. A cold sourced lead gets an email. A lead who clicked but didn't reply might be worth an SMS. A lead who engaged repeatedly might justify a voice call. That progression only works if the channels share one view of the person, which is exactly what a bought CSV scattered across three tools can never give you.

What This Costs You

Be honest about the tradeoff: sourcing your own list is slower than buying one. You have to decide who you're actually targeting, and that decision takes thought. Some teams buy lists specifically to avoid that thinking.

But the thinking is the work. A vendor can't do it for you, and a large file of contacts you can't explain is not a shortcut — it's a way of postponing the question until your deliverability makes it for you. Define the filter, source against it, let behaviour sort the results, and build from there.