Track competitor pricing changes with a weekly page archive

By General Input

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

Integrations

  • General Input Storage
  • Slack Bot

Type

Agentic Task

Categories

  • Marketing
  • Product

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.

Related prompts

Explore more prompts
A brand asset library your marketing team actually searchesTurn Mailjet email clicks into ranked HubSpot follow-upsClean out the Looker dashboards and Looks nobody opensLiveKit live operations console for room moderationWake up dormant Keap leads with a researched reasonLiveChat coverage board for planning next week's shiftsPhone routing control panel for LiveKit voice agentsA searchable RFP answer library your bid team drafts fromLinkedIn Ads budget pacing dashboard for every client accountGive your team Looker numbers without buying more seats