Weekly local lead prospecting from Google Maps into HubSpot
Every Monday at 7am, find fresh, highly-rated local businesses in your target cities and load the new ones into HubSpot, with a Slack summary for the SDR team.
Every Monday at 7am, prospect fresh local leads in my target metros and load the new ones into HubSpot.
Inputs I will configure on the workflow: a list of target rows where each row is a city plus business category (for example, "boutique fitness studios in Austin" or "Italian restaurants in Brooklyn"), the Slack channel for the SDR summary, a minimum rating (default 4.3), and a minimum review count (default 30).
For each city + category row, use the Geolocation Search Places by Text operation to pull a fresh list of matching venues in that city. For every promising result, call Geolocation Get Place Details to fetch phone, website, hours, rating, review count, and address. Skip any place that does not have a website or phone, that has fewer than the configured minimum review count, or that looks like a chain or franchise location (multiple branches under the same brand, a brand website with a store locator, or a known national chain) so the pipeline stays high-signal.
Before creating anything in HubSpot, dedupe each remaining candidate against existing contacts using the HubSpot Search Contacts operation. Match on website domain and phone number. Only candidates with no existing match should move forward.
Create the survivors with the HubSpot Batch Create Contacts operation. Use the business name as the company, set the lifecycle stage to "lead", add a custom property source = "local-prospecting", and populate phone, website, address, city, and a category property with the row's category label. Capture the new contact IDs that come back.
Finish by posting a Slack message to the configured SDR channel using the Slack Send a Message operation. The summary should show: how many new prospects were added per city, the top 3 venues by rating in each city (name, rating, review count), and a direct HubSpot link for each newly created contact so a rep can open it in one click. Also list how many candidates were filtered out as chains, low-review, or duplicates so we can tune the rules.
Trigger: cron, every Monday at 7am in my local time zone.
Additional information
What does this prompt do?
- Searches Google Maps every Monday morning for highly-rated local businesses in the cities and categories you list, like boutique fitness studios in Austin or Italian restaurants in Brooklyn.
- Pulls phone, website, hours, and rating for each venue, then filters out chains, franchises, and low-review places so only high-signal leads make it through.
- Dedupes against your existing HubSpot contacts by website and phone, creates the new ones as leads tagged with a local-prospecting source, and posts a Slack summary with counts per city and the top picks.
What do I need to use this?
- A HubSpot account where new contacts can be created and your contacts are searchable.
- A Slack workspace and the channel name where the SDR summary should land.
- A short list of target cities and the business categories you want to prospect in each.
How can I customize it?
- Change the day or time the prospecting run kicks off, or run it more than once a week.
- Edit the list of target cities and categories, the minimum rating, and the minimum review count to tighten or widen the funnel.
- Swap the Slack channel, change the lifecycle stage or source label on new contacts, or add extra HubSpot properties like city and category.
Frequently asked questions
How does it avoid creating duplicate contacts in HubSpot?
How does it skip chains and franchises?
Can I target more than one city or category at a time?
What does the Slack summary look like?
Does this work with HubSpot Free?
Stop buying stale local lead lists.
Connect Google Maps, HubSpot, and Slack once, and Geni delivers a fresh batch of high-rated prospects every Monday morning.