Weekly competitor website change digest in Slack
Every Monday at 8am, an agent checks each competitor's homepage and pricing page for real changes and posts a prioritized digest to your Slack channel.
Build an agent-based workflow that watches my competitors' websites every Monday at 8am (my local timezone) and posts a prioritized digest of meaningful changes to Slack.
Trigger: cron, weekly, Mondays at 8:00 AM.
Inputs the workflow should ask me to configure: the Google Sheet spreadsheet ID, the Slack channel to post the digest to, and the credentials for Context.dev, Google Sheets, and Slack Bot.
What the agent should do each run:
1. Use Google Sheets Get Values to read the full range of the tab named 'Competitors'. The header row defines columns: competitor_name, homepage_url, pricing_url, last_snapshot_markdown. Treat any row missing a homepage_url or pricing_url as skippable.
2. For each competitor row, call Context.dev Scrape Markdown twice, once on homepage_url and once on pricing_url. Concatenate the two results (clearly labeled HOMEPAGE and PRICING) to form this run's fresh snapshot. If either scrape fails or returns empty markdown, log the failure, skip this competitor for this week, and move on.
3. Compare the fresh snapshot against the last_snapshot_markdown value from the same row. The agent (not a brittle text diff) decides what is actually a meaningful change. Treat the following as MEANINGFUL: new or changed pricing tier names, prices, or plan limits; new or removed products or features; repositioned headline or value proposition; new named customer logos; new public integrations; major navigation or category changes. Treat the following as NOISE and ignore: footer copyright year, rotating testimonials, randomized social proof, marketing pixel or analytics changes, minor copy edits, reorderings that do not change meaning, and anything visible only in HTML comments or scripts. If the fresh snapshot has no meaningful change versus the previous one, skip this competitor entirely for the digest.
4. After processing all competitors, assemble a single Slack message. Format it as a short prioritized digest with a one-line header like 'Competitor watch — week of <date>'. Group by competitor (use a bold competitor name as a section heading). Under each competitor put one to three bullets of the most important changes, leading with pricing and positioning changes if they exist. Use Slack mrkdwn (single asterisks for bold, hyphen bullets), keep the whole digest scannable in under 30 seconds, and at the bottom add a one-line summary like 'Tracked N competitors, M had meaningful changes this week.' If no competitor had a meaningful change, post a single-line message saying so instead of an empty digest.
5. Post the digest to the configured Slack channel using Slack Bot Send a Message.
6. For every competitor that was successfully scraped this run (regardless of whether the change was meaningful), overwrite that row's last_snapshot_markdown cell with this run's fresh snapshot via Google Sheets Update Values, so the next run compares against the most recent version. Do not overwrite the snapshot for rows that were skipped due to scrape failure — leave their previous snapshot intact so we still have a baseline next week.
Keep the workflow resilient: one failed scrape or one failed row update must not abort the entire run. Always attempt to post the digest at the end as long as at least one competitor was processed.
Additional information
What does this prompt do?
- Watches every competitor on your list for meaningful website changes once a week, with zero manual checking.
- Reads a Google Sheet of competitors you control, so adding or removing a company is just a row edit.
- Uses an agent to separate real signal (new pricing tiers, repositioned headlines, new logos, removed products) from noise (copyright years, rotating testimonials, tracking pixels).
- Posts a single Slack digest grouped by competitor, with one to three bullets each, so your team starts Monday already briefed.
What do I need to use this?
- A Google Sheet with a tab called Competitors and one row per competitor (name, homepage URL, pricing URL).
- A Context.dev account for clean website scraping.
- A Slack workspace and a channel where the digest should land.
How can I customize it?
- Change the schedule (run daily, twice a week, or on a different day and time).
- Swap the Slack channel, or send the digest as a direct message instead.
- Tune what counts as meaningful (only flag pricing changes, only flag new customer logos, only flag homepage hero changes, etc.).
- Add extra columns to the Sheet like category or owner so the digest can be grouped or routed differently.
Frequently asked questions
How do I add or remove a competitor?
Will I get spammed with trivial changes?
What if a competitor's site is down or blocks the scrape?
Can I track more than just the homepage and pricing page?
Where does the previous snapshot live?
Stop refreshing your competitors' pricing pages.
Connect Slack, Google Sheets, and Context.dev once, and an agent watches your competitors every week so you do not have to.