How do you build a sourced lead list without buying one?
Write down exactly which businesses qualify, pull them from a public listing such as Google Maps, then visit each business's own website for the details you need. Record where every value came from, mark what you could not find, and remove duplicates before anyone uses the list. The result is smaller than a bought list, but every row can be checked.
Local businesses are often thin in the big contact databases, while their own listings and websites are current. The work is in the checking, not in the collecting.
How it works
Define who qualifies
Type of business, area, size signals (reviews, locations, a booking page) and the fields you need. Anything you cannot check from a public source should not be a requirement.
Pull the listings
Search a public directory, such as Google Maps through the Places API, by business type and neighborhood. Keep the listing ID with each row.
Visit each business's own website
Collect only what the business publishes about itself: its contact page, services, booking link. Record the page each value came from.
Give every field a state
Found (with its source), checked and not there, unknown (with the reason), or in conflict (two sources disagree, both kept). A blank with no state is a guess waiting to happen.
Remove duplicates and past contacts
The same business can answer two searches. Match on the listing ID or website, and check the list against everyone you have already contacted.
What it costs to run
Collecting from public listings costs API calls; buying from a data tool costs credits. The list below is list prices read today from Google and Apollo; tax and higher tiers are extra.
| Item | List price | Source |
|---|---|---|
| Google Places API, Text Search Pro | First 5,000 calls a month free; then US$32 per 1,000 calls | Google Maps Platform, core services pricing list (last updated 24 Sep 2026)Read on Sep 28, 2026 |
| Google Places API, Place Details Pro | First 5,000 calls a month free; then US$17 per 1,000 calls | Google Maps Platform, core services pricing list (last updated 24 Sep 2026)Read on Sep 28, 2026 |
| Google Places API, Place Details Enterprise | First 1,000 calls a month free; then US$20 per 1,000 calls. The fields you request decide which tier is billed | Google Maps Platform, core services pricing list (last updated 24 Sep 2026)Read on Sep 28, 2026 |
| Apollo Free, for comparison | US$0, 900 credits per seat per year granted monthly; records can be selected 25 at a time | Apollo.io, Pricing PlansRead on Sep 28, 2026 |
| Apollo Basic, for comparison | US$49 per seat per month billed annually, 30,000 credits per seat per year; an email uses 1 credit, a phone number 8 | Apollo.io, Pricing PlansRead on Sep 28, 2026 |
Third-party list prices, read on the date shown. They are not Betterlane prices.
What we learned building it
From how Betterlane builds its own outreach lists from public sources, September 2026. Not client work; no contact data is shown here.
- Start from the listing, then read the business's own site
- Our lists come from Google Places by search and neighborhood, then each business's website. It gives the business's own published contact and listing details, which keeps any observation we make about them checkable.
- Four states, not blanks
- Every field in our research sample is found, checked, unknown or in conflict, each with where and when it was looked up. A site that did not load is marked unknown, with that reason.
- One business, two searches
- Med spas answered both our clinic search and our salon search. We now check that no business sits in two lists before anything goes out.
- A published contact is not always a decision-maker
- For spas inside hotels, the published contact reached a concierge or reservations desk, not the owner. We flagged them for review instead of treating them like any other row.
- Check who has already heard from you
- Before our own reply-speed test, every pick was checked against the people we had already messaged, and those were replaced before anything was sent.
When it is not worth it
- If you sell to large companies with many decision-makers, a contact database will usually cover them better than public listings.
- If you need thousands of rows this week, a sourced list will be slower than buying one.
- If nobody will contact the list within a few weeks, it will go stale before it is used.
Questions
Is it allowed to contact businesses found this way?
Finding a public contact is not permission. Rules differ by country and channel, such as the LGPD in Brazil and CAN-SPAM for commercial email in the US. Check them before any outreach and always honor a request to stop.
Why not just buy a list?
You can. A sourced list is smaller but every value says where it came from, so you can check it and explain it.
What if the website has no contact?
The field is marked as checked and not found. It is not filled from a guess or a pattern.
Can it go straight into my CRM?
Yes, once the fields are mapped and the list is matched against records you already have, so nobody is created twice.
Want a sourced list of the businesses you actually sell to?
See the service: Prospect research and CRM enrichmentLet’s talkAll guides
- What should an inbound voice agent answer, and what must it hand to a person?
- What does a website chatbot do for a small business, and when is it worth it?
- How do you connect WhatsApp to an assistant with Meta's Cloud API?
- How do you automate a support inbox without sending a wrong reply?
- n8n, Zapier or Make: which one should a small business choose?
- How do you pull data out of hundreds of PDFs?
- How do you build a report that updates itself when the data changes?
- How does an internal knowledge assistant answer from your documents without making things up?
- How do you automate a content workflow and keep an editor in control?
- What does a small business website need to be found by Google and ChatGPT?
- When does a business need a customer portal instead of email?
- When should a business move a process off spreadsheets into an internal tool?
- Why does my n8n workflow run twice for the same thing?
- My n8n workflow worked, and now it fails with 401 or 403. Why?
- How do I find out when an n8n workflow fails silently?