Watch alerts¶
A watch alert continuously monitors your sources (RSS, scrapers, cloud drives) and emails you whenever new content mentions a keyword you've defined.
Create an alert¶
/user/watch-alerts:
- Keyword or expression: the text to watch (e.g.
NIS2 directive,cybersecurity workforce act). - Scope: personal / org / public, or a combination.
- Delivery cadence: immediate / daily / weekly.
- Sensitivity (
high/medium/low): minimum relevance threshold for a match to trigger an email.
Keywords are encrypted at rest (watch_alert.keyword_enc).
Mechanism¶
The check_watch_alerts cron (08:00 + 20:00 UTC, user timezone)
walks new contents since the previous run, computes a similarity
score against active alerts, and triggers a digest email if the
threshold is reached.
New articles / docs since last run
↓
bge-m3 embedding of content vs keyword embedding
↓
Relevance score (cosine similarity)
↓
If score ≥ threshold: add to user digest
↓
Bulk send at end of cron (1 email per user, max 50 hits)
Management¶
- Pause / resume: temporarily disable without losing the config.
- Modify the keyword or threshold — optional backlog recompute (max once per 24 h).
- Delete: immediate purge of the alert and its hit history.
Limits¶
- Up to 20 active alerts per user (configurable via
WATCH_ALERTS_PER_USER). - Detection lag: 8 h max (cron runs twice a day). No real-time notifications — this is monitoring for awareness, not paging.
- In pure sovereign: emails are log-only by default (mailer
disabled). Configure an internal MTA to actually receive them
(see
docs/EMAIL.mdin the application repo).
For whom?¶
- Competitive intelligence: watch a competitor's name across your article feed.
- Regulatory watch: get alerted whenever a new directive or text mentions a sensitive topic.
- Brand monitoring: detect mentions of your organisation.
- Academic research: new papers on a precise theme (combined with the Zotero connector).