Career Tailor
Career Tailor is a local-first command line tool that turns a master resume into job-specific drafts. It extracts a structured profile from your resume, compares that profile against a job description, and generates tailored Markdown, JSON, CSS, and optionally PDF output.
The goal is not to fabricate experience. The agent is prompted to preserve the facts in your profile and reframe them in the language of the job description.
Why
Many applicant tracking systems and recruiter workflows reward resumes that use the same language as the job posting. Career Tailor helps job seekers build truthful, role-specific versions of a resume without manually rewriting the same material for every application.
Install
uvx career-tailor --help
For local development:
git clone https://github.com/chriestensonb/career-tailor.git
cd career-tailor
uv sync
cp .env.example .env
You can also run the latest unreleased GitHub version directly:
uvx --from git+https://github.com/chriestensonb/career-tailor career-tailor --help
Set your model provider key in .env. By default the project uses a Pydantic AI
Anthropic model string, but OpenAI model strings are supported too:
CAREER_TAILOR_MODEL=anthropic:claude-sonnet-4-6
ANTHROPIC_API_KEY=...
Or:
CAREER_TAILOR_MODEL=openai:<model-name>
OPENAI_API_KEY=...
Usage
Create a structured profile from an existing resume:
career-tailor ingest ./my-resume.md
Generate a tailored resume from a job description:
career-tailor tailor ./job-description.md
Skip PDF rendering when you only want Markdown and JSON:
career-tailor tailor ./job-description.md --no-pdf
The default profile path is data/profile.json. Generated outputs go to
tailored/. Both directories are ignored by Git because they commonly contain
personal information.
Data And Privacy
Career Tailor runs locally, but it sends resume and job description text to the model provider you configure. Do not use it with sensitive data unless you are comfortable with that provider's data handling terms.
The repository ignores:
.envand other local env filesdata/, which stores extracted profile datatailored/, which stores generated resumes- local caches and virtual environments
Development
uv sync --dev
uv run pytest
uv run ruff check .
If PDF rendering fails the first time, install Playwright's Chromium browser:
uv run playwright install chromium
Project Status
This is early alpha software. It is useful as a local CLI today, and the next good open-source milestones are provider examples, safer redaction workflows, more resume import formats, and package publishing.
Release files for career-tailor 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| career_tailor-0.1.0.tar.gz | 22.1 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| career_tailor-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 50.5 kB
Release files / career_tailor-0.1.0.tar.gz
| Download URL | career_tailor-0.1.0.tar.gz |
|---|---|
| Size | 22.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
6c2e7dab77c45be6d0c2cfaeda6a7a634942a713ae5ae6c279b16c36b1ef8541
|
|
BLAKE2b-256 checksum How to use checksums |
66275200c9f063f5131ce9cff4aeb4d0e7c919d64abf729d6c0db8f5aa74c3ff
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jun 10, 2026.
Transparency logRelease files / career_tailor-0.1.0-py3-none-any.whl
| Download URL | career_tailor-0.1.0-py3-none-any.whl |
|---|---|
| Size | 28.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
5fa0aebff271f1cd032007951407f37ba40680aba38f28460da9aeb8db922135
|
|
BLAKE2b-256 checksum How to use checksums |
1b7d0a5487412d9b685cc5c00dece39a7994d0b7adc53872811e5c3df8d53605
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jun 10, 2026.
Transparency log