Open-source CV builder + ATS resume evaluator with EU A4 / US Letter presets.
Original project by Xitang Zhao. Fork maintained by Alexandre Teixeira.
ATS scoring breakdown with local diagnostics.
- At a Glance
- About
- What This Fork Adds
- ATS Scoring
- EU vs US Presets
- Docs
- Self-Hosting
- Deploy with Docker (Behind Reverse Proxy)
- Testing
- Project Layout
- Maintenance & Upgrades
- Credits
Highlights: ATS-ready resume builder, local ATS scoring, and a built-in resume grader.
- EU A4 and US Letter presets for layout, spacing, and headings.
- ATS scoring and diagnostics run entirely offline (no third-party APIs).
- CV/resume evaluator view with transparent parsing evidence.
- Parser transparency: see extracted fields, token evidence, and issue details.
- Builder includes GitHub profiles, project links, languages, and optional GPA (US).
- Typography controls: body size, name size, section spacing, line height.
- Docker and Makefile workflows for easy self-hosting.
OpenResume is an open-source resume/CV builder and ATS evaluator you can run locally. It generates professional, ATS-friendly PDFs and lets you grade, score, and inspect how a machine would read your resume before you apply.
Highlights: ATS readiness + EU-focused CV workflow with a feedback loop.
- Local ATS scoring with UI + API + CLI parity.
- EU vs US presets (A4 vs Letter) in both builder and parser.
- ATS issue details to show exact detections and missing fields.
- Extra builder fields: GitHub, project links, languages, optional GPA.
- Typography controls for fine-tuned readability.
- Resume import hub to continue, start fresh, or import PDF/JSON.
- Workbench UX: consistent builder/parser layout, clearer previews.
- Manual preview refresh with Enter-to-refresh for stability.
The ATS engine grades resumes on parsing reliability, structure, readability, and optional job-description keywords. It returns a score plus a list of actionable issues with diagnostic details.
- Full breakdown:
docs/ATS_SCORING.md - Issue list:
docs/ATS_ISSUES.md
- Fork overview and changes:
docs/FORK_OVERVIEW.md - Maintenance and upgrades:
docs/MAINTENANCE.md - Self-hosting guide:
docs/SELF_HOSTING.md
- EU (A4) uses A4 sizing and EU-friendly headings.
- US (Letter) uses Letter sizing and US-oriented headings.
- Parser expectations match your selected region.
Prerequisites:
- Node.js 20 LTS (see
.nvmrc) - npm
Quick start (npm):
npm install
npm run build
npm startQuick start (Makefile):
make install
make build
make rungit clone https://github.com/alteixeira20/open-resume.git
cd open-resume
docker network create edge # if it doesn't exist
docker compose up -d --buildVerify from your proxy container:
docker exec nginx wget -qO- http://open-resume:3000 | headHighlights: Parser heuristics, ATS scoring, and UI safeguards are covered by unit and component tests.
npm run lint
npm run test:ci
npm run build- Parser coverage: section grouping, bullet extraction, subsection splitting, feature scoring.
- ATS coverage: scoring breakdowns, JD keyword impact, EU vs US formats, issue reporting.
- UI coverage: locale toggle, import dropzone validation.
- Core utils: deep clone/merge helpers, object iterators, class name combinator.
src/app— Next.js app routes and UI componentssrc/app/lib— parsing, ATS scoring, and shared utilitiespublic— assets, fonts, and example resumesdocs— scoring details, issues reference, and hosting notesscripts— CLI tooling
This fork is actively maintained with explicit upgrades and compatibility notes:
- Node 20 LTS pinned via
.nvmrc - Next 16 migration with Webpack build flags for stability
- ESLint 9 flat config (
eslint.config.mjs) - Sitemap + robots via Next route handlers
See docs/MAINTENANCE.md for upgrade history and rationale.
- Original project: Xitang Zhao
- Design: Zhigang Wen
- Fork maintainer: Alexandre Teixeira
Licensed under MIT. See LICENSE.