How it works

The ingestion pipeline, per-source freshness, and the mention lifecycle.

The pipeline

Mentions runs a staged pipeline: sources are fetched on a schedule, normalized into raw items, matched against every organization's keywords, classified by an LLM, and delivered.

Ingestion happens once, globally. When two organizations track the same term, the platform fetches and stores those posts once, then matches them to both orgs. Your mention feed is the org-scoped view over that shared ingest.

Per-source freshness

Each source has its own polling cadence, chosen around the platform's API characteristics:

SourceFreshnessNotes
BlueskyReal timeFirehose subscription, not polling
Hacker News~1 minute
GitHub~5 minutesPer tracked term
DEV~5 minutes
Reddit~30 minutesPer tracked term
News~30 minutesGDELT updates roughly every 15 minutes
X~1 hourKept coarse to respect the read budget
YouTube~12 hoursSearch quota bound
Stack Overflow~24 hoursSlow-moving platform

A mention can only be as fresh as the platform's own API surface; the pipeline adds sub-minute overhead on top of the cadences above.

Mention lifecycle

Every mention carries a state:

StateSet byMeaning
matchedPipelineKeyword matched, not yet classified
classifiedPipelineScored for relevance, sentiment, and intents
filteredPipelineScored below the relevance threshold; kept queryable, never delivered
deliveredPipelineSent to a configured destination
ignoredYouTriaged as not interesting
doneYouTriaged as handled

You can only set ignored and done (via POST /v1/mentions/{id}/state); the pipeline owns the rest.

Classification

The classifier reads your company context and scores each mention:

FieldValues
relevance0 to 100
sentimentpositive, neutral, negative
intentsbuy_intent, question, complaint, praise, comparison
aiNoteOne-line explanation, at most 200 characters

Company context is the biggest lever

Relevance scoring is only as good as the context you provide. Describe what your company does, your products, and your competitors in PUT /v1/company.