mcpbeat

Review Site Scraper

gooseworks-ai/review-site-scraper

> Scrape product reviews from G2, Capterra, and Trustpilot using Apify. Single script with platform dispatch. Use when you need to monitor competitor reviews, track product sentiment, or gather customer feedback from review sites.

4k tokens
context cost
the whole folder, loaded on every use
3
files
ships runnable scripts
0
copies elsewhere
how many repositories repackaged it
1086
stars on the repo
on the repository, not the skill itself

Install

one command, takes just this skill from the repository
npx skills add https://github.com/gooseworks-ai/goose-skills --skill review-site-scraper

What comes with it

12 470 bytes besides the instruction
scripts/scrape_reviews.py
skill.meta.json

The instruction itself

5 sections, as written by the author

Review Site Scraper

Scrape product reviews from G2, Capterra, and Trustpilot using platform-specific Apify actors.

Quick Start

Requires APIFY_API_TOKEN env var (or --token flag). No external dependencies needed (uses stdlib urllib).

# Trustpilot reviews
python3 skills/capabilities/review-site-scraper/scripts/scrape_reviews.py \
  --platform trustpilot \
  --url "https://www.trustpilot.com/review/example.com" \
  --max-reviews 10 --output summary

# G2 reviews with keyword filter
python3 skills/capabilities/review-site-scraper/scripts/scrape_reviews.py \
  --platform g2 \
  --url "https://www.g2.com/products/example/reviews" \
  --keywords "pricing,support"

# Capterra reviews (uses company name, not URL)
python3 skills/capabilities/review-site-scraper/scripts/scrape_reviews.py \
  --platform capterra \
  --company-name "HubSpot CRM" \
  --max-reviews 20

Supported Platforms

| Platform | Actor | Input | Cost |

|----------|-------|-------|------|

| G2 | focused_vanguard/g2-reviews-scraper | --url (G2 product page URL) | Free tier available |

| Capterra | getdataforme/capterra-reviews-scraper-bulk | --company-name (company name, not a URL) | Pay-per-result |

| Trustpilot | agents/trustpilot-reviews | --url (Trustpilot review page URL) | ~$0.20/1k reviews |

CLI Reference

| Flag | Default | Description |

|------|---------|-------------|

| --platform | *required* | g2, capterra, or trustpilot |

| --url | none | Product review page URL (required for G2 and Trustpilot) |

| --company-name | none | Company name to search (Capterra only) |

| --max-reviews | 50 | Max reviews to scrape |

| --keywords | none | Keywords to filter (comma-separated, OR logic) |

| --days | none | Only include reviews from last N days |

| --output | json | Output format: json or summary |

| --token | env var | Apify token (prefer APIFY_API_TOKEN env var) |

| --timeout | 300 | Max seconds for Apify run |

Normalized Output Schema

All platforms are normalized but each has platform-specific fields.

G2 output fields:

{
  "platform": "g2",
  "id": "review-id",
  "product_name": "Product Name",
  "title": null,
  "text": "Review body text",
  "rating": 4,
  "author": "Reviewer Name",
  "author_title": "Job Title",
  "author_company": "Company Name",
  "author_company_size": "51-200",
  "author_industry": "Software",
  "date": "2026-02-18",
  "source": "organic",
  "url": "https://..."
}

Capterra output fields:

{
  "platform": "capterra",
  "title": "Review title",
  "text": "Review body text",
  "overall_rating": 4,
  "ease_of_use": 5,
  "customer_service": 3,
  "features": 4,
  "author": "Reviewer Name",
  "job_title": "Marketing Manager",
  "industry": "Marketing and Advertising",
  "usage_duration": "1-2 years",
  "date": "2026-02-18",
  "url": "https://..."
}

Trustpilot output fields:

{
  "platform": "trustpilot",
  "id": "review-id",
  "title": "Review title",
  "text": "Review body text",
  "rating": 4,
  "author": "Reviewer Name",
  "date": "2026-02-18T12:00:00.000Z",
  "experienced_date": "2026-02-15T00:00:00.000Z",
  "likes": 2,
  "input_source": "organic",
  "url": "https://..."
}

How to use it

Copy the folder

Take gooseworks-ai/review-site-scraper from the repository into ~/.claude/skills for personal use, or into .claude/skills inside a project.

Check the name does not clash

The agent identifies a skill by the name field in its header. Two skills with the same name cannot sit side by side — one of them will be ignored.