Skip to main content

Build clean, ATS-friendly PDF resumes from YAML with Typst.

Project description

CVForge

PyPI version Downloads License: MIT

CVForge is a CLI that turns a YAML file into a clean, ATS-friendly PDF resume using Typst. Edit your content, rerun the command, and regenerate the same layout locally. Ideal for fast iteration and version control.


Why This Tool?

I created CVForge because I needed a fast, reliable way to build and rebuild my resume without:

  • Using Word or clunky desktop apps
  • Trusting random online resume builders with my personal data
  • Spending time on formatting instead of content

CVForge lets you define your CV once in YAML and regenerate it instantly. Change a job title, add a skill, rebuild — done. 100% local, 100% private.


Installation

Using UV (Recommended)

# Install as a tool
uv tool install cvforge

# Update
uv tool upgrade cvforge

# Uninstall
uv tool uninstall cvforge

Using Pip

# Install
pip install cvforge

# Update
pip install --upgrade cvforge

# Uninstall
pip uninstall cvforge

Usage

# Initialize a complete template cv.yaml
cvforge init

# Generate PDF from your YAML file
cvforge cv.yaml

# List all available fonts
cvforge fonts

# Verify ATS compatibility of generated PDF
cvforge ats-check <file.pdf>

Configuration & YAML Structure

Run cvforge init to generate a complete example cv.yaml file with all fields. Below is the full reference:

Field Required Description
language No Section headings language: "en" (default) or "tr". Does not translate content.
font No Font family (run cvforge fonts to see available options).
name Yes Your full name
role Yes Job title / professional role
email Yes Contact email
phone No Phone number
location No City, Country
website No Personal website URL
website-text No Custom display text for the website link
linkedin No LinkedIn profile URL
linkedin-text No Custom display text for the LinkedIn link
github No GitHub profile URL
github-text No Custom display text for the GitHub link
photo No Local path to your profile photo
photo-width No Photo display width (default: "2.5cm")
summary No Professional summary paragraph
skills No List of skill categories with items
experience No Work experience entries
education No Education entries
projects No Project entries
certifications No Certification entries
awards No Award entries
languages No Language proficiencies
interests No List of interests/hobbies

Inline Bold Formatting

Use double underscores to make text bold in narrative fields (summary, descriptions, skills, etc.):

summary: "Built and scaled __high-throughput APIs__ for fintech workloads."

Features

  • Cross-platform: Linux, Windows, macOS
  • ATS Compatible: Clean, parseable text + built-in checker (cvforge ats-check)
  • Multi-language Headers: Support for EN/TR out of the box
  • Typography Choices: 17 available fonts (cvforge fonts)
  • Rich Formatting: Inline bolding via __text__, profile photo support
  • 100% Local & Private: No cloud storage, no online rendering

Support

If you find this project useful, consider supporting its development:

Buy Me A Coffee


License

This project is licensed under the MIT License.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

cvforge-1.2.0.tar.gz (25.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

cvforge-1.2.0-py3-none-any.whl (18.4 kB view details)

Uploaded Python 3

File details

Details for the file cvforge-1.2.0.tar.gz.

File metadata

  • Download URL: cvforge-1.2.0.tar.gz
  • Upload date:
  • Size: 25.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.6 {"installer":{"name":"uv","version":"0.11.6","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

Hashes for cvforge-1.2.0.tar.gz
Algorithm Hash digest
SHA256 e7b9b913cc97cedc0697781f71215f1088693853e7510ea27777e36ef1b9d521
MD5 69f72d10fc675ce25b17efc8a68d98b3
BLAKE2b-256 f267d21950b01ed4ac58cf47c370ddbc0a30c22aabcca9a8b969030add57b8d4

See more details on using hashes here.

File details

Details for the file cvforge-1.2.0-py3-none-any.whl.

File metadata

  • Download URL: cvforge-1.2.0-py3-none-any.whl
  • Upload date:
  • Size: 18.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.6 {"installer":{"name":"uv","version":"0.11.6","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

Hashes for cvforge-1.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 610c3f2a6b430534a7dcad536513737a7d83ae9546f01608ef44804f2ac48630
MD5 673d788f43948445e500ba96dcba47b4
BLAKE2b-256 a5ac3de3fd17be5eef461bc8a78f79331959b2552ae2acaf2ffb48b488092f95

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page