Content Scoring

Every inbound feed item is scored against the domains you actually work in, so funding rounds and launch announcements are archived on arrival instead of filling your inbox.

Content monitoring pulls in a lot. The problem was never that the wrong topics got through, it was that the right topics arrived with nothing to say about them: funding rounds, launch announcements, press releases. Tightening the keywords does not help, because those items are on topic.

Content scoring asks a different question. Instead of "is this about my subject", it asks "could I say anything about this beyond summarizing it".

How an item is judged

Every new item from RSS and from content monitoring is scored once, as it arrives, before it can appear in any inbox view. Three questions go out in a single call:

  • What kind of item is this — funding news, product launch, benchmark result, opinion, tutorial, research, press release, or incident.
  • Is there a usable angle — could someone working in your domains say something substantive here: a decision it bears on, a mistake it illustrates, a concrete disagreement.
  • Is it novel — or is it another outlet's telling of a story you already captured this week.

Items whose type is on the kill list are suppressed outright, whatever else they scored. The rest are gated on the angle score, with novelty catching aggregator duplicates.

Nothing is deleted

An item that does not clear the bar is archived with its scores attached, not deleted. This matters more than it sounds. If suppressed items vanished at ingest, a threshold set slightly too high would be invisible: you would see a quiet inbox and have no way to tell whether the filter was working or eating everything. Archived items stay inspectable for 30 days, then purge.

Your domains

The angle question is judged against your domains, which you set under Content Scoring in the admin sidebar. Be specific. "AI" as a test passes nearly everything published today, which is the situation this feature exists to replace. Something like "large-scale commerce frontend architecture" or "running a SaaS as a solo operator" gives the scorer something to actually judge against.

You can add up to twelve domains, plus optional free-text context: your audience, the angle you write from, what you deliberately avoid.

Ingest is paused until you set at least one domain

This is deliberate. An empty domain list does not score neutrally — it scores everything down, and the result is indistinguishable from a feed that simply went quiet. Rather than let that happen silently, scoring refuses to run and the Content Scoring page tells you why.

The digest

Items that clear the bar are delivered as a ranked, capped digest rather than an open queue. Ranking is by angle score, never chronological. The daily cap defaults to ten.

If nothing clears the bar, the digest says so. It is never padded to the cap with the best of a bad set, because a digest you learn to distrust is worse than no digest.

An optional per-source cap stops one noisy feed from taking every slot. It is off by default and worth setting only once a single source starts crowding the others out.

Calibrating it

The starting thresholds are, honestly, guesses. There was no record of what you kept and what you deleted, so there was nothing to cut them against.

That is what the keep and dismiss actions are for. Every decision you make on an item that reached your inbox is recorded against the scores that let it through, and the scoring report groups verdicts into score bands and shows the keep rate for each one. A band with a keep rate near zero argues for raising the floor past it. A high keep rate in a band that currently gets archived is a false negative the floor is eating.

Bands with no decisions yet show no keep rate rather than zero, because unmeasured is not the same as unpopular.

When the scorer is unavailable

If the scoring service cannot be reached, items are let through and flagged unscored rather than dropped. Losing content to an outage would be a worse failure than the noise this exists to remove. Unscored items are recorded as such, so a scorer that is quietly failing does not look like a clean feed.

Want this page as machine-readable markdown? GET /docs/features/content-monitoring/scoring.md