Open Source · Free · No backend

Score your
resume.
Beat the ATS.

A fast CLI tool that scores resumes against 20+ job roles using keyword matching, semantic similarity, and structural analysis. Works with PDF, DOCX, and TXT — entirely offline.

cvz — analyze
λ cvz analyze resume.pdf --role backend
╭──────────────────────────────────╮
│ CVZ — ATS Resume Analyzer v0.1.4 │
╰──────────────────────────────────╯

Keyword ████████████████░░░░ 78.4%
Semantic █████████████░░░░░░░ 64.1%
Structure ███████████████░░░░░ 81.0%

Final ████████████████░░░░ 74.9%

⚠️ Decent match — a few tweaks could boost your score.

Missing Skills (top 3)
kubernetes
redis
grpc

λ
20+
Supported Roles
3
Scoring Engines
3
File Formats
0
Cloud / No Backend
Commands

Everything you need,
in the terminal.

Six focused commands covering every angle of resume analysis — from scoring to gap detection to multi-resume comparison.

core
cvz analyze
Score a resume against a specific role or custom job description. Auto-detects the best matching role if none is specified.
cvz analyze resume.pdf --role backend
analysis
cvz gap
Show exactly which core skills are present and which are missing. Clearly separates strengths from gaps with export support.
cvz gap resume.pdf --role machine_learning
comparison
cvz compare
Rank two or more resumes side by side with a full score breakdown per file. Great for self-benchmarking.
cvz compare r1.pdf r2.pdf r3.pdf
auto-detect
cvz suggest-role
Auto-detect the top matching roles from the resume without specifying one. Returns a ranked list of roles.
cvz suggest-role resume.pdf --top 10
utility
cvz roles
List all 20+ supported roles. Backend, ML, DevOps, Blockchain, iOS, UI/UX — and everything in between.
cvz roles
export
--export
Export any report — analyze, gap, or compare — to a structured JSON file for further processing or scripting.
cvz analyze resume.pdf --export report.json
How It Scores

Three engines.
One honest score.

🔑
Keyword Matching
50%
Core keywords (70 pts) + secondary keywords (30 pts). Uses whole-word regex to prevent false positives like "go" matching "django".
🧠
Semantic Similarity
30%
spaCy cosine similarity between resume and role keywords. Auto-downloaded on first run. Gated to prevent score inflation on weak matches.
📐
Structure Analysis
20%
Weighted presence of standard resume sections (Education, Experience, Skills, Projects…) combined with resume length scoring.
Score Thresholds
Great match — well aligned ≥ 75%
Decent match — improvable 50–74%
Low match — needs work < 50%
Supported Formats
.pdf pdfplumber — text extraction per page
.docx python-docx — paragraphs + tables
.txt built-in — UTF-8 with error handling
Get Started

Up and running
in 60 seconds.

bash
1 pip install cvz
2 cvz analyze resume.pdf --role backend
# spaCy model downloads automatically on first run
🐍
Python 3.9+ Compatible with all modern Python versions. Install via pip from PyPI.
📡
Works fully offline No API calls, no cloud. Everything runs locally on your machine.
🧩
Extend with custom roles Edit roles.json to add your own keyword sets for any role.
📦
Export everything as JSON All commands support --export for downstream processing.