Review Intelligence Analyzer - Google Reviews Sales Signals avatar

Review Intelligence Analyzer - Google Reviews Sales Signals

Pricing

from $5.00 / 1,000 analyzed places

Go to Apify Store
Review Intelligence Analyzer - Google Reviews Sales Signals

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

NanoScrape

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

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 of strongly_positive, positive, mixed, negative, strongly_negative
  • sentiment_score - a number between -1.0 and +1.0
  • complaint_themes[] - up to 5 objects {theme, frequency, sample_quote} when reviews contain recurring complaints
  • praise_themes[] - up to 5 objects with the same shape when reviews contain recurring praise
  • owner_tone - one of professional, defensive, dismissive, absent, mixed
  • red_flags[] - subset of fake_review_pattern, recent_1_star_cluster, no_owner_response, hostile_owner_response, rating_drop_recent, language_barrier
  • opportunity_signals[] - subset of ready_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_positive sentiment and empty red_flags, prioritize those with no_owner_response or recent_1_star_cluster.
  • Sharper cold email: fold complaint_themes[0].theme or an opportunity_signals value into your opener.
  • Reputation risk audits: flag agency clients whose review streams show hostile_owner_response or a rating_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:

ProviderFree tierGet a key
GeminiYes (generous)https://aistudio.google.com/app/apikey
GroqYeshttps://console.groq.com/keys
OpenRouterPay-as-you-go, cheaphttps://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.

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-2.0-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

  1. Run Google Maps Scraper with includeReviews: true to collect places and their reviews.
  2. Feed the dataset into this actor as places (or wrap each in companies for join-back).
  3. Set your Gemini key. Optionally add Groq and OpenRouter as fallbacks.
  4. Feed the output into your prioritization rules or your outbound sequencer.

Pricing

Pay-per-result via Apify Pay-Per-Event billing:

EventPriceDescription
Actor start$0.001Charged once per run when there is at least one analyzable place
Result$0.005Charged 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.

Discovery:

Enrichment:

Notes

  • Empty input is free. enrichment-start is 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.