Review site scraper
Scrape product reviews from G2, Capterra, and Trustpilot using Apify.
How to use it
- Hit Copy the whole skill.
- Claude: ⋯ → Download .md, then Customize → Skills → Add → Upload skill.
ChatGPT: make a Project and paste it into Instructions.
Neither? Paste it at the top of a new chat — it works for that chat. - Describe your job in plain words. The AI follows the skill from there.
Claude Code — installs the whole folder, not just SKILL.md
npx degit gooseworks-ai/goose-skills/skills/monitoring/capabilities/review-site-scraper#main ~/.claude/skills/review-site-scraperFor one project only, change the path to .claude/skills/review-site-scraper.
Not working?
- Check which app you pasted it into — the steps above name the right one.
- Some skills need the paid tier of Claude or ChatGPT.
Paste into Claude, ChatGPT or Cursor.
Show the full text121 lines
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://..."
}
| 1 | |
| 2 | name review-site-scraper |
| 3 | description > |
| 4 | Scrape product reviews from G2, Capterra, and Trustpilot using Apify. |
| 5 | Single script with platform dispatch. Use when you need to monitor competitor |
| 6 | reviews, track product sentiment, or gather customer feedback from review sites. |
| 7 | |
| 8 | |
| 9 | # Review Site Scraper |
| 10 | |
| 11 | Scrape product reviews from G2, Capterra, and Trustpilot using platform-specific Apify actors. |
| 12 | |
| 13 | ## Quick Start |
| 14 | |
| 15 | Requires `APIFY_API_TOKEN` env var (or `--token` flag). No external dependencies needed (uses stdlib `urllib`). |
| 16 | |
| 17 | |
| 18 | # Trustpilot reviews |
| 19 | python3 skills/capabilities/review-site-scraper/scripts/scrape_reviews.py \ |
| 20 | --platform trustpilot \ |
| 21 | --url "https://www.trustpilot.com/review/example.com" \ |
| 22 | --max-reviews 10 --output summary |
| 23 | |
| 24 | # G2 reviews with keyword filter |
| 25 | python3 skills/capabilities/review-site-scraper/scripts/scrape_reviews.py \ |
| 26 | --platform g2 \ |
| 27 | --url "https://www.g2.com/products/example/reviews" \ |
| 28 | --keywords "pricing,support" |
| 29 | |
| 30 | # Capterra reviews (uses company name, not URL) |
| 31 | python3 skills/capabilities/review-site-scraper/scripts/scrape_reviews.py \ |
| 32 | --platform capterra \ |
| 33 | --company-name "HubSpot CRM" \ |
| 34 | --max-reviews 20 |
| 35 | |
| 36 | |
| 37 | ## Supported Platforms |
| 38 | |
| 39 | | Platform | Actor | Input | Cost | |
| 40 | |----------|-------|-------|------| |
| 41 | | G2 | `focused_vanguard/g2-reviews-scraper` | `--url` (G2 product page URL) | Free tier available | |
| 42 | | Capterra | `getdataforme/capterra-reviews-scraper-bulk` | `--company-name` (company name, not a URL) | Pay-per-result | |
| 43 | | Trustpilot | `agents/trustpilot-reviews` | `--url` (Trustpilot review page URL) | ~$0.20/1k reviews | |
| 44 | |
| 45 | ## CLI Reference |
| 46 | |
| 47 | | Flag | Default | Description | |
| 48 | |------|---------|-------------| |
| 49 | | `--platform` | *required* | `g2`, `capterra`, or `trustpilot` | |
| 50 | | `--url` | none | Product review page URL (required for G2 and Trustpilot) | |
| 51 | | `--company-name` | none | Company name to search (Capterra only) | |
| 52 | | `--max-reviews` | 50 | Max reviews to scrape | |
| 53 | | `--keywords` | none | Keywords to filter (comma-separated, OR logic) | |
| 54 | | `--days` | none | Only include reviews from last N days | |
| 55 | | `--output` | json | Output format: `json` or `summary` | |
| 56 | | `--token` | env var | Apify token (prefer `APIFY_API_TOKEN` env var) | |
| 57 | | `--timeout` | 300 | Max seconds for Apify run | |
| 58 | |
| 59 | ## Normalized Output Schema |
| 60 | |
| 61 | All platforms are normalized but each has platform-specific fields. |
| 62 | |
| 63 | **G2 output fields:** |
| 64 | |
| 65 | |
| 66 | { |
| 67 | "platform": "g2", |
| 68 | "id": "review-id", |
| 69 | "product_name": "Product Name", |
| 70 | "title": null, |
| 71 | "text": "Review body text", |
| 72 | "rating": 4, |
| 73 | "author": "Reviewer Name", |
| 74 | "author_title": "Job Title", |
| 75 | "author_company": "Company Name", |
| 76 | "author_company_size": "51-200", |
| 77 | "author_industry": "Software", |
| 78 | "date": "2026-02-18", |
| 79 | "source": "organic", |
| 80 | "url": "https://..." |
| 81 | } |
| 82 | |
| 83 | |
| 84 | **Capterra output fields:** |
| 85 | |
| 86 | |
| 87 | { |
| 88 | "platform": "capterra", |
| 89 | "title": "Review title", |
| 90 | "text": "Review body text", |
| 91 | "overall_rating": 4, |
| 92 | "ease_of_use": 5, |
| 93 | "customer_service": 3, |
| 94 | "features": 4, |
| 95 | "author": "Reviewer Name", |
| 96 | "job_title": "Marketing Manager", |
| 97 | "industry": "Marketing and Advertising", |
| 98 | "usage_duration": "1-2 years", |
| 99 | "date": "2026-02-18", |
| 100 | "url": "https://..." |
| 101 | } |
| 102 | |
| 103 | |
| 104 | **Trustpilot output fields:** |
| 105 | |
| 106 | |
| 107 | { |
| 108 | "platform": "trustpilot", |
| 109 | "id": "review-id", |
| 110 | "title": "Review title", |
| 111 | "text": "Review body text", |
| 112 | "rating": 4, |
| 113 | "author": "Reviewer Name", |
| 114 | "date": "2026-02-18T12:00:00.000Z", |
| 115 | "experienced_date": "2026-02-15T00:00:00.000Z", |
| 116 | "likes": 2, |
| 117 | "input_source": "organic", |
| 118 | "url": "https://..." |
| 119 | } |
| 120 | |
| 121 |
Discussion
Alternatives
Also in Company & contact dataApollo lead finderTwo-phase Apollo.io prospecting: free People Search to discover ICP-matching leads, then selective enrichment to reveal emails/phones (credits per contact). Creates Apollo lists. Deduplicates against existing contacts by LinkedIn URL.Company contact finderFind decision-makers at a specific company using Apollo, Crustdata, Fiber, and PDL people search via Gooseworks MCP. Given a company name and target titles, returns a list of contacts with name, title, LinkedIn URL, and location.Company funding searchFind company funding history, investors, and investment detailsCompany Intelligence - Comprehensive Company ReportsFull company intelligence report - overview, team, funding, products, news