All work
Editorial intelligence

DiscoRadar

A Google Discover radar for newsrooms. It reads the feed every five minutes and shows which stories, publishers, and topics Google is recommending across Ukraine.

My role
Product Owner, Data & AI Architect, Full-stack Engineer
System
React, TypeScript, Express, Firestore, BigQuery, Gemini, OpenAI embeddings
The DiscoRadar matrix of categories by publishers, built from the Discover feed. Illustration built on the real interface.
01

What editors could not see

Google Discover sends a large share of traffic to Ukrainian news sites, and it tells a publisher almost nothing. Search Console reports your own clicks a day or two late. It says nothing about the story a competitor has held at the top of the feed since morning.

I built DiscoRadar for the Telegraf.com.ua and OBOZ.UA newsrooms to answer four questions an editor asks all day. What is in demand right now? Which competitors own which topics? Where is our own coverage missing? What should we publish next, and at what hour?

02

How a reading is taken

The radar measures the feed the way a reader meets it, as an ordered list of cards on a phone.

  1. 01

    Read the feed

    Signed-out mobile sessions read Discover as it appears in Kyiv, Lviv, and Dnipro, in Ukrainian and in Russian. A scan runs every five minutes.

  2. 02

    Keep the sighting

    The article and its appearance are stored separately. One article can show up in several cities, at different positions, for hours.

  3. 03

    Score it

    Each story gets a visibility score. A higher place in the feed and a longer stay both raise it.

  4. 04

    Weight the cities

    City readings combine into one national number, so a story seen only in Lviv does not outrank one seen across the country.

  5. 05

    Group the stories

    Headlines about the same event are merged into one topic by meaning, so an editor reads a list of stories and not a wall of near-identical cards.

03

Reading the feed

The first screen is the feed itself, ranked by visibility. Each row has its score, a trend line, and the time the story has spent in Discover.

The priority label is the part editors act on. It says whether a subject is worth picking up first or after stronger ones.

The score measures placement in the feed. It is not traffic, and the interface never presents it as views or clicks.

04

Topics

Stories about the same subject collapse into one topic. Over a week the radar tracked 169 topics across 8,464 stories.

A topic card shows its visibility curve, the stories in the feed now, and which publishers hold the largest share of it.

Topics over seven days, with the card for the leading topic open.
05

Competitors

The same sightings, grouped by publisher. The table separates volume from staying power.

In this week one outlet led with 557 stories that lasted about two hours each. Another reached third place with 65 stories that each held the feed for more than seven hours.

Publisher ranking for the week: share among the top ten, sightings, and average time in Discover.
06

Who owns which category

The matrix crosses categories with publishers. A section editor sees at once who holds the category and where the gap is.

Visibility by category and publisher. Darker cells mean a stronger hold on the category.
07

When to publish

Google reports a publication time for every card. The radar joins it with the article's first-day visibility and compares hours and weekdays, for the newsroom and for its competitors.

The view also measures how long an article takes to reach Discover after it goes out.

First-day visibility by publication hour and weekday over 28 days.