Shows how well a tailored resume matches the original job description.
The Resume Builder includes a "JD Match" tab that shows how well a tailored resume matches the original job description.
- User tailors a resume against a job description
- Opens the tailored resume in the Builder
- "JD MATCH" tab appears (only for tailored resumes)
- Shows side-by-side comparison:
- Left panel: Original job description (read-only)
- Right panel: Resume with matching keywords highlighted in yellow
- Keyword extraction: Extracts significant keywords from JD (filters common stop words)
- Case-insensitive matching: Matches keywords regardless of case
- Match statistics: Shows total keywords, matches found, and match percentage
- Color-coded percentage: Green (≥50%), yellow (≥30%), red (<30%)
| File | Purpose |
|---|---|
apps/frontend/lib/utils/keyword-matcher.ts |
Keyword extraction and matching utilities |
apps/frontend/components/builder/jd-comparison-view.tsx |
Main split-view component |
apps/frontend/components/builder/jd-display.tsx |
Read-only JD display |
apps/frontend/components/builder/highlighted-resume-view.tsx |
Resume with keyword highlighting |
apps/backend/app/routers/resumes.py |
GET /{resume_id}/job-description endpoint |
| Endpoint | Description |
|---|---|
GET /resumes/{resume_id}/job-description |
Fetch JD used to tailor a resume |