Generated banner for Firecrawl Monitor
Generated logo for Firecrawl Monitor

Firecrawl Monitor

FirecrawlOfficialPublished by Firecrawl

  • Skill
  • Tool integration
  • Automation and integrations
  • ISC
  • No issues found

From the author

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).
— the description by Firecrawl

AutoGineer summary

Written by AutoGineer from the skill’s own files, not by the author

The firecrawl-monitor skill provides a structured workflow for tracking changes on specific websites or discovering new content across the web. It automates the process of fetching, diffing, and judging web content based on user-defined goals. Users can monitor individual pages, batches of URLs, entire site structures, or perform broad web searches. Notifications are delivered via email or webhooks, allowing for seamless integration into existing notification pipelines or alerting systems.

What it does

  • Monitors single pages, URL batches, or entire websites for content changes.
  • Performs web-wide searches for new results based on specific queries and goals.
  • Sends automated alerts via email or webhooks when changes or new content are detected.
  • Provides granular control over monitoring schedules and retention periods.
  • Allows for immediate manual triggering of checks for smoke-testing configurations.
  • Supports filtering of results to focus only on specific statuses like changed, new, or removed content.

When to use it

  • When you need to track updates on a website repeatedly rather than performing one-off scrapes.
  • When you want to be alerted automatically about new product launches or competitor announcements.
  • When you need to monitor documentation or specific pages for content modifications.
  • When you require a recurring, scheduled process to watch for new web search results matching a specific goal.

Advantages

  • Reduces manual effort by automating recurring web surveillance tasks.
  • Flexible notification options via email or webhooks integrate easily with other tools.
  • Supports complex monitoring modes including whole-site crawls and goal-oriented web searches.
  • Provides built-in diffing capabilities to highlight exactly what changed on a page.
  • Allows for efficient management of multiple monitors through a simple CLI interface.

Usage examples

“Monitor https://example.com/blog every 30 minutes and email me when a new post is published.”
Creates a recurring monitor that checks the blog URL and sends an email alert upon detecting new content.
“Set up a daily monitor to search the web for new competitor funding announcements.”
Configures a web-wide search monitor that runs daily and notifies the user of new results matching the specified goal.

Install

  1. Download the skill as a ZIP:

    https://autogineer.com/agent-skills/firecrawl/firecrawl-monitor/download
  2. Unzip it into the cross-client skills folder of your project:

    mkdir -p .agents/skills && unzip firecrawl-monitor.zip -d .agents/skills

Documentation by Firecrawl

firecrawl monitor

Detect when content on a website changes and get notified by webhook or email. Firecrawl handles fetching, diffing, judging, and notifying server-side. Each page in a check is labeled same, new, changed, removed, or error.

Pick a target mode by what you're watching:

ModeFlagsWatches
Single page--page <url>one URL, for changes
URL batch--scrape-urls <url,url,...>several URLs, for changes
Whole site--crawl-url <root-url>every page a crawl discovers, for changes
Web search--queries <q,...> + --goalthe whole web, for new results matching the goal

The first three watch URLs you already have. Web search runs your queries each check and alerts on results it hasn't seen before (labeled new once, same on later checks); --goal is required with --queries.

Quick start

# Single page, natural-language schedule, email alert
firecrawl monitor create --name "Blog" --schedule "every 30 minutes" \
  --goal "Alert when a new blog post is published." \
  --page https://example.com/blog \
  --email [email protected]

# Web monitor — search the whole web for NEW results matching a goal
firecrawl monitor create --name "Competitor launches" --schedule "daily at 9:00" \
  --queries "competitor product launch,competitor funding round" \
  --goal "Alert when a competitor announces a new product or raises funding." \
  --search-window 7d --max-results 20 \
  --email [email protected]

# Webhook notifications
firecrawl monitor create --name "Docs webhook" --schedule "every 30 minutes" \
  --goal "Alert when docs content changes." \
  --page https://example.com/docs \
  --webhook-url https://example.com/hook \
  --webhook-events monitor.page,monitor.check.completed

# Manage and inspect
firecrawl monitor list --limit 20
firecrawl monitor get <monitorId>
firecrawl monitor run <monitorId>             # trigger a check now
firecrawl monitor checks <monitorId>          # list all checks
firecrawl monitor check <monitorId> <checkId> --page-status changed
firecrawl monitor update <monitorId> --state paused
firecrawl monitor delete <monitorId>

Subcommands: create | list | get | update | delete | run | checks | check. Run firecrawl monitor <subcommand> --help for the full option list.

Done when: create returns a monitor ID and a smoke-test run + check confirms the expected target, state, and notification configuration.

Read goals.md when writing or refining --goal (and --queries for web monitors). Read json-tracking.md when the user cares about specific structured fields (price, headline, stock flag) and wants per-field diffs.

Constraints & tips

  • Each check uses credits for its underlying scrape, crawl, or search, plus optional judging. See Monitoring pricing.

  • Minimum schedule interval is 5 minutes. Monitoring is not available for zero-data-retention teams.

  • Prefer one monitor over repeated one-off scrapes whenever the user wants the same URL checked more than once.

  • Silence temporarily with update --state paused; reserve delete for monitors that are permanently done. (--state is an update flag; --status is the global CLI status flag.)

  • Filter check pages with --page-status changed (or new, removed, error) to skip the noise from same pages.

  • firecrawl monitor run <id> triggers a check immediately — useful for smoke-testing a monitor right after creating it.

  • --retention-days controls how long snapshots are kept for diffing. Lower it for high-frequency monitors to save storage.

  • External email recipients must opt in. First time they're added, Firecrawl sends a confirmation email and they only receive alerts after they confirm. Team-owned addresses are auto-confirmed. Once a recipient unsubscribes, they must be re-added by the owner for a fresh confirmation email.

  • On HTTP 429 / rate-limit errors, back off once: wait ~30s and retry once. If it persists, stop, report the rate limit as the blocking reason, and delete any monitors created for this task. Never retry in a loop.

  • Monitor-triggered scrapes default maxAge to 0 — every check performs a fresh scrape unless scrapeOptions.maxAge is set explicitly in a JSON payload.

