← Back to Skills Marketplace
jayjjimenez

Google Reviews Pain Detector

by JayJJimenez · GitHub ↗ · v1.0.0
cross-platform ⚠ suspicious
272
Downloads
0
Stars
1
Active Installs
1
Versions
Install in OpenClaw
/install google-reviews-pain-detector
Description
Scrapes Google reviews for businesses to identify pain words related to missed calls and poor phone coverage, scoring lead quality for AI receptionist sales.
README (SKILL.md)

Google Reviews Pain Detector

Skill: google-reviews-pain-detector
Purpose: Scrape Google reviews for businesses and detect "pain words" that signal missed calls, poor phone coverage, and lost customers — hot signals for Gracie AI Receptionist leads.


What It Does

  1. Accepts a business name (+ optional address) as input
  2. Searches Google for [business name] reviews and scrapes result pages
  3. Also attempts to scrape Google Maps reviews directly
  4. Scans all review text for pain words indicating missed calls / unreachable staff
  5. Outputs: business name, matched pain words, example snippets, and a PAIN SCORE (0–10)
  6. Can run against the full Master Lead List with --list
  7. Can append HOT-tagged leads (score ≥ 3) to the Master Lead List with --save

Pain Words Detected

voicemail, no answer, hard to reach, couldn't get through, called 3 times,
never called back, missed call, didn't answer, goes to voicemail,
unanswered, unreachable, left a message

Usage

Single business

cd ~/StudioBrain/00_SYSTEM/skills/google-reviews-pain-detector
python3 detector.py "P.A.C. Plumbing Staten Island"
python3 detector.py "Victory Auto Repair" --address "3735 Victory Blvd, SI"

Full lead list scan

python3 detector.py --list

Scan + save HOT leads (score ≥ 3) back to master list

python3 detector.py --list --save

JSON output

python3 detector.py "Rafi's Auto Repair" --json
python3 detector.py --list --json

Output Example

══════════════════════════════════════════════════════
🔍 P.A.C. Plumbing, Heating & A/C
══════════════════════════════════════════════════════
📍 Address: 545 Port Richmond Ave, SI 10302
🔥 PAIN SCORE: 6/10
🎯 Pain Words Found: voicemail (3), no answer (1), never called back (1)

📋 Example Snippets:
  • "...went to voicemail every time I called after hours..."
  • "...no answer on Saturday, had to find another plumber..."
  • "...never called back after leaving a message..."

✅ HOT LEAD — Strong signal for Gracie AI Receptionist pitch

Dependencies

  • Python 3.9+
  • Scrapling skill at ~/StudioBrain/00_SYSTEM/skills/scrapling/ (with .venv)
  • No additional installs required

Files

File Purpose
SKILL.md This file
detector.py Main script
Usage Guidance
This skill appears to implement the advertised scraping and pain-word detection, but it is not self-contained: it expects a local 'scrapling' virtualenv at a hardcoded absolute path and accesses a hardcoded MASTER_LEAD_LIST file in /Users/wlc-studio/. Before installing or running: (1) Verify the scrapling dependency exists and inspect that code (StealthyFetcher can run a headless browser and bypass protections). (2) Back up the MASTER_LEAD_LIST file and confirm you want this skill to read/modify it; the metadata does not declare this required path. (3) Review the rest of detector.py (saving logic) for any network callbacks or hidden uploads (the provided file was truncated). (4) Consider running the script in a sandboxed or isolated environment to avoid large-scale scraping or unintended modifications. (5) Be aware scraping Google/Maps/Yelp may violate terms of service or trigger rate-limiting; if you only need one-off lookups, run per-business rather than --list to reduce blast radius.
Capability Analysis
Type: OpenClaw Skill Name: google-reviews-pain-detector Version: 1.0.0 The skill is a specialized lead generation tool designed to scrape and analyze business reviews from Google and Yelp to identify customer service 'pain points' (e.g., missed calls). The code in detector.py implements legitimate scraping logic using the Scrapling library and manages a local lead list in Markdown format. While it contains hardcoded absolute file paths (e.g., /Users/wlc-studio/...) and references to a future Python version (3.14), its behavior is entirely consistent with its stated purpose and lacks any indicators of malicious intent, data exfiltration, or unauthorized execution.
Capability Assessment
Purpose & Capability
Name/description (detect pain words in reviews) match the code's behavior (scrapes Google/Yelp/Maps and searches review sites). However the script depends on a local 'scrapling' virtualenv at an absolute user path and reads/writes a master lead list at a hardcoded path (/Users/wlc-studio/...). Those local path dependencies are not declared in the skill metadata (requires.env/config paths = none) and are specific to the pack author's environment.
Instruction Scope
SKILL.md instructs scanning single businesses or the full master list and saving HOT leads. The runtime instructions + code will perform headless stealth scraping of Google Search and Google Maps (via StealthyFetcher with cloudflare solving), follow external review links, and (per SKILL.md/flags) can append back to the MASTER_LEAD_LIST. That gives the skill the ability to perform bulk scraping and to read/modify a local lead file — behavior not emphasized in the metadata and potentially unexpected by users.
Install Mechanism
No install spec (instruction-only) which reduces installer risk. But the script forcibly boots a site-packages path for a local virtualenv (/Users/wlc-studio/…/scrapling/.venv/lib/python3.14/site-packages) and will exit if it can't import Scrapling. The lack of an explicit dependency declaration or a standard install step is a usability and coherence issue (the skill relies on an out-of-band local package).
Credentials
Metadata declares no required env vars or config paths, yet the code uses hardcoded filesystem locations (SCRAPLING_VENV_SITE and MASTER_LEAD_LIST) and will read and (per SKILL.md) append to that master lead list. This is a mismatch: the skill silently requires access to specific local files and directories which grant access to potentially sensitive lead data.
Persistence & Privilege
The skill does not request always:true and is user-invocable only. It does not attempt to modify other skills or system-wide configurations in the visible code. Its principal effect on the system is reading/parsing and potentially appending to the MASTER_LEAD_LIST file.
How to Use
  1. Make sure OpenClaw is installed (local or Docker)
  2. Run the install command in chat: /install google-reviews-pain-detector
  3. After installation, invoke the skill by name or use /google-reviews-pain-detector
  4. Provide required inputs per the skill's parameter spec and get structured output
Version History
v1.0.0
- Initial release of Google Reviews Pain Detector. - Scrapes Google and Google Maps reviews for a given business. - Detects key "pain words" that indicate missed calls or poor phone coverage. - Outputs pain word matches, example review snippets, and a pain score (0–10). - Supports scanning individual businesses or the full Master Lead List, with options to save hot leads and output JSON.
Metadata
Slug google-reviews-pain-detector
Version 1.0.0
License
All-time Installs 1
Active Installs 1
Total Versions 1
Frequently Asked Questions

What is Google Reviews Pain Detector?

Scrapes Google reviews for businesses to identify pain words related to missed calls and poor phone coverage, scoring lead quality for AI receptionist sales. It is an AI Agent Skill for Claude Code / OpenClaw, with 272 downloads so far.

How do I install Google Reviews Pain Detector?

Run "/install google-reviews-pain-detector" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.

Is Google Reviews Pain Detector free?

Yes, Google Reviews Pain Detector is completely free (open-source). You can download, install and use it at no cost.

Which platforms does Google Reviews Pain Detector support?

Google Reviews Pain Detector is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).

Who created Google Reviews Pain Detector?

It is built and maintained by JayJJimenez (@jayjjimenez); the current version is v1.0.0.

💬 Comments