Schema-driven, LLM-assisted engine that compiles a graph-of-atoms career corpus into job-targeted CVs, resumes, and cover letters.
Project description
tool_cv_corpus
Schema-driven, LLM-assisted engine that compiles a graph-of-atoms career corpus into job-targeted CVs, resumes, and cover letters.
Why
Most resume tooling treats a CV as a document you edit. Every new target becomes a rewrite, the sourcing behind each bullet gets lost, and one-off prose mixes with data you wanted to re-use.
tool_cv_corpus inverts the model:
- Your corpus is structured, sourced career data with provenance.
- A target is a job posting you are applying to.
- The engine resolves corpus against target, scores claims by
fit, applies visibility rules, and emits a format-agnostic
RenderedResume. - Pluggable renderers turn it into PDF (Typst), JSON Resume, DOCX, or HTML.
Pipeline
flowchart LR
LI[LinkedIn export] --> ING[ingesters]
MD[Markdown + YAML] --> ING
GH[GitHub profile] --> ING
OR[ORCID] --> ING
ING --> CORPUS[(corpus<br/>graph of atoms)]
CORPUS --> LOAD[loader]
TARGET[target] --> LOAD
LOAD --> GEN[generator + LLM cache]
GEN --> RR[RenderedResume<br/>intermediate]
RR --> TYPST[typst -> PDF]
RR --> JR[JSON Resume]
RR --> DOCX[DOCX]
RR --> HTML[HTML]
Quick start
uv add tool-cv-corpus
cv-corpus doctor # verify install
cv-corpus init my_career # scaffold a corpus
cv-corpus validate my_career # run 11 checks
cv-corpus schema --out schemas/ # export JSON Schemas
Try the bundled synthetic example:
cv-corpus validate examples/corpus_jordan_taylor
Entity kinds
person, organization, role, project, achievement, skill,
education, publication, artifact, testimonial,
cover_letter_seed, target, source_doc. Plus Claim records
layered on top for sourced assertions.
See docs/architecture/schema.md for the design invariants.
Plugins
Three entry-point groups discover renderers, ingesters, and LLM providers at install time:
tool_cv_corpus.renderers-typst,json_resume,docx,htmltool_cv_corpus.ingesters-markdown,linkedin_export,github_profile,orcidtool_cv_corpus.llm_providers-anthropic,openai(stub)
Write your own: see docs/plugin_authoring/index.md.
Configuration
| Variable | Effect |
|---|---|
CV_CORPUS_SOURCE_STORE |
Override CAS root (default: platformdirs) |
CV_CORPUS_MODEL |
Override default LLM model |
ANTHROPIC_API_KEY |
Anthropic provider auth |
OPENAI_API_KEY |
OpenAI provider auth (stub) |
Status
Version 0.1.0 ships the schema, CLI surface, validator with 11 ordered checks, the default plugin set, CI matrix across 3 OS x 2 Python versions, and trusted-publishing release wiring.
The claim-scoring and target-aware generation phases are stubs; contributions welcome.
Contributing
Read CONTRIBUTING.md and code_of_conduct.md first. Conventional commits and SSH-signed commits are required for maintainers; contributors can open PRs without signing and a maintainer will squash-merge.
License
Apache 2.0. See LICENSE.
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 tool_cv_corpus-0.2.0.tar.gz.
File metadata
- Download URL: tool_cv_corpus-0.2.0.tar.gz
- Upload date:
- Size: 178.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e67cb8adb54e2cdeb1f1c0207b37484b6321ca300e0bce46f9c540fba02c799c
|
|
| MD5 |
fee9738837d9b685eb5a96a664dde70f
|
|
| BLAKE2b-256 |
155726808fe04019429a6b38f1a2cd169c47ac7ed93e8b1bd2b1b26d3af67f28
|
Provenance
The following attestation bundles were made for tool_cv_corpus-0.2.0.tar.gz:
Publisher:
release.yml on iam6ft7in/tool_cv_corpus
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
tool_cv_corpus-0.2.0.tar.gz -
Subject digest:
e67cb8adb54e2cdeb1f1c0207b37484b6321ca300e0bce46f9c540fba02c799c - Sigstore transparency entry: 1351879638
- Sigstore integration time:
-
Permalink:
iam6ft7in/tool_cv_corpus@d23557395998b6fe8814e330e50fcacef5e0cc27 -
Branch / Tag:
refs/tags/v0.2.0 - Owner: https://github.com/iam6ft7in
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@d23557395998b6fe8814e330e50fcacef5e0cc27 -
Trigger Event:
push
-
Statement type:
File details
Details for the file tool_cv_corpus-0.2.0-py3-none-any.whl.
File metadata
- Download URL: tool_cv_corpus-0.2.0-py3-none-any.whl
- Upload date:
- Size: 84.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3d40f9b8e7188863e0d05f880a496fcb3c17fe62966b972d662ef3dd4de9536d
|
|
| MD5 |
a78697fc69321c2d6c5d72b221783f97
|
|
| BLAKE2b-256 |
d7c8a8d54a786973df377bdb5eaa73207466c33bd20e79be4e425fdce799cd71
|
Provenance
The following attestation bundles were made for tool_cv_corpus-0.2.0-py3-none-any.whl:
Publisher:
release.yml on iam6ft7in/tool_cv_corpus
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
tool_cv_corpus-0.2.0-py3-none-any.whl -
Subject digest:
3d40f9b8e7188863e0d05f880a496fcb3c17fe62966b972d662ef3dd4de9536d - Sigstore transparency entry: 1351879805
- Sigstore integration time:
-
Permalink:
iam6ft7in/tool_cv_corpus@d23557395998b6fe8814e330e50fcacef5e0cc27 -
Branch / Tag:
refs/tags/v0.2.0 - Owner: https://github.com/iam6ft7in
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@d23557395998b6fe8814e330e50fcacef5e0cc27 -
Trigger Event:
push
-
Statement type: