Google Maps Reviews Enricher avatar
Google Maps Reviews Enricher
Under maintenance

Pricing

Pay per event

Go to Apify Store
Google Maps Reviews Enricher

Google Maps Reviews Enricher

Under maintenance

πŸ€– AI-powered review enrichment for Google Maps. Extract yes/no answers from thousands of reviews automatically. ⚑ Save 10+ hours of manual research. 🎯 95% accuracy with smart filtering. Perfect for business directories, competitive analysis & market research. Stop reading reviews manually!

Pricing

Pay per event

Rating

0.0

(0)

Developer

Gopalakrishnan

Gopalakrishnan

Maintained by Community

Actor stats

0

Bookmarked

3

Total users

2

Monthly active users

20 days ago

Last modified

Share

πŸ—ΊοΈ Google Maps Reviews Data Enricher

An Apify Actor that enriches Google Maps reviews data using AI to answer boolean questions. This Actor fetches reviews using the Google Maps Reviews Scraper and uses LLMs to extract structured information by filtering reviews by keywords and answering yes/no questions.

✨ Perfect for enriching business directories, competitive analysis, and structured dataset creation from unstructured review text.

πŸ”§ How it works

  1. πŸ” Fetch Reviews: Uses tool calling to fetch Google Maps reviews via the web_wanderer/google-reviews-scraper Actor
  2. 🎯 Filter by Keywords: Filters reviews containing specified keywords (case-insensitive)
  3. πŸ’° Cost Optimization: Limits the number of reviews analyzed per question (default: 5 reviews) to reduce LLM costs
  4. πŸ€– AI Enrichment: Sends limited filtered reviews to OpenAI GPT-4o-mini LLM to answer boolean questions
  5. πŸ“Š Structured Output: Returns enriched data with yes/no answers for each question per place

🎯 Example Use Case: Daycare Center Enrichment

Enrich daycare center listings with amenities information:

πŸ”‘ Keyword❓ Questionβœ… Answer
outdoorDo they have an outdoor play area?yes/no
cameraDo they have security cameras for parents to view?yes/no
mealsDo they provide meals or snacks?yes/no

πŸ” Environment Variables

Before running the Actor, you must set the following environment variable:

VariableRequiredDescription
OPENAI_API_KEYβœ… YesYour OpenAI API key (e.g., sk-...)

Setting Environment Variables

  1. Navigate to Settings β†’ Environment variables
  2. Click Add environment variable
  3. Set Key: OPENAI_API_KEY and Value: Your API key
  4. Click Save

πŸ€– The Actor uses GPT-4o-mini model exclusively.

⬇️ Input

The Actor accepts the following input:

{
"placeIds": ["ChIJoTXWl8dbwokRpKA2BJFVsGA"],
"placeUrls": [],
"enrichments": [
{
"keyword": "outdoor",
"question": "Do they have an outdoor play area?"
},
{
"keyword": "camera",
"question": "Do they have security cameras for parents to view?"
},
{
"keyword": "meals",
"question": "Do they provide meals or snacks?"
}
],
"reviewsLimit": 100,
"enrichmentReviewsLimit": 5
}

Input Parameters

ParameterTypeRequiredDescription
placeIdsarrayOptionalArray of Google Maps Place IDs
placeUrlsarrayOptionalArray of Google Maps Place URLs
enrichmentsarrayβœ… RequiredArray of enrichment objects (see below)
reviewsLimitintegerOptionalMax reviews per place to fetch (default: 100, max: 1000)
enrichmentReviewsLimitintegerOptionalMax reviews to analyze per enrichment (default: 5, max: 50) πŸ’°
debugbooleanOptionalEnable debug logging (default: false)

Enrichment Object Structure:

FieldTypeRequiredDescription
keywordstringβœ… RequiredKeyword to filter reviews (case-insensitive)
questionstringβœ… RequiredBoolean question to ask about the keyword
negativePatternstringOptionalPattern to exclude false positives (e.g., "no outdoor", "lacking outdoor")

πŸ’‘ Note: You must provide either placeIds or placeUrls (or both).

🚫 Using Negative Patterns to Reduce False Positives

Negative patterns help exclude reviews that mention your keyword but in a negative context. This reduces false positives where the LLM might incorrectly answer "yes" based on complaints about missing features.

Example without negative pattern:

  • Keyword: "outdoor"
  • Question: "Do they have an outdoor play area?"
  • Problem: Reviews mentioning "no outdoor area" or "wish they had outdoor space" will be included

