Every learner gets the same search results today. Re-ranking takes those results and reorders them based on who you are — your skills, role, language, region, learning history, and enrollment progress. Uses local AI embeddings for semantic matching that goes beyond keyword lookup.
How much do we know? Tier 0 (nothing) to Tier 3 (rich profile). Determines which signals activate.
Analyse the search query to adjust signal weights. LLM or local rules classify the query and tune weights dynamically.
Remove content based on non-negotiable rules (e.g., completed content when toggle is off).
Local MiniLM-L6-v2 computes holistic profile-content similarity + individual semantic signals. Content embeddings cached in Redis.
15 signals scored per result with query-adjusted weights. Each contributes a positive or negative boost.
Max 3 per provider in top 10. Prevents any single source from dominating.
personalizedScore = baseScore × (1 + Σ(signalBoost × tierWeight))Each signal contributes a boost (positive or negative) multiplied by its tier-dependent weight. Semantic signals scale by similarity score (e.g., 82% match → stronger boost than 45% match). Enrollment status applies fixed boosts independent of tier weights. A total boostSum of 0.2 means the result's score increases by 20%.