Skip to main content

ATS-friendly CV/Resume builder using YAML and Typst

Project description

CVForge

A YAML-based, ATS-compatible CV/Resume generator powered by Typst.


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.

Note: I'm planning to re-build this tool from scratch with no vibe coding.


Requirements

  • Typst: Must be installed and available in your PATH
  • Python 3.8+

Installation

Using UV (Recommended)

# Run without installing
uvx cvforge init
uvx cvforge cv.yaml

# Or install as a tool
uv tool install cvforge
cvforge cv.yaml

# Update
uv tool upgrade cvforge

# Uninstall
uv tool uninstall cvforge

Using Pip

# Install
pip install cvforge

# Update
pip install --upgrade cvforge

# Use
cvforge cv.yaml

Usage

Command Description
cvforge init Creates a template cv.yaml
cvforge <file.yaml> Generates PDF from YAML
cvforge fonts Lists available fonts
cvforge ats-check <file.pdf> Checks PDF for ATS compatibility

Configuration

Language

The language parameter controls the section headings in your CV (e.g., "Experience" vs "Deneyim"). It does not translate your content.

language: "en"  # English headings (default)
language: "tr"  # Turkish headings

Fonts

Run cvforge fonts to see available options. The font must be installed on your system.

font: "roboto"  # Options: noto, roboto, inter, lato, montserrat, opensans, etc.

YAML Structure

language: "en"
font: "noto"

name: "Your Name"
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: projects, languages, certifications, awards, interests

Features

  • Cross-platform: Linux, Windows, macOS
  • ATS Compatible: Clean, parseable text
  • Multi-language: EN/TR section headings
  • 11 fonts available
  • Built-in ATS checker
  • Photo support
  • 100% Local & Private

License

MIT

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.0.2.tar.gz (24.4 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.0.2-py3-none-any.whl (16.1 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: cvforge-1.0.2.tar.gz
  • Upload date:
  • Size: 24.4 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

Hashes for cvforge-1.0.2.tar.gz
Algorithm Hash digest
SHA256 008079eaa63a1e49f38c2c08f1ac788f2d77028b4750e5cea254818a4ce645c9
MD5 9778e320f351d72692b234fc5108181b
BLAKE2b-256 d0f2c22b0b1582487ec17ef2fe1a3000f894c454b8b0ae6b3359600e0ee60c68

See more details on using hashes here.

File details

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

File metadata

  • Download URL: cvforge-1.0.2-py3-none-any.whl
  • Upload date:
  • Size: 16.1 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

Hashes for cvforge-1.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 ca9d5b1d7c0003152876f6adadfc017d782dc7b9447a327c4a433abac02194b3
MD5 380091425806a6449e10f79d01b4d95d
BLAKE2b-256 a7d4847d9f1551846f7cbb065f17deb0fa749d935eb031943df457864ab763ef

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