Archetype-aware movie recommendations,
built on synthetic research

MovieTwirl models taste with Moore/Gillette mature masculine archetypes (King, Warrior, Magician, Lover), generates realistic viewing decisions via a five-station pipeline, and evaluates a Phase 2 ranker on a frozen cohort — without waiting for millions of real users.

FastAPI + React Synthetic parquet cohort Listwise ranker v2 Private Kaggle / HF datasets

What the frozen cohort showed

Three weeks of weekly snapshots on a fixed 6,796-session synthetic cohort (1,413 held-out test sessions).

16.5%
Session hit@1 (ranker)

Top surfaced pick matches user's choice

16.1%
Affinity baseline

Sort by archetype–movie score only

10.0%
Random baseline

10 candidates per session

6796
Frozen sessions

91,793 decision rows

Hit@1 by viewing mode

Social context changes predictability — impress sessions are easiest to rank.

impress
22.2%
kids win
19.9%
compromise
18.6%
obligation
17.1%
solo
12.4%

Hit@1 by dominant archetype

Lover-dominant profiles showed the strongest session-level accuracy in the holdout.

Lover
18.9%
King
16.9%
Magician
15.4%
Warrior
14.4%

Production app + research engine

🎬 The app (moviea.net)

  • FastAPI backend with TMDB, Watchmode, Trakt integrations
  • Hybrid ML: collaborative filtering + content embeddings + neural reranker
  • React/Vite frontend for discovery, streaming availability, profiles
  • GET /api/v1/recommendations/archetype — Phase 2 ranker endpoint
Architecture deep dive →

🔬 The research pipeline

  • Five stations: affinities → users → sessions → decisions → rationales
  • Affinity matrix from reference corpus + zero-shot labeling
  • Softmax choice model with counterfactual rows for learning-to-rank
  • 8-week cohort study (closed early Aug 2026) with frozen parquet exports
Station-by-station walkthrough →

Research takeaway

With real affinity labels, session hit@1 stabilizes around 16.5% — above random (10%) but close to a simple affinity sort. The ranker's value is in combining mode, hero stage, and movie signatures; the cohort proved the evaluation harness works before scaling real user data.

Datasets published privately on Kaggle and HuggingFace.