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.
Pricing
$0.01 per page checked = $10 per 1,000
| You are charged for | When | Price |
|---|---|---|
| Page checked | A page was checked | $0.01 |
| Weekly brief generated | A weekly brief was generated | $0.3 |
| AI signal generated | An AI signal was generated | $0.035 |
| Change detected | A change was detected | $0.015 |
| Actor Start | Charged when the Actor starts running. Number of events charged depends on Actor memory (one event per GB, minimum one event). | $0.05 |
Pay-per-event pricing: you are billed per result, not per subscription — a run that returns nothing costs nothing beyond the start fee. Billing is handled by Apify on your own account. These are the live Apify store prices, in effect since 2026-06-09, and they are what you are actually charged.
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, 'integrations' scans docs/changelog for new integrations. | 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_API_KEY environment variable; falls back to deterministic rules if absent. | 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.
Related tools in Monitors & Alerts
Other ready-to-run tools in the same category — all pay-per-use on the Apify cloud.
RFP & Tender Fit Monitor — Bid/No-Bid Scoring & Alerts
Monitor new TED, UK Find a Tender, and SAM.gov notices and get a ranked bid/no-bid fit score per tender, with deadlines, eligibility flags, and required docs.
Structured Product Price & Stock Monitor — JSON-LD / Shopify
Track product price and stock from a store's own JSON-LD/Shopify data. Get price-drop and restock events plus Slack/Discord alerts. No API key.
Google Reviews Monitor — Multi-Location Alerts & Reports
Track Google Maps reviews across all your locations. Get only-new deltas, negative-review and rating-drop alerts to Slack, plus AI summaries and reply drafts.
YouTube Channel Monitor — New Upload Tracker
Watch any YouTube channels and get only their new uploads as structured data — title, URL, views, duration, Shorts flag. Works as an upload trigger.
App Review Triage Monitor — App Store & Google Play Alerts
Auto-triage new App Store and Google Play reviews into bugs, billing, and feature requests. Cluster themes, catch rating drops, alert Slack. No code.
Where this tool sits
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 typed competitive-intelligence signals, with optional Slack/Discord/webhook alerts and a weekly AI brief.
$0.01 per page checked — plus $0.05 per run start, $0.015 per change detected, $0.035 per AI signal generated and $0.30 per weekly brief. You pay for checks and for changes that actually happen, nothing else: on a quiet week the change, AI and brief events never fire.
Why it wins
- Diffs, not dumps. It compares each page against the previous run and returns only the delta — no more eyeballing pricing tables to spot what moved.
- Typed signals. Changes come back classified (
price_change,plan_added,positioning_shift,integration_added, …) so they drop straight into a dashboard, Notion, or a standup. - Cheap to run on a schedule. With *only new since last run* enabled, quiet weeks cost pennies — change/AI/brief events only fire when there's actually news.
- "Why it matters" built in. Optional AI signals add a one-line read on each change ("moved the lowest paid tier $19 → $29 and dropped free — repositioning upmarket").
- Alerts where you work. Push a compact summary to Slack, Discord, or any webhook the moment something changes.
- MCP-ready. Callable as a tool from Claude, Cursor, or ChatGPT over the hosted Apify MCP server.
What it monitors
| Page type | What it tracks |
|---|---|
| Pricing | Tiers, prices, CTAs, plan features; added/removed plans and add-ons. |
| Changelog | Newly shipped release entries and updates. |
| Positioning | Homepage hero headline, value proposition, and primary CTA. |
| Integrations | Partners/connectors added or dropped (scans docs + changelog). |
It runs on a schedule, fetches the page types you select per competitor, compares against the last run, and emits one structured row per change. When generateAiSignals is on, a small LLM sharpens the analysis on changed pages only. When weeklyBrief is on, all moves this run are rolled into one readable digest.
Input
| Field | Type | Description |
|---|---|---|
competitors *(required)* | array of objects | Each competitor: name, plus the URLs to watch — pricingUrl, changelogUrl, homepageUrl, docsUrl. Leave a URL empty to skip that page type for that competitor. |
watch | array | Page types to track: pricing, changelog, positioning, integrations. Defaults to all four. |
onlyNewSinceLastRun | boolean | Emit only deltas instead of a full re-dump each run. Default true — this is what makes scheduled runs cheap. |
generateAiSignals | boolean | Use a small LLM to sharpen "why it matters" on changed pages only. Needs ANTHROPIC_API_KEY; falls back to deterministic rules if absent. Default true. |
weeklyBrief | boolean | Produce a Markdown/HTML brief of every move this run, stored in the Key-Value Store and linked in the dataset. Default true. |
webhookUrl | string | Slack, Discord, or generic webhook for a compact summary of new signals. Slack/Discord formatting auto-detected. |
proxyConfiguration | object | Proxy used to fetch pages. Apify Proxy recommended to avoid blocks and geo-pricing skew. |
Example input
{
"competitors": [
{
"name": "Acme",
"pricingUrl": "https://acme.com/pricing",
"changelogUrl": "https://acme.com/changelog",
"homepageUrl": "https://acme.com",
"docsUrl": ""
},
{
"name": "Globex",
"pricingUrl": "https://globex.com/pricing",
"changelogUrl": "",
"homepageUrl": "https://globex.com",
"docsUrl": ""
}
],
"watch": ["pricing", "changelog", "positioning", "integrations"],
"onlyNewSinceLastRun": true,
"generateAiSignals": true,
"weeklyBrief": true,
"webhookUrl": "https://hooks.slack.com/services/XXX/YYY/ZZZ",
"proxyConfiguration": { "useApifyProxy": true }
}
Output
Results go to the default dataset, one row per detected change — the delta, not the page. A typical row:
{
"competitor": "Acme",
"url": "https://acme.com/pricing",
"pageType": "pricing",
"signalType": "price_change",
"changeType": "modified",
"before": "Plus plan — $19/user/mo",
"after": "Plus plan — $29/user/mo",
"detectedAt": "2026-06-21T09:00:00Z",
"aiSignal": "Acme raised its lowest paid tier 53% ($19 → $29/user/mo) and dropped the free plan — repositioning upmarket."
}
Runs where nothing changed return no change rows, so the dataset only fills up when there's real news. When weeklyBrief is enabled, the digest is saved to the Key-Value Store and linked from the dataset.
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 launch monitoring runs and read the deltas back in conversation.
{
"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.
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 ~140 page-checks (~$1.40), plus $0.35 in run-start fees, a $0.30 weekly brief and a handful of change/AI events — a few dollars a week, with no seat licence and no annual contract, unlike the quote-only enterprise competitive-intelligence suites.
Every one of the five events above is the live Store price. There is no volume tier to unlock and no plan gate: the rate is the same on the free plan as on any paid one.
FAQ
How is this different from just scraping the pages? A plain scraper returns the whole page every run and leaves you to find the change. This actor diffs each page against the last run and returns only what moved, classified by signal type, with an optional AI read on why it matters.
How do I get alerts in Slack? Add your Slack incoming-webhook URL to webhookUrl. The actor posts a compact summary whenever a change is detected. Discord and generic webhooks work the same way.
Do I need an AI key? Only if you want LLM-sharpened signals. Set ANTHROPIC_API_KEY to enable them; otherwise generateAiSignals falls back to deterministic rules.
How often does it check? On whatever schedule you set in Apify — daily and weekly are common. With onlyNewSinceLastRun on, each run reports only what changed since the prior one.
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.