This page is for our Data Scientist Applicants.

趋势猎人 · The Trend Hunter Puzzle

Hear the trend before it has a name.

90 days of messy, unlabelled chatter from a Chinese game community. Somewhere in it, players are starting to care about something new. Can you build something that notices, and knows what's real?

🏆 Top solvers get a fast track to our PhD Data Scientist Fellowship in 香港 Hong Kong →

Submissions close 20 October 2026, 23:59 HKT.

香港見
SEE YOU IN HONG KONG

Solve it well, and skip the queue to a PhD Data Scientist Fellowship with us in Hong Kong.

Top solvers are fast-tracked into our 3–12 month PhD Data Scientist Fellowship, built as a route to a full-time return offer. You'll work on the same problem you just cracked, with real players and real studios, in one of the most exciting cities in Asia.

🥟

Dim sum is in our name點心

Diimsum is named after it: many small pieces that together tell you everything. You'll be in the city that does it best.

🌃

The harbour at night維港

Neon, skyline and the Star Ferry across Victoria Harbour, which is still one of the best views on Earth.

🗣️

Your languages count兩文三語

Mandarin, Cantonese and English all in one city. Here, being bilingual is part of the job, not an extra.

🎮

Asia's game crossroads遊戲

Between the studios of mainland China, Taiwan, Japan and Korea. The best place to learn how players across Asia think.

The challenge

Your mission: spot what players are starting to talk about.

Diimsum reads what players say on QQ groups, Discord, Bilibili, Weibo, Steam, TapTap and Bahamut, and turns it into insight for game studios. The question every studio asks us is simple: what's changing in our community right now? This puzzle asks you to build something that answers it.

The catch is that nobody knows the topics in advance. There's no fixed list to sort messages into, and the thing that matters most next month usually doesn't have a name yet. Players invent the words as they go: 坐牢, 刮痧, a nickname for a character, an in-joke that started in one group chat.

So your solution has to invent its own categories as the conversation unfolds, then tell a studio which ones are growing, which are a one-day storm, and which aren't real at all.

This is a puzzle about understanding players, not about statistics. The data has no likes, scores or ratings, only what people wrote. If you know how players think, how gacha economies feel from the inside, why a patch day sounds different from a slow-building grievance, or what a group chat sounds like when it's joking, you'll get further than someone with a bigger model.

The data

《星环守望》, June to August 2026

A fictional gacha action game, with about 48,000 player messages in the same format Diimsum stores them. It's synthetic, but modelled on real community data, so it's just as messy.

voices.jsonl

One message per line:
id, parent_id, platform, channel, user_name, title, content, created_at
parent_id links a reply or comment to what it answers.

Expect mess

Simplified and Traditional side by side. <emoji:doge>, <image:…>, @mentions, bot messages, 复读 chains, typos, off-topic chat, and replies like 「确实」 that only make sense next to their parent.

versions.csv

The studio's own calendar of events and patches. That's everything they told us. The rest you'll have to read.

Download versions.csv

What "solved" looks like

An example, from a different game.

Here's the kind of result we're hoping for, using an imaginary farming game called 《云海牧歌》. The puzzle data hides different stories, but the shape of a good answer is the same.

1

Messages like these trickle in…

03-02 · TapTap新出的钓鱼小游戏有点肝啊,每天要钓够三十条才给体力
03-04 · QQ群@阿巴阿巴 钓鱼那个你做完没 我手都酸了<emoji:qq-face-5>
03-06 · Bilibili回复 @柚子茶 :确实
03-09 · Weibo#云海牧歌# 上班钓鱼,下班还要钓鱼,我是什么打工鱼吗
03-11 · Bahamut釣魚每日任務可以改成每週嗎,真的會累死

There's no shared keyword. "肝", "手都酸了", "打工鱼" and "累死" are all the same complaint: a daily chore that's turned into a job. A game player recognises that straight away. Your code has to as well. The 「确实」 only counts because of what it's replying to.

2

…your solution groups them into categories it invented…

