Content OS

Discovery Agent — Plain-English Guide

Audience: anyone who uses the Discovery feed. No technical background needed. Engineering version: technical.md. Back to the agents index.


In one line

It reads every news article the system pulls in, and writes the summary, tags and scores you see on the Discovery card — so you can judge an article in five seconds instead of opening it.


The problem it solves

Left to itself, a news scraper gives you a wall of rows: a headline, a URL, and whatever the first 280 characters of the page happened to be — often navigation menus, cookie banners and tracking junk rather than the actual story.

You would have to open each one to know whether it's worth anything.

The Discovery Agent reads each article and fills in the card, so the feed becomes browsable.


What it writes on each card

What you seeWhat it means
SummaryTwo clean sentences describing what the article actually reports
CategoryWhich of your categories this fits — it can only choose from your list, never invent one
StateThe Indian state or UT the story belongs to, or "National". This powers the statewise filter
SEO keywords5–10 phrases the topic could rank for
Authority scoreHow much the source can be trusted
Authenticity scoreHow original the reporting looks
Brand fit scoreHow well it matches your voice and avoid guidance
Persona matchesWhich of your audience personas this would land with

Each score comes with a one-line reason, so you can see why it scored that way rather than taking a number on faith.


When it runs

Automatically. There is no button.

New articles arrive marked "pending". A background worker picks them up a couple of seconds later, fills them in, and marks them "ready". If you refresh a feed right after a fetch, you may briefly see items still filling in — that's normal, they process one at a time.

There's also a daily morning sweep that runs before anyone logs in, so the feed is already populated at the start of the day.


What you control

Per tenant, in news settings, you can dial the agent down:

SettingWhat happens
Full (default)Everything above, including the written summary
No summaryEverything except the summary — that stays the raw excerpt
OffNo AI at all. Scores and keywords still appear, but they're calculated rather than read

Most tenants should leave this on Full. The other two exist for cost control.


Two things worth understanding

Not everything on the card comes from the AI.

The summary, category, state and keywords are read from the article by the AI. But the authority score and persona matches are calculated — deliberately.

  • Authority is about the source, not the story. A publication's trustworthiness doesn't change article to article, so it's computed from your source settings and your trusted-source list. The AI never gets a vote.
  • Personas are matched by rule, because an article never states its reader's age or profession. Asking an AI to guess would be inviting it to make things up.

It never blocks the feed.

If the AI is unavailable, items still appear — just with a rougher summary. You lose polish, never access. The same is true if a source is misconfigured or a provider key is missing: you get a clear message naming what's missing, not an empty feed.


What it does not do

  • It doesn't decide what to write about. It describes and scores; you choose.
  • It doesn't check compliance. That's a separate, deliberate step — see the Compliance Agent.
  • It doesn't learn from you. If you queue ten articles about one topic and ignore another topic entirely, tomorrow's feed looks exactly the same. This is the biggest known gap.
  • It only reads the first part of a long article. A detail buried deep in a very long piece may not make the summary.
  • Competitor reels are separate. They appear in their own tab and are read-only — you can't generate content from them, because they don't go through the compliance checks every news item gets.

Where this sits on the roadmap

On the whiteboard this is the front of the funnel — the step that makes everything downstream possible.

The three feedback loops sketched as future work (learn from what we've done, scan competition for insights, scan category for insights) would all attach here. None are built yet.


Subagents

One LLM call does all of these today. They are separate decisions, and worth naming because they fail independently — a bad category does not imply a bad summary.

  • Summarizer — two clean sentences of what the article reports, no boilerplate
  • Categorizer — picks one tenant category; invented labels are rejected and the crawl-time fallback kept
  • Geo-tagger — one Indian state/UT, or National
  • Keyword extractor — 5-10 SEO phrases
  • Authenticity scorer — how original the reporting looks, with a stated reason
  • Brand-fit scorer — scores against voice and avoid, citing guideline ids
  • Query builder — a separate call, upstream: turns a category into search queries

Deterministic, deliberately not subagents: authority scoring (a property of the source, not the story) and persona matching (an article never states its reader's age). Neither gets a vote from the model.

Source: roadmap/marketing-os/agents/discovery-agent/overview.md