SaaS Competitor Monitor: Pricing, Changelog & Positioning
Track competitor SaaS pricing, changelogs, and positioning changes on a schedule. Get structured deltas and Slack alerts for only what changed.
How it works
- 1Open it on Apify
Hit Run on Apify — it opens the tool in the cloud, no install.
- 2Set the inputs
Adjust
competitors,watch,onlyNewSinceLastRun(sensible defaults are pre-filled). - 3Click Run
The tool runs on Apify’s cloud and collects the data for you.
- 4Export the results
Download as JSON, CSV or Excel, or pipe straight into your app, Google Sheets, or an AI agent.
Inputs
| Field | What it does | Type |
|---|---|---|
competitors | The competitors to monitor. For each, provide a name and the URLs you want watched. Leave a URL empty to skip that page type for that competitor. | array |
watch | Which page types to monitor. 'pricing' tracks tiers/prices/CTAs/features, 'changelog' tracks release entries, 'positioning' tracks homepage hero & CTA, 'integra | array |
onlyNewSinceLastRun | Emit only the deltas (new/changed targets) instead of a full re-dump every run. This is what makes scheduled runs cheap and useful. | boolean |
generateAiSignals | Use a small LLM to sharpen the 'why it matters' analysis on each detected change. Runs ONLY on changed pages (never on unchanged ones). Requires the ANTHROPIC_A | boolean |
weeklyBrief | Produce a readable HTML/Markdown brief summarizing every competitor move this run, stored in the Key-Value Store and linked in the dataset. | boolean |
webhookUrl | Slack, Discord, or generic webhook to receive a compact summary of new signals. Slack/Discord formatting is auto-detected. | string |
What you get
A structured dataset — each result includes fields like:
change_recordscompetitorpage_typesignalsstatussync_statustarget_keyurlExport every run as JSON, CSV or Excel, or send it to your app, a database, Google Sheets, or an AI agent.
4 ready-to-run use cases
Notion & Linear Pricing Change Tracker, Weekly
Competitor pricing-page monitoring for Notion and Linear. A weekly check flags every tier, price, and CTA change so PMMs see only what moved.
Competitor Changelog Alerts to Slack on New Ships
New entries in a competitor changelog land in Slack the moment they ship. Only fresh release notes reach you, not the old backlog.
Full Competitive Watch: One Rival, Every Page
Pricing, changelog, homepage, and integrations for a single competitor in one scan. A clean starting point when you track just one company.
Weekly Competitor Brief Across Five Rivals
Every move your top five competitors made this week, pricing to homepage, packed into one Monday-standup digest. No tab-hopping required.
SaaS Competitor Monitor: Pricing, Changelog & Positioning
Track competitor SaaS pricing pages, changelogs, homepage positioning, and integrations on a schedule — and get back only what changed, as structured deltas, with optional Slack/webhook alerts and a weekly AI brief.
What it does
This actor watches your competitors' web pages and tells you when something moves. It runs on a schedule, fetches the page types you select, compares each page against the previous run, and returns only the diff — not the whole page. No more eyeballing pricing tables or skimming changelogs to spot what's new.
It monitors four page types:
- Pricing — plan names, prices, tier changes, new add-ons, removed plans.
- Changelog / release notes — newly shipped features and updates.
- Homepage positioning — headline, value proposition, and messaging changes.
- Integrations — partners and connectors added or dropped.
When a change is detected, the actor can generate an AI signal: a short summary of *why the change matters* (e.g. "Competitor moved their lowest paid tier from \$19 to \$29 and dropped the free plan — repositioning upmarket"). It can push alerts to Slack, Discord, or any webhook the moment something changes, and produce a weekly AI brief that rolls every change across every competitor into one digest.
Because it returns deltas instead of full-page dumps, the output is small, readable, and ready to drop into a dashboard, a Notion page, or a standup.
Who it's for
Product marketers (PMMs), founders, and competitive-intelligence and growth teams at SaaS companies who currently check rivals manually — or pay for expensive enterprise CI suites. If your job involves answering "what did our competitors ship / change / reprice this week?", this is built for you.
Quick start
Option A — run it on Apify (scheduled monitor)
1. Open the actor on Apify and paste in a list of competitors (company names or page URLs). 2. Choose which page types to watch. 3. Run it once to capture a baseline, then set a Schedule (daily or weekly) so each run only reports what changed since the last one. 4. (Optional) Add a webhookUrl for Slack/Discord alerts and turn on weeklyBrief.
A minimal input looks like this:
{
"competitors": [
"https://www.notion.so/pricing",
"https://linear.app/pricing"
],
"watch": ["pricing", "changelog"],
"onlyNewSinceLastRun": true,
"generateAiSignals": true,
"weeklyBrief": true,
"webhookUrl": "https://hooks.slack.com/services/XXX/YYY/ZZZ",
"proxyConfiguration": { "useApifyProxy": true }
}
Option B — connect it to Claude, Cursor, or ChatGPT (MCP)
Every Apify actor is callable as a tool over the hosted Apify MCP server (Streamable HTTP) at https://mcp.apify.com. Point your AI client at it, scope it to this actor, and your assistant can start monitoring runs and read the deltas back in conversation.
For a manual config (Claude Desktop, Cursor, VS Code), add the server with a Bearer token — your APIFY_TOKEN from console.apify.com/settings/integrations:
{
"mcpServers": {
"apify": {
"url": "https://mcp.apify.com?tools=dami_studio/saas-competitor-change-monitor",
"headers": {
"Authorization": "Bearer <APIFY_TOKEN>"
}
}
}
}
Claude Desktop and Claude.ai also support OAuth via the connector directory, so you can add Apify without pasting a token. The hosted endpoint uses Streamable HTTP — the legacy SSE transport was retired on April 1, 2026, so make sure your client is current.
Input
| Field | What it does |
|---|---|
competitors | List of companies or page URLs to watch. |
watch | Which page types to track: pricing, changelog, homepage, integrations. |
onlyNewSinceLastRun | If true, return only changes since the previous run (the diff-only mode). |
generateAiSignals | Add an AI summary explaining why each detected change matters. |
weeklyBrief | Produce a weekly digest rolling up all changes across all competitors. |
webhookUrl | Slack, Discord, or generic webhook to push alerts to on change. |
proxyConfiguration | Apify proxy settings for reliable fetching. |
Output
Each result is a structured change object — the delta, not the page. A typical row looks like:
{
"competitor": "Notion",
"url": "https://www.notion.so/pricing",
"pageType": "pricing",
"changeType": "modified",
"before": "Plus plan — $8/user/mo",
"after": "Plus plan — $10/user/mo",
"detectedAt": "2026-06-21T09:00:00Z",
"aiSignal": "Notion raised its Plus plan 25% ($8 → $10/user/mo), continuing an upmarket pricing trend."
}
Runs where nothing changed return no change rows (just the page-checked record), so your dataset stays clean and only fills up when there's actually news. The weekly brief, when enabled, is delivered as its own summary record.
Example use cases
- Weekly competitive brief across 5 rivals
- Track Notion & Linear pricing changes
- Get alerts when a competitor ships a changelog release
- Full competitive watch on a single rival
Pricing
Pay-per-event. No subscription — you pay only for what runs.
| Event | Price (USD) |
|---|---|
| Actor start | $0.05 |
| Page checked | $0.01 |
| Change detected | $0.015 |
| AI signal generated | $0.035 |
| Weekly brief generated | $0.30 |
Example: watching 5 competitors across 4 page types daily for a week is about 140 page-checks (~\$0.40), plus a \$0.30 weekly brief and a handful of change/AI events — pennies to a few dollars a week. Dedicated competitive-intelligence suites (Crayon, Klue, etc.) are quote-only and typically run into five figures a year, so this is aimed at a different, lighter use case.
FAQ
How is this different from just scraping the pages? A plain scraper returns the whole page every run, and you still have to find the change yourself. This actor diffs each page against the last run and returns only what moved — plus an optional AI signal on why it matters.
How do I get alerts in Slack? Add your Slack incoming-webhook URL to webhookUrl. The actor posts to it whenever a change is detected. Discord and generic webhooks work the same way.
How often does it check for changes? On whatever schedule you set in Apify — daily and weekly are the common choices. With onlyNewSinceLastRun enabled, each run reports only what changed since the prior one.
Can my AI assistant use this directly? Yes. Connect it through the Apify MCP server at https://mcp.apify.com and Claude, Cursor, or ChatGPT can run monitoring jobs and read the deltas back in conversation. See the Quick start above.
Will I get charged when nothing changes? You pay per page checked and per actor start, but "change detected," "AI signal," and "weekly brief" events only fire when there's something to report — so quiet weeks cost very little.