For example: Daily grind and chores → Fishing minigame too demanding. A good set of categories reflects how players actually think about a game (economy, fairness, effort, social life, the characters they love), not just which words appear.

3

…and notices how it's moving.

Feb W4nothing
Mar W1a few TapTap reviews
Mar W2spreads to QQ & Bilibili
Mar W3everywhere, new slang 「打工鱼」
Mar W4still building
Apr W1calming after a fix

Compare a one-off, like a server outage that's loud for two days and then gone, or something that isn't real, like fifty brand-new accounts posting the same praise at the same minute.

4

Your run.py writes it out, using only what it could see on that day:

{
  "as_of": "2026-03-12",
  "trends": [{
    "title": "钓鱼小游戏太肝",
    "title_en": "Fishing minigame feels like a chore",
    "category": "Daily grind & chores",
    "status": "growing",
    "first_seen": "2026-03-02",
    "voice_ids": ["0196f3a2-…", "0196f3b8-…", "…"],
    "why": "Started in TapTap reviews, reached QQ and Weibo within a week; players now joke about it (打工鱼), which usually means it's sticking."
  }]
}

status is one of new, growing, one-off, fading or not real. Everything else (titles, categories, your reasoning) is yours to decide.

5

And a person could act on it:

🟠 正在升温:钓鱼小游戏太肝
3月2日起出现,一周内从TapTap扩散到QQ群和微博。玩家的不满集中在"每日必须完成",而不是钓鱼玩法本身。建议考虑把每日任务改为每周累计。
The puzzle

What to send us

  1. Working code. We'll run your solution like this, at several dates we won't tell you in advance:
    python run.py --input voices.jsonl --as-of 2026-07-24 --out trends.json
    It may only look at messages created on or before --as-of. That's how we know your solution would have spotted things at the time, not with hindsight. Any language model, library or approach is welcome. If it calls an LLM, it can use OPENAI_API_KEY or TYPESAFE_API_KEY (Jev), and we'll supply our own when we run it.
  2. The output above: up to 8 trends per run. We don't need to share your category names. We read the voice_ids, so pick the messages that best show each trend.
  3. A short README (English or Chinese) explaining your idea: how your solution decides what belongs together, how it tells something new from something growing, a one-off or something fake, and what you tried that didn't work. Then tell the studio, in a few paragraphs, what's going on in 《星环守望》 by the end of August.
  4. Warm-up. Explain these to a colleague who doesn't read Chinese: what each one literally says, what it actually means, and how the player feels.
    策划是懂玩家的,懂得怎么悄悄改概率
    这波属于是逼氪了,懂的都懂
    艾琳=铁锅,新人别懵
    白嫖党表示毫无压力 [doge]
    非酋报道,160抽一个金都没有 绷不住了

No LLM access? You don't need your own. The keys.env file attached to your invitation has capped OpenAI and Jev keys for this puzzle, plus a quick guide to calling Jev. They stop working after 20 October. If a key stops working, email careers@diimsum.com for a test key of your own.

What impresses us

Not everything that gets louder is a trend.

We look forWhat that means
Insight into playersCategories that reflect how players actually think, and an approach that would still work on a different game next month.
Being right, earlyWe know what really happens in this data. We check whether your solution catches the real stories, how soon, and whether it's fooled by the ones designed to fool it.
Reading Chinese like a playerSarcasm, slang, nicknames, jokes, and Traditional vs Simplified, in both your code and the warm-up.
ClarityCould a studio act on what you tell them?

There's no single right method. A simple idea that really understands players will beat a complicated one that doesn't. Surprise us.

Who it's for

Players who think hard.

Open to students and graduates of any year and any subject. You'll need native-level Mandarin and enough coding to make an idea run. Knowing games, especially Chinese gacha and live-service games, from the inside is a real advantage here.

Rules

Ready to hunt?

Send your solution and CV by 20 October 2026. Top solvers are fast-tracked into our PhD Data Scientist Fellowship in Hong Kong (3–12 months, with a full-time return offer for strong fellows). 香港見!