Weekly competitor pricing and feature change digest in Slack

Every Monday at 9am, scan your competitors' pricing and feature pages, then post a Slack digest that calls out only the changes that actually matter.

Agentic Task
JigsawStackGoogle SheetsSlackMarketingProductResearch & MonitoringDaily DigestsNotifications & Alerts

Build me a weekly competitive intelligence digest that watches our competitors' public pricing and feature pages and tells the team what actually changed.

Trigger: a cron schedule that runs every Monday at 9am in my local timezone.

Inputs: a Google Sheet with a tab called 'Competitors'. The columns are: competitor name, page URL, page type (for example 'pricing' or 'features'), and last snapshot (a JSON blob of what we scraped last week). At the start of each run, read all rows from that tab using the Google Sheets Get Values operation.

For each row, call JigsawStack's AI Scrape Website operation on the page URL. Pass natural-language element prompts that match the page type. For pricing pages use prompts like 'plan name', 'monthly price', 'annual price', 'seat or user limit', and 'headline feature bullets per plan'. For feature pages use prompts like 'feature category', 'feature name', and 'short description'. Get back clean structured data without writing CSS selectors.

Diff the fresh scrape against the row's last snapshot. Ignore cosmetic noise (whitespace, formatting changes, bullet reordering, marketing copy rewrites that do not change meaning). Use judgement to surface only meaningful moves: price changes, new plans, changed seat or usage limits, removed features, and newly launched features.

After diffing, write the fresh snapshot back to the sheet so next week's comparison works. Use the Google Sheets Append Values operation to append the latest snapshot for each competitor (so we keep a weekly history), or update the row's snapshot column in place, your call based on what is cleaner.

Finally, post one consolidated message to a chosen Slack channel using Slack's Send a Message operation. Group the message by competitor, with a short bullet list of meaningful changes under each one and a one-sentence 'so what' line per change explaining why the team should care (for example: 'Acme raised their Pro plan from $29 to $39 and dropped the seat cap from 10 to 5, this hits their SMB positioning'). If nothing meaningful changed across any competitor, post a single line that says 'No material changes this week' so the team knows the workflow ran.

Integrations: JigsawStack (AI Scrape Website), Google Sheets (Get Values, Append Values), Slack (Send a Message). Ask me for the spreadsheet ID, the tab name if different from 'Competitors', and the destination Slack channel before you finalize the build.

Additional information

What does this prompt do?
  • Watches a list of competitor pricing and feature pages from a simple Google Sheet.
  • Uses AI to pull clean structured details like plan names, prices, seat limits, and feature bullets, without writing brittle scrapers.
  • Compares each new read against last week's snapshot, filters out cosmetic noise, and calls out only meaningful moves.
  • Posts one consolidated Slack message every Monday with a short 'so what' line per change, or a single 'no material changes this week' note when nothing moved.
What do I need to use this?
  • A JigsawStack account for AI page scraping.
  • A Google account with a 'Competitors' tab listing the pages you want to track (competitor name, page URL, page type, last snapshot).
  • A Slack workspace and the channel where the weekly digest should land.
How can I customize it?
  • Shift the schedule (weekly, daily, biweekly) or the time of day it runs.
  • Edit the competitor list in your sheet anytime, add new pages, retire old ones, no code changes needed.
  • Tell the agent which kinds of changes matter most, for example pricing only, plan limit changes, or new feature launches.
  • Switch the destination channel, or post to a private one for the leadership team.

Frequently asked questions

Do I need to know how to write scraping code?
No. You describe the fields you want in plain English (plan name, monthly price, seat limit, headline features) and the AI extracts them. There are no CSS selectors to maintain.
What if a competitor restyles their pricing page?
The AI reads the page like a human, so visual restyles do not break the workflow. That is the whole reason it is built on prompt-based scraping instead of a fixed scraper.
How does it decide what is a 'meaningful' change?
It ignores formatting and ordering differences and flags real moves: price changes, new plans or limits, removed features, and newly launched features. Each change gets a short 'so what' line.
Where does it remember last week's snapshot?
In the same Google Sheet. Every run appends the latest snapshot back to the row so next week's comparison works, and so you can audit the history yourself.
What happens if nothing changed?
You get a single 'no material changes this week' message in the channel, so the team knows the workflow ran and there is just nothing to act on.
Can I track competitors that hide pricing behind a 'Contact us' page?
Yes. The workflow will note when a pricing page no longer exposes a price, which is itself a useful signal. For deeper digging on private pages you would need a different approach.

Stop manually refreshing competitor pricing pages every Monday.

Connect JigsawStack, Google Sheets, and Slack once, and your team gets a clean weekly competitive read without anyone babysitting a tracker.