One way to use Local Lead Finder. Local Lead Finder is a $10 Google Sheets template I built that turns any Google Maps search into a lead list: every business, with phone, website, rating and reviews. This post is one use case for it: getting snow removal contracts. I’m not a snow removal company; this is the playbook I’d follow if I were, run for real with the template. Other ways to use it are listed at the end, or see all 18 lead generation ideas.
You already know how to plow. The hard part is getting commercial accounts: the strip malls, HOAs and apartment complexes that pay all winter. Ask on any plowing forum and you’ll hear the same advice: knock on doors, join the BBB, make a Facebook page. Nobody tells you which doors. The other options cost money every month: bid sites that charge a subscription to see government contracts, or lead sellers who charge you for every single lead.
So here’s exactly what I’d do this week if I were starting a snow removal business in Minneapolis. I ran it for real with Local Lead Finder, a $10 Google Sheet I built that pulls every business on Google Maps into a spreadsheet. No lead lists to buy, no pay-per-lead, no scraper. By the end you’ll have 255 property managers and 153 shopping centers to call, the people who actually sign snow removal contracts, and the message I’d send them.
Commercial lots sign before the first real storm, so this is an October job.
TL;DR
- 87 Minneapolis areas gave me 255 property management companies and 153 real plazas, malls and centers in one sheet.
- 63 of those 153 plazas have no phone number on Google, so their property manager is who you call.
- Wait for Find Areas to finish before you search. I started at 87 areas and it grew to 150.
Who this is for
- Snow plow contractor: you get the people who sign commercial snow removal contracts, not just the lots they manage.
- Commercial salting and de-icing contractor: plazas with big lots and foot traffic need sidewalks salted by 7am, and this finds who to ask.
- Lawn care or landscaping company owner: the same property managers you’d pitch for summer work need someone every winter.
- Property maintenance company owner: HOA management companies on this list run townhomes with driveways, sidewalks and private roads.
- Someone starting a snow removal business: you get a list of 255 property managers to work through in October instead of knocking on doors.
Before you start
- A Google Places API (New) key
- Local Lead Finder set up in your Google Drive
- Local Lead Finder itself
- Your region, like Minneapolis, Minnesota
- A short outreach message that says what you do and asks one question
- About an hour, ideally in October
Don’t have a Places API key yet? How to get one free. Haven’t set up the sheet? Setup takes 5 minutes.
Start with a blank sheet
This is the AREAS tab before anything runs. Empty.

In SETTINGS I typed the region, Minneapolis, Minnesota, then ran Find Leads > Find Areas.

It filled the AREAS tab with the suburbs and neighborhoods around Minneapolis: Arden Hills, Brooklyn Center, Edina, Fridley, Golden Valley, St. Louis Park, and Minneapolis neighborhoods like Dinkytown, Bryn Mawr and Powderhorn.

One thing I got wrong: Find Areas writes the first batch of areas, then keeps working in the background. I started searching when 87 areas were in the tab. A few minutes later it finished and the tab had 150. Everything below is from the 87. If you’re doing this, wait for the “Find Areas, step 4 of 4” message to finish before you search.
Who signs snow removal contracts
Two searches, one after the other.
1. Property management companies. One property manager can run dozens of buildings, apartment complexes, HOAs and office lots. One yes can be a whole route.

The sheet tells you what it’s about to spend before it runs:

2. Shopping centers. Strip malls and plazas have big lots, lots of foot traffic, and a lot of liability if the sidewalk isn’t salted by 7am.
What I found
I added a tab with a few formulas to count what came back.

255 property management companies across the Minneapolis area. That’s the main list of property management companies, from the 87 areas I searched.
“You still need to make 500 cold calls to find that one self storage facility.” (Nick Huber, Sweaty Startup)
Snow is the same game. Plenty of managers will already have someone, so you want 255 names, not 20.
Sorted by number of reviews, the biggest ones are at the top:

