ATS-friendly CV/Resume builder using YAML and Typst
Project description
CVForge
CVForge is a straightforward, YAML-based, ATS-compatible CV/Resume generator powered by Typst. Create professional, machine-readable resumes in seconds.
🚀 Quick Start
Using UV (Recommended)
The fastest way to use CVForge is with uv, which is significantly faster and keeps tools isolated.
# Run instantly without installing (creates a temp environment)
uvx cvforge init # Create a template cv.yaml
uvx cvforge cv.yaml # Build your CV
# Or install globally as a tool
uv tool install cvforge
cvforge cv.yaml
Using Pip
CVForge is available on PyPI and can be installed with standard pip:
pip install cvforge
cvforge cv.yaml
📋 Requirements
- Typst: The Typst CLI must be installed and available in your
PATH. - Python 3.8+
📖 Usage
| Command | Description |
|---|---|
cvforge init |
Creates a template cv.yaml in the current directory. |
cvforge <file.yaml> |
Generates a PDF from the specified YAML file. |
cvforge fonts |
Lists all available ATS-friendly fonts. |
cvforge ats-check <file.pdf> |
Analyzes a PDF for ATS compatibility. |
cvforge --help |
Shows help information. |
Examples
# Initialize a new CV project
cvforge init
# Build CV from default cv.yaml
cvforge cv.yaml
# Build from any YAML file
cvforge resume.yaml
# Check if your PDF is ATS-friendly
cvforge ats-check cv.pdf
⚙️ Configuration
Language
language: "en" # English (default)
language: "tr" # Turkish
Fonts
All fonts are ATS-friendly. Use cvforge fonts to see the full list.
font: "roboto" # Options: noto, roboto, inter, lato, montserrat, opensans, etc.
📝 YAML Structure
# Configuration
language: "en"
font: "noto"
# Required
name: "Your Name"
# Optional
role: "Software Engineer"
email: "hello@example.com"
phone: "+1 555 123 4567"
location: "New York, USA"
website: "example.com"
linkedin: "linkedin.com/in/username"
github: "github.com/username"
photo: "photo.jpg"
summary: |
A brief professional summary...
experience:
- company: "Tech Corp"
role: "Senior Developer"
date: "2022 - Present"
description:
- "Led a team of 5 developers"
- "Reduced latency by 40%"
education:
- school: "University of Science"
degree: "B.S. Computer Science"
date: "2018 - 2022"
skills:
- Category: "Languages"
Items: ["Python", "Rust", "TypeScript"]
# Additional sections: projects, languages, certifications, awards, interests
✨ Features
- ✅ Cross-platform: Linux, Windows, macOS
- ✅ ATS Compatible: Clean, selectable text
- ✅ Multi-language: English and Turkish section headings
- ✅ 11 ATS-friendly fonts
- ✅ Built-in ATS checker
- ✅ Optional photo support
- ✅ 100% Local & Private
🔒 Privacy & Security
CVForge operates entirely on your local machine. Unlike web-based resume builders, no data is ever sent to external servers.
- Secure: Your personal information stays on your computer.
- Private: You maintain full control over your data without uploading it to the cloud.
📦 Tool Management with UV
If you installed CVForge with uv tool install:
# Upgrade to latest version
uv tool upgrade cvforge
# Run a specific version
uvx cvforge@1.0.0
# Uninstall
uv tool uninstall cvforge
🤖 A Note
This project was fully vibe coded — built with AI assistance. ✨
📜 License
MIT
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file cvforge-1.0.1.tar.gz.
File metadata
- Download URL: cvforge-1.0.1.tar.gz
- Upload date:
- Size: 23.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.18 {"installer":{"name":"uv","version":"0.9.18","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Arch Linux","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c43d754eb32e558bbd7d30d84800a761dd81c3414a129fb4a9b4ed5cb5affe71
|
|
| MD5 |
45da45fa1580a6f7ed0e2ec002659252
|
|
| BLAKE2b-256 |
fe02695af7a0ef63330f576a224f253b49f29411d6bd6d84832aa401550f2915
|
File details
Details for the file cvforge-1.0.1-py3-none-any.whl.
File metadata
- Download URL: cvforge-1.0.1-py3-none-any.whl
- Upload date:
- Size: 14.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.18 {"installer":{"name":"uv","version":"0.9.18","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Arch Linux","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
df56f46b53dd83a334fdd58aa4f8da75d2af0d022c936c59aaf88408267dd3aa
|
|
| MD5 |
a2fabed818887fc22fa2833d912e4c40
|
|
| BLAKE2b-256 |
aba082632ca9eadce4b31c4fc634872d213da2f445885deafcab992cc08cc467
|