SaaS Review Competitor Battlecard Miner
Pricing
Pay per usage
SaaS Review Competitor Battlecard Miner
Turn public SaaS reviews into competitor battlecards with recurring complaints, praise themes, switching triggers, and buyer language for sales teams.
Pricing
Pay per usage
Rating
0.0
(0)
Developer
Brian Keefe
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
Production-ready Apify Actor for mining public SaaS review pages or supplied HTML into review rows and battlecard/theme rows.
Public-data-only posture
- Uses public URLs and supplied HTML only.
- No login flows, no private APIs, no anti-bot bypass, no gated scraping.
- If a page returns
403or is otherwise blocked, the actor emitswarningrecords instead of retrying aggressively.
What it does
- Accepts
startUrls,reviewUrls, andhtmlInputs. - Extracts review-like rows from Capterra/GetApp-style public pages with best-effort support.
- Provides best-effort support for public G2 pages when the HTML is accessible.
- Mines battlecard rows from review text using deterministic heuristics.
Theme mining includes signals for:
- pricing and cost
- implementation and setup
- support quality
- integrations
- usability
- performance
- missing reporting, API, mobile, and customization capabilities
- competitor mentions from
competitorKeywords - quotable language
Inputs
See .actor/input_schema.json for the Apify input definition.
Main fields:
startUrls: Apify request-list style objects withurlreviewUrls: plain string URLshtmlInputs: raw HTML strings or local file pathsmaxReviews: cap the number of kept review rowsminRating/maxRating: inclusive filtersdateFrom/dateTo: ISO date filterscompetitorKeywords: names to flag as competitor mentions
Outputs
The actor pushes dataset rows with a type field:
review: extracted review rowstheme: derived battlecard/theme rowswarning: blocked pages, fetch failures, or pages with no review-like rows
Useful key-value outputs:
OUTPUT_SUMMARY: counts for reviews, themes, warnings, and sourcesOUTPUT_RECORDS_PREVIEW: first 25 emitted records
Example theme fields:
battlecardType:objection,praised_feature,missing_feature,competitor_mention, orquotethemeKeyquoteratingdatesourceUrlevidenceSnippet
Local run
Install and test:
npm installnpm test
Run the actor locally against the deterministic fixture:
mkdir -p storage/key_value_stores/defaultcp examples/sample-input.json storage/key_value_stores/default/INPUT.jsonCRAWLEE_STORAGE_DIR=./storage npm start
If you prefer a direct Node run with raw HTML or fixture paths, the smoke test already exercises the real pipeline without network access.
Example input
{"htmlInputs": ["tests/fixtures/capterra-sample.html"],"competitorKeywords": ["HubSpot", "Pipedrive"],"maxReviews": 10}
Warning records
Examples:
code: "blocked"for403public-page responsescode: "fetch_failed"for non-403 HTTP failurescode: "fetch_error"for transport/runtime failurescode: "no_reviews_found"when a page is accessible but no review-like rows match the heuristics
Buyer use cases
- Build competitor battlecards from public review evidence.
- Summarize recurring objections before sales enablement calls.
- Identify praised features to sharpen positioning.
- Flag missing capabilities buyers repeatedly ask for.
- Collect quotable customer language for messaging research.