<!-- Generated from typed source content. Do not edit this file. -->
# 700k-Scale Identity Resolution

> How graph-based identity resolution replaced a manual linking queue that could not keep up with tens of thousands of new creators each month.

- Author: Paul Yu
- Role: Senior Analytics Engineer
- Employer: Viral Nation
- Year: 2026
- Theme: Correctness
- Human article: [https://paul-yu.com/case-studies/creator-identity-resolution](https://paul-yu.com/case-studies/creator-identity-resolution)
- Structured data: [https://paul-yu.com/agent/case-studies/creator-identity-resolution.json](https://paul-yu.com/agent/case-studies/creator-identity-resolution.json)

## Evidence

| Value | Measure | Evidence level |
| --- | --- | --- |
| 8,556 | channel records resolved | Repository backed |
| 5,422 | canonical creator identities | Repository backed |
| 3 | social platforms connected | Repository backed |
| 38 / 38 | flagged clusters resolved | Repository backed |

## Situation

Humans had to link social channels by hand before the business could report performance by creator. With roughly 700,000 creators and tens of thousands more arriving each month, the queue grew faster than the product team could clear it.

## Task

Create one creator identity across Instagram, TikTok, and YouTube. Old ownership had to survive the change, and uncertain matches had to stay visible.

## Action

I built a weighted graph from creator keys, handles, and name similarity. Weak evidence is blocked. If one fragile link is holding two groups together, the bridge-cut step removes it. Hard cases go to a person for review.

## Result

The repository-backed run resolved 8,556 channel records into 5,422 creator identities. It proved the matching and review workflow on a test slice of a much larger identity problem.

## System flow

Raw social channels → Weighted identity graph → Bridge cuts + review → Canonical creator IDs

## Technical notes

### NetworkX graph resolution

Each social account is a node. Identity clues form weighted links between them, and NetworkX finds the groups that likely belong to one creator.

### Connected components and graph bridges

A connected component is a group of linked accounts. Sometimes one weak link joins two otherwise separate groups. Cutting that bridge keeps a bad clue from merging different humans.

### SequenceMatcher similarity

SequenceMatcher scores how similar two names are. I treated that score as one clue because different humans can have similar names.

## Ownership

I designed the matching rules and signal weights. I also built the bridge cuts, review process, historical ID mapping, and quality checks.

## Limitations

The run shows that the records were processed and every flagged cluster was reviewed. It is not an independent measure of matching accuracy.

## Takeaway

The system replaced an impossible manual queue with explainable matching, stable creator IDs, and human review only where the evidence was uncertain.

## Tools

Python, pandas, NetworkX, SequenceMatcher, SQL, Human review
