Review Intelligence Analyzer - Google Reviews Sales Signals
Pricing
from $5.00 / 1,000 analyzed places
Review Intelligence Analyzer - Google Reviews Sales Signals
Analyze a business's Google Maps reviews with an LLM and return structured intelligence a sales team can act on: overall sentiment, complaint themes, praise themes, owner-response tone, red flags and opportunity signals. Bring your own LLM key (Gemini, Groq, OpenRouter). Pay-per-result.
Pricing
from $5.00 / 1,000 analyzed places
Rating
0.0
(0)
Developer
NanoScrape
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share
Review Intelligence Analyzer
Turn a business's Google Maps reviews into structured intelligence a sales team can act on. Feed in place records with user_reviews[] populated and get back overall sentiment, complaint themes, praise themes, owner-response tone, red flags and opportunity signals. Bring your own LLM key (Gemini has a generous free tier).
Pair with the Google Maps Scraper run with includeReviews: true, and get one intelligence row per business ready to prioritize outbound.
What It Does
Given a Google Maps place record with user_reviews[] populated, the actor asks an LLM to analyze the reviews and return:
overall_sentiment- one ofstrongly_positive,positive,mixed,negative,strongly_negativesentiment_score- a number between -1.0 and +1.0complaint_themes[]- up to 5 objects{theme, frequency, sample_quote}when reviews contain recurring complaintspraise_themes[]- up to 5 objects with the same shape when reviews contain recurring praiseowner_tone- one ofprofessional,defensive,dismissive,absent,mixedred_flags[]- subset offake_review_pattern,recent_1_star_cluster,no_owner_response,hostile_owner_response,rating_drop_recent,language_barrieropportunity_signals[]- subset ofready_for_promotion,high_repeat_customer,asks_for_specific_service,seasonal_demand,underrated_gem
The LLM only references what actually appears in the reviews. Sample quotes are verbatim snippets, never paraphrased. Themes below 2 occurrences are dropped.
When To Use
- Prioritize outbound: skip businesses with
strongly_positivesentiment and emptyred_flags, prioritize those withno_owner_responseorrecent_1_star_cluster. - Sharper cold email: fold
complaint_themes[0].themeor anopportunity_signalsvalue into your opener. - Reputation risk audits: flag agency clients whose review streams show
hostile_owner_responseor arating_drop_recent. - Discovery for the "underrated gem" ICP.
Input
Two shapes are accepted and can be mixed in one run.
Flat places list (natural shape, pipe the google-maps-scraper output directly):
{"places": [{"place_id": "ChIJN1t_tDeuEmsRUsoyG83frY4","title": "Example Coffee House","category": "Coffee shop","rating": 4.6,"review_count": 1240,"complete_address": { "city": "Berlin", "country": "Germany" },"user_reviews": [{ "rating": 5, "text": "...", "published_at": "2026-05-01", "response_from_owner": null },{ "rating": 2, "text": "...", "published_at": "2026-04-15", "response_from_owner": "..." }]}],"geminiApiKey": "AIza..."}
Companies shape (with a company_id passthrough for join-back to your CRM):
{"companies": [{ "company_id": "acme-42", "place": { "place_id": "ChIJ...", "title": "Example Company", "user_reviews": [] } }],"geminiApiKey": "AIza..."}
maxReviewsSampled (default 30, min 5, max 60) caps how many reviews per place go into the LLM prompt. The sampler blends most-recent, highest-rated and lowest-rated reviews so both praise and complaint edges are represented.
LLM Configuration
You must supply at least one LLM key. All three providers are supported:
| Provider | Free tier | Get a key |
|---|---|---|
| Gemini | Yes (generous) | https://aistudio.google.com/app/apikey |
| Groq | Yes | https://console.groq.com/keys |
| OpenRouter | Pay-as-you-go, cheap | https://openrouter.ai/keys |
Set llmProvider to pick the primary, fallbackProvider and fallback2Provider for the chain. Same-provider transient errors (5xx, timeouts) get one retry. Auth and quota errors fall through to the next provider.
Model defaults may change without notice as providers retire models. Set llmModel in your input to pin a specific version. Current defaults (Aug 2026): Gemini gemini-3.6-flash, Groq openai/gpt-oss-120b, OpenRouter meta-llama/llama-3.3-70b-instruct. The actor runs a startup reachability probe against your primary provider and fails loudly with the provider error if the model is unavailable — no more silent green runs with empty output.
Output
One row per input place:
{"company_id": "acme-42","place_id": "ChIJN1t_tDeuEmsRUsoyG83frY4","name": "Example Coffee House","analyzed_at": "2026-07-21T10:30:00Z","overall_sentiment": "positive","sentiment_score": 0.62,"complaint_themes": [{ "theme": "slow service on weekends", "frequency": 3, "sample_quote": "waited 20 minutes just to order" }],"praise_themes": [{ "theme": "friendly staff", "frequency": 6, "sample_quote": "the team remembers our order" },{ "theme": "great pastries", "frequency": 4, "sample_quote": "chocolate croissant was fantastic" }],"owner_tone": "professional","red_flags": [],"opportunity_signals": ["high_repeat_customer"],"reviews_analyzed": 10,"llm_provider": "gemini","llm_model": "gemini-3.6-flash","llm_tokens_input": 1240,"llm_tokens_output": 340}
Places with no reviews or no LLM key emit a row with skip_reason set (no_reviews, no_llm_key, or llm_failed) and no billing charge. Themes and enum arrays default to [], sentiment fields to null.
How To Use It
- Run Google Maps Scraper with
includeReviews: trueto collect places and their reviews. - Feed the dataset into this actor as
places(or wrap each incompaniesfor join-back). - Set your Gemini key. Optionally add Groq and OpenRouter as fallbacks.
- Feed the output into your prioritization rules or your outbound sequencer.
Pricing
Pay-per-result via Apify Pay-Per-Event billing:
| Event | Price | Description |
|---|---|---|
| Actor start | $0.001 | Charged once per run when there is at least one analyzable place |
| Result | $0.005 | Charged once per analyzed place. Skipped places (no reviews, no key, LLM failure) are NOT billed |
Analyzing 1,000 places costs about $5. LLM API usage is billed by your provider directly, not by this actor.
Related Actors
Discovery:
- Google Maps Scraper - collect places and their reviews in bulk
Enrichment:
- AI Icebreaker Generator - one hyper-personalized cold-outreach line per place
- GBP Completeness Audit - score Google Business Profiles for lead prioritization
- Website Contact Extractor - LLM-powered people extraction from company sites
Notes
- Empty input is free.
enrichment-startis only billed when there is at least one place with analyzable reviews. - The proxy configuration field is accepted for schema consistency but is not used by this actor (LLM-only).
- Language: set
outputLanguage: "auto"to have theme labels and quotes translated back to the business's country language.
Issues & Feature Requests
If the model keeps under- or over-flagging a class of business, open an issue on the actor's Issues tab and we will look into it.