Businesses Ignoring Bad Reviews - Google Maps Reputation Leads avatar

Businesses Ignoring Bad Reviews - Google Maps Reputation Leads

Pricing

from $3.00 / 1,000 business scoreds

Go to Apify Store
Businesses Ignoring Bad Reviews - Google Maps Reputation Leads

Businesses Ignoring Bad Reviews - Google Maps Reputation Leads

From a Google Maps reviews dataset, find businesses with unanswered 1-2 star reviews, their owner reply rate, and how many 5-star reviews they need to reach the next star. Leads for reputation agencies.

Pricing

from $3.00 / 1,000 business scoreds

Rating

0.0

(0)

Developer

mohamed alaya

mohamed alaya

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a month ago

Last modified

Security

Limited permissions

Share

Give it the dataset of a Google Maps reviews scraper and it lists the businesses that leave their 1-star and 2-star reviews unanswered, with the owner reply rate, how many days the reviews have sat there, and how many 5-star reviews the business needs to reach its next half-star. Made for reputation-management agencies and review-growth freelancers who want a ready list of local businesses to pitch.

Each lead comes with a one-line pitch you can paste into a cold email.

Quick start (3 copy-paste examples)

1. See it work (empty input): run with {}. You get a labelled demo of 5 synthetic businesses (free).

2. Leads from a Google Maps reviews run: run compass/google-maps-reviews-scraper for a list of businesses (for example "dentists in Austin"), then pick its dataset:

{ "datasetId": "YOUR_DATASET_ID", "maxStars": 2, "hotLeadThreshold": 3 }

3. Only fresh problems, give owners 30 days:

{ "datasetId": "YOUR_DATASET_ID", "minDaysUnanswered": 30, "lookbackDays": 365, "minUnanswered": 2 }

Use it with (pipelines)

  • compass/crawler-google-places (with reviews switched on) -> this Actor. Place rows with title, placeId, totalScore, reviewsCount, reviewsDistribution and nested reviews[] are read directly.
  • compass/google-maps-reviews-scraper -> this Actor. Review rows with stars, text, publishedAtDate, responseFromOwnerText, title, placeId, totalScore, reviewsCount are grouped by business.
  • Then add contact details with google-maps-email-enricher and send the pitch line.

A places dataset without reviews only gives the half-star calculation (rating plus review count); the unanswered counts need review rows.

Input guide

FieldWhat it does
Google Maps datasetDataset of the scraper run (picker).
Or paste rowsJSON, JSON lines or CSV, one row per review.
Count reviews up to this many stars as badDefault 2 (1 and 2 stars).
Only return businesses with unanswered bad reviewsOn by default, so you pay only for leads.
Minimum unanswered bad reviewsDefault 1.
Hot lead from this many unanswered bad reviewsDefault 3.
Ignore bad reviews younger than (days)Do not count reviews the owner may not have seen yet.
Only look at reviews from the last (days)Restrict to recent reviews. Needs a readable date.
Maximum businessesSafety cap.

Output

FieldMeaning
business, placeId, address, category, phone, website, urlThe business, when the dataset has these.
totalScore, reviewsCount, ratingSourceRating and count (exact average from reviewsDistribution when present, otherwise the rounded totalScore).
reviewsAnalyzedReviews found in the dataset for this business.
negativeReviews, negativeUnansweredBad reviews and how many have no owner reply.
negativeResponseRatePct, overallResponseRatePctOwner reply rates among bad reviews and among all reviews in the data.
oldestUnansweredDays, avgDaysUnansweredHow long they have waited.
worstUnansweredThe lowest-rated oldest unanswered review (stars, text, age).
nextHalfStarTarget, reviewsNeededNextHalfStarThe next half-star and how many extra 5-star reviews show it on Google.
hotLeadTrue at or above the hot-lead threshold.
pitchA ready sentence for your outreach.

The half-star maths: Google shows the average rounded to one decimal, so a business shows 4.5 once its true average reaches 4.45. With average A over N reviews and target T, the number of 5-star reviews needed is ceil(((T - 0.05) x N - A x N) / (5 - (T - 0.05))).

Sample row (shortened):

{ "type": "business", "business": "Demo Dental Clinic", "totalScore": 4.2, "reviewsCount": 312, "reviewsAnalyzed": 6,
"negativeReviews": 4, "negativeUnanswered": 4, "negativeResponseRatePct": 0, "overallResponseRatePct": 33.3,
"oldestUnansweredDays": 410, "nextHalfStarTarget": 4.5, "reviewsNeededNextHalfStar": 142, "hotLead": true,
"pitch": "Demo Dental Clinic (4.2 stars from 312 reviews) has left 4 of its 4 reviews of 2 stars or less unanswered, the oldest 410 days old; it needs about 142 more 5-star reviews to show 4.5 stars." }

Price

Pay per event: $0.003 per business returned and $0.01 more for each hot lead. Businesses filtered out and the free demo are never charged. Example: 200 leads, 40 of them hot = 200 x $0.003 + 40 x $0.01 = $1.00.

FAQ

Does it scrape Google Maps? No. It reads a dataset you already have, so there is nothing to block.

Why is the response rate based on few reviews? Reviews scrapers usually return a sample (often the newest N). Rates are computed on the reviews in your dataset; each row says how many.

Can a business have replied and it still shows as unanswered? If the scraper did not capture the owner response field, replies look missing. Check one business on Google Maps before a big outreach.

Honest limits

  • Owner-reply detection uses the fields responseFromOwnerText and common alternatives. Verified against the documented field names of the popular scrapers, not against a fresh live export.
  • Review age needs publishedAtDate or an English relative date such as "2 months ago"; other languages give no age (the review is still counted).
  • If only totalScore (one decimal) is available, the half-star number can be off by a few reviews; with reviewsDistribution it is exact.
  • It finds leads, it does not contact anyone.