← All posts
Ask AI • August 6, 2026 • 9 min read

Can I Run Cold Email for Restaurants and Local Businesses? This Is My Favorite Kind of List

Local businesses are barely reachable through Apollo and LinkedIn, which is exactly why their inboxes aren't scorched. Here's how I build restaurant and local-business lists from scratch.

Yes, and honestly, this is the work I enjoy most, because the hard part is real. Local businesses are difficult to source, which is precisely why they're worth sourcing.

The reason local outbound outperforms

Restaurant owners, clinic owners, contractors, hotel operators, and studio owners are mostly invisible in the databases everyone else buys from. They're not maintaining a LinkedIn presence, and their companies are thin or absent in Apollo. The consequence: their inboxes have not been carpet-bombed by 40 other people running the same export. A relevant message arrives as a surprise rather than as the tenth pitch that day.

The tradeoff is that you cannot buy the list. You have to build it.

Where the lists actually come from

  • Vertical directories. For restaurants, ordering and POS directories are the richest source: they list the business, the location, and the domain, and being listed is itself a signal about their tech stack. Every local vertical has an equivalent: booking platforms for hotels, review sites for home services, marketplace listings for rentals.
  • Google Maps, at zip-code granularity. Query by business type and zip through a Maps extractor and iterate across the geography you care about. This gets you name, phone, category tags, and domain. A note from experience: coverage varies wildly by category. Pre-scraped bulk business databases cover categories like auto body shops, print shops, and equipment rental well, but they contain a tiny fraction of the actual construction and home-service trades: roofing, plumbing, HVAC, electrical, landscaping. Those need fresh zip-level scraping, and assuming otherwise is how people end up with a 2% coverage list they think is complete.
  • Review platforms. Google reviews, app stores, and vertical review sites, both as a source and as an enrichment layer, which matters in a moment.
  • OTA and platform listings. Which booking or delivery platforms a business is listed on is public, and it implies a cost structure you can talk about.

Getting from a business to a human

This is where most local campaigns die. You have a domain and no contact. My approach:

  1. Run domain-level email discovery to find whatever addresses exist on that domain.
  2. Where the source exposes no titles, run a reverse prompt: give an LLM the name, the address, and the business context and have it infer role and seniority, then verify against the site.
  3. Maximize contact points deliberately. For hard-to-reach lists I'll keep personal, work, and generic addresses rather than discarding the generic ones, because for a 12-person restaurant group the generic inbox often is the owner's inbox.
  4. Validate everything before it sends. Local domains have a higher share of dead and catch-all addresses than corporate ones, and this is exactly the audience where an unvalidated blast will torch your sending reputation.

Personalization that isn't fake

Local businesses have an unusual amount of public, specific, verifiable data attached to them, and it's all fair game:

  • Review counts and ratings. A studio with 800 reviews has built a community; a firm with 40 has a visibility problem. Same product, two completely different openers.
  • Actual review text. Pull recent one- and two-star reviews and quote the specific complaint. Nothing you write will ever be as relevant as a sentence their own customer wrote in public.
  • Platform dependence. A hotel listed across the major travel agencies is quietly paying a double-digit commission on every booking. Naming that is naming a real line on their P&L.
  • Computed local context. Nearest competitor, estimated monthly revenue leaking to a specific problem, category rank in their city. These are enrichment fields you calculate, and they turn a generic pitch into a statement about their block.

Segmentation beats volume, even here

On a professional-services list I once split the market three ways using nothing but scraped review data: firms under 80 reviews, firms with one or two recent bad reviews, and firms with 100+ reviews. Three completely different pains, three completely different emails. The under-80 group heard about catching up. The bad-review group heard about protecting their rating. The 100+ group heard about doing what they already do for less money. Same product, same week, three campaigns.

Practical warnings

  • Keep the copy short and plain. This audience is reading on a phone between shifts. Long, structured B2B copy reads as spam to them.
  • Volume is high, so validation discipline matters more. Local lists run into the hundreds of thousands. Bounce rates compound fast.
  • Suppression is not optional. Multi-location groups appear repeatedly under different names, and a franchise's corporate DNC needs to cover every location. I scrub before every upload and re-scan live campaigns on a schedule, because a repeat email to someone who asked to be left alone is a client-trust failure, not a metrics problem.
  • Phone is a real second channel here. More so than LinkedIn, which barely exists for this audience.

The restaurant, hotel, wellness, home-service, and vacation-rental campaigns in the case studies all came out of this playbook.

Want this built for your outbound?

Book a Call →
// KEEP READING