Recipes / Track every mention of a brand, in every language you do not read

Track every mention of a brand, in every language you do not read

/stories in hybrid mode. The parameters matter less than the reasoning behind them, so that is most of what is below.

The request

GET /stories
  ?q=<brand name>
  &mode=hybrid
  &from=2026-07-28
  &to=2026-07-29

Why these parameters

Hybrid rather than keyword because brand names get transliterated, abbreviated and inflected differently in every language — a Latin-script query will not match the Devanagari or Cyrillic rendering of the same name, and keyword mode has no way to bridge that. Stories rather than search because a brand story that travels produces dozens of near-identical pickups, and you want to know that it travelled, not read it thirty times. Leave the language filter off deliberately: the whole point is catching the markets you are not watching.

What comes back

One item per event, each carrying the outlets that ran it and the languages they published in. The outlet list is the field that matters — a story carried by three outlets in one country and one carried by thirty across four languages are different situations that identical article counts would hide completely.

How this goes wrong

Teams filter to English first "to keep it manageable" and then discover a problem days late because it broke in a market they were not reading. If volume is the concern, tighten the time window rather than dropping languages — a shorter window in every language beats a long window in one.

Adapting it

Swap the brand for a product line, an executive name or a ticker and the shape holds. For an executive, expect more transliteration variance than for a company, so lean harder on hybrid mode. If you need per-market breakdowns rather than a single global feed, run one query per language rather than one unscoped query, and compare the outlet lists — the same story reaching thirty outlets in one market and three in another is the finding, not an artefact.

Running it for real

Run it on a schedule, keep the last-seen timestamp, and request only what has published since. Deduplicate on the story identifier. For escalation, a rule that works without tuning: one outlet is a mention, five unrelated outlets inside an hour is a story, and a story still acquiring outlets after the first hour is the one someone senior needs to see. Review the acted-on rate monthly — brand monitoring decays by losing precision while coverage stays fine, and nobody notices until a real story lands in a channel people stopped reading.

When this is the wrong tool

If your brand name is also a common word, this recipe struggles and no parameter fixes it — hybrid mode will surface the word rather than the company, and tightening the query trades recall for precision without ever resolving the ambiguity. Add disambiguating terms such as the sector or a product name, accept a lower recall, and plan to review manually. Entity resolution would be the correct fix and is not currently available. This recipe is also the wrong choice for measuring share of voice: story collapsing gives you events, not mentions, and a share-of-voice metric wants the mention count. Use /search without collapsing for that, and accept that syndication will inflate whoever has the widest distribution deal rather than the most coverage.

Related recipes