Daily competitor review monitor for G2, Trustpilot, and Capterra

Every day at 8am, surface new G2, Trustpilot, and Capterra reviews of your competitors and post a Slack digest with the harshest takes and what they imply.

Agentic Task
ScrapingBeeGoogle SheetsSlackMarketingProductResearch & MonitoringDaily DigestsFeedback Triage

Every day at 8am, monitor my competitors' public review pages on G2, Trustpilot, and Capterra and post a Slack digest of any new reviews.

Trigger: a cron schedule that fires once per day at 8am in my local timezone.

Inputs from Google Sheets. Use Get Values on a tab called 'competitors' that lists the competitor name in column A and the review page URL in column B (one row per competitor per review site, so a single competitor can have up to three rows: G2, Trustpilot, Capterra). Use Get Values again on a tab called 'seen' that holds a running log with columns for review ID, competitor, source site, posted date, title, rating, reviewer role, body, and the agent's take.

For each competitor review URL, call ScrapingBee's Extract Data with AI to pull the most recent reviews on the page. For each review extract: a stable review ID (the URL fragment, anchor, or a hash of source + competitor + posted date + reviewer + title if no native ID is exposed), review title, star rating, body text, reviewer role or job title, and posted date. Render JavaScript and use premium proxy when needed so G2 and Capterra don't block the request.

Dedupe the scraped reviews against the IDs already in the 'seen' tab. Only the reviews whose IDs are not already logged should move forward.

For each genuinely new review, write a one to two sentence agent take that classifies the sentiment (positive, mixed, or negative) and names the single biggest praise or complaint theme (for example: onboarding friction, pricing surprise, integrations gap, support quality, performance, missing feature). Keep the take grounded in the review body, do not invent details.

Append the new reviews to the 'seen' tab with Append Values so they are not reported again tomorrow. One row per new review with all the fields above plus the agent's take.

If there is at least one new review, send a Slack message to the configured channel using Slack's Send a Message. The digest should:

  • Lead with a one-line summary of how many new reviews landed and across which competitors.

  • Highlight the most critical reviews first (lowest ratings or harshest sentiment), with competitor name, source site, star rating, a short quote, and a link to the review.

  • List notable positive reviews after the critical ones, kept brief.

  • End with a one-paragraph 'what this implies' read per competitor that ties the new reviews together into a working theory about that rival's current weaknesses.

If no genuinely new reviews are found across any competitor that day, skip the Slack post entirely. Do not send an 'all quiet today' message.

Make competitor list, source URLs, the Google Sheet ID, the Slack channel, and the run time easy to change without editing the agent instructions.

Additional information

What does this prompt do?
  • Checks the public review pages of every competitor you list once a day and pulls out any review you haven't seen before.
  • Reads each new review and writes a short take on the sentiment and the main praise or complaint behind it.
  • Posts a Slack digest that leads with the most critical reviews and ends with a one-paragraph read on what they imply about each rival's weaknesses.
  • Logs every review it finds back to your Google Sheet so the same review never appears in the digest twice.
What do I need to use this?
  • A ScrapingBee account so the workflow can render and read public review pages.
  • A Google Sheet with one tab listing the competitor review URLs you want to track and a second tab the workflow can append a running log to.
  • A Slack workspace and a channel where the morning digest should land.
How can I customize it?
  • Add or remove competitors by editing the URL list in your Google Sheet, no workflow changes needed.
  • Change the run time from 8am to whenever your team kicks off the day, or move it to weekly.
  • Point the digest at a different Slack channel, or have it skip days when no new reviews appeared (the default).

Frequently asked questions

Which review sites does this work with?
G2, Trustpilot, and Capterra out of the box. Any public review page that ScrapingBee can render works the same way, so you can mix in TrustRadius, Gartner Peer Insights, Google Reviews, or app store pages by adding their URLs to your sheet.
Do I need a paid ScrapingBee plan?
ScrapingBee's free tier is enough to try this on a small list of competitors. If you track many competitors or check several pages per competitor, you may want a paid plan to cover the daily request volume.
Will the same review ever show up in the digest twice?
No. The workflow keeps a log of every review it has already reported in your Google Sheet and dedupes against that log every morning before writing the digest.
What happens on days with no new reviews?
The workflow stays quiet. If nothing new shows up across any tracked competitor, it skips the Slack post for the day instead of pinging your team with an empty digest.
Can I get the digest in email instead of Slack?
Yes. Swap the Slack step for Gmail or Outlook when you set the workflow up and the rest of the logic stays the same.

Stop missing what customers say about your rivals.

Connect Google Sheets, ScrapingBee, and Slack once. Geni watches G2, Trustpilot, and Capterra every morning and only pings the team when something new lands.