Built a movie discovery engine hand curating 43K movies to 75 "vibes"
Who it's for
People with overflowing watchlists who still don't know what to watch tonight. Cinephiles who've outgrown "Top 10 Crime Movies." Anyone who wants to find a film by mood, not by genre or popularity. Think "warm hug after a long week" or "neon-soaked stylized action" or "rain-soaked melancholy."
The problem
Recommendation engines mostly run on collaborative filtering. Netflix, Prime, the whole streaming layer. Same 200 films surface for everyone. A 120-year catalog of cinema never gets touched.
Letterboxd is the exception that proves the point. Incredible for logging, reviewing, rating, and following critics. Discovery on it is real but it takes work. Hunt down a list someone made, scroll through it, cross-reference your watchlist, repeat. Power users love it because they enjoy the hunt. Casual cinephiles burn out before they find anything.
The gap I wanted to close: surfacing the right film for a specific mood without making the user do an hour of curation.
So I tried the inverse. Hand-build a semantic taxonomy of film moods, classify the entire corpus against it, match user queries via cosine similarity. No collaborative filter, no training set, no user data.
The stack
Next.js / Vercel, stateless PWA. No native app.
75-register mood taxonomy I hand-curated over months. Each one has an editorial definition + canonical exemplar films. Stuff like warm hug, neon nights, anxious dread, intellectual puzzle, melancholy beauty. Defining "wistful" vs "melancholy" as non-overlapping is a real design problem.
43,000 films classified across all 75 registers via batched LLM pass, that was trained on the sources and ways to score. Each film ends up with a 75-dim mood vector.
Query translation via Sonnet at request time. User types natural language, model emits which registers the query maps to. These aren't AI generated answers. They are AI translating a search into keywords for the algorithm.
Cosine similarity between query vector and corpus vectors. ~50ms across 43K films.
What it unlocks
No cold-start. First-time visitor gets full quality results.
No monoculture. Long-tail films with strong mood matches beat popular-but-bland ones.
A 200-vote cult film beats a 1M-vote generic action film if the mood vector matches.
Every film page shows its top 3 mood registers + an "In the same key" panel using the same fingerprints.
A /mix canvas where you tune 11 mood family sliders and films re-sort live.
Where it lives
perfery.com. Free, no signup, mobile-friendly. Solo founder built the taxonomy + classification + UI + algorithm.
Looking for feedback. From cinephiles on the recommendations themselves, from builders on whether the approach would work in adjacent catalog-discovery spaces.
Replies
This is such a cool concept! I love how you’ve built a mood‑based taxonomy to surface hidden gems instead of the usual top‑charts. I’ll definitely give it a look. If you're up for it, I'm launching on PH soon ... would appreciate a follow (See PRODUCT HUNT LAUNCH Link in my profile). I’m building The Sponge, an AI‑powered flashcard app that turns any webpage into study material.
@rianbrob thanks so much Rian! throwing a follow back. your app sounds very useful for even the non student use cases