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

Worked query

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

HTTP
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.

The obvious approach, and why it loses

The obvious approach is one keyword query per market, composed in each local language by whoever can be found to write it. It produces better precision in the two languages someone on the team actually reads and silently worse coverage everywhere else, because nobody can check the queries they cannot read. It also fixes the vocabulary at the moment the query was written, so a new transliteration or a new product name never enters it. Hybrid retrieval from one English query is less precise per market and far more honest about what it covers, and it degrades in a way you can see rather than one you cannot.

When it returns too much, or too little

Too much almost always means the brand name is doing double duty as an ordinary word, and the fix is a disambiguating term rather than a tighter mode — the sector, a flagship product, the founder's name. Too little usually means the window is too short for the markets you are least watching: coverage in a small stream is bursty, and a 24-hour window in a language with forty indexed outlets is frequently empty for reasons that have nothing to do with your brand. Widen the window before widening the query. If one market dominates the results, scope it out explicitly and run it as its own query rather than letting it crowd the rest.

How you would know it is working

The measure is whether the markets you are not watching actually appear. Count the distinct languages in a month of output and compare that with the list of markets you operate in; a feed that is ninety per cent English is not doing the job this recipe exists for, however healthy the volume looks. Then check precision separately per language, because it varies far more than people expect — a name that is unambiguous in English can be a common noun elsewhere. Sample twenty results per language once a quarter and record the hit rate, so the languages where the monitor is unreliable are known rather than assumed to work like the others.

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.

Running it for real

Response fields, failure modes, adaptations and scheduling cost: Track every mention of a brand, in every language you do not read, in the docs.

Related recipes