Short answer: scrape the reviews, then label each one by complaint type, praise, seriousness and whether it still needs an owner reply — and read the totals instead of the stars. Google Maps Review Classifier does the labelling step for any Google Maps reviews scraper's dataset, and adds a reply queue and a per-place summary. It costs $0.50 per 1,000 reviews, with no prompts and no LLM key.
We tried it on 10 dentists in Chicago, using the newest 50 reviews of each (500 reviews; 377 had text). The average rating was 4.45 stars. Under that average, 15.9% of the reviews with text contained a complaint, and 19 were flagged as serious.
What the stars hid
Complaint types across the 377 reviews (a review can have more than one):
| Complaint type | Reviews | Share |
|---|---|---|
| Staff | 30 | 8.0% |
| Booking | 27 | 7.2% |
| Price | 22 | 5.8% |
| Trust (claims of overtreatment or upselling) | 20 | 5.3% |
| Wait | 19 | 5.0% |
| Quality of care | 16 | 4.2% |
Praise ran the other way: staff were praised in 313 reviews (83%), quality of care in 206 (55%) and booking in 93 (25%). Sentiment was negative in 13.3% of reviews.
The 19 serious-issue alerts were all patients' claims — of misdiagnosis, overtreatment, upselling or a mistake during an extraction. One said they "insisted I needed a deep cleaning for $3k." These are claims in reviews, not established facts, but they are the ones an owner would want to see the same day.
Unanswered reviews matter more than the average
57 reviews needed an owner reply, and 34 of them were still unanswered. Overall, owners replied to 57.3% of reviews. The practices are anonymized below (A–E are five of the ten):
| Practice | Reviews | Avg. stars | With a complaint | Serious alerts | Unanswered (needs reply) | Owner reply rate | Most common complaints |
|---|---|---|---|---|---|---|---|
| A | 42 | 3.71 | 31% | 2 | 13 | 0% | wait, staff |
| B | 41 | 4.10 | 24% | 7 | 1 | 95% | trust, price |
| C | 39 | 4.18 | 26% | 1 | 9 | 8% | booking, staff |
| D | 29 | 4.45 | 24% | 2 | 0 | 97% | wait, booking |
| E | 26 | 5.00 | 0% | 0 | 0 | 100% | — |
Practice A never replied and had the lowest average. B had the most serious alerts but answered nearly everything. The last 90 days looked like the period before (complaints 15.5% vs 16.2%), so this was not a recent dip.
How to do it for your own places (5 minutes)
- Scrape the reviews. Run a Google Maps reviews scraper for the places you care about — for example Google Maps Reviews Scraper with Sort by: newest. We kept reviewer personal data off.
- Open the classifier on Apify: Google Maps Review Classifier, and pick that run's dataset.
- Optional filters and labels. Only reviews newer than 90 days, or only 1–3 stars; add up to 10 yes/no labels of your own, like "mentions parking". Skipped reviews are not charged.
-
Read the results. Open Needs a reply or download
REPLY_QUEUE.csv(unanswered reviews, lowest stars first) andREPORT_PLACES.csv(complaint and praise mix, reply rate and trend per place). - Schedule it with Apify Schedules — for example, new reviews every week.
For scale: our 500 reviews cost about $0.29 for the scraper run and $0.19 to classify the 377 with text — about $0.48 in total. Star-only ratings are skipped and not charged.
You can also ask Claude, Cursor or Claude Code through the Apify MCP server — "Which of these reviews still need a reply, and what are they about?" Setup is on the tool page.
How accurate is it?
On 100 hand-labelled English Google Maps reviews of Chicago businesses that were not used for tuning, complaint types matched 89% of the time, sentiment 98% and praise 95%. Serious-issue alerts found 10 of 10, with 1 false alarm in 93. Other languages are accepted but not yet measured, so treat them as beta. Automated labels can be wrong; check a sample before you act on one review.
Other ways, and their limits
- Read the reviews yourself. Works for one place and a few dozen reviews. It does not scale to ten places every week, and the average star rating hides the one-in-six reviews with a complaint.
- Use the platform's own review inbox. Good for replying, but it does not group complaints by type or compare places.
- Paste reviews into a chatbot. Fine for a quick read, but you maintain the prompt and turn free text back into a table yourself. This tool returns the same labels with probabilities every run.
Independent tool — not affiliated with Google or the authors of the scraper above. Practices are anonymized; review quotes are patients' claims, shown as short examples. More data tools: leoworks.kr/tools.
Top comments (1)
The per-practice table is the one that matters. A never replied and sits at the bottom; B had the most serious alerts and holds 4.10 with a 95% reply rate. Reply rate tracks the average more closely than complaint share does. That is also the part an owner can fix without any tooling: a review queue with a named owner and a fixed weekly slot, serious claims first, because those are the ones that age worst in public.