Alright, DE fam. Grab your coffee.
This one's long because I want you to end the hour with a finished list on your screen, not a plan to build one someday.
๐๐จ๐๐๐ฒ'๐ฌ ๐ญ๐๐๐ญ๐ข๐: 50 qualified local businesses, pulled from Google Maps and public directories, in one 60-minute sitting, with a visible gap written next to every single name.
Right now your pipeline is a feeling. By tomorrow morning it can be a spreadsheet with 50 rows in it. Let's fix that.
๐๐ถ๐ฟ๐๐, ๐๐ฒ๐'๐ ๐๐ถ๐น๐น ๐ฎ ๐๐ฎ๐ฑ ๐๐๐๐๐บ๐ฝ๐๐ถ๐ผ๐ป
Here's the version almost everybody is running right now:
You open your AI of choice. You type "give me 50 plumbers in Fort Wayne with phone numbers, emails, and websites." You get a clean table in nine seconds.
It's fiction.
Not all of it. That's what makes it dangerous. The model has seen a million business listings, so it knows what one looks like. It knows Midwest plumbers get named things like "Hoosier Plumbing & Drain." It knows the area code. It knows websites end in .com.
So it hands you a list that looks right and is partly invented.
A language model produces the most likely next words. It does not automatically go look anything up. Unless it's running a live search and showing you the source, it is writing a list, not retrieving one. Two different activities, identical-looking spreadsheets.
And here's the thing: you don't find out until you're on the phone.
You call row 7 and the number rings a dentist.
You email row 22 and it bounces.
You pull up row 31 and the business closed three years ago.
Worse, you reference "your Google reviews" on a live call and the business has none, because you trusted a column the model filled in for you.
That last one doesn't cost you a minute. It costs you the deal.
Say 18 of the 50 rows are wrong, and you spend three minutes each finding that out. That's 54 minutes auditing a list you generated in nine seconds, and you still don't have 50 real businesses. You have 32 and a bad mood.
Here's the blunt truth. AI is excellent at the thinking part of prospecting and terrible at the sourcing part. Let it write your opener. Let it sort your gaps. Never let it tell you who exists without testing and reviewing.
Real data comes from the places businesses registered themselves. Maps. Directories. The Secretary of State. That's today.
๐ช๐ต๐ ๐ง๐ต๐ถ๐ ๐ ๐ฎ๐๐๐ฒ๐ฟ๐ ๐ณ๐ผ๐ฟ ๐ฌ๐ผ๐๐ฟ ๐๐ด๐ฒ๐ป๐ฐ๐
Run the math on one hour.
50 names with a real gap attached. Say you reach 12 of them, because local owners pick up more than you think when the opener is "your profile is missing something" instead of "I do marketing."
Say 4 of those 12 take a 25-minute call. Say 1 of the 4 signs at $1,000 a month with a $2,500 setup.
That's $14,500 in first-year contract value out of 60 minutes of list building. Swap in your own retainer and your own close rate. The shape holds.
Now flip it. A list vendor sells you 500 records at, say, 50 cents each. That's $250 to be the fourth agency calling that plumber this month, with no gap column anywhere in it.
The gap column is the whole asset. Anybody can buy 500 names. Almost nobody shows up already knowing that this specific roofer has 14 reviews, no service area set, and a phone number that doesn't match his website.
๐ฆ๐๐ฒ๐ฝ ๐ญ: ๐ฃ๐ถ๐ฐ๐ธ ๐๐ต๐ฒ ๐๐ฎ๐ป๐ฒ ๐๐ฒ๐ณ๐ผ๐ฟ๐ฒ ๐ฌ๐ผ๐ ๐ข๐ฝ๐ฒ๐ป ๐ ๐ฎ๐ฝ๐
Five minutes. Do this on paper.
Three decisions:
- ๐๐ง๐ ๐ญ๐ซ๐๐๐. Plumbers. Or roofers. Or med spas. Not "local businesses." One.
- ๐๐ง๐ ๐ ๐๐จ๐ ๐ซ๐๐ฉ๐ก๐ฒ. A named city, or a 20-mile radius around one. Not a state.
- ๐๐ง๐ ๐ช๐ฎ๐๐ฅ๐ข๐๐ฒ๐ข๐ง๐ ๐ ๐๐ฉ you can see from the outside and fix inside 30 days. Missing service areas. Under 25 reviews. No website. Unclaimed profile. Blank hours.
Why one of each: your opener has to be the same 14 words for all 50 calls. Mix roofers and dentists and you're writing 50 openers, and the hour becomes four.
Write it as one sentence at the top of your sheet. "Plumbers within 20 miles of Lafayette, Indiana with fewer than 25 Google reviews."
That sentence is your filter for the next 55 minutes. Anything that doesn't match it stays out of the sheet.
๐ฆ๐๐ฒ๐ฝ ๐ฎ: ๐๐๐ถ๐น๐ฑ ๐๐ต๐ฒ ๐ฆ๐ต๐ฒ๐ฒ๐ ๐๐ฒ๐ณ๐ผ๐ฟ๐ฒ ๐ฌ๐ผ๐ ๐๐ฎ๐๐ฒ ๐๐ป๐๐๐ต๐ถ๐ป๐ด ๐๐ผ ๐ฃ๐๐ ๐ถ๐ป ๐๐
Three minutes. Google Sheets, free.
Ten columns, in this order:
- Business name
- Phone, from the profile, not the website
- Website, or "none"
- Review count
- Star rating
- The gap, one phrase
- Owner name
- Source: Maps, Yelp, chamber, SoS
- Date checked
- Status
Two of those matter more than the other eight.
๐๐๐ญ๐ ๐๐ก๐๐๐ค๐๐ tells you when this list has rotted. Review counts move, businesses close, owners sell. A list with no date gets re-worked six months later as though it's fresh.
๐๐จ๐ฎ๐ซ๐๐ is how you prove to yourself you didn't make it up. Every row names where it came from. No source, it doesn't belong in the sheet. That single rule is the entire difference between this and the AI fabricated table.
๐ฆ๐๐ฒ๐ฝ ๐ฏ: ๐ฅ๐๐ป ๐๐ต๐ฒ ๐ ๐ฎ๐ฝ ๐๐ฟ๐ถ๐ฑ, ๐ก๐ผ๐ ๐๐ต๐ฒ ๐ฆ๐ถ๐ป๐ด๐น๐ฒ ๐ฆ๐ฒ๐ฎ๐ฟ๐ฐ๐ต
Seven minutes.
Most people type "plumbers near me," skim ten results, and stop. Those ten already have 200 reviews and an agency. They're your worst prospects.
Run three searches instead, and run them on the map, not the list:
1. The trade term. "plumber"
2. The service term customers actually type. "water heater repair"
3. The adjacent term. "drain cleaning"
Then move the map. Zoom in until you can see four or five miles across, and walk it in tiles. Downtown, north, east, south, west.
Results are tied to what's on your screen, so a business three suburbs over never appears in a search centered downtown. That's the whole reason one search gives you ten names and the grid gives you eighty.
In every tile, scroll the left panel down until it stops loading. The businesses at the bottom, the ones with 6 reviews and one blurry storefront photo, are the ones who will take your call.
๐ฆ๐๐ฒ๐ฝ ๐ฐ: ๐๐ฎ๐ฝ๐๐๐ฟ๐ฒ ๐ฑ๐ฌ ๐ฅ๐ผ๐๐, ๐ฏ๐ฌ ๐ฆ๐ฒ๐ฐ๐ผ๐ป๐ฑ๐ ๐๐ฎ๐ฐ๐ต
Twenty-five minutes. This is the grind, and it is the hour.
Click a listing. The panel that opens hands you almost every column at once: name, phone, website, review count, rating, hours, category. Copy them across. Do not open the business's website yet. You are not evaluating. You are capturing.
Thirty seconds per business. Set a timer if you have to.
The trap is curiosity. You click row 6's website, notice the blog died in 2019, spend four minutes writing notes about it, and the hour ends with 11 rows done.
Capture first. Judge later.
Two filters you apply as you go, both instant:
- ๐๐ค๐ข๐ฉ ๐ญ๐ก๐ ๐๐ซ๐๐ง๐๐ก๐ข๐ฌ๐ ๐ง๐๐ฆ๐๐ฌ. National brands have national marketing. You're not selling them local search.
- ๐๐ค๐ข๐ฉ ๐๐ง๐ฒ๐ญ๐ก๐ข๐ง๐ ๐จ๐ฏ๐๐ซ ๐ฒ๐จ๐ฎ๐ซ ๐ซ๐๐ฏ๐ข๐๐ฐ ๐๐๐ข๐ฅ๐ข๐ง๐ . If your lane says under 25, a business at 180 is somebody else's client. Move on.
๐ฆ๐๐ฒ๐ฝ ๐ฑ: ๐ช๐ฟ๐ถ๐๐ฒ ๐๐ต๐ฒ ๐๐ฎ๐ฝ ๐๐ผ๐น๐๐บ๐ป
This is the step almost everyone skips, and it's the one that turns a list into pipeline.
It folds into Step 4, so it costs no extra time. As you capture each row, look three seconds longer and write one specific phrase in the gap column. Not "needs SEO." Something you can say out loud on a call:
- "No service areas set"
- "14 reviews, newest one 11 months old"
- "Profile phone doesn't match website phone"
- "Category says Contractor, not Plumber"
- "Closed Sunday, two competitors open"
Here's why this is the step. A list without a gap column is a cold call list. A list with a gap column is a reason to call. The first one opens with "Hi, I do marketing for local businesses." The second opens with "Hey, your listing is categorized as Contractor instead of Plumber, which is part of why you're not showing up for 'plumber near me.'"
One of those is a pitch. The other is a free piece of useful information from a stranger. Only one gets a second sentence.
If you want the long version of a gap, it's the 25-minute GBP audit I posted last month. The gap column is that audit compressed into one line, run 50 times.
๐ฆ๐๐ฒ๐ฝ ๐ฒ: ๐๐ฟ๐ผ๐๐-๐๐ต๐ฒ๐ฐ๐ธ ๐๐ต๐ฒ ๐๐ถ๐ฟ๐ฒ๐ฐ๐๐ผ๐ฟ๐ถ๐ฒ๐
Ten minutes, and only for your top 15 rows. Not all 50.
Maps tells you a business exists. Directories tell you whether it's healthy and who runs it.
- ๐๐๐ฅ๐ฉ. Review volume and the owner-response pattern. An owner who replies to Yelp reviews already believes in what you sell. He just has no system for it.
- ๐๐ก๐ ๐๐๐ญ๐ญ๐๐ซ ๐๐ฎ๐ฌ๐ข๐ง๐๐ฌ๐ฌ ๐๐ฎ๐ซ๐๐๐ฎ. Years in business, plus the owner's name, often printed right on the profile.
- ๐๐จ๐ฎ๐ซ ๐ฅ๐จ๐๐๐ฅ ๐๐ก๐๐ฆ๐๐๐ซ ๐๐ข๐ซ๐๐๐ญ๐จ๐ซ๐ฒ. Chamber members are self-selected for "we spend money to grow." Usually a direct email, too.
- ๐๐จ๐ฎ๐ซ ๐๐๐๐ซ๐๐ญ๐๐ซ๐ฒ ๐จ๐ ๐๐ญ๐๐ญ๐ ๐๐ฎ๐ฌ๐ข๐ง๐๐ฌ๐ฌ ๐ฌ๐๐๐ซ๐๐ก. Free in every state. Confirms the legal entity, the registered agent, and whether the business is in good standing. This is how you find out the company you were about to call dissolved last year.
Two things come out of this that Maps won't give you: a human name, and confidence the business is alive. Both go in the sheet.
๐ฆ๐๐ฒ๐ฝ ๐ณ: ๐๐ฒ๐ ๐ข๐ป๐ฒ ๐ฅ๐ฒ๐ฎ๐น ๐๐ผ๐ป๐๐ฎ๐ฐ๐ ๐ฃ๐ฎ๐๐ต ๐ฃ๐ฒ๐ฟ ๐ฅ๐ผ๐
Seven minutes. Top 15 again.
In order of preference:
1. ๐๐ก๐ ๐ง๐ฎ๐ฆ๐๐๐ซ ๐จ๐ง ๐ญ๐ก๐ ๐๐จ๐จ๐ ๐ฅ๐ ๐ฉ๐ซ๐จ๐๐ข๐ฅ๐. It rings the business. That's the point.
2. ๐ ๐๐จ๐ง๐ญ๐๐๐ญ ๐๐จ๐ซ๐ฆ ๐จ๐ซ ๐ ๐ง๐๐ฆ๐๐ ๐๐ฆ๐๐ข๐ฅ ๐จ๐ง ๐ญ๐ก๐๐ข๐ซ ๐จ๐ฐ๐ง ๐ฌ๐ข๐ญ๐. Check the footer and the About page for an actual person.
3. ๐๐ก๐ ๐
๐๐๐๐๐จ๐จ๐ค ๐ฉ๐๐ ๐. Local owners run their own pages far more often than they run their own websites, and Messenger gets read.
4. ๐ ๐ฏ๐๐ซ๐ข๐๐ข๐๐ ๐๐ฆ๐๐ข๐ฅ ๐ญ๐จ๐จ๐ฅ, but only if you're doing outbound email.
Never send to info@ and call that outreach. Never guess an email pattern and fire 50 into the dark. A high bounce rate teaches mail providers your domain sends garbage, and you'll be cleaning that up for months.
๐ฆ๐๐ฒ๐ฝ ๐ด: ๐๐ฒ๐ฑ๐๐ฝ๐ฒ, ๐ฆ๐ฐ๐ผ๐ฟ๐ฒ, ๐ฎ๐ป๐ฑ ๐๐ผ๐ฎ๐ฑ ๐๐ ๐ช๐ต๐ฒ๐ฟ๐ฒ ๐ฌ๐ผ๐'๐น๐น ๐๐ฐ๐๐๐ฎ๐น๐น๐ ๐ช๐ผ๐ฟ๐ธ ๐๐
Three minutes.
Sort by business name and delete the duplicates, because the grid catches the same business in two tiles. Then sort by review count, ascending. Fewest reviews first. That's your call order, because fewest reviews usually means no agency yet.
Then get it out of the spreadsheet.
A list in a sheet is a list you'll open twice and abandon. Import the top 15 into your CRM with a follow-up task and a date on each one. A name with no next action and no date is not a lead. It's a note.
๐ง๐ต๐ฒ ๐ง๐ผ๐ผ๐น ๐ฆ๐๐ฎ๐ฐ๐ธ
๐๐จ๐ฎ๐ซ๐๐ข๐ง๐ , ๐๐ซ๐๐: Google Maps, Google Business Profile listings, Yelp, the BBB, your local chamber directory, your Secretary of State business search, Facebook Pages.
๐๐ก๐ ๐ฅ๐ข๐ฌ๐ญ, ๐๐ซ๐๐: Google Sheets.
๐๐จ๐ข๐ง๐ ๐ข๐ญ ๐๐ญ ๐ฏ๐จ๐ฅ๐ฎ๐ฆ๐, ๐ฉ๐๐ข๐: Google's own Maps Platform is the licensed route. On pay as you go, Text Search Pro and Nearby Search Pro each include 5,000 free calls per SKU per month, far more than a prospect list needs. If you'd rather not touch an API, Apify's store has Google Maps actors; the platform is free with $5 of monthly credit, Starter is $19 a month plus usage.
๐๐จ๐ง๐ญ๐๐๐ญ ๐ฏ๐๐ซ๐ข๐๐ข๐๐๐ญ๐ข๐จ๐ง, ๐ฉ๐๐ข๐: Reoon for verifying email addresses youโve already collected, Iโd put it near the top of your list, particularly for agency prospecting. Runs a free tier at 600 verifications a month, and $12 for 10,000 a month.
๐๐ก๐๐ซ๐ ๐ญ๐ก๐ ๐ฅ๐ข๐ฌ๐ญ ๐ฅ๐ข๐ฏ๐๐ฌ, ๐ฉ๐๐ข๐: GoHighLevel at $97, $297, or $497 a month depending on tier, with a 14-day trial. Any CRM works here. The point is an owner and a date on every row.
Verify pricing before you buy, this space moves fast.
One caution on the scrapers, and read this part twice. Google's Maps and Earth Additional Terms of Service tell you not to "mass download or create bulk feeds of the content," and not to use Maps to build a "business listings database." A person capturing 50 businesses by hand is a person using a product. A tool pulling 10,000 rows a night is what those sections were written about. If you want volume without the question mark, use the Maps Platform API, where Google sells you that data on purpose.
And the bigger caution: the tool was never the bottleneck. A scraper hands you 2,000 rows with no gap column, which is 2,000 rows of nothing. The hour you spend looking at 50 profiles yourself is what produces the sentence that gets you a meeting.
๐ช๐ต๐ฒ๐ฟ๐ฒ ๐๐ด๐ฒ๐ป๐ฐ๐ ๐ข๐๐ป๐ฒ๐ฟ๐ ๐ฆ๐ฐ๐ฟ๐ฒ๐ ๐ง๐ต๐ถ๐ ๐จ๐ฝ
๐๐ข๐ฌ๐ญ๐๐ค๐ ๐: ๐๐๐ญ๐ญ๐ข๐ง๐ ๐๐ ๐ ๐๐ง๐๐ซ๐๐ญ๐ ๐ญ๐ก๐ ๐ง๐๐ฆ๐๐ฌ. You get a list that looks real, you call four dead numbers, and you decide cold outreach doesn't work. It works. Your data was fake. I use AI but it runs through a process involving scraping api's and we verify everything. The key is small batch runs, you don't need 10k you need 50 good ones.
๐๐ข๐ฌ๐ญ๐๐ค๐ ๐: ๐๐ฎ๐ข๐ฅ๐๐ข๐ง๐ ๐ ๐๐๐-๐ซ๐จ๐ฐ ๐ฅ๐ข๐ฌ๐ญ ๐ข๐ง๐ฌ๐ญ๐๐๐ ๐จ๐ ๐ ๐๐-๐ซ๐จ๐ฐ ๐ฅ๐ข๐ฌ๐ญ. 500 rows is a project you'll never finish. 50 rows is a list you can work through by Thursday. Quality over Quantity...
๐๐ข๐ฌ๐ญ๐๐ค๐ ๐: ๐๐ค๐ข๐ฉ๐ฉ๐ข๐ง๐ ๐ญ๐ก๐ ๐ ๐๐ฉ ๐๐จ๐ฅ๐ฎ๐ฆ๐ง ๐ญ๐จ ๐ฌ๐๐ฏ๐ ๐ญ๐ข๐ฆ๐. You saved 10 minutes and converted a warm reason-to-call into a cold pitch. Now you need 200 rows to get the same four meetings.
๐๐ข๐ฌ๐ญ๐๐ค๐ ๐: ๐๐ฎ๐ข๐ฅ๐๐ข๐ง๐ ๐ญ๐ก๐ ๐ฅ๐ข๐ฌ๐ญ ๐๐ง๐ ๐ง๐๐ฏ๐๐ซ ๐๐๐ฅ๐ฅ๐ข๐ง๐ ๐ข๐ญ. The most common one by a mile. The list is not the win. It's what makes the next 50 phone calls possible. Nobody has ever been paid for a spreadsheet.
๐ฌ๐ผ๐๐ฟ ๐๐ฐ๐๐ถ๐ผ๐ป ๐ฆ๐๐ฒ๐ฝ ๐ง๐ต๐ถ๐ ๐ช๐ฒ๐ฒ๐ธ
Steps 1 through 4 only. And cut it to 25 businesses, not 50.
No directory cross-check. No email hunting. No CRM import. Pick one trade, one city, one gap, build the ten columns, and capture 25 rows off the grid with a gap next to each one.
That's about 25 minutes, and it's the only part of this that requires you.
Then drop a comment with your lane sentence and the three best gaps you found. Something like: "Plumbers in Muncie, under 25 reviews, three with no service areas set."
Which one would you lead with on the call? Post your three and I'll tell you which I'd open with, and why.
That's it for this Tactic Tuesday. Go build something.
๐น๐๐๐ ๐๐๐๐ ๐ก๐ ๐น๐๐๐๐๐๐, ๐๐๐๐๐กโ๐๐ ๐๐ ๐ต๐ข๐๐๐, ๐บ๐๐๐ค, ๐๐๐ ๐๐๐.