Radar
The per-brand instant-marketing engine: configurable news sources → cron scan → AI judges relevance for this brand → relevant items become posts through the production machine → one-click approve/reject email digest. Radar never publishes on its own.
Source types
| Kind | How it works |
|---|---|
gnews_query | Google News RSS search with OR-groups |
rss | Standard RSS/Atom feed |
subreddit | Reddit rising threads (last 12h) — ScrapeCreators → OAuth API → RSS fallback |
threads_query | Threads keyword search via ScrapeCreators |
x_community | X Community tweets via ScrapeCreators |
Sources are seeded at onboarding from the brand's profile (3-5 Google News queries + 0-3 subreddits). User-editable in the Studio.
The scan
Fetch feeds
For each active source, fetch items in parallel. Reddit/Threads are timing-aware: only items from the last 12 hours.
Deduplicate
Hash each URL against brand_news_items — everything this brand has already seen. Only fresh items proceed. Cap: 40 items per scan.
Judge relevance
One structured Gemini call, grounded in brand context, content pillars, GTM phase, and editorial plan week. Two different rulers: news items → post; conversations (Reddit, Threads, X) → comment.
Persist verdicts
Each item gets proposed (relevant) or skipped (with reason) status. Relevance score 0-100, angle, urgency, pillar.
Posts vs Comments
Posts (action = post): relevant news items go through the full production machine — copywriter → copy chief → render → QC → Director. Stored as pending_user with source: 'radar' and the news citation attached. Daily budget enforced.
Comments (action = comment): Reddit/Threads/X conversations where the brand's expertise genuinely helps. Anomalia drafts one useful reply; the user copies and posts manually. Anomalia NEVER posts or comments on Reddit. Weekly cap: 3 suggestions.
Digest email
One email per brand per scan tick:
- Posts ready — one-click approve/reject with image preview, caption, source link
- Comment suggestions — copy-ready text + "Open and reply →" button
GET /api/v1/radar/tick — runs 3×/day. Supports ?brand=<slug>. Preferences in brand.content_prefs.radar (enabled, mode, maxPerDay, replyTone, replyStyle).