Systems & engineeringnew

AMS - Automated Matchmaker

Intent grouping, strict role matching, adaptive thresholds and the composite score.

Last updated 17 Aug 2026

Overview

The Automated Matchmaker System (AMS) or ranking engine decides what a student sees first. It is deterministic, explainable and deliberately conservative: it would rather show you fewer confident matches than a long list of noise.

The problem it solves

A naive board sorts by date. That rewards whoever posted last, not whoever is relevant. A pure keyword search rewards listings that stuff their titles. Both fail the same student: someone with three skills, one stated interest and no patience.

CareerTruss ranks in two stages. First intent grouping answers a yes/no question: is this listing plausibly the thing you said you want? Then a composite score orders listings inside each group.

CareerTruss opportunity recommendation flow showing profile inputs, role inference, intent grouping, composite scoring, and final ranked opportunities.
Profile preferences and skills are used to identify relevant roles, group matches by intent, score opportunities across multiple factors, and produce prioritized recommendations. This diagram is a simplified representation of the ranking system. Implementation details, scoring weights, and matching logic may evolve as CareerTruss improves the system.

Stage 1 — Intent grouping

Group A membership is decided by isStrictRoleMatch, not by a score threshold. That distinction matters: a score-based gate lets a well-paid, freshly-posted, wrong-field listing buy its way into the top of your feed. A strict gate does not.

  1. Exact containment

    The listing role contains your preferred role, or your preferred role contains the listing role. "Frontend Developer Intern" matches "Frontend Developer".
  2. Role-specific keywords

    Each preferred role owns a curated keyword set. "Backend Developer" carriesbackend, api,server, node,django. Generic words like "intern", "developer" and "engineer" are deliberately excluded — they match everything and therefore mean nothing.
  3. Everything else falls to Group B

    Group B is not hidden. It is ranked below Group A and carries a flat −25 point penalty so irrelevant roles cannot climb on stipend alone.

Why a penalty and not a filter

Filtering out non-matches produces an empty page for students in thin categories. A penalty degrades gracefully: strong matches first, plausible adjacencies next, unrelated-but-real listings last.

Stage 2 — The composite score

Scoring is track-aware. Stipend is normalised within a track, because a ₹25,000 software stipend and a ₹6,000 NGO stipend are not comparable numbers and should not be ranked as if they were.

Composite contributions (indicative maxima)
SignalWeightHow it is computed
Skill overlaphighestYour skills ∩ listing skills, personalised by role-implied skills
Role relevance boostup to 30+20 title/keyword match, +15 track alignment, capped at 30
Stipendup to 30Min-max normalised inside the listing's own track
Work mode5–15Remote 15, hybrid 10, on-site 5
RecencydecayingNewer postings score higher; ~30 days treated as stale
Intent penalty−25Applied to every Group B listing

Adaptive skill threshold

Requiring a fixed 50% skill overlap punishes beginners — the exact users who need recommendations most. The required overlap ratio therefore scales with how many skills you have listed, from roughly 0.2 for a sparse profile up to 0.5 for a rich one.

Skills on profileRequired overlapEffect
1–2~20%One shared skill is enough to be considered
3–5~30–40%Matching tightens as evidence grows
6+~50%Only genuinely aligned listings qualify

Role inference

If you never picked a preferred role, the engine deriveseffectiveRoles from your skills using the same track map that powers the career tracks. i.e. React and TypeScript imply frontend; Figma implies design; Tally and financial modelling imply finance. Inference is a fallback, not a substitute — stated intent always wins.

The Profile Gate

Ranking on an empty profile is astrology. If you have fewer than three skills or no stated role, the Profile Gate intercepts you before the feed and asks for the two inputs the engine cannot work without.

Warning

An empty profile does not produce a "neutral" ranking — it produces a generic quality-and-recency ordering that looks arbitrary. The gate exists because that failure mode is invisible to the person experiencing it.

Explainability

Every recommendation carries a "Why this internship?" line built from the same values used to rank it: the specific skills that matched, the role that triggered the match, and whether it is a track-level or title-level alignment. If we cannot explain a placement in one sentence, it does not deserve the placement.

Tip

Want better ranking in two minutes? Add three real skills and pick one preferred role. That single action moves you from generic ordering into Group A eligibility.