queries à exécuter ainsi qu’un goal, et Firecrawl lance les requêtes à chaque check puis envoie des alertes sur les nouveaux résultats que le juge juge pertinents par rapport au goal. Il s’agit de découverte plutôt que de diff.
Chaque check suit le même cycle : prendre le goal et ses queries, appliquer une fenêtre de récence, exécuter la recherche, dédupliquer les résultats par URL canonique, laisser le juge IA facultatif décider quels nouveaux résultats sont significatifs pour le goal, puis envoyer des alertes via les mêmes canaux webhook et e-mail que les monitors de scrape et de crawl. La planification, les goals, l’évaluation et les notifications fonctionnent exactement comme décrit dans la vue d’ensemble de la surveillance.
Les monitors de page et de crawl comparent les différences de contenu sur les URL que vous indiquez ; les monitors à l’échelle du web découvrent de nouveaux résultats sur l’ensemble du web. La planification, le juge et les notifications reposent sur le même fonctionnement sous-jacent.
Cible de recherche
type: "search" et remplace urls par les requêtes à exécuter ainsi que la façon d’évaluer les résultats :
Search target
| Champ | Type | Description |
|---|---|---|
type | "search" | Sélectionne la cible de recherche. |
queries | string[] | Requêtes de recherche à exécuter à chaque vérification. 1 à 12 requêtes, jusqu’à 256 caractères chacune. Obligatoire. |
searchWindow | "5m" | "15m" | "1h" | "6h" | "24h" | "7d" | Filtre de récence. Ne prendre en compte que les résultats publiés dans cet intervalle. Par défaut, 24h. |
maxResults | number | Nombre total de résultats à évaluer par vérification, 1–50. Par défaut, 10. Il s’agit d’un plafond global pour toutes les queries (les résultats sont d’abord fusionnés et dédupliqués), et non d’une limite par requête. Une requête donnée peut donc fournir moins de résultats, voire aucun, si d’autres requêtes atteignent d’abord ce plafond. |
includeDomains | string[] | Optionnel. Limite les résultats à ces domaines (jusqu’à 50). Ne peut pas être utilisé avec excludeDomains. |
excludeDomains | string[] | Optionnel. Exclut les résultats de ces domaines (jusqu’à 50). Ne peut pas être utilisé avec includeDomains. |
Une cible de recherche nécessite un
goal non vide au niveau du monitor, sauf si vous définissez judgeEnabled: false. Les queries sont obligatoires ; le goal sert de référence au juge pour évaluer chaque nouveau résultat. Il ne génère pas les requêtes. Voir Objectifs et évaluation.Les crédits augmentent avec le nombre de requêtes. Chaque requête récupère jusqu’à
maxResults résultats, et les crédits des appels de recherche sont facturés sur les résultats bruts de l’ensemble des requêtes avant fusion et déduplication. Ajouter des requêtes augmente donc le coût réel de la recherche, pas seulement l’estimation initiale. Après fusion/déduplication, Firecrawl évalue au plus maxResults candidats sélectionnés, de sorte que les crédits du juge restent plafonnés par le nombre de résultats sélectionnés/évalués.Créer un monitor à l’échelle du Web
type: "search" avec queries, searchWindow, maxResults et, éventuellement, des filtres de domaine) et l’absence d’URL :
monitor.page le signale avec l’état new et, lorsqu’une évaluation a été effectuée, un judgment expliquant pourquoi c’est important :
monitor.page
Rédiger de bons objectifs et de bonnes requêtes
queriescontrôlent le rappel : ce que chaque recherche fait remonter. Trop étroites, les vrais événements ne remontent jamais ; trop larges, et le juge dépense des crédits à filtrer le bruit.goalcontrôle la précision : quels résultats récupérés déclenchent réellement une alerte. Le juge évalue chaque nouveau résultat par rapport à l’objectif : c’est donc l’objectif qui distingue une vraie correspondance d’un résultat lié au sujet, mais non pertinent.
- Utilisez des mots-clés, pas des phrases :
OpenAI new model release, pastell me when OpenAI releases a new model. - Mettez entre guillemets les entités de plusieurs mots (
"Llama 4") et regroupez les synonymes avecOR(launch OR release OR announcement). - Gardez chaque requête concise (environ 2 à 6 termes). Une requête large est généralement préférable à plusieurs requêtes étroites, car des requêtes supplémentaires répartissent le budget
maxResultssans améliorer la couverture. - Utilisez une requête par sujet distinct. Un même sujet avec plusieurs facettes (“launches, benchmarks, docs”) reste une seule requête ; ne scindez que lorsque l’objectif mentionne de véritables entités distinctes (par exemple, “OpenAI, Anthropic, and Google”).
- N’utilisez pas les opérateurs
site:/-site:dans les requêtes. Utilisez plutôtincludeDomains/excludeDomains.
- Nommez le sujet et ce qui constitue une correspondance : “Alert when OpenAI announces a brand-new model.”
- Levez les ambiguïtés sur les termes polysémiques : “Firecrawl (the web scraping API)” évite que le juge ne parte sur du matériel de lutte contre l’incendie.
- Ajoutez
Ignore ...uniquement pour les non-correspondances propres à l’intention : “Ignore opinion pieces, tutorials, and unrelated AI news.” Ne reformulez pas le bruit générique. Le juge gère déjà la mise en forme, les paramètres de suivi et les réindexations. - Si l’intention est large, gardez-la large. Des objectifs trop restrictifs écartent de vraies correspondances.
new: 0, et les alertes ne se déclenchent que lorsqu’un élément réellement nouveau et conforme à l’objectif apparaît. Lisez le résumé du check et le searchStatus de chaque résultat (voir Statuses and dedup) pour déterminer s’il est bien réglé :
- Un flux régulier de résultats
ignoredsignifie que les requêtes font remonter du bruit que l’objectif rejette ensuite. Resserrez les requêtes (ou réduisezsearchWindow) pour ne plus payer le jugement de résultats qui ne déclencheront jamais d’alerte. - Des
watchingfréquents signifient que l’objectif est ambigu. Affinez les critères de correspondance pour que le juge puisse trancher. - De longues périodes sans résultat sur un sujet actif signifient que les requêtes sont trop étroites ou que
searchWindowest trop réduit. Élargissez les termes ou la fenêtre. - Les alertes que l’utilisateur ignore signifient que l’objectif est trop large. Ajoutez un
Ignore ...propre à l’intention.
Évaluation
judgeEnabled du monitor, le même indicateur décrit dans Objectifs et évaluation. Lorsque l’évaluation est activée, Firecrawl scrape chaque résultat correspondant et évalue son content par rapport à l’objectif, avec une facturation de 1 credit par résultat évalué en plus de l’appel de recherche. Avec judgeEnabled: false, un monitor à l’échelle du web retourne les résultats de recherche dédupliqués sans aucune évaluation par IA, uniquement les nouveaux résultats du SERP, et ne consomme que les credits de l’appel de recherche (2 credits par 10 résultats).
États et déduplication
status au niveau de la page que les monitors de scrape et de crawl, afin que les consommateurs existants de webhooks et de résultats de vérification continuent de fonctionner sans modification. Un résultat de recherche correspond à :
new: un résultat qui a correspondu à l’objectif pour la première fois. C’est ce qui déclenche une alerte.same: un résultat déjà vu lors d’une vérification précédente (aucune nouvelle alerte).error: un résultat qui n’a pas pu être évalué (par exemple, si le scrape nécessaire à l’évaluation a été ignoré).
metadata.searchStatus de chaque page, avec l’une des valeurs suivantes :
searchStatus | Page status | Signification |
|---|---|---|
alert | new | Nouveau résultat que le juge considère comme pertinent — déclenche une notification. |
already_seen | same | L’empreinte correspond à un résultat d’une vérification antérieure. |
watching | same | Nouveau résultat sur lequel le juge n’est pas encore suffisamment sûr ; il est suivi, mais ne déclenche pas d’alerte. |
ignored | same | Nouveau résultat que le juge a estimé non pertinent par rapport à l’objectif. |
skipped | error | Le résultat n’a pas pu être jugé lors de cette vérification (par exemple, en cas d’échec du scrape ou de dégradation de l’évaluation). |
new. La déduplication repose uniquement sur l’URL canonique (le titre et l’extrait ne font délibérément pas partie de l’empreinte, donc un changement de titre ou d’extrait ne redéclenche pas d’alerte). Comme la clé est l’URL, un événement réel relayé par de nombreuses URL d’articles déclenche une alerte une fois par URL, et non une fois par événement.
Modifier le goal ou les queries du monitor incrémente son goalVersion, ce qui invalide les verdicts précédents du juge. La réévaluation se fait de manière paresseuse plutôt que via un nouveau jugement global : les résultats existants ne sont pas tous rejugés d’un coup. À la place, chaque résultat est rejugé la prochaine fois qu’il réapparaît dans une vérification, et récupère alors le nouveau goalVersion. Les résultats qui ne réapparaissent pas conservent leur ancien verdict et leur goalVersion jusqu’à leur prochaine apparition.
- Planifications: cadence cron ou en langage naturel, minimum de 5 minutes.
- Objectifs et évaluation: requis pour les cibles de recherche, sauf si
judgeEnabled: false. - Notifications: envoi par webhook et e-mail.
- Résultats des vérifications: inspectez chaque vérification et ses résultats.
- Tarification: 2 crédits par tranche de 10 résultats et par vérification, plus 1 crédit par résultat évalué.

