JSON-Resume
Generate a polished DOCX resume from strict, structured JSON.
json-resume validates your resume data before rendering, applies a stable Word layout with explicit paper sizes, and provides both a command-line tool and Python APIs. It is designed for repeatable resume generation in local scripts, automation, and backend services.
Install
python -m pip install json-resume
The package installs its DOCX and PDF-related Python dependencies together. PDF export uses local Microsoft Word through docx2pdf.
Command line
Create a JSON resume, then generate a DOCX:
json-resume resume.json
By default, output is written to output/resume.docx under the current working directory. Common options:
json-resume resume.json -o resume.docx
json-resume resume.json --pdf
json-resume resume.json -o resume.docx --force
--pdf additionally writes a sibling PDF after DOCX generation. --force is required before replacing an existing DOCX or PDF.
Python API
Use the file-level API in scripts and automation:
from resume_generator import render_json_file_to_docx
output_path = render_json_file_to_docx(
"resume.json",
"resume.docx",
)
print(output_path)
Use the in-memory API in HTTP services or other integrations:
from resume_generator import render_json_to_docx
docx_bytes = render_json_to_docx(data)
Both APIs use the same strict validation and rendering core as the CLI. Validation failures raise FieldError with a precise JSON source path.
JSON contract
The top-level JSON object must contain exactly paper_size, basics, and sections.
{
"paper_size": "Letter",
"basics": {
"name": "Example Candidate",
"contacts": [
{
"label": "candidate@example.com",
"href": "mailto:candidate@example.com"
}
]
},
"sections": [
{
"title": "Experience",
"entries": [
{
"title": "Example Organization",
"position": "Analyst Intern",
"location": "New York, NY",
"start_date": "2025-06",
"end_date": "Present",
"bullets": [
"Completed a fact-supported contribution."
]
}
]
}
]
}
Supported paper sizes are A4 and Letter. paper_size controls the Word page size only and does not translate content.
Read the full JSON contract, examples, and usage guide.
Project links
Metadata
Release files for json-resume 1.1.3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| json_resume-1.1.3.tar.gz | 21.8 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| json_resume-1.1.3-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 43.7 kB
Release files / json_resume-1.1.3.tar.gz
| Download URL | json_resume-1.1.3.tar.gz |
|---|---|
| Size | 21.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
9830fc7856f69396b7ad5476fcca6cd6a85c8569e68e28ff1abd63d306fa04e9
|
|
BLAKE2b-256 checksum How to use checksums |
a84ef1aaebdc3703548207bd6e4a664204b156db7216256e0a6c4fea0b101a02
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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 Sep 2, 2026.
Transparency logRelease files / json_resume-1.1.3-py3-none-any.whl
| Download URL | json_resume-1.1.3-py3-none-any.whl |
|---|---|
| Size | 21.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
af3392c281e33a561e561d33471eb344e41d84f94e0a500f1f04e3c41eccd99e
|
|
BLAKE2b-256 checksum How to use checksums |
c36d91ea13dfe72f6eb79a8e92a0c81b9ba1fb2df95f07f90af39e21834ad62e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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 Sep 2, 2026.
Transparency log