# Reach salon owners in Los Angeles with weak reviews

200 accounts and 200 people, about 126 verified work emails and 378 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-salons-los-angeles

## Give this to your agent

```text
Using RouterGrowth, run this workflow: Find hair salons in Los Angeles with Google reviews under 4 stars and email the owner. 200 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 10 map searches, reviews.search x 1,000 reviews read. Google Maps places for the category and area, with site, phone and rating.
2. Qualify on firmographics: company.enrich x 200 companies. Headcount, industry and location to keep the accounts that fit.
3. Find the people: people.search x 200 profiles. 1 contact per account by title and seniority, with current role.
4. Get the contact: contact.find x 140 (200 tried, 70% found), contact.verify x 140 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 200 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 378 (126 contacts x 3 steps). Sequence from inboxes on a domain you own, one call per email.
7. Read the replies: email.messages x 38 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 $11.23 plus $4.66 one-time setup. Run routergrowth inspect on any capability before the first call to confirm the quote.
```

## Why this works

Salon reviews turn on booking and no-shows. The owner is usually also the busiest stylist, which is why the admin slips.

The first line, as your agent would write it:

> A few clients mentioned double bookings in their reviews. Are you still taking appointments by text?

## 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 10, `reviews.search` x 1,000 | $4.32 |
| 2 | Qualify on firmographics | `company.enrich` x 200 | $1.42 |
| 3 | Find the people | `people.search` x 200 | $0.08 |
| 4 | Get the contact | `contact.find` x 140, `contact.verify` x 140 | $2.90 |
| 5 | Context for the first line | `web.scrape` x 200 | $1.12 |
| 6 | Run the outreach | `email.send` x 378 | $1.32 |
| 7 | Read the replies | `email.messages` x 38 | $0.08 |
| + | One-time setup | `email.domain` x 1, `email.inbox` x 1 | $4.66 once |

One run: $11.23 for 2,306 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 hair salons in Los Angeles with Google reviews under 4 stars and email the owner. 200
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 10, reviews.search x 1000)
routergrowth run -c local.places -i '{"query":"<query>"}'
routergrowth run -c reviews.search -i '{"place":"<place>"}'

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

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

# 04 Get the contact  (contact.find x 140, contact.verify x 140)
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 200)
routergrowth run -c web.scrape -i '{"url":"<url>"}'

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

# 07 Read the replies  (email.messages x 38)
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 $11.23 for one run of 2,306 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 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)
- [Reach roofing companies in Phoenix with weak reviews](https://www.routergrowth.com/workflows/local-roofers-phoenix.md)
- [Reach med spa owners in Dallas with weak reviews](https://www.routergrowth.com/workflows/local-med-spas-dallas.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%20hair%20salons%20in%20Los%20Angeles%20with%20Google%20reviews%20under%204%20stars%20and%20email%20the%20owner.%20200%20accounts%2C%201%20contact%20each%2C%20three-step%20sequence.