Example with negative pattern:

{
"keyword": "outdoor",
"question": "Do they have an outdoor play area?",
"negativePattern": "no outdoor|lacking outdoor|wish.*outdoor|need.*outdoor|missing.*outdoor|without.*outdoor"
}

This filters out reviews like:

  • ❌ "Great place but no outdoor play area"
  • ❌ "They're lacking outdoor space"
  • ❌ "Wish they had outdoor activities"

⚠️ LLM False Positive Risk: Even with keyword filtering, LLMs can misinterpret negative reviews as positive features. Using negative patterns reduces analyzed reviews from ~20 to ~5 relevant ones, improving accuracy from ~70% to ~95% for boolean questions.

⬆️ Output

The Actor outputs structured enrichment data:

{
"results": [
{
"place_id": "ChIJoTXWl8dbwokRpKA2BJFVsGA",
"place_name": "Sunshine Daycare Center",
"place_address": null,
"total_reviews": 47,
"enrichments": [
{
"keyword": "outdoor",
"question": "Do they have an outdoor play area?",
"answer": "yes",
"matching_reviews_count": 12,
"analyzed_reviews": [
"Great daycare with a large outdoor playground...",
"They have a nice outdoor area where kids can play..."
]
},
{
"keyword": "camera",
"question": "Do they have security cameras for parents to view?",
"answer": "yes",
"matching_reviews_count": 23,
"analyzed_reviews": [
"Love being able to check the cameras anytime...",
"The security camera system gives us peace of mind..."
]
}
]
}
],
"metadata": {
"processed_at": "2025-01-XX...",
"total_places": 1,
"total_enrichments": 2
}
}

✨ Features

FeatureDescription
πŸ”§ Tool CallingUses Apify tool calling to fetch reviews from trusted scraper
🎯 Keyword FilteringFilters reviews by keywords before LLM analysis
🚫 Negative PatternsExclude false positives with regex patterns
πŸ€– LLM SupportUses OpenAI GPT-4o-mini model
βœ… Boolean AnswersReturns yes/no answers with confidence indicators
πŸ—ΊοΈ Multiple PlacesProcess multiple places in a single run
❓ Multiple QuestionsAsk multiple enrichment questions per place
πŸ“Š Structured OutputClean JSON output ready for downstream processing
πŸ” Secure API KeysAPI keys configured via environment variables

πŸ’Ό Use Cases

Use CaseDescription
πŸ“‹ Business Directory EnrichmentAdd structured data about amenities, services, or features
πŸ“Š Competitive AnalysisCompare features across multiple businesses
πŸ” Market ResearchExtract specific information from customer reviews
πŸ”— Data Pipeline IntegrationFeed structured data into ML/AI pipelines
βœ“ Quality AssuranceVerify business information from customer feedback

πŸ’° Pricing Structure

This Actor uses a Pay Per Event (PPE) pricing model that automatically adjusts based on your Apify discount tier:

EventDescriptionFREE TierBRONZE TierSILVER TierGOLD Tier
actor-start-*Actor initialization$10 / 1,000
($0.01)
$8 / 1,000
($0.008)
$6 / 1,000
($0.006)
$5 / 1,000
($0.005)
enrichment-processed-*Per enrichment question$5 / 1,000
($0.005)
$4 / 1,000
($0.004)
$3 / 1,000
($0.003)
$2 / 1,000
($0.002)
task-completedTask completion$0.10$0.10$0.10$0.10

Pricing Examples

Example 1: Small run (FREE tier)

  • 1 place, 2 enrichment questions
  • Cost: $0.01 + (2 Γ— $0.005) + $0.10 = $0.12
  • Plus: User's scraper costs + User's OpenAI costs

Example 2: Medium run (BRONZE tier)

  • 10 places, 3 enrichment questions each (30 total)
  • Cost: $0.008 + (30 Γ— $0.004) + $0.10 = $0.228
  • Per place: $0.0228
  • Plus: User's scraper costs + User's OpenAI costs

Example 3: Large run (GOLD tier)

  • 100 places, 5 enrichment questions each (500 total)
  • Cost: $0.005 + (500 Γ— $0.002) + $0.10 = $1.105
  • Per place: $0.01105
  • Plus: User's scraper costs + User's OpenAI costs

