Google Maps Bad Review Lead Scraper & Cold Outreach Bot
Pricing
Pay per usage
Google Maps Bad Review Lead Scraper & Cold Outreach Bot
Scrapes Google Maps businesses with recent 1-3 star reviews (1-28 days), extracts contact emails & socials from websites, and dispatches automated reputation management pitch emails.
Pricing
Pay per usage
Rating
0.0
(0)
Developer
Reputation Management
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
15 hours ago
Last modified
Categories
Share
π Google Maps Bad Review Lead Scraper & Automated Outreach Bot
Find high-intent B2B clients on Google Maps who recently received 1β3 star negative reviews, extract their verified decision-maker emails & social media, and automatically pitch reputation management & review removal services.
π‘ Why This Actor Converts Higher Than Standard Scrapers
Standard Google Maps scrapers give you thousands of random, cold businesses that have no immediate reason to buy your services.
This Actor is engineered specifically for Reputation Management Agencies, SEO Consultants, and B2B Cold Outreach Specialists:
- Trigger Event Detection: It scans reviews and isolates businesses that received a 1, 2, or 3-star review within the last 1 to 28 days.
- High Urgency: Business owners are furious and desperate to fix their rating right after getting a negative review. That is the single best time to pitch review removal or reputation repair.
- Verified Email Extraction: It crawls the business's official website (homepage,
/contact,/kontakt,/impressum,/about) to extract direct emails (info@,contact@,owner@), phone numbers, and social links (Instagram, Facebook, LinkedIn). - Automated Pitch Dispatch: Optionally sends personalized pitch emails referencing the exact reviews with direct review links, using your rotating Gmail / SMTP accounts with built-in 24-hour rate limits.
β‘ Key Features
- π Parallel Multi-Browser Engine: Runs across multiple dedicated browser windows and tabs simultaneously, processing queries 2xβ4x faster.
- π― Precision Filtering: Filter by maximum review age (e.g. past 28 days), target stars (1β3β ), and minimum bad review threshold.
- π Multilingual Review Parsing: Accurately interprets review post dates across English, German, French, Spanish, Italian, Portuguese, and Dutch (e.g., vor 3 Tagen, il y a 2 jours, hace 4 dΓas).
- π Direct Review Deep Links: Extracts direct shareable links to the exact negative reviews and embeds them into your leads dataset and pitch emails.
- π¬ Automated SMTP Rotation & Rate-Limiting: Rotate through multiple sender accounts with 24-hour sliding usage counters to safeguard your domain reputation.
- π‘οΈ Smart Anti-Deduplication: Remembers processed places in Apify Key-Value store and local
leads.csvso you never re-scrape or re-email the same company twice. - π§ͺ Dry-Run Mode: Test your queries, review extraction, and email templates safely in simulation mode before launching live campaigns.
π₯ Input Configuration
| Parameter | Type | Default | Description |
|---|---|---|---|
searchQueries | array | Swiss Queries | List of Google Maps search queries (e.g. ["Roofers in Chicago", "Dentists in London"]). |
maxPlacesPerQuery | integer | 200 | Max places to scrape per query (bot auto-scrolls to the end). |
maxBrowsers | integer | 2 | Number of parallel browser windows to run simultaneously. |
maxConcurrency | integer | 2 | Number of concurrent tabs per browser window. |
targetStars | array | [1, 2, 3] | Star ratings considered hot leads (1β , 2β , 3β ). |
maxReviewAgeDays | integer | 28 | Maximum review age in days (e.g. 28 = last 4 weeks). |
minBadReviews | integer | 1 | Minimum count of bad reviews required to qualify. |
enableEmailOutreach | boolean | true | Whether to automatically send pitch emails. |
dryRun | boolean | false | If true, simulates sending without sending real emails. |
smtpAccounts | array | Configured | Gmail or custom SMTP accounts for rotating outreach. |
senderName | string | "Reputation Management" | Sender name displayed in outreach emails. |
emailSubject | string | "Negative Review Removal..." | Outreach email subject template. Supports {{business_name}}. |
π€ Output Dataset Format
Every qualified lead is saved to the default Apify Dataset in clean, structured JSON and can be exported with 1-click to Excel, CSV, JSON, or Google Sheets:
{"businessName": "Garage Kummer","primaryEmail": "info@garage-kummer.ch","outreachStatus": "Sent","badReviewStars": "1β , 2β ","badReviewCount": 2,"latestBadReviewSnippet": "Extremely disappointing service. Car was not ready on time and unexpected charges were added...","website": "https://www.garage-kummer.ch","phone": "+41 33 222 11 00","rating": "3.8","totalReviews": "42","category": "Auto repair shop","address": "Gwattstrasse 12, 3604 Thun, Switzerland","searchQuery": "Thun Car repair shops","reviewLinks": "https://maps.app.goo.gl/example1 ; https://maps.app.goo.gl/example2","badReviewDirectLinks": ["https://maps.app.goo.gl/example1","https://maps.app.goo.gl/example2"],"placeUrl": "https://www.google.com/maps/place/Garage+Kummer...","allEmails": "info@garage-kummer.ch, service@garage-kummer.ch","allPhones": "+41 33 222 11 00","facebook": "https://facebook.com/garagekummer","instagram": "https://instagram.com/garagekummer","linkedin": "","twitter": "","discoveredAt": "2026-10-02 21:05:00"}
π Overview Table Columns in Apify Console
When viewing your dataset in the Apify Console, you'll see a formatted table with these columns:
- Business β Business name
- Email β Verified primary email address
- Outreach Status β Delivery status (
Sent,Simulated,No Email Found) - Negative Stars β Star ratings summary (e.g.
1β , 2β) - Count β Number of recent negative reviews
- Review Text β Preview snippet of the customer's complaint
- Website β Direct clickable website URL
- Phone β Verified phone number
- Rating β Current overall rating
- Query β Keyword used to find the lead
π How to Run Locally
You can run this Actor completely free on your local machine with zero Apify compute charges:
# 1. Navigate to the Actor directorycd apify-maps-review-outreach# 2. Run with visible browsers (2 parallel browsers, 2 tabs each)python run_local.py --browsers 2 --tabs 2# 3. Or run in silent background modepython run_local.py --headless --browsers 2 --tabs 2# 4. Or simply double click:run_local.bat
Results are saved to leads.csv (opens in Excel) and storage/datasets/default/.
π‘οΈ Best Practices & Deliverability
- Warmup & Limits: Default limit is 200 emails per day for Gmail. Start with 30β50/day if your email account is fresh.
- Proxy: When running large scale jobs (>500 places), enable Apify Residential Proxies to prevent Google Maps rate-limiting.
- Test First: Use
dryRun: trueon your first run to preview the leads and pitch emails.