All skills
firecrawl avatar

/firecrawl-monitor

@06e2fd5 official
by firecrawlfirecrawl/cli643 stars
110

Alert by webhook/email on web changes — use for "monitor/watch/track/alert me when": recurring checks on known URLs (prefer over repeated one-off scrapes) or web-wide watches for new results (queries + goal).

Use this Skill: https://skilld.dev/gh/firecrawl/cli/firecrawl-monitor

This session only. Nothing lands on disk.

json-tracking.md

≈650 tokens on demand. Your agent reads this file only when SKILL.md points to it.

JSON-mode change tracking (structured per-field diffs)

Reference for structured change tracking. Read from SKILL.md when the user cares about specific structured fields (price, headline, in-stock flag, items in a list) rather than whole-page markdown diffs.

By default monitors diff each page's markdown and return a unified text diff. JSON-mode change tracking returns keyed per-field diffs instead — e.g. plans[0].price: "$19/mo" → "$24/mo" — which drop straight into a Slack message, CI step, or internal tool. The CLI flags don't cover this — pass a JSON body via positional file or piped stdin:

cat > pricing-monitor.json <<'EOF'
{
  "name": "Pricing watch",
  "goal": "Alert when plan prices or headline features change.",
  "schedule": { "text": "hourly", "timezone": "UTC" },
  "targets": [{
    "type": "scrape",
    "urls": ["https://example.com/pricing"],
    "scrapeOptions": {
      "formats": [{
        "type": "changeTracking",
        "modes": ["json"],
        "prompt": "Extract pricing tiers and headline features for each plan.",
        "schema": {
          "type": "object",
          "properties": {
            "plans": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "name":     { "type": "string" },
                  "price":    { "type": "string" },
                  "features": { "type": "array", "items": { "type": "string" } }
                }
              }
            }
          }
        }
      }]
    }
  }]
}
EOF
firecrawl monitor create pricing-monitor.json
# or: cat pricing-monitor.json | firecrawl monitor create

Each changed page in the check response then carries a per-field diff plus a snapshot of the current full extraction:

{
  "url": "https://example.com/pricing",
  "status": "changed",
  "diff": {
    "json": {
      "plans[0].price": { "previous": "$19/mo", "current": "$24/mo" },
      "plans[1].features[2]": {
        "previous": "10 GB storage",
        "current": "25 GB storage"
      }
    }
  },
  "snapshot": {
    "json": {
      "plans": [
        { "name": "Pro", "price": "$49/mo", "features": ["25 GB storage"] }
      ]
    }
  }
}

Use modes: ["json", "git-diff"] for mixed mode — you get both diff.json (per-field) and diff.text (markdown sidecar), and the page is marked changed whenever either surface changed. For markdown-only monitors, diff.text holds the unified diff and diff.json is a parse-diff AST ({ files: [...] }); there is no snapshot.

Source: SKILL.md on GitHub

1 warning28d3 checks · Risk SAFE
  • Gen Agent Trust Hub28d

    This skill facilitates automated website monitoring and change detection through the Firecrawl service. It allows for the configuration of recurring web scrapes or searches with notifications delivered via webhook or email. The primary security consideration is the inherent risk of indirect prompt injection, as the tool processes and analyzes untrusted content from the public web.

  • Socket28d

    No alerts

  • Snyk28d

    Risk: MEDIUM · 1 issue

Signed by skilld at 06e2fd5. This ties the file your Agent reads to that commit on GitHub. It does not review the instructions.

Last checked against GitHub 18 hours ago.

Activeupdated last month
What it can do
Runs commands
All 2 allowed tools
Bash(firecrawl *)Bash(npx firecrawl-cli *)
  • firecrawl
  • monitoring
  • web-scraping
  • change-detection
  • webhooks
  • notifications
  • pricing-tracking
  • content-monitoring

README badge

README badge for firecrawl/cli/firecrawl-monitor

Monitors website content for changes and sends notifications via webhook or email, with AI-powered filtering to ignore formatting and tracking noise. Use this for tracking pricing changes, new job postings, docs updates, competitor sites, or any URL where you need alerts when content actually changes rather than repeated manual checks.

Generated from the current SKILL.md.

Does this work with webhook notifications or just email?
Both. Use `--webhook-url` with `--webhook-events monitor.page,monitor.check.completed` for webhooks, or `--email` for email summaries. Webhooks fire as each page finishes and after the full check is reconciled.
What's the minimum check interval?
15 minutes. Schedules can be natural-language (`every 30 minutes`, `hourly`, `daily`) or cron expressions.
How does the AI change judge decide whether a page actually changed?
You set a `--goal` in plain language (e.g. 'Alert when pricing changes'). The judge ignores formatting, whitespace, timestamps, tracking params, and unrelated page chrome, firing notifications only on substantive content changes matching your goal.
Can I monitor multiple pages in one monitor?
Yes. Use `--scrape-urls` for a comma-separated list, or `--crawl-url` to monitor every page discovered on a site. Each page in a check gets labeled `same`, `new`, `changed`, `removed`, or `error`.
Does this support structured per-field diffs instead of markdown diffs?
Yes, via JSON-mode change tracking. Pass a JSON body with a schema and extraction prompt to `monitor create`, and you'll get keyed diffs like `plans[0].price: '$19/mo' → '$24/mo'` instead of unified diff.

Generated from the current SKILL.md. These answers refresh after source changes.