Stop getting rejected by ATS systems. This open-source CV template is designed specifically for Applicant Tracking Systems that silently reject 75% of resumes before a human ever sees them.
Most developer resumes get rejected automatically because:
- Fancy designs break ATS parsing
- Multi-column layouts confuse text extraction
- Graphics and icons can't be read by automated systems
- PDF formatting doesn't always translate cleanly
This template provides:
- DOCX format optimized for ATS parsing (Arial font, single column, clean structure)
- PDF format for human readers and printing
- Web version for easy sharing via link
- Open source - fork it and make it your own
https://koke1997.github.io/cv-website/
Get the latest CV from Releases:
- PDF - Best for viewing and printing
- DOCX - Best for ATS systems and editing
Create your own CV website with one command:
npx @koke1997/cv-website-templateThis will:
- Ask for your name and email
- Clone the template
- Customize files with your information
- Set up everything ready to go
Want more control? Fork this repository:
- Fork this repository
- Clone your fork locally
- Edit
Ivan_Kokalovic_CV.yamlwith your information - Rename the file to match your name
- Push and GitHub Actions deploys automatically
See CONTRIBUTING.md for detailed instructions.
- RenderCV - CV as YAML code, rendered to PDF/HTML/Markdown
- SvelteKit - Modern web framework
- Ansible - Development automation
- GitHub Pages - Free hosting
- GitHub Actions - Automated deployment and releases
- Professional, modern design
- Fully responsive (mobile, tablet, desktop)
- Dark/Light mode support
- Downloadable PDF and DOCX versions
- ATS-optimized format
- Automated deployment on git push
- Release workflow with auto-generated changelog
- Python 3.12+
- Node.js 22+ (for SvelteKit)
- Ansible (optional, for automation)
# Clone the repository
git clone https://github.com/koke1997/cv-website.git
cd cv-website
# Create virtual environment
python3 -m venv venv
source venv/bin/activate
# Install dependencies
pip install "rendercv[full]" mkdocs-material ansible
# Using Ansible (recommended)
ansible-playbook -i ansible/inventory/hosts ansible/playbooks/serve.yml
# Or manually
rendercv render Ivan_Kokalovic_CV.yaml
mkdocs serve -a 127.0.0.1:8080Open http://127.0.0.1:8080 in your browser.
Ansible playbooks simplify development tasks:
# Start server
ansible-playbook -i ansible/inventory/hosts ansible/playbooks/serve.yml
# Stop server
ansible-playbook -i ansible/inventory/hosts ansible/playbooks/stop.yml
# Rebuild and restart
ansible-playbook -i ansible/inventory/hosts ansible/playbooks/rebuild.yml
# Generate DOCX/ODT formats
ansible-playbook -i ansible/inventory/hosts ansible/playbooks/generate-formats.ymlSee ansible/README.md for all available playbooks.
.
├── Ivan_Kokalovic_CV.yaml # CV source (YAML)
├── mkdocs.yml # MkDocs configuration
├── docs/ # Website content
├── sveltekit/ # SvelteKit frontend
├── ansible/
│ ├── inventory/ # Ansible inventory
│ │ └── group_vars/ # Shared variables
│ └── playbooks/ # Automation playbooks
└── .github/
└── workflows/
├── deploy.yml # Deploy to GitHub Pages
└── release.yml # Create releases
Releases are automated. To create a new release:
git tag v1.0.0
git push origin v1.0.0GitHub Actions will:
- Render the CV to PDF
- Generate DOCX format
- Create a GitHub Release with both files attached
This project is licensed under the MIT License - see LICENSE for details.
The repository structure, automation, and configuration are freely available for anyone to fork and use. CV content is personal.
Contributions are welcome! See CONTRIBUTING.md for guidelines.
See CHANGELOG.md for release history.
Ivan Kokalovic
- Email: ivankokalovic@protonmail.ch
- LinkedIn: linkedin.com/in/kokalovic
- GitHub: github.com/koke1997