Scout and signals

The scout is Pressroom's signal intelligence engine. It pulls signals from external sources, scores them for relevance, and surfaces the ones that matter to ...

Scout and signals

The scout is Pressroom’s signal intelligence engine. It pulls signals from external sources, scores them for relevance, and surfaces the ones that matter to your company.

Two signal pipelines

SIGINT (global sources)

The global source library contains shared sources — Reddit, Hacker News, RSS feeds, X searches, and trend trackers. Any org can subscribe to any source.

Flow:

Global sources → Sweep (crawl) → Raw signals → Relevance scoring → SIGINT feed
  1. Sources are entries in the shared library (e.g., “r/programming”, “HN: AI news”, an RSS feed URL)
  2. Sweep crawls subscribed sources and stores raw signals
  3. Relevance scoring uses the org’s fingerprint (an embedding of company context) to rank signals
  4. The SIGINT feed shows scored signals ready for triage

Source types:

TypeConfig example
reddit{"subreddit": "programming"}
hackernews{"keywords": ["AI", "LLM"]}
rss{"url": "https://blog.example.com/rss"}
x_search{"query": "kubernetes deployment"}
trend{"topics": ["devops", "cloud"]}

Wire (company-owned sources)

The Wire monitors your own channels — GitHub repos, blog RSS, changelogs, docs. Wire signals are always relevant (no scoring needed) because they come from you.

Flow:

Wire sources → Fetch → Wire signals (always relevant)

Wire source types:

TypeConfig example
github_release{"repo": "owner/repo"}
github_commit{"repo": "owner/repo", "branch": "main"}
rss{"url": "https://blog.yourcompany.com/rss"}
changelog{"url": "https://yourcompany.com/changelog"}

Running the scout

The scout pipeline combines both SIGINT and Wire signals:

POST /api/pipeline/scout?since_hours=24

This:

  1. Fetches from all configured SIGINT sources (with relevance filtering)
  2. Fetches from all Wire sources
  3. Deduplicates against existing signals
  4. Returns a summary of new signals found

Org fingerprint

Each org has an embedding fingerprint derived from company context (name, industry, topics, competitors, approved content). This fingerprint is used for cosine-similarity relevance scoring against raw signals.

Rebuild the fingerprint after changing company settings:

POST /api/sources/fingerprint/rebuild

Managing sources

Add a global source

POST /api/sources
{
  "type": "reddit",
  "name": "r/devops",
  "config": {"subreddit": "devops"},
  "category_tags": ["infrastructure", "cloud"],
  "fetch_interval_hours": 6
}

Subscribe an org to sources

POST /api/sources/subscriptions
{"source_id": 5, "enabled": true}

Seed default sources

POST /api/sources/seed

Populates the library with a curated set of common sources.

GET /api/sources/recommended

Returns AI-suggested sources based on the org’s profile.

Signal lifecycle

  1. Raw — Crawled from source, stored in raw_signals
  2. Scored — Relevance score attached via fingerprint comparison
  3. Saved — Promoted to signals table for the org
  4. Prioritized — Marked by editor as high-priority
  5. Attached — Added to a story for content generation
  6. Used — Content generated from this signal