# resumyst
Generate professional CVs from YAML data using Typst templates.
> **Alpha Software**: This project is in early development. Features may change and bugs are expected. Always review generated CVs before submitting them.
|Academic|Industry|Short|
|:-:|:-:|:-:|
||||
A modern CV generation system that combines Typst templating with Python CLI convenience. Generate multiple CV variants from a single YAML data source.
## Features
- Multiple variants: Academic, industry, and compact formats
- Interactive project setup wizard
- Live preview server with auto-reload
- Data validation with helpful error messages
- Interactive content editor
- Intelligent filtering with `exclude_from` flags
- PDF and PNG output formats
## Installation
```bash
pip install resumyst
```
Typst will be automatically installed when first needed, or you can install it manually beforehand from [typst.app](https://github.com/typst/typst?tab=readme-ov-file#installation).
## Quick Start
### Interactive Setup
```bash
# Create new CV project
resumyst init my-cv
cd my-cv
# Edit your data
resumyst edit
# Live preview
resumyst serve
# Build CV
resumyst build academic
```
### Direct Usage
```bash
# Skip wizard, use defaults
resumyst init my-cv --quick
# Build specific variant
resumyst build industry
# Build all variants
resumyst build --all
# Watch for changes
resumyst build academic --watch
```
## Project Structure
```
my-cv/
├── data/
│ ├── config.yaml # Global styling
│ ├── personal.yaml # Contact info
│ ├── sections/ # CV content
│ │ ├── experience.yaml
│ │ ├── education.yaml
│ │ └── ...
│ └── variants/ # Variant settings
│ ├── academic.yaml
│ ├── industry.yaml
│ └── short.yaml
├── typst/ # Template files
└── out/ # Generated outputs
├── pdf/
└── png/
```
## CV Variants
**Academic** - Complete CV with all publications, teaching, and academic activities
**Industry** - Professional focus with selected publications and practical experience
**Short** - Compact 1-2 page version for quick applications
Control what appears in each variant using `exclude_from` flags in your YAML files:
```yaml
# This entry appears in all variants
- title: "Important Publication"
year: 2024
# This entry is excluded from short variant
- title: "Minor Publication"
year: 2023
exclude_from: ["short"]
```
## Commands
- `resumyst init [name]` - Create new CV project
- `resumyst edit` - Interactive content editor
- `resumyst build [variant]` - Build CV (academic/industry/short)
- `resumyst serve` - Start live preview server
- `resumyst validate` - Validate YAML data
- `resumyst clean` - Remove build outputs
## Configuration
Edit `data/config.yaml` to customize typography, spacing, colors, and formatting:
```yaml
typography:
fonts:
text: "Libertinus Serif"
sizes:
body: 11.2pt
colors:
link: "#0645ad"
formatting:
date_format: "MMM YYYY"
show_location: true
```
## Template Customization
Modify Typst template files in the `typst/` directory:
- `typst/styles.typ` - Typography and layout
- `typst/components.typ` - UI elements
- `typst/renderers.typ` - Section formatting
## Auto-Installation
Resumyst automatically installs Typst using platform-appropriate package managers:
- **Windows**: winget, Cargo
- **macOS**: Homebrew, Cargo
- **Linux**: Cargo (APT/Snap require manual installation for security)
Disable auto-installation: `resumyst build academic --no-auto-install`
## Development
```bash
git clone https://github.com/guerrantif/resumyst.git
cd resumyst
pip install -e .
resumyst --help
```
## Requirements
- Python 3.10+
- Typst (auto-installed)
## License
MIT License - see LICENSE file for details.
Raw data
{
"_id": null,
"home_page": null,
"name": "resumyst",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.10",
"maintainer_email": null,
"keywords": "cv, resume, typst, template, cli, yaml, document-generation, academic, pdf, professional",
"author": "Filippo Guerranti",
"author_email": null,
"download_url": "https://files.pythonhosted.org/packages/6e/e3/93dc8f23993f7c4208186e7b4070a9c9f92a96b5ea3222e25229fea9d944/resumyst-0.1.1.tar.gz",
"platform": null,
"description": "# resumyst\n\nGenerate professional CVs from YAML data using Typst templates.\n\n> **Alpha Software**: This project is in early development. Features may change and bugs are expected. Always review generated CVs before submitting them.\n\n|Academic|Industry|Short|\n|:-:|:-:|:-:|\n||||\n\nA modern CV generation system that combines Typst templating with Python CLI convenience. Generate multiple CV variants from a single YAML data source.\n\n## Features\n\n- Multiple variants: Academic, industry, and compact formats\n- Interactive project setup wizard\n- Live preview server with auto-reload\n- Data validation with helpful error messages\n- Interactive content editor\n- Intelligent filtering with `exclude_from` flags\n- PDF and PNG output formats\n\n## Installation\n\n```bash\npip install resumyst\n```\n\nTypst will be automatically installed when first needed, or you can install it manually beforehand from [typst.app](https://github.com/typst/typst?tab=readme-ov-file#installation).\n\n## Quick Start\n\n### Interactive Setup\n\n```bash\n# Create new CV project\nresumyst init my-cv\ncd my-cv\n\n# Edit your data\nresumyst edit\n\n# Live preview\nresumyst serve\n\n# Build CV\nresumyst build academic\n```\n\n### Direct Usage\n\n```bash\n# Skip wizard, use defaults\nresumyst init my-cv --quick\n\n# Build specific variant\nresumyst build industry\n\n# Build all variants\nresumyst build --all\n\n# Watch for changes\nresumyst build academic --watch\n```\n\n## Project Structure\n\n```\nmy-cv/\n\u251c\u2500\u2500 data/\n\u2502 \u251c\u2500\u2500 config.yaml # Global styling\n\u2502 \u251c\u2500\u2500 personal.yaml # Contact info\n\u2502 \u251c\u2500\u2500 sections/ # CV content\n\u2502 \u2502 \u251c\u2500\u2500 experience.yaml\n\u2502 \u2502 \u251c\u2500\u2500 education.yaml\n\u2502 \u2502 \u2514\u2500\u2500 ...\n\u2502 \u2514\u2500\u2500 variants/ # Variant settings\n\u2502 \u251c\u2500\u2500 academic.yaml\n\u2502 \u251c\u2500\u2500 industry.yaml\n\u2502 \u2514\u2500\u2500 short.yaml\n\u251c\u2500\u2500 typst/ # Template files\n\u2514\u2500\u2500 out/ # Generated outputs\n \u251c\u2500\u2500 pdf/\n \u2514\u2500\u2500 png/\n```\n\n## CV Variants\n\n**Academic** - Complete CV with all publications, teaching, and academic activities\n**Industry** - Professional focus with selected publications and practical experience\n**Short** - Compact 1-2 page version for quick applications\n\nControl what appears in each variant using `exclude_from` flags in your YAML files:\n\n```yaml\n# This entry appears in all variants\n- title: \"Important Publication\"\n year: 2024\n\n# This entry is excluded from short variant\n- title: \"Minor Publication\"\n year: 2023\n exclude_from: [\"short\"]\n```\n\n## Commands\n\n- `resumyst init [name]` - Create new CV project\n- `resumyst edit` - Interactive content editor\n- `resumyst build [variant]` - Build CV (academic/industry/short)\n- `resumyst serve` - Start live preview server\n- `resumyst validate` - Validate YAML data\n- `resumyst clean` - Remove build outputs\n\n## Configuration\n\nEdit `data/config.yaml` to customize typography, spacing, colors, and formatting:\n\n```yaml\ntypography:\n fonts:\n text: \"Libertinus Serif\"\n sizes:\n body: 11.2pt\n\ncolors:\n link: \"#0645ad\"\n\nformatting:\n date_format: \"MMM YYYY\"\n show_location: true\n```\n\n## Template Customization\n\nModify Typst template files in the `typst/` directory:\n- `typst/styles.typ` - Typography and layout\n- `typst/components.typ` - UI elements\n- `typst/renderers.typ` - Section formatting\n\n## Auto-Installation\n\nResumyst automatically installs Typst using platform-appropriate package managers:\n\n- **Windows**: winget, Cargo\n- **macOS**: Homebrew, Cargo \n- **Linux**: Cargo (APT/Snap require manual installation for security)\n\nDisable auto-installation: `resumyst build academic --no-auto-install`\n\n## Development\n\n```bash\ngit clone https://github.com/guerrantif/resumyst.git\ncd resumyst\npip install -e .\nresumyst --help\n```\n\n## Requirements\n\n- Python 3.10+\n- Typst (auto-installed)\n\n## License\n\nMIT License - see LICENSE file for details.",
"bugtrack_url": null,
"license": null,
"summary": "Modern CV generation system combining Typst templating with Python CLI - create multiple professional document variants from unified YAML data",
"version": "0.1.1",
"project_urls": {
"Homepage": "https://github.com/guerrantif/resumyst",
"Issues": "https://github.com/guerrantif/resumyst/issues",
"Repository": "https://github.com/guerrantif/resumyst"
},
"split_keywords": [
"cv",
" resume",
" typst",
" template",
" cli",
" yaml",
" document-generation",
" academic",
" pdf",
" professional"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "976a33db2b3bf81c60a84bb133fb9d20b2c967ce97d38e3084c05dc4584ecf88",
"md5": "46d4bf1cb646928205ef0e4b0cf4a99f",
"sha256": "9971bd0559a4c6bcf7b505fb15614d74be9fa856a80de59e14ef029f46579fba"
},
"downloads": -1,
"filename": "resumyst-0.1.1-py3-none-any.whl",
"has_sig": false,
"md5_digest": "46d4bf1cb646928205ef0e4b0cf4a99f",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.10",
"size": 39541,
"upload_time": "2025-08-31T18:00:57",
"upload_time_iso_8601": "2025-08-31T18:00:57.694608Z",
"url": "https://files.pythonhosted.org/packages/97/6a/33db2b3bf81c60a84bb133fb9d20b2c967ce97d38e3084c05dc4584ecf88/resumyst-0.1.1-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "6ee393dc8f23993f7c4208186e7b4070a9c9f92a96b5ea3222e25229fea9d944",
"md5": "44fc3a5a19e980e045bcb9c77ca67c70",
"sha256": "b7ea0ad830cc8d911b9b1e637fe7a0d1a4ffb9568fbfd4394532ca8a879ee813"
},
"downloads": -1,
"filename": "resumyst-0.1.1.tar.gz",
"has_sig": false,
"md5_digest": "44fc3a5a19e980e045bcb9c77ca67c70",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.10",
"size": 5177514,
"upload_time": "2025-08-31T18:01:04",
"upload_time_iso_8601": "2025-08-31T18:01:04.504228Z",
"url": "https://files.pythonhosted.org/packages/6e/e3/93dc8f23993f7c4208186e7b4070a9c9f92a96b5ea3222e25229fea9d944/resumyst-0.1.1.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-08-31 18:01:04",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "guerrantif",
"github_project": "resumyst",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"lcname": "resumyst"
}