See also

  • firecrawl-scrape — one-off scrape; escalate to monitor when checks become recurring

  • firecrawl-crawl — one-off crawl; pair with --crawl-url here for recurring crawl diffs

  • firecrawl — top-level workflow guide

  • firecrawl-build-scrape — building recurring checks into an app instead of running it here

Files

goals.md

Writing monitor goals and queries

Reference for authoring --goal (all monitors) and --queries (web monitors). Read from SKILL.md when creating or tuning a monitor.

Writing a good --goal

The goal is what the AI change judge uses to decide whether a page is changed vs same. Convert the user's intent into a concise 2-3 sentence goal:

  • Start with Alert when ... and state the trigger using the user's wording.

  • Restate any scope they mentioned: top N, price, role type, region, company, topic, status, or a specific entity.

  • Add an Ignore ... sentence only for intent-specific exclusions (e.g. points/comments for rankings, marketing copy for pricing, general company-page updates for job listings). The judge already handles generic noise — whitespace, casing, punctuation, encoding, formatting-only changes, request/session IDs, cache busters, tracking params, generic metadata, and unrelated page chrome — so leave those out.

  • Include only page-specific sections, entities, thresholds, exclusions, or business rules the user actually mentioned.

  • If the user is vague or asks for "any change", keep the goal broad with no exclusions. If the user mentions noise they do not care about, include that explicitly.

User saysGood goal
top 10 hackernews storiesAlert when stories enter, leave, or change rank within the Hacker News top 10. Ignore points, comments, and timestamps. Do not alert on changes outside the top 10.
pricing changesAlert when pricing information changes, including prices, plan names, billing periods, tiers, limits, or included features. Ignore unrelated marketing copy.
new engineering rolesAlert when a new engineering role is posted. Ignore general company-page updates unless they add, remove, or change an engineering role.
track this pageAlert when substantive visible content on this page changes.
any changeAlert when any visible page content changes, including copy, numbers, timestamps, counters, links, and layout text.

Writing good --queries (web monitors)

For a web monitor, queries control recall (what the search retrieves) and the goal controls precision (which results alert). Tune both — a perfect goal can't alert on a result the queries never pulled in, and broad queries with a vague goal produce constant low-value alerts.

  • Write keywords, not sentences: OpenAI new model release, not tell me when OpenAI releases a new model.

  • Quote multi-word entities ("Llama 4"); group synonyms with OR (launch OR release OR announcement).

  • Keep each query tight (~2–6 terms). One broad query usually beats several narrow ones — extra queries split the --max-results budget without adding coverage.

  • One query per distinct subject. Several facets of one subject = one query; only split for genuinely separate entities (e.g. "OpenAI, Anthropic, and Google").

  • Restrict or exclude sources with --include-domains / --exclude-domains rather than site: operators in queries.

  • --search-window sets recency — 5m, 15m, 1h, 6h, 24h, 7d (default 24h). Widen it for niche topics that don't publish often.

  • --max-results caps results per query, 1–50 (default 10).

firecrawl monitor create --name "AI model releases" --schedule "daily at 9:00" \
  --queries "new AI model release,frontier model launch" \
  --goal "Alert when a major lab releases a new AI model. Ignore tutorials and listicles." \
  --search-window 7d --max-results 20 \
  --webhook-url https://example.com/hook

What good looks like: a healthy web monitor mostly returns new: 0 and alerts only on genuinely new, on-goal results. If many retrieved results are off-goal, the queries pull noise the goal rejects — tighten the queries. If a topic returns nothing for long stretches, the queries are too narrow or --search-window too tight — broaden them. If the user dismisses alerts, the goal is too broad — add an intent-specific Ignore .... The aim is high precision with enough recall: every alert worth acting on, nothing real missed.

Requirements and compatibility

Works with: Claude Code, Claude apps, OpenAI Codex, GitHub Copilot, Cursor, Gemini CLI, Kiro, OpenCode, Goose, Amp, Roo Code, JetBrains Junie, Factory Droid, Devin (ex-Windsurf), Mistral Vibe, OpenHands, Letta

“Works with” means the tool reads the open Agent Skills format; a skill written for one tool may use features others lack.

Needs: Declares allowed tools

Security

No issues found by our static scan· No issues found

A static scan is not a guarantee. Skills are third-party content: review a skill before you let an agent use it.

Attribution and licence

Published by
Firecrawl
Publisher
Firecrawl (Official)
Source
firecrawl/skills · skills/core/firecrawl-monitor · commit 458d9d0
Licence
ISC License (redistribution allowed)
  • LICENSE (added by AutoGineer from LICENSE)
  • ATTRIBUTION.md (written by AutoGineer)
Synced

AutoGineer is not affiliated with or endorsed by Firecrawl or Firecrawl.

Download ZIP

The ZIP holds the skill’s files, its licence files and an ATTRIBUTION.md. Download firecrawl-monitor.zip