Resurface

catalog triage prototype

Most catalog marketing dies on a search problem: nobody can remember which of millions of recordings fits the brief in front of them. Ask in plain language. Get a ranked shortlist, each pick with a stated reason and a commercial-opportunity score.

0 recordings0 artists0 enriched tags1954–2025 release span
65 / 35
How this works, and what I'd fix with a real data pipeline

The architecture argument

Enrichment is static; trends are dynamic. So you enrich once per recording in batch, and query continuously. Re-running inference across the whole catalog every time a trend moves is the expensive, wrong way round. This prototype is the query layer sitting on top of a pre-enriched corpus.

Scoring

  1. Brief fit — the query is normalised, expanded through a synonym layer (sadmelancholy, grieving, wistful), then matched against weighted tag fields. Mood and context and sync-brief carry the most weight; texture, vocal and theme carry less.
  2. Commercial opportunity — deliberately not the same as popularity. It rewards dormancy (streaming rank low relative to the corpus, so there is headroom) and anniversary proximity (a round-numbered year gives press and playlist teams a reason to say yes). The biggest hit is rarely the best pick, because it is already being exploited.
  3. The slider is the actual product decision. A sync supervisor wants fit at ~90. A catalog marketer planning a quarter wants opportunity at ~50.

Data, honestly

What I'd build next