Gald
← BLOG
SYSTEMS · 13 OCT 2026

Reading six sources to find one trend worth acting on

One platform tells you what is loud on that platform. The engineering problem is not collecting more posts, it is deciding which cluster of them is a real story.

A stack of folded newspapers on a table

A trend detector that watches one network learns that network. It will report a hashtag that three hundred accounts pushed in an hour as though it were news, and it will miss a story that broke in the press and only reached social media the next day.

Watching several sources fixes that, and immediately creates a harder problem: the same event now arrives six times, worded six ways, and you have to recognise that it is one event.

Grouping by meaning, not by words

Matching on keywords fails here, because a wire headline and a comment about the same match share almost no vocabulary. What works is turning each item into a vector with a multilingual model and clustering those, so that text which means the same thing lands in the same place regardless of how it was phrased.

Before any of that, remove the duplicates. A retweeted line copied a thousand times is one piece of information, and counting it a thousand times is how a quiet topic looks urgent.

01
Collect
→
02
Deduplicate
→
03
Group by meaning
→
04
Score
→
05
Hand to a person
The last step is the one that is never automated

Scoring, and the component that lies

A score combines a few signals: how fast the volume is rising against its own baseline, how much of it there is, how close to home it is, how many different sources carry it, and how new it is. Weights decide which of those dominates.

One trap is worth naming. If a signal cannot vary in your setup — spread across sources, when in practice everything comes from one — it is zero for every cluster. It then separates nothing and simply drags every score down by a fixed amount. A component that carries no information should be dropped and its weight redistributed, not left in because the design document lists it.

  • Deduplicate before you count anything, or volume measures copying
  • Cluster on meaning so the same story from six sources is one story
  • Tilt toward your own market rather than filtering to it: a big global story still beats a quiet local one
  • Drop scoring components that cannot vary, and say so in the output

The output of all this is a ranked list for a person to read, not a decision. Anything that acts on its own will eventually act on a coordinated push, which is precisely the thing the ranking cannot tell apart from genuine interest.

The engineering is in the middle steps and the honesty is at the end. A system like this earns its place by shortening the list a person has to read, not by pretending the person is unnecessary.

Have a project in mind?

Start a project