# Reach gym owners in Miami with weak reviews

150 accounts and 150 people, about 95 verified work emails and 285 emails sent from inboxes on your own domain.

Family: [Local businesses](https://www.routergrowth.com/workflows/local-businesses.md) · HTML page: https://www.routergrowth.com/workflows/local-gyms-miami

## Give this to your agent

```text
Using RouterGrowth, run this workflow: Find gyms in Miami with Google reviews under 4 stars and email the owner. 150 accounts, 1 contact each, three-step sequence.
Show me the price before every call, and stop after each stage with a sample of the results so I can adjust.

1. Source the businesses: local.places x 8 map searches, reviews.search x 750 reviews read. Google Maps places for the category and area, with site, phone and rating.
2. Qualify on firmographics: company.enrich x 150 companies. Headcount, industry and location to keep the accounts that fit.
3. Find the people: people.search x 150 profiles. 1 contact per account by title and seniority, with current role.
4. Get the contact: contact.find x 105 (150 tried, 70% found), contact.verify x 105 verdicts. Charged on a match only: a miss is free, so the estimate is a ceiling.
5. Context for the first line: web.scrape x 150 pages. One page per account and a few recent posts per person, so the opener is about them.
6. Run the outreach: email.send x 285 (95 contacts x 3 steps). Sequence from inboxes on a domain you own, one call per email.
7. Read the replies: email.messages x 29 inbox reads. Poll the inboxes, classify replies, hand the warm ones to a human.

Before sending: email.domain x 1, email.inbox x 1, on a domain I own.

Budget for one run: about $8.43 plus $4.66 one-time setup. Run routergrowth inspect on any capability before the first call to confirm the quote.
```

## Why this works

Gym reviews are about three things: equipment, cleanliness and cancelling. An owner who sees the same one come back has a retention problem with a visible cause.

The first line, as your agent would write it:

> Several members wrote that cancelling took weeks. Do you handle that by email today?

## The workflow, stage by stage

Source the businesses → Qualify on firmographics → Find the people → Get the contact → Context for the first line → Run the outreach → Read the replies

| # | Stage | Calls | Cost |
|---|---|---|---:|
| 1 | Source the businesses | `local.places` x 8, `reviews.search` x 750 | $3.24 |
| 2 | Qualify on firmographics | `company.enrich` x 150 | $1.06 |
| 3 | Find the people | `people.search` x 150 | $0.06 |
| 4 | Get the contact | `contact.find` x 105, `contact.verify` x 105 | $2.17 |
| 5 | Context for the first line | `web.scrape` x 150 | $0.84 |
| 6 | Run the outreach | `email.send` x 285 | $1.00 |
| 7 | Read the replies | `email.messages` x 29 | $0.06 |
| + | One-time setup | `email.domain` x 1, `email.inbox` x 1 | $4.66 once |

One run: $8.43 for 1,732 calls. Assumptions: 2 contacts per account unless the brief says otherwise, 70% email find rate, 90% verification pass, 3 emails per contact, 30% LinkedIn accept rate. Prices are the catalog's at the time this page was built; `routergrowth inspect` returns the exact quote before a call.

### Source the businesses

Google Maps places for the category and area, with site, phone and rating.

### Qualify on firmographics

Headcount, industry and location to keep the accounts that fit.

### Find the people

1 contact per account by title and seniority, with current role.

### Get the contact

Charged on a match only: a miss is free, so the estimate is a ceiling.

### Context for the first line

One page per account and a few recent posts per person, so the opener is about them.

### Run the outreach

Sequence from inboxes on a domain you own, one call per email.

### Read the replies

Poll the inboxes, classify replies, hand the warm ones to a human.

## Run it from the command line

```bash
# RouterGrowth workflow: Find gyms in Miami with Google reviews under 4 stars and email the owner. 150 accounts, 1 
npm install -g routergrowth && routergrowth setup

# one-time setup
routergrowth run -c email.domain -i '{"domain":"<domain>"}'
routergrowth run -c email.inbox -i '{}'

# 01 Source the businesses  (local.places x 8, reviews.search x 750)
routergrowth run -c local.places -i '{"query":"<query>"}'
routergrowth run -c reviews.search -i '{"place":"<place>"}'

# 02 Qualify on firmographics  (company.enrich x 150)
routergrowth run -c company.enrich -i '{"domain":"<domain>"}'

# 03 Find the people  (people.search x 150)
routergrowth run -c people.search -i '{}'

# 04 Get the contact  (contact.find x 105, contact.verify x 105)
routergrowth run -c contact.find -i '{"first_name":"<first_name>","last_name":"<last_name>","company_domain":"<company_domain>"}'
routergrowth run -c contact.verify -i '{"email":"<email>"}'

# 05 Context for the first line  (web.scrape x 150)
routergrowth run -c web.scrape -i '{"url":"<url>"}'

# 06 Run the outreach  (email.send x 285)
routergrowth run -c email.send -i '{"inbox_id":"<inbox_id>","to":"<to>"}'

# 07 Read the replies  (email.messages x 29)
routergrowth run -c email.messages -i '{"inbox_id":"<inbox_id>"}'
```

## Questions

### How do I get local business leads from Google Maps?

local.places returns the businesses on Google Maps for a category and a city, with address, phone, website, rating and review count. The agent pages through the area until it has the number you asked for.

### How do I qualify a local business before contacting it?

With its reviews. reviews.search reads the recent ones for each place, so the agent can keep the businesses under a rating you set and note the complaint that comes back most often.

### How do I find the owner's email?

people.search looks for the owner or manager at the business's domain and contact.find returns a work email, charged only when one is found. Small businesses without a domain are reached through the phone number and site on the listing instead.

### Is this for agencies or for local businesses themselves?

For anyone who sells to local businesses: agencies, software vendors, suppliers. The workflow builds a list of businesses to sell to, not a list of consumers.

### What does this workflow cost to run?

About $8.43 for one run of 1,732 calls, plus $4.66 once for the sending inboxes. Each call is quoted before it runs and a lookup that finds nothing is not charged, so the figure is a ceiling. There is no subscription: the run is paid from a prepaid balance.

## Related

- [Reach law firm partners in Denver with weak reviews](https://www.routergrowth.com/workflows/local-law-firms-denver.md)
- [Reach salon owners in Los Angeles with weak reviews](https://www.routergrowth.com/workflows/local-salons-los-angeles.md)
- [Reach hotel managers in Lisbon with weak reviews](https://www.routergrowth.com/workflows/local-hotels-lisbon.md)
- [Reach plumbing companies in Houston with weak reviews](https://www.routergrowth.com/workflows/local-plumbers-houston.md)
- Guide: [Local lead generation with Google Maps listings and reviews](https://www.routergrowth.com/use-cases/local-lead-generation.md)
- Skill: [Cold email pipeline](https://www.routergrowth.com/skills/cold-email-pipeline.md)
- Skill: [Hiring-signal outbound](https://www.routergrowth.com/skills/hiring-signal-outbound.md)

Adjust the volumes and assumptions: https://www.routergrowth.com/free-gtm-tools/workflow-generator#q=Find%20gyms%20in%20Miami%20with%20Google%20reviews%20under%204%20stars%20and%20email%20the%20owner.%20150%20accounts%2C%201%20contact%20each%2C%20three-step%20sequence.
