evexBrowseAgentsLearnDocsLeaderboard
evexthe eve agent registry
LeaderboardDocsLearneve docsllms.txt
Back to Registry

Competitor Intel Monitor

research

Watches competitor pages on a schedule and sends a scored Slack or email digest when something changes.

TOby TommyBez32 files

Install

npx shadcn@latest add @evex/competitor-intel-monitor

Full install guide: Install an Eve agent.

What is Competitor Intel Monitor?

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.

Other package managers

Prefer pnpm, yarn, or bun? Copy the matching install command.

Package manager
$npx shadcn@latest add @evex/competitor-intel-monitor
Category
research

research agents and workflows

Files
32 files

4 skill files · 5 tools

Requires
4 dependencies

@vercel/connect@^0.2.6, eve@^0.47.5, resend@^6.14.0, zod@4.3.6

Updated
Sep 8, 2026

Source-owned registry metadata

What's included

32 files4 skill files5 tools
Dependencies:@vercel/connect@^0.2.6eve@^0.47.5resend@^6.14.0zod@4.3.6

About Competitor Intel Monitor

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.

How it works

  1. On the watch-competitor-pages schedule (cron from COMPETITOR_INTEL_CRON, default 08:00 UTC), the agent loads the competitor-intel-watch skill and, before any email, the email-best-practices skill.
  2. It calls load_watch_config to read the https URL list, alert gates, store kind, and whether Slack or email is configured, and stops if COMPETITOR_INTEL_URLS or delivery settings are missing.
  3. For each listed URL it calls fetch_competitor_page, which loads that origin's robots.txt with EveCompetitorIntelMonitor/1.0 and skips the page when robots disallows the path or the robots file cannot be reached.
  4. Each successful fetch goes to diff_page_snapshot, which compares normalized text to the stored snapshot, writes the new snapshot, and returns score, changedChars, and clearsThreshold. First-seen URLs are baselines with score 0.
  5. If any row clears both COMPETITOR_INTEL_ALERT_MIN_SCORE and COMPETITOR_INTEL_ALERT_MIN_CHANGED_CHARS, the agent calls preview_digest, then send_digest with confirmSend true and an idempotency key such as competitor-intel-monitor-YYYY-MM-DD.
  6. Seven evals cover the schedule path, robots skips, below-threshold silence, digest preview, send confirmation, missing config, and a failed send that must not be reported as delivered.

Use cases

Pricing page drift

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.

Changelog without the noise

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.

Robots-respecting research crawl

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.

Team alias on a weekday cron

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.

Requirements

COMPETITOR_INTEL_URLS
Comma-separated https URLs to watch. Required unless COMPETITOR_INTEL_URLS_FILE lists at least one https URL. Non-https values are dropped.
COMPETITOR_INTEL_URLS_FILE
Optional JSON object with urls and alert, or a text file with one URL per line. Those URLs are unioned with COMPETITOR_INTEL_URLS.
COMPETITOR_INTEL_CRON
5-field cron for watch-competitor-pages. Defaults to 0 8 * * * (08:00 UTC on Vercel).
COMPETITOR_INTEL_ALERT_MIN_SCORE
Minimum score from 0 to 100. Score is round(100 * changedChars / max(beforeLength, afterLength, 1)). Defaults to 25.
COMPETITOR_INTEL_ALERT_MIN_CHANGED_CHARS
Minimum added-plus-removed character weight before a change can clear the gate. Defaults to 40.
COMPETITOR_INTEL_STORE_PATH
JSON snapshot file path. Defaults to .data/competitor-intel-store.json. Use a durable volume if the app filesystem is ephemeral.
UPSTASH_REDIS_REST_URL
Optional Upstash Redis REST URL. When set with UPSTASH_REDIS_REST_TOKEN, snapshots are stored in Redis instead of the file.
UPSTASH_REDIS_REST_TOKEN
Optional Upstash Redis REST token used with UPSTASH_REDIS_REST_URL.
COMPETITOR_INTEL_USER_AGENT
User-Agent for page and robots.txt fetches. Defaults to EveCompetitorIntelMonitor/1.0.
COMPETITOR_INTEL_SLACK_CONNECT_UID
Optional Vercel Connect Slack connector UID for the Eve Slack channel. Leave empty to skip Slack. At least one of Slack Connect or a complete email trio is required to send.
COMPETITOR_INTEL_SLACK_CHANNEL_ID
Optional Slack channel id for the digest. Leave empty to skip Slack. Both this and COMPETITOR_INTEL_SLACK_CONNECT_UID must be set to post.
@vercel/connect
Runtime dependency that supplies Slack credentials through connectSlackCredentials. send_digest posts with Eve callSlackApi after approval, not an incoming webhook.
RESEND_API_KEY
Resend API key used by send_digest when email recipients are configured. The idempotency key is forwarded to Resend.
COMPETITOR_INTEL_DIGEST_FROM
Verified Resend sender for the HTML digest. Recipients and sender cannot be overridden through tool input.
COMPETITOR_INTEL_DIGEST_TO
Comma-separated recipient addresses. Optional COMPETITOR_INTEL_DIGEST_SUBJECT defaults to Competitor intel digest.

FAQ

How do I install and run a watch?

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.

Will the first run email or Slack me?

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.

What if robots.txt blocks a URL?

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.

How is the score calculated?

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.

Can a replayed run send twice?

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.

Files this command writes

32

Core

23

Skills

4

Tools

5

npx shadcn@latest add @evex/competitor-intel-monitor
evexBrowseAgentsLearnDocsLeaderboard
Sign In
Stars24
7 installs

Related Agents

View all 22 by TommyBez →
research
219

X Hot Topic Digest

A scheduled Eve agent that scans a configured set of X (Twitter) profiles every day, surfaces hot topics from their recent posts, researches each topic with the Parallel web search API, and delivers an HTML digest by email through Resend.

TOTommyBezView →
marketing
274

Brand Visual Asset Generator

Generate brand-aligned SVG asset packs for SaaS products using Context.dev brand extraction and a Quiver Arrow SVG tool.

TOTommyBezView →
coding
266

Code Reviewer

Eve agent for GitHub PR review. Mention it on a PR for inline comments on bugs, not style.

TOTommyBezView →