Example 4: Bulk run (GOLD tier)

  • 1,000 places, 3 enrichment questions each (3,000 total)
  • Cost: $0.005 + (3,000 Γ— $0.002) + $0.10 = $6.105
  • Per place: $0.006105
  • Plus: User's scraper costs + User's OpenAI costs

Key Benefits

  • Competitive pricing: Aligned with Google Maps Scraper pricing model
  • Low per-place cost: Scales efficiently from $0.012 (small) to $0.006 (bulk) per place
  • Tiered discounts: Up to 60% savings with GOLD tier vs FREE tier
  • Transparent: User pays separately for scraper and LLM costs
  • Bulk-friendly: Per-place cost decreases significantly with volume

Additional Costs

Users are responsible for:

  • Scraper costs: Paid directly to web_wanderer/google-reviews-scraper Actor
  • LLM costs: Paid directly to OpenAI (user provides their own API key)

πŸ’‘ Additional Costs: Users are responsible for scraper costs (paid to web_wanderer/google-reviews-scraper) and LLM costs (paid to OpenAI via your API key).

πŸ“ Examples

Example 1: Daycare Center Amenities

{
"placeUrls": ["https://www.google.com/maps/place/..."],
"enrichments": [
{
"keyword": "outdoor",
"question": "Do they have an outdoor play area?",
"negativePattern": "no outdoor|lacking outdoor|wish.*outdoor|need.*outdoor"
},
{
"keyword": "camera",
"question": "Do they have security cameras for parents to view?",
"negativePattern": "no camera|no security|can't view|cannot view"
},
{
"keyword": "meals",
"question": "Do they provide meals or snacks?",
"negativePattern": "no meals|no food|bring.*food|pack.*lunch"
}
],
"enrichmentReviewsLimit": 5
}

Example 2: Restaurant Features

{
"placeIds": ["ChIJ..."],
"enrichments": [
{"keyword": "parking", "question": "Do they have parking available?"},
{"keyword": "outdoor", "question": "Do they have outdoor seating?"},
{"keyword": "vegetarian", "question": "Do they offer vegetarian options?"}
],
"reviewsLimit": 200,
"enrichmentReviewsLimit": 5
}

πŸ’‘ Cost Optimization Tips

SettingUse Case
5 reviews (default)Usually sufficient for accurate yes/no answers while minimizing costs
10-15 reviewsHigher confidence for critical questions
3 reviewsProcessing many places/questions and want to minimize costs
Use negative patternsReduce false positives and improve accuracy by 20-25%

🎯 Pro Tip: The Actor first filters reviews by keyword and negative patterns, so only relevant reviews are analyzed, maximizing cost efficiency.

⚠️ Limitations

LimitationDescription
πŸ”‘ Keyword dependencyRequires reviews to contain relevant keywords for filtering
πŸ€– LLM accuracyAnswers depend on review content quality and model accuracy
⏱️ Processing timeIncreases with more places and questions
πŸ”„ Scraper limitsLimited by scraper Actor availability and rate limits
🎯 False positivesLLMs may misinterpret ~5-10% of negative reviews (use negative patterns to reduce)

πŸ”§ Troubleshooting

IssueSolution
πŸ” No reviews foundβ€’ Verify place IDs/URLs are correct
β€’ Check if places have public reviews on Google Maps
β€’ Increase reviewsLimit if needed
πŸ€– LLM errorsβ€’ Verify OPENAI_API_KEY environment variable is set correctly
β€’ Check that API key has credits and is valid
β€’ Check OpenAI API rate limits
β€’ Verify key has access to GPT-4o-mini model
🎯 Keyword not matchingβ€’ Keywords are case-insensitive substring matches
β€’ Try variations or more common terms
β€’ Check if reviews actually mention the keyword
❌ False positivesβ€’ Add negative patterns to exclude irrelevant reviews
β€’ Use regex to catch variations (e.g., "no.*outdoor|lacking.*outdoor")

πŸ“š Resources

ResourceLink
πŸ“– Apify SDK Documentationdocs.apify.com/sdk/python
πŸ”— LangGraph Documentationlangchain-ai.github.io/langgraph
πŸ—ΊοΈ Google Maps Reviews Scraperweb_wanderer/google-reviews-scraper
🏒 Apify Platform Documentationdocs.apify.com/platform
πŸ’¬ Join Apify Discord Communitydiscord.com/invite/jyEM2PRvMU

πŸ“„ License

This Actor is published on Apify Store and available for use under Apify's Terms of Service.