🙉 Автоматизированный шаблон на Typst для генерации двух вариантов CV - для человека и для ATS https://cv.devtokiory.ru
  • Typst 92.9%
  • Dockerfile 7.1%
Find a file
2026-08-05 04:28:11 +03:00
assets feat: improve ATS contact details and project layout 2026-08-05 03:15:58 +03:00
components feat: add configurable CV templates 2026-08-05 02:47:35 +03:00
data fix: standardize technology names 2026-08-05 03:45:34 +03:00
extras/ai-check feat: add AI-powered CV scoring workflow 2026-08-05 04:28:11 +03:00
templates feat: refine resume terminology and metrics 2026-08-05 03:42:01 +03:00
.dockerignore feat: add configurable CV templates 2026-08-05 02:47:35 +03:00
.env.example feat: add configurable CV templates 2026-08-05 02:47:35 +03:00
.gitignore feat: add configurable CV templates 2026-08-05 02:47:35 +03:00
docker-compose.dev.yml feat: add configurable CV templates 2026-08-05 02:47:35 +03:00
docker-compose.yml chore: update docker-compose.yml cv version 2026-08-05 03:46:10 +03:00
Dockerfile feat: add configurable CV templates 2026-08-05 02:47:35 +03:00
mise.toml feat: add AI-powered CV scoring workflow 2026-08-05 04:28:11 +03:00
nginx.conf feat: init 2026-08-04 00:30:28 +03:00
README.md feat: add AI-powered CV scoring workflow 2026-08-05 04:28:11 +03:00

CV

Typst sources for generating two versions of a CV:

  • humanish: visually styled version
  • ats-compatible: version optimized for applicant tracking systems

The generated PDF is written to build/<type>.pdf.

🛠️ Requirements

  • mise
  • Docker, if using the container workflow

The required tool versions are defined in mise.toml. Install the project tools with:

mise trust
mise install

The score-cv task also requires an AI provider configured for pi.

🏗️ Build

Build a specific CV variant:

mise run build humanish
mise run build ats-compatible

Watch a template and rebuild it when files change:

mise run watch humanish
mise run watch ats-compatible

🐳 Docker

For a local image build, copy the example environment file and choose a variant:

cp .env.example .env
docker compose -f docker-compose.dev.yml up --build

The PDF is served by nginx at http://localhost:3090/cv.pdf.

The production Compose file uses the published image selected by CV_TYPE:

docker compose up -d

Set CV_TYPE to either humanish or ats-compatible in .env before starting the service.

✏️ Editing Content

Most CV content is stored in TOML files under data/:

  • data/job.toml: work experience
  • data/education.toml: education
  • data/skills.toml: skills and technologies
  • data/pets.toml: personal projects

The layouts are defined in templates/, with reusable Typst components in components/. Images and icons are stored under assets/.

🙇‍♂️ Score a CV

Use the AI scoring task to review a CV file with the prompt in extras/ai-check/score-cv.md:

mise run score-cv path/to/cv.pdf

The task passes the file path to pi and formats the result with glow. Make sure the pi CLI is configured before running it.

🙉 Release

Update the image version in docker-compose.yml, create and push a release tag, then build and push both CV variants:

git tag -a 1.0.0 -m "Release 1.0.0"
git push 1.0.0
mise run buildx:create
mise run buildx:push:all 1.0.0

buildx:create is only needed when the multiplatform Buildx builder does not already exist. The release task produces images for linux/amd64 and linux/arm64.

To build and push only one variant:

git tag -a 1.0.0 -m "Release 1.0.0"
git push origin 1.0.0
mise run buildx:push 1.0.0 humanish