Track competitor pricing changes with a weekly page archive

Every Monday, see what your competitors actually changed on their pricing and product pages, backed by an archive you can revisit any week.

Agentic Task
General Input StorageSlack BotMarketingProductResearch & MonitoringAI Reports
PromptCreate

Every Monday at 6am, check a list of competitors I give you and tell me what actually changed on their pricing and product pages since last week. I will supply the competitor names and the page addresses to watch. Treat this as a weekly competitive intelligence briefing, not a raw diff dump.

For each competitor, fetch the rendered content of every page on its list. Save each page into General Input Storage using Presign Upload, under a key shaped like competitors/acme/2026-08-30.html, where the middle segment is the competitor name slugified to lowercase with hyphens and the filename is the run date. Ask for the presigned PUT URL, then upload the bytes directly to that URL using the headers it returns, and pass the real byte size so the quota check is accurate. If a competitor has more than one page, add a page segment to the key, for example competitors/acme/pricing/2026-08-30.html, so each page keeps its own independent history.

Before comparing, use List Objects with that competitor's prefix, for example competitors/acme/, to find the most recent snapshot from before today. A store has no folders, so this returns a flat page of keys under the prefix along with a cursor. Page through the cursor when there are more results, sort the keys by the date in the filename, and pick the newest one that is not the snapshot you just wrote. Then call Presign Download on that key and fetch the URL to pull last week's content back for comparison.

Compare this week against the previous snapshot with judgment, not character by character. Marketing pages churn constantly in ways that mean nothing, so ignore changed timestamps and copyright years, rotating testimonials and customer logos, session identifiers, CSRF tokens, build hashes, cache busting query strings, tracking parameters, and reordered elements that carry the same content. Report only substantive movement: new or removed plans and tiers, price changes including annual versus monthly variants, changes to seat counts, usage limits or trial length, features added to or dropped from a plan, and shifts in positioning language such as a new headline, a changed target audience, or a reframed value proposition. Quote the before and after wording whenever you flag a change so I can judge it myself.

Post a per-competitor summary to Slack with Send a Message. Keep each one short and readable, lead with whether anything meaningful changed, and use Slack mrkdwn formatting. When a competitor did not move in any way that matters, say so plainly in one line rather than padding the message or inventing significance. On the very first run there is no earlier snapshot to compare against, so save the baseline and tell me tracking has started.

The store is what makes this work at all, because last week's snapshot has to outlive last week's run. Never delete old snapshots. They should accumulate into a history I can go back and diff against any earlier week on demand. Read the store id from the declared user-storage credential slot rather than hardcoding one. Keys cannot begin with a slash, cannot contain . or .. segments, and cap at 1024 characters, so slugify competitor names before building a key. Presigned URLs expire after 15 minutes, so mint one per use and never store one. If fetching a page fails for a single competitor, note that in that competitor's Slack message and carry on with the rest rather than failing the whole run.

What does this prompt do?

  • Saves a copy of each competitor's pricing and product pages every Monday morning, building a history that keeps growing week after week.
  • Compares this week's pages against last week's saved copy and ignores the churn that does not matter, like rotating testimonials, timestamps and tracking codes.
  • Posts one short Slack summary per competitor covering new or removed plans, price moves, added features, and shifts in how they position themselves.
  • Says so plainly when a competitor changed nothing meaningful, so a quiet week reads as quiet instead of as noise.

What do I need to use this?

  • A Slack workspace where the weekly summaries can be posted
  • General Input Storage, which comes with your account and holds the weekly snapshots
  • The list of competitors you want watched, with the pricing or product page address for each

How can I customize it?

  • Change the day and time. Monday at 6am is just the default, and a monthly cadence works the same way.
  • Add or remove competitors at any point, and point each one at whichever pages matter, pricing, product, or both.
  • Decide what counts as worth reporting. Tighten it to price changes only, or widen it to any wording change on the page.
  • Send each competitor to its own channel, or roll every competitor into a single weekly message.

FAQs

What happens on the very first run?
There is nothing to compare against yet, so the first Monday simply saves the baseline copy of each page and tells you tracking has started. From the second week onward you get real week over week comparisons.
Will this flood Slack with trivial changes?
No. Marketing pages change constantly in ways that mean nothing, such as rotating customer quotes, session identifiers, tracking parameters and timestamps. Those are filtered out, and only substantive movement like a new plan, a price change or a repositioned headline gets reported.
Can I compare against an older week, not just last week?
Yes. Every snapshot is kept and filed by competitor and date, so the archive keeps growing and you can go back and compare any two weeks whenever you want.
How many competitors can I track?
As many as you like. Each competitor gets its own place in the archive and its own summary, so adding one more is just another line on the list.
Do I need a developer to set this up?
No. You provide the competitor names and page addresses, connect Slack, and choose when it runs.

Related templates

A brand asset library your marketing team actually searches

Every logo, photo, video cut and ad export in one searchable grid, with previews, campaign tags and rights expiry dates at a glance.

General Input Storage
General Input Database
JigsawStack
+1
App
Turn Mailjet email clicks into ranked HubSpot follow-ups

Twice a day we spot the people clicking your pricing and demo pages, create a follow-up task for their owner, and post a ranked recap to Slack.

Mailjet
HubSpot
Slack Bot
Agentic Task
Clean out the Looker dashboards and Looks nobody opens

One board showing every dashboard and Look with its folder, owner and favorite count, so you can find dead content and retire it safely.

Looker
Slack Bot
App
LiveKit live operations console for room moderation

Watch every live room on one screen, remove disruptive guests, start recordings and end stuck sessions without anyone opening a terminal.

LiveKit
Slack Bot
General Input Database
App
Wake up dormant Keap leads with a researched reason

Every Monday we find leads who never bought, research a real reason to reach out, and send a short personal email instead of another check in.

Keap
Slack Bot
Agentic Task
LiveChat coverage board for planning next week's shifts

See the exact hours your chat queue backs up and customers give up waiting, then plan next week's shifts before it happens again.

LiveChat
Slack Bot
General Input Database
App

Stop checking competitor pricing pages by hand.

Get a straight answer every Monday on what actually changed, with an archive of every past week sitting behind it.