Watches competitor pages on a schedule and sends a scored Slack or email digest when something changes.
Full install guide: Install an Eve agent.
Competitor Intel Monitor is an Eve agent that fetches your URL list, diffs each page against a store, and delivers only changes that clear your alert thresholds.. It is for Eve developers doing research work. Preview every file on this page, then install with npx shadcn@latest add @evex/competitor-intel-monitor.
Scheduled competitor URL monitor that diffs pages and delivers scored Slack or email digests.
Competitor Intel Monitor is a scheduled eve agent that re-reads a list of competitor pages you already chose. On each cron tick it checks robots.txt, pulls the HTML that is allowed, and compares normalized text to the last snapshot in a JSON file or Upstash Redis. You configure the list and thresholds once, then leave it running.
You interact with it through environment variables and your inbox or Slack. Set COMPETITOR_INTEL_URLS or a JSON or text file, pick Slack, Resend, or both, and trigger watch-competitor-pages. The agent previews every digest and only sends when confirmSend is true and a date-derived idempotency key is present.
It is useful when you want a quiet baseline plus alerts that ignore tiny edits. First-seen URLs are stored without a ping. Later diffs report a score from changed character weight, and only rows that clear both gates go out. Robots disallows and missing config stop that path instead of inventing a page.
Point the watch list at two competitor pricing URLs. After the first baseline run, a later seat-price rewrite that clears the score and character gates lands in Slack or email with the excerpt from diff_page_snapshot.
Watch a public changelog. A one-word typo stays under COMPETITOR_INTEL_ALERT_MIN_CHANGED_CHARS and is stored only. A new version notes section that clears both gates is the row that gets previewed.
A competitor blocks /compare in robots.txt. fetch_competitor_page returns blockedByRobots for that path, the agent skips it, and send_digest is never called for an invented compare table.
Set COMPETITOR_INTEL_CRON to weekday mornings and COMPETITOR_INTEL_DIGEST_TO to a team alias. Operators get one Resend HTML mail with the URLs that cleared the gates, not a ping for every tiny HTML shuffle.
Install with npx shadcn@latest add @evex/competitor-intel-monitor, copy .env.example, set at least one https URL plus Slack or Resend, then POST to /eve/v1/dev/schedules/watch-competitor-pages while iterating.
No. diff_page_snapshot stores a first-seen URL as a baseline with score 0 and clearsThreshold false. Only a later run whose score and changedChars both clear the gates can call preview_digest and send_digest.
fetch_competitor_page returns blockedByRobots and skips the HTTP body. The agent records the skip, does not invent text, and does not send a digest for that URL.
changedChars is the character weight of words added or removed after HTML is stripped. score is round(100 * changedChars / max(beforeLength, afterLength, 1)), capped at 100. Both that score and minChangedChars must pass.
send_digest refuses unless confirmSend is true, and it requires a stable idempotency key. Successful sends are cached on that key and the same key is sent to Resend, so a replayed eve step does not duplicate email.
npx shadcn@latest add @evex/competitor-intel-monitor