Metadata-Version: 2.4
Name: sync_cv_formatter
Version: 1.3.1
Summary: CV/resume HTML and PDF rendering with hiring-manager-focused templates
Author: SyncQues
License-Expression: MIT
Project-URL: Homepage, https://github.com/SyncQues/CV-Formatter
Project-URL: Repository, https://github.com/SyncQues/CV-Formatter
Project-URL: Issues, https://github.com/SyncQues/CV-Formatter/issues
Keywords: resume,cv,pdf,html,jinja2
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Text Processing :: Markup :: HTML
Requires-Python: >=3.12
Description-Content-Type: text/markdown
Requires-Dist: jinja2>=3.1.6
Requires-Dist: pydantic>=2.12.3

# CV Formatter

Public Python package for resume/CV HTML and PDF rendering — single source of truth for SyncQues resume templates, schemas, and rendering.

**Repository:** https://github.com/SyncQues/CV-Formatter  
**PyPI:** https://pypi.org/project/sync_cv_formatter/

## Install

```bash
pip install sync_cv_formatter
# or
uv add sync_cv_formatter
```

## Consumers

- `SyncQues-Backend` — recompile and live preview
- `SyncQues-Resume` — initial resume generation

## Usage

```python
from sync_cv_formatter import ResumeDocument, populate_html_template, render_html_to_pdf

document = ResumeDocument.model_validate(content_json)
html = populate_html_template(document, template_id="modern")
pdf_bytes = render_html_to_pdf(html)
```

## Templates

| ID | Style |
|----|-------|
| `professional` | Centered serif, traditional |
| `executive` | Experience-first, navy serif/sans |
| `modern` | Inter sans-serif, teal accent |
| `classic` | Times New Roman, ATS-maximum |
| `compact` | Dense one-page, IBM Plex |

Legacy `creative` maps to `modern`.

## Local development

```bash
uv sync --dev
uv run pytest
```

Editable install from a checkout:

```bash
uv add --editable ../CV-Formatter
```

## Release process

1. Change templates/code in this repo
2. Bump `version` in `pyproject.toml`
3. Run `uv run pytest`
4. Commit, tag (`git tag v1.2.1`), push tag
5. GitHub Actions publishes to PyPI (or `uv build && uv publish`)
6. Bump pin in Backend + Resume `pyproject.toml` and `uv lock`

## Versioning

- **MAJOR** — breaking `content_json` schema changes
- **MINOR** — template/CSS changes or new optional fields
- **PATCH** — bug fixes
