Operator demo
Mention Detection MVP
A consumer-facing AI agent can persist a MentionAlert end to end through the existing /api/mvp/emit-alert route. The backend is wired (cron writes Mention rows, sentiment scores through src/lib/mentions/sentiment.ts, the alert envelope is the contract). This page is the operator-facing surface so a reviewer can walk the wire shape without dropping into prisma studio.
Five-source crawl
What RepSentinel indexes
Every cron tick fans out across these five sources, scores sentiment through src/lib/mentions/sentiment.ts, and writes a per-row Mention.
https://api.twitter.com/2/tweets/search/recent?query=<keyword>⚙ Requires TWITTER_BEARER_TOKEN
https://www.reddit.com/search.json?q=<keyword>&sort=newhttps://newsapi.org/v2/everything?q=<keyword>⚙ Requires NEWS_API_KEY
rss://<feed-host>/<feed-slug>.xml⚙ Requires BLOG_RSS_FEEDS (comma-separated feed URLs)
https://news.google.com/rss/search?q=<keyword>Operator tip: POST /api/cron/seed-mentions stamps synthetic rows tagged mvp-emit so you can walk this page end to end without waiting on a cron tick.
Cron activity
Recent ingest ticks
Negative / neutral feed
Recent flaggable mentions
Try the wire shape
Emit a test alert
This POSTs to /api/mvp/emit-alert and echoes the envelope downstream AI agents receive. The MVP emit path bypasses plan quota and creates no AI draft — the consumer-facing /api/mentions POST still enforces the free=0/solo=100/brand=2000 caps.
Submit the form to see the JSON envelope echoed here.
If you’re not signed in, the call returns 401 — close that first.
Live emit envelope
Recent MVP alerts
The 25 freshest MentionAlert rows stamped under the mvp-emit tag. Same data the downstream AI drafting stage can consume next. MVP persists these alerts as ready for downstream drafting; it does not create a draft row or invoke AI during ingestion.