From a position to a ranked shortlist. Live = the actual product today (real screenshots); New = the proposed additions for the Fit Score, which runs before the assessment. No confirmation screen — we infer the evaluation context, rank, and only then ask if you want to change anything.
The existing wizard (name → skills → details → review) captures band, skills & priorities, and the JD. Then Publish.
Actual screen — "Review your Senior QA Engineer position" → Publish.
Actual screen — the "Your assessment is ready!" confirmation, with Upload candidates database.
The existing Add candidate → Upload Resumes modal (PDF · up to 10 · 10MB each). No "Rank" button — and no confirmation screen. Uploading auto-starts the ranking.
We no longer ask the recruiter to confirm the evaluation signals. The old "Confirm your preferences" screen (min years · environment · candidate type) is gone. We infer the whole evaluation context — seniority band, environment lens, domain, min-years — from the JD plus a website crawl, and rank straight away. If we got something wrong, the recruiter fixes it after seeing the results (STEP 6), not before.
Actual screen — the Upload Resumes modal.
The moment résumés are uploaded, we silently build the evaluation context (band · environment · domain · min-years, from the JD + site crawl) and start ranking. A small widget appears fixed at the bottom-right and stays there while it runs — the recruiter keeps working anywhere in the app, no waiting screen, no questions asked up front.
While running — persistent, bottom-right, updates live.
Done — the widget shows the result and a button that opens the position page, where the ranked cards live.
The button lands on the existing position page. Every candidate is already a card with a circular Score gauge, a status, Select / Reject, and a View Assessment button. For Fit, the gauge shows the Fit Score (colored by bucket), the list is sorted Strong → Weak, and each card gains a bucket pill + the high-confidence signal chips — the same chip shape as the network / location chips already on the report.
Proposed on the real cards — Rohan Mehta leads with a green ● Strong fit pill + Playwright ✓ · 6 yrs QA (and the existing Location differs from profile chip sits right alongside); Ananya Iyer shows an amber ◐ Potential fit + Selenium ✓ · 4 yrs QA. Only high-confidence signals appear; each opens the details. (Candidate names shown are placeholders.)
No separate Fit report and no click-through modal. The résumé signals surface right on the task-report profile card — in the same tag row that shows the Location differs from profile chip. We lead with a bucket pill and show only the high-confidence signals (never all 14). Hovering any chip explains that one signal — what we found, how confident we are, and the evidence behind it; the bucket pill's hover gives the overall verdict. Silent when we aren't sure.
Proposed on the real card — the green ● Strong fit pill plus high-confidence chips (Playwright ✓, 6 yrs QA automation, Built a framework) in the tag row beside the location chip; a warning-tone ⚠ Mobile / Appium gap flags a risk. Hovering a chip pops that signal's detail + Confidence + evidence (drawn here on the 6 yrs QA automation chip).
Each popover is drawn straight from the stored signal record: its detail, confidence, and the evidence rows (source → quote). Here is the hover for every chip on the card above.
Every chip's hover is one signal from the stored signals[] — detail + confidence + evidence. The bucket pill's hover carries the aggregate (fit_score · bucket · recommendation). No click, no second screen.
Only what we're sure about shows. A chip appears only at High confidence; anything thinner (Medium / Low / Unknown) stays silent rather than inventing a weak signal — the same discipline the network-signal chips use (a null check never earns a chip). The evaluation context we assumed (band · environment · domain · min-years) and the Adjust control live in STEP 6, not in a modal here.
Because we never asked up front, we show what we inferred once the results are in — and let the recruiter correct it. It lives in two places: a strip at the top of the position page (the shared context), and the Adjust → shortcut inside every Fit-details modal, which deep-links to the same strip.
Proposed — the strip at the top of the ranked list. One line, dismissible, always correctable.
Proposed — the same checkbox + stepper controls from the old confirm screen, but they now appear after the results, only if the recruiter wants to change something.
Rule of thumb: Fit Score filters the inbox (résumé, before the test); the assessment score grades the test (after). We assume, rank, then let you adjust — the confirmation step became an optional correction.
Utkrusht — internal design · the recruiter flow for résumé Fit Score