Generate and tailor one-page RenderCV resume PDFs from local source material.
Project description
Resume Generator
Generate and tailor one-page resume PDFs from RenderCV YAML.
The package provides two CLI paths:
- Render an existing RenderCV YAML file to PDF.
- Tailor a resume from a public job URL and local Markdown source material, then validate generated claims before rendering.
Install
uv tool install evidence-resume-tailor
For local development:
uv sync
Render A Resume
uv run resume-generator examples/basic.yaml
The PDF is written to:
output/resumes/basic.pdf
RenderCV also writes a .typ build artifact next to the PDF. Generated resumes are capped at one page; oversized PDFs fail the command so the resume stays targeted. When local PDF rasterization is available, the CLI also reports page fill, for example 88% page height reached.
The render command can also be called explicitly:
uv run resume-generator render examples/basic.yaml --output-dir output/resumes
Use --keep-supporting-formats when you also want RenderCV's Markdown and HTML outputs.
Tailor A Resume
The tailoring flow uses local Markdown files as the source of truth, fetches a public job page, asks Codex CLI to produce structured tailored resume content, validates generated resume claims against cited source text, then renders the final one-page PDF with RenderCV.
uv run resume-generator tailor \
--job-url "https://company.com/jobs/123" \
--content-dir content \
--out-dir generated/company-role
Artifacts are written under the output directory:
job.md
prompt.md
tailored_resume.json
resume.yaml
evidence.json
resume.pdf
resume.typ
Each run writes to a staging directory first. Existing final artifacts are only replaced after evidence validation and one-page PDF rendering both succeed. If a valid one-page draft uses too little vertical space, the tailor flow gives Codex one bounded revision attempt with the measured page-use percentage and asks it to add only stronger job-matched, evidence-backed content. If a run fails after writing diagnostics, the CLI reports the staging path.
Tailoring requires the codex CLI to be installed and authenticated. Plain YAML rendering does not require Codex.
Local Source Material
Put private source material in Markdown files under content/. Nested folders are fine, and each file becomes an evidence source keyed by its relative path.
content/
profile.md
projects/
resume-generator.md
Optional YAML frontmatter is supported:
---
kind: project
---
Built a RenderCV-based resume generator.
The AI is instructed to use only these files and to choose only the strongest material for the specific job. Substantive generated resume claims in summaries, highlights, bullet-style entries, section fields such as company/project names and dates, skill details, and cv.headline must be cited in evidence.json. Short display labels such as skill group names are treated as presentation, not claims. The validator also checks that cited source files contain the claim or the claim's key terms and numbers; otherwise the PDF render is blocked.
content/, generated/, output/, tmp/, and PDF/Typst render artifacts are ignored by git so personal material stays local by default.
Development
uv run pytest
uv build --wheel --sdist
To verify the local Codex CLI integration:
RUN_LIVE_CODEX_SMOKE=1 uv run pytest tests/test_codex_smoke.py
Release Automation
The repository includes a GitHub Actions workflow that can publish to PyPI through trusted publishing.
The scheduled publish workflow runs around 1:00 AM Eastern. It checks package-relevant files against the most recent v* tag. If no package changes are found, it exits without publishing. If package changes are found, it bumps the patch version, commits the version update, creates a tag, builds the wheel and source distribution, publishes to PyPI, and creates a GitHub release.
PyPI trusted publishing must be configured for this repository before the first automated publish can succeed. Configure the PyPI project with:
PyPI Project Name: evidence-resume-tailor
Owner: the-Drunken-coder
Repository name: resume-generator
Workflow filename: publish.yml
Environment name: pypi
If the PyPI project does not exist yet, create a pending trusted publisher with the same values in PyPI before running the workflow.
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 evidence_resume_tailor-0.1.0.tar.gz.
File metadata
- Download URL: evidence_resume_tailor-0.1.0.tar.gz
- Upload date:
- Size: 50.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.11.26 {"installer":{"name":"uv","version":"0.11.26","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
35fac74dd6fb9473ce4d0fcef6c0026ceb000daa200cef2f8e4a4586d24afcc3
|
|
| MD5 |
53f6ea99ff6334371480ea1692a09a57
|
|
| BLAKE2b-256 |
4e174867308b1eb0811ff128168df0a60abb1db051e442bd71d3440857effba4
|
File details
Details for the file evidence_resume_tailor-0.1.0-py3-none-any.whl.
File metadata
- Download URL: evidence_resume_tailor-0.1.0-py3-none-any.whl
- Upload date:
- Size: 22.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.11.26 {"installer":{"name":"uv","version":"0.11.26","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5dd755bf8a16f1c59e9e575c6c347890f6def985e1a57a184c269ed6efdb0f0a
|
|
| MD5 |
fd7d744552bd0bd773302f0d5e9c009a
|
|
| BLAKE2b-256 |
e370c91ea81307e7686d5460e2221243f0fc4c3d929b99b2326a8c70105b4c1d
|