Google Maps Reviews Enricher
Pricing
Pay per event
Google Maps Reviews Enricher
π€ 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
Actor stats
0
Bookmarked
3
Total users
2
Monthly active users
20 days ago
Last modified
Categories
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
- π Fetch Reviews: Uses tool calling to fetch Google Maps reviews via the
web_wanderer/google-reviews-scraperActor - π― Filter by Keywords: Filters reviews containing specified keywords (case-insensitive)
- π° Cost Optimization: Limits the number of reviews analyzed per question (default: 5 reviews) to reduce LLM costs
- π€ AI Enrichment: Sends limited filtered reviews to OpenAI GPT-4o-mini LLM to answer boolean questions
- π 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 |
|---|---|---|
| outdoor | Do they have an outdoor play area? | yes/no |
| camera | Do they have security cameras for parents to view? | yes/no |
| meals | Do they provide meals or snacks? | yes/no |
π Environment Variables
Before running the Actor, you must set the following environment variable:
| Variable | Required | Description |
|---|---|---|
| OPENAI_API_KEY | β Yes | Your OpenAI API key (e.g., sk-...) |
Setting Environment Variables
- Navigate to Settings β Environment variables
- Click Add environment variable
- Set Key:
OPENAI_API_KEYand Value: Your API key - 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
| Parameter | Type | Required | Description |
|---|---|---|---|
| placeIds | array | Optional | Array of Google Maps Place IDs |
| placeUrls | array | Optional | Array of Google Maps Place URLs |
| enrichments | array | β Required | Array of enrichment objects (see below) |
| reviewsLimit | integer | Optional | Max reviews per place to fetch (default: 100, max: 1000) |
| enrichmentReviewsLimit | integer | Optional | Max reviews to analyze per enrichment (default: 5, max: 50) π° |
| debug | boolean | Optional | Enable debug logging (default: false) |
Enrichment Object Structure:
| Field | Type | Required | Description |
|---|---|---|---|
| keyword | string | β Required | Keyword to filter reviews (case-insensitive) |
| question | string | β Required | Boolean question to ask about the keyword |
| negativePattern | string | Optional | Pattern 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
| Feature | Description |
|---|---|
| π§ Tool Calling | Uses Apify tool calling to fetch reviews from trusted scraper |
| π― Keyword Filtering | Filters reviews by keywords before LLM analysis |
| π« Negative Patterns | Exclude false positives with regex patterns |
| π€ LLM Support | Uses OpenAI GPT-4o-mini model |
| β Boolean Answers | Returns yes/no answers with confidence indicators |
| πΊοΈ Multiple Places | Process multiple places in a single run |
| β Multiple Questions | Ask multiple enrichment questions per place |
| π Structured Output | Clean JSON output ready for downstream processing |
| π Secure API Keys | API keys configured via environment variables |
πΌ Use Cases
| Use Case | Description |
|---|---|
| π Business Directory Enrichment | Add structured data about amenities, services, or features |
| π Competitive Analysis | Compare features across multiple businesses |
| π Market Research | Extract specific information from customer reviews |
| π Data Pipeline Integration | Feed structured data into ML/AI pipelines |
| β Quality Assurance | Verify 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:
| Event | Description | FREE Tier | BRONZE Tier | SILVER Tier | GOLD 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-completed | Task 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-scraperActor - 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
| Setting | Use Case |
|---|---|
| 5 reviews (default) | Usually sufficient for accurate yes/no answers while minimizing costs |
| 10-15 reviews | Higher confidence for critical questions |
| 3 reviews | Processing many places/questions and want to minimize costs |
| Use negative patterns | Reduce 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
| Limitation | Description |
|---|---|
| π Keyword dependency | Requires reviews to contain relevant keywords for filtering |
| π€ LLM accuracy | Answers depend on review content quality and model accuracy |
| β±οΈ Processing time | Increases with more places and questions |
| π Scraper limits | Limited by scraper Actor availability and rate limits |
| π― False positives | LLMs may misinterpret ~5-10% of negative reviews (use negative patterns to reduce) |
π§ Troubleshooting
| Issue | Solution |
|---|---|
| π 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
| Resource | Link |
|---|---|
| π Apify SDK Documentation | docs.apify.com/sdk/python |
| π LangGraph Documentation | langchain-ai.github.io/langgraph |
| πΊοΈ Google Maps Reviews Scraper | web_wanderer/google-reviews-scraper |
| π’ Apify Platform Documentation | docs.apify.com/platform |
| π¬ Join Apify Discord Community | discord.com/invite/jyEM2PRvMU |
π License
This Actor is published on Apify Store and available for use under Apify's Terms of Service.