=QUERY('property management company (AREAS)'!A1:J256,"select A, D, E, B, J where A is not null order by E desc limit 20",1)
A few of these are HOA management companies, like Associa Minnesota and Gassen HOA Management. Townhome HOAs have driveways, sidewalks and private roads, and they hire someone every winter. Those are some of the best calls on the list.
43 of the 255 have no website listed on Google. They’re smaller, and you’ll probably get the owner on the phone.
The shopping center list needs cleaning
The “shopping center” search came back with 326 results, but not all of them are shopping centers.
- 25 are Minneapolis park buildings. A lot of Minneapolis neighborhoods share a name with a park (Audubon Park, Powderhorn, Windom Park, Linden Hills). “Shopping center in Powderhorn” returned Powderhorn Park and the Powderhorn Recreation Center, and every one of them links to minneapolisparks.org. The city plows those. Skip them.
- Some are single stores, like a T.J. Maxx or an Ace Hardware that happens to be inside a center.
To get the real ones, I kept results whose name sounds like a plaza, mall or center and dropped the park ones:
=SUMPRODUCT(REGEXMATCH('shopping center (AREAS)'!A2:A327,"(?i)center|centre|plaza|mall|square|shoppes|shops|commons|crossing|marketplace|galleria|promenade|court|village")*NOT(REGEXMATCH('shopping center (AREAS)'!I2:I327&'shopping center (AREAS)'!A2:A327,"(?i)minneapolisparks|stlouisparkmn|recreation")))
That leaves 153 plazas, malls and centers.

63 of those 153 have no phone number on Google. That’s not a dead end; it’s the point. A strip mall doesn’t answer the phone. Its property manager does. Which is why you run both searches.
One company, several lots
Last thing I checked: which websites show up on more than one shopping center.

=QUERY(QUERY({ARRAYFORMULA(IFERROR(REGEXEXTRACT('shopping center (AREAS)'!I2:I327,"https?://(?:www\.)?([^/]+)"),""))},"select Col1, count(Col1) where Col1 <> '' group by Col1"),"select * where Col2 > 1 order by Col2 desc",1)
Most of that table is noise (the park board, Facebook, a couple of chain stores). But brixmor.com shows up on 3 centers, and krausanderson.com and wellingtonmgt.com on 2 each. Those are the companies behind the plazas. One conversation with them could cover several lots.
The message
In SETTINGS there’s a WhatsApp message that gets attached to every row’s link. This is what I’d send:

Hi! I plow and salt commercial lots around Minneapolis. Do you have snow removal lined up for this winter? Happy to quote your lot this week.
Short, says what you do, asks one question. For property managers I’d change “your lot” to “your properties”.
Then work down the list. Every time you message someone, mark them Outreached. They turn green and stay green in every future search, so when you run “church” or “medical office” next week you won’t message the same company twice.
“Rejection is treasure.” (Noah Kagan, The Dollar Challenge)
Some of these will say they already have a guy. Mark them green and move to the next row.
Step by step
If I were doing this for real, here’s the order:
- Type your region in SETTINGS, run Find Leads > Find Areas, and wait for “Find Areas, step 4 of 4” to finish. Untick any areas you don’t want.
- Run Search in All AREAS for “property management company”, then again for “shopping center”.
- Clean the shopping center tab: drop park buildings and single stores, keep names that sound like a plaza, mall or center.
- Call or message the HOA managers and the property managers first. Each one is many lots.
- For the plazas with a phone number, call them directly. For the 63 without, find the manager on the plaza’s website or the sign out front. Check which websites show up on several centers; that’s the company behind them.
- Mark everyone you contact Outreached so you never message them twice.
- Add a third search for churches and medical offices. Both have lots that have to be clear on Sunday morning or before the first appointment.
- Do it in October. By December everyone already has a guy.
Common pitfalls
- Searching before Find Areas finishes: it keeps working in the background. Mine grew from 87 areas to 150 after I’d already started, so wait for “Find Areas, step 4 of 4”.
- Trusting the shopping center results as they come: neighborhoods named after parks pull in park buildings for almost any search in Minneapolis. 25 of mine linked to minneapolisparks.org; filter by website or name.
- Calling single stores: a T.J. Maxx or an Ace Hardware inside a center doesn’t sign the lot’s snow contract. Keep names that sound like a plaza, mall or center.
- Treating no phone number as a dead end: 63 of the 153 plazas had none. Find the property manager on the plaza’s website or the sign out front.
- Pitching every plaza one by one: check which websites show up on several centers first. brixmor.com was on 3, so one conversation could cover several lots.
- Forgetting to mark Outreached: if you don’t, next week’s “church” or “medical office” search won’t show you who you already messaged.
- Not watching API spend: each search is one Places API request per area, so 87 areas is 87 requests. Find Areas also used a few Google requests to find towns (27 here).
- Starting in December: commercial lots sign before the first real storm. By December everyone already has a guy.
Learn the Google Sheets formulas in this post
- 3 Ways to Count in Google Sheets: the counting behind the summary tab, like 43 property managers with no website and 63 plazas with no phone.
- How to Find Duplicates: the idea behind spotting one website on several shopping centers, which is how brixmor.com turned up.
- How To Sort A Filter: sorting a list so the most-reviewed property managers sit at the top, like the QUERY above does.
- 200 REGEXMATCH Examples in Google Sheets: the pattern matching that kept plaza, mall and center names and dropped the park buildings.
- How to Create a CRM in google sheets w/ Dashboard: a next step for tracking who you called, who said they already have a guy, and who wants a quote.
Better Sheets has hundreds more tutorials like these. If you want to get better at Google Sheets, join Better Sheets.
Other ways to use Local Lead Finder
- How to Get Landscaping Contracts: 255 Minneapolis property managers: for lawn care and landscaping companies after commercial work.
- How to Get Commercial Cleaning Contracts: property managers and plazas: for commercial cleaners and janitorial crews.
- How to Get Junk Removal Jobs: Minneapolis rental managers: for junk haulers who want move-out cleanouts every month.
- How to Get More Google Reviews for Local Businesses (side business): for reputation and local SEO freelancers looking for local clients.
All 18, grouped by who they’re for: Lead generation ideas: 18 local businesses to sell to.
FAQ
How do you get snow removal contracts?
Go to the people who sign them, before the first storm. For commercial lots that’s usually a property manager, an HOA management company or the owner of the shopping center, not someone standing in the lot. Build a list of them, send a short message that says what you do and asks one question, and start in October.
Should I pitch commercial snow removal contracts to the plaza or the property manager?
Both, but the property manager first. In this run 63 of the 153 plazas had no phone number on Google, and a few management companies (brixmor.com, krausanderson.com, wellingtonmgt.com) showed up on more than one center. One yes from a manager can be several lots.
Where can I get a list of property management companies in Minneapolis?
Run “property management company” in Local Lead Finder across the Minneapolis areas. I got 255 from 87 areas, each with name, phone, address, rating, number of reviews, Google Maps link, WhatsApp link and website. Sort by reviews to see the biggest ones first.
Why did my shopping center search return parks?
A lot of Minneapolis neighborhoods share a name with a park, so “shopping center in Powderhorn” returned Powderhorn Park and the Powderhorn Recreation Center. 25 of my 326 results were park buildings, all linking to minneapolisparks.org. Filter them out by website or name before you call anyone.
When should I start pitching snow removal contracts?
October. Commercial lots sign before the first real storm, and by December everyone already has a guy.
How much does a search cost?
Each area is one Google Places request per results page, so 87 areas was 87 requests per search, plus a few for Find Areas (27 here). You use your own Places API (New) key, and Google gives up to 1,000 searches a month free. The sheet shows the most a search could cost before it runs. How to get the key.
Is this a scraper?
No. It uses Google’s official Places API with your own key. The first run asks you to authorize the script in Google, and setup takes about 5 minutes.
Get the sheet
Local Lead Finder is $10, and free for Better Sheets lifetime members.