Resume screening guide — from PDF chaos to ranked shortlist.
Published 4/1/2026 • Updated 9/10/2026 • 14 min read
1. Intake hygiene
- Require plain-text-friendly PDFs; OCR where needed but flag image-only scans.
- Deduplicate by email/name before scoring — avoid double-ranking the same candidate.
- Tag source (referral, inbound, sourcing) for later pipeline analytics.
2. Semantic screening beats keyword gating
Break resumes into semantic chunks, embed with Gemini 384-d vectors, index in pgvector. Query with your JD + expanded synonyms (“distributed cache” → Redis, Memcached, cache coherence). Rank by cosine similarity and rubric weights — so a stellar systems engineer isn’t rejected for omitting the acronym “Kubernetes” when they wrote “container orchestration at scale.”
3. Calibration checklist
- Validate JD: does rubric separate junior/mid/senior clearly? Adjust dimension weights.
- Blind mode: redact before scoring, not after. Log redaction.
- Cut line: decide interview threshold (e.g., ≥80%) before seeing names.
- Audit: sample 10 near-threshold candidates manually; tune if variance >15%.
FAQ
Should we use AI to auto-reject?▾
No. Use AI to rank and flag gaps; keep rejection human. Auto-rejection at high volume without monitoring creates legal exposure and candidate harm.
How do we calibrate scores across roles?▾
Maintain role families (backend, frontend, data, product) with stored rubrics; re-weight dimensions when business priorities shift (e.g., architecture > velocity for platform roles).