Competitor monitoring agent

Public-page changes, with the exact evidence and a response topic to review.

Competitor pricing and launches change quietly. A remembered announcement is not evidence of what changed.

Built for read-only checks; verify coverage and register the daily task before treating it as running · Competitor sites · Risk: Low. Everything on this page is public; there is nothing to sign in for.

Goes inVerified pricing, changelog and blog targets; the existing vendor roster
Comes outA dated change record and a review-only topic pool
Human stepVerify coverage, review response topics and publish records
Runs onNode.js on a machine you control; daily task registration is a separate setup step

Tasks and outputs

What it takes on

Check public pages

Respects robots.txt, limits concurrency and waits between requests to the same domain.

Snapshots

Compare evidence

First fetch establishes a baseline. Failed fetches never replace a successful snapshot.

Structured changes

Propose responses

Calls Claude only when changes exist. Requires a verbatim diff quote and a strategy quote for each topic.

Review-only topics

Who it is for: Small AEO teams that need evidence-backed response topics, not another social feed.

How we use it: Built for our own monitoring workflow. The initial target list covers verified public pricing and blog pages for Profound and Peec. Changelog extraction and the remaining vendor URLs still need verification. Scheduling is not enabled by this website.

.agents/skills/competitor-watch/SKILL.mdRead-only workflow

Evidence before interpretation

01No login, captcha bypass or social monitoring.

02No change means no model call.

03New targets establish a baseline, not a launch announcement.

04No automatic publishing or gap-analysis edits.

05The public log updates only after a site deployment.

From the workflowNo live execution from this page

The rules the agent’s output is written to, from the file named above. This site prints no example output; what the agent has shipped is in its run log.

Workflow

How a run goes, step by step

Pick a step to see what goes in, what comes out, and where a person is involved.

Step 1 of 4

Fetch

Fetches only verified targets, respecting robots.txt and per-domain spacing.

Goes in

targets.json

Comes out

Normalized public content or a fetch failure

Where a person steps in

Verify URLs and extraction rules.

Step 2 of 4

Compare

Compares the latest successful snapshot before today. Keeps known entry IDs to avoid re-reporting old posts.

Goes in

Successful snapshots

Comes out

Changes with before and after evidence

Where a person steps in

Review extraction noise.

Step 3 of 4

Interpret

One tool-free Claude session reads the diff and strategy. Quotation validation rejects unsupported output.

Goes in

Diff and strategy

Comes out

Interpretations and optional response topics

Where a person steps in

Approve or drop topics.

Step 4 of 4

Record

Writes summary.md and appends deduplicated topics. The website reads the summary at build time.

Goes in

Validated evidence

Comes out

Run record and topic pool

Where a person steps in

Review, commit and deploy records. No automatic Git publishing is enabled.

Before you start

What you’ll need to bring

Company material

A positioning strategy to quote when proposing response topics.

Source material

Verified public target URLs. Missing vendors remain an explicit coverage gap.

Platform account

No competitor account. A local Claude Code login is required only for analysis.

Run environment

Node.js 22 or later. Optional Playwright. Windows Task Scheduler for daily unattended checks.

Guides and files

Set it up yourself

The setup guide, and the files the agent is built from. You run it in your own environment, with your own accounts.

Open · no account neededA read-only Node.js workflow and an optional Claude Code analysis session. No AWS resources or publishing access.
Setup guide
  1. 01

    Runtime

    • Node.js 22 or later, Git and Claude Code for changed-page analysis.
  2. 02

    Browser setup

    • HTTP is the default. Optional rendered targets use the existing Playwright installation with a fresh, unsigned-in browser.
  3. 03

    Account setup

    • No competitor accounts or credentials. Claude Code must already be signed in locally.
  4. 04

    Configuration

    • Verify target URLs, extraction rules and robots.txt before adding them. The vendor roster comes from AI Visibility.
  5. 05

    First run

    • Run into a temporary output directory, inspect the baseline and failures, then register the daily task on the scheduling machine.
Files · 4

targets.json

Config · JSON. Verified targets and outstanding coverage.

Config

fetch.mjs · diff.mjs · summarize.mjs

Scripts · Node. Public fetching, deterministic comparison and constrained interpretation.

Scripts

run.mjs

Runner · Node. Writes dated records, local snapshots and deduplicated topics.

Runner

run-competitor-watch.ps1

Scheduler · PowerShell. Daily execution with locking and local transcripts. No automatic commit or deploy.

Scheduler

Not packaged for public download yet. The guide on the left describes what each one does, step by step, so you can rebuild the setup.

Good to know

Where it stops and asks for you

  • A target fails or is blocked. Records the failure without replacing its snapshot. Three consecutive days trigger a maintenance note.
  • Analysis fails validation. Keeps the diff and reports that analysis needs attention. Does not advance changed targets.
  • Nothing changed. Writes a successful unchanged record without calling Claude.

Risk notice

What to watch for

  • Page extraction can miss content or include layout noise. Review evidence before making a competitive claim.
  • Failed pages keep the previous successful snapshot. They never count as a change.
  • Topic suggestions are not articles, endorsements or automatic publishing decisions.

FAQ

Questions about this agent

Does opening this page start a check?

No. This page reads repository records at build time. A script on the scheduling machine runs the check.