Hey Boring Marketer,

When you sell marketing to local businesses, it's tempting to go after the worst website in town. It needs the most help. It's also the business least likely to pay for it.

The better list is the biggest businesses in a town that are still busy and still getting new reviews. They have the money, and they have customers to lose. Look closely and almost all of them are leaking somewhere.

We tested this today on roofers in Tampa. Of the 19 that made the cut, 17 had a clear gap you could pitch. Here's the workflow for pitching all 17, one gap each.

Step 1: Pick a trade and a town, then cut the list

Start with every roofer on Google Maps. Then keep only the ones worth your time:

  • the biggest in town (by our estimate)

  • 4+ stars with 10+ reviews, and still getting new ones

  • their own website

  • no chains or franchises

Tampa started at 100 roofers and ended at 19.

A search for roofers in Tampa, FL, then the ranked list of 19.

Step 2: Check each one on a phone

That's where their customers land, from a Google ad or a search. Look at the first few screens and write down what's missing: a buried phone number, reviews far down the page, a pop-up over the top, an ad promise the page never repeats, a page that's slow to load. Put the biggest gap first.

In Tampa, number 1's Google ad opened a page that doesn't exist. Number 2's ad promised same-day leak repair, and their website never said it.

Step 3: Compare them with the rest of the town

A gap means more to an owner when they see their competitors don't have it. Number 2 mentions its 4.9 stars in a sentence, but there are no stars or reviews to see until screen 10. Meanwhile, 10 of the 16 roofers in the search show their Google rating in the first three screens.

That comparison is the line that goes in your email.

One roofer's gaps, biggest first, with how they compare with the rest of the search.

Step 4: Pitch every one of them, one gap each

Don't stop at the top pick. Every business on the list gets its own email: its biggest gap and the comparison, plus a picture of its own first screen with the fix in place. Send each one from your own inbox.

The email to that roofer, written around their biggest gap.

Step 5: When they say yes, build the fix and check it

People worry that if you show an owner the fix, they'll go and build it themselves. Most won't. They don't have the time or anyone to do it, and the picture shows them exactly what they get if they hire you.

When they say yes, build the fix for that one gap, then open their page on a phone again and make sure the gap is gone. Every fix has a free page with real local examples and the brief to hand your AI.

The roofer's phone screen today, then with the fix: same-day leak repair up top.

What I use for this

By hand, this takes hours to build the list and hours more for each business, before you've written a single email. I run steps 1 to 4 in boringfunnels. The Tampa search took about 2.5 minutes: all 19 roofers ranked, checked on a phone and compared, with each one a click away from its own email. That's how you pitch all 17 instead of just the top one. In Claude Code, your AI builds their page and the fix. Nobody gets contacted for you. You send everything yourself.

A free account gets 3 searches a month and pitches the best business in each. Pro gets 20 searches a month, up to 20 businesses each, with every one ready to pitch. On Pro already? Ask your agent to "update boringfunnels". The latest update puts the searches you run on the site straight onto your Clients board.

Keep it boring

Start with a trade you know in a town you know. The gaps will make more sense to you, and you'll write a better email.

Wanna see a whole funnel built for a local roofer (a sample business)? Get your first free funnel.
Wanna build alongside 2,500+ marketers? Join The Boring Marketing Community.

Got a question? Just hit reply. I read every message.

Know someone who sells marketing to local businesses? Forward this to them.

Keep it boring,
James