Skip to content
The pipeline

Roles & scoring

Scraping roles, matching them to the resume, and ranking the odds.

Two different questions get two different scores. Match: does this role fit the resume? Selection odds: if we ask, how likely is it to land? The second decides where the 25 emails go.

Match score#

  1. A free lexical gate
    fit.py measures rare-term-weighted vocabulary overlap between the resume and the description — no model, no embeddings. Only roles above the 70th percentile go further. fit-explain JOB_ID shows the reasoning.
  2. A model rubric on the survivors
    The judge model alias scores each survivor against a rubric and returns reasons and skill gaps.
  3. Hard caps
    A senior title caps the score at 35; stated pay under ₹30 LPA at 40; a description under 200 characters at 60. A score of 65 or more is a high match.
Rule
A low score orders a role last. It never deletes it.

Selection odds#

confidence.py computes a deterministic 0–100 per role from weighted signals, with a separate profile for each market, then applies blocker caps.

India profile#

SignalWeight
Fresher-friendly22
Skills overlap16
A referrer exists15
Pay12
Skill gap8
Stage8
Recency7
City6
Hiring proven6

Remote profile#

Skills 15, remote terms 14, seniority fit 13, referrer 13, timezone 8, gap 8, international hiring 6, stage 6, competition 5, async 4, recency 4, hiring 4.

Blockers#

Some facts cap the score however good the rest is: needs a visa (10), 5+ years required (30), senior title (35), onsite elsewhere (20), hiring not authorised (40), stale posting (40), overrated company (30), below the pay bar (35).

BandScore
high≥ 65
medium≥ 48
low≥ 30
long shot< 30

Needs briefs#

For the top roles, needs.py writes a brief: what the role actually needs, mapped line by line to the resume — each need either covered by something you did, or marked UNCOVERED. Drafts never claim an uncovered need.

The best role per company rolls up to the company. Every role, by market and band, is the Roles tab of Best bets; on 13 Oct 2026 the first run ranked 1,224 India roles (53 high, 280 medium) and 1,920 remote roles (28 high, 150 medium).

These scores and briefs are what the decision brain reads when it asks whether a role is open and whether the resume passes a screen — and the uncovered needs across the shortlist become Upskill's learning plan.