G2 reviews
The G2 scraper targets product, reviews, and category pages on g2.com. It uses an anti-fingerprint Firefox engine to defeat DataDome, parses the JSON-LD that G2 emits per product, then paginates reviews. One dataset row per product, one per review.
Overview
- Worker
ultron-g2-reviews- Runtime
- Python, anti-fingerprint Firefox engine, headless by default
- Targets
- g2.com product, reviews, category pages
- Proxy
- Residential US (mandatory)
- Defaults
- 25 reviews per product, 4000 ms per request
- Webhook target
scraper-webhook.51ultron.com/apify
G2 is the dominant B2B SaaS review source. Pulled by competitive teardown skills, by buyer-intent enrichment, and by the discovery aggregator when a workspace lists a vendor in its brain. Output shape matches the Capterra reviews scraper so the two can be merged on product identity.
Input schema
One required field, three knobs.
Crawl flow
Three URL patterns per slug.
Output shape
Discriminated union by kind.
Anti-bot strategy
DataDome is the primary defense. Datacenter IPs hit it instantly.
| Defense | Counter |
|---|---|
| DataDome JS challenge | Anti-fingerprint Firefox runtime carries enough DOM signal to clear the challenge first try. |
| IP rotation defense | Residential US proxy. Empirically the only stable choice. |
| Rate limit per IP | 4000 ms minimum, jitter prevents pattern detection. |
| Soft 429 with empty body | Treated as the abort signal. The actor aborts at the per-IP threshold rather than burning more attempts. |
Webhook contract
Same shape as every other scraper in the fleet.
How to trigger it
From chat: the user names a vendor or a competitive set. The reviews-capture skill resolves to G2 slugs via a small lookup table and fires a single run.
From the discovery aggregator: the worker checks for new reviews against the workspace's competitor list daily and posts diffs to the brain.