Businesses Ignoring Bad Reviews - Google Maps Reputation Leads
Pricing
from $3.00 / 1,000 business scoreds
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
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a month ago
Last modified
Categories
Security
Limited permissionsShare
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 withtitle,placeId,totalScore,reviewsCount,reviewsDistributionand nestedreviews[]are read directly.compass/google-maps-reviews-scraper-> this Actor. Review rows withstars,text,publishedAtDate,responseFromOwnerText,title,placeId,totalScore,reviewsCountare grouped by business.- Then add contact details with
google-maps-email-enricherand 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
| Field | What it does |
|---|---|
| Google Maps dataset | Dataset of the scraper run (picker). |
| Or paste rows | JSON, JSON lines or CSV, one row per review. |
| Count reviews up to this many stars as bad | Default 2 (1 and 2 stars). |
| Only return businesses with unanswered bad reviews | On by default, so you pay only for leads. |
| Minimum unanswered bad reviews | Default 1. |
| Hot lead from this many unanswered bad reviews | Default 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 businesses | Safety cap. |
Output
| Field | Meaning |
|---|---|
business, placeId, address, category, phone, website, url | The business, when the dataset has these. |
totalScore, reviewsCount, ratingSource | Rating and count (exact average from reviewsDistribution when present, otherwise the rounded totalScore). |
reviewsAnalyzed | Reviews found in the dataset for this business. |
negativeReviews, negativeUnanswered | Bad reviews and how many have no owner reply. |
negativeResponseRatePct, overallResponseRatePct | Owner reply rates among bad reviews and among all reviews in the data. |
oldestUnansweredDays, avgDaysUnanswered | How long they have waited. |
worstUnanswered | The lowest-rated oldest unanswered review (stars, text, age). |
nextHalfStarTarget, reviewsNeededNextHalfStar | The next half-star and how many extra 5-star reviews show it on Google. |
hotLead | True at or above the hot-lead threshold. |
pitch | A 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
responseFromOwnerTextand common alternatives. Verified against the documented field names of the popular scrapers, not against a fresh live export. - Review age needs
publishedAtDateor 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; withreviewsDistributionit is exact. - It finds leads, it does not contact anyone.