A modern, multi-language CV and Resume system built with Typst, inspired by the basic-resume template but enhanced with additional fields and Danish language support.
├── template.typ # Main template with language support
├── justfile # Build automation
├── Resume/ # Personal resume files
│ ├── English-Resume.typ
│ └── Danish-Resume.typ
├── CV/ # Personal CV files
│ ├── English-CV.typ
│ └── Danish-CV.typ
├── CoverLetter/ # Personal cover letter files
│ ├── English-CoverLetter.typ
│ └── Danish-CoverLetter.typ
├── example/ # Generic example templates
│ ├── Resume/
│ │ ├── English-Resume.typ
│ │ └── Danish-Resume.typ
│ ├── CV/
│ │ ├── English-CV.typ
│ │ └── Danish-CV.typ
│ └── CoverLetter/
│ ├── English-CoverLetter.typ
│ └── Danish-CoverLetter.typ
├── PDF-output/ # Personal compiled PDFs (for upload)
└── example-pdf/ # Example compiled PDFs (tracked in git)
- Clone or download this repository
- Ensure the folder structure exists:
just setup
# Compile all documents
just all
# Compile specific document types
just resumes # Both English and Danish resumes
just cvs # Both English and Danish CVs
just cover-letters # Both English and Danish cover letters
# Compile individual documents
just resume-en # English Resume
just resume-da # Danish Resume
just cv-en # English CV
just cv-da # Danish CV
just cover-letter-en # English Cover Letter
just cover-letter-da # Danish Cover Letter
# Compile example documents (for showcasing the system)
just examples # All example documents
just example-resume-en # Example English Resume
just example-resume-da # Example Danish Resume
just example-cv-en # Example English CV
just example-cv-da # Example Danish CV
just example-cover-letter-en # Example English Cover Letter
just example-cover-letter-da # Example Danish Cover Letter
# Watch for changes (specify document path)
just watch Resume/English-Resume.typ
# Clean generated PDFs
just cleanThe template supports both English and Danish with localized section headers:
- English: Education, Work Experience, Projects, Licenses & Certifications, etc.
- Danish: Uddannelse, Erhvervserfaring, Projekter, Licenser & Certificeringer, etc.
Set language with the language: "en" or language: "da" parameter in the resume template.
Based on the original basic-resume template with these additions:
certificates()- Enhanced with ID field and language supportreferences()- New function for professional referencessection-header()- Automatic language-aware section headersedu()- Enhanced with honors, courses, and highlightswork()- Enhanced with URL support and highlightsproject()- Enhanced with affiliation and highlightsskills()- Multi-category skills organizationcover-letter()- Professional cover letter template with recipient information
The template includes a built-in language configuration system:
#let lang-config = (
en: (
education: "Education",
work: "Work Experience",
// ... more translations
),
da: (
education: "Uddannelse",
work: "Erhvervserfaring",
// ... more translations
)
)- Concise, 1-2 page format
- Essential work experience and education
- Key projects and skills
- Ideal for job applications
- Complete career history
- All projects and experiences
- Detailed skills and qualifications
- Academic and detailed professional use
- Personalized business letter format
- Recipient and company information
- Professional greeting and closing
- Customizable for each application
- Note: Cover letters are compiled locally only and are NOT uploaded via GitHub Actions
The example/ directory contains clean, generic templates perfect for:
- Fork-friendly templates with placeholder content
- Clear customization points marked with comments
- Professional example content demonstrating best practices
- Multi-language support (English and Danish)
- Complete resume examples (short format)
- Comprehensive CV examples (detailed format)
- Cover letter templates with Lorem ipsum content
- All templates available in both English and Danish
- Generic templates with placeholder content
- Educational and demonstration purposes
- Fork-friendly with no personal information
- Compiled to
example-pdf/with example commands (just examples,just example-resume-en, etc.) - Tracked in git for easy access and demonstration
- Perfect starting point for new users
- Start with examples to understand the system
- Copy example templates to personal directories
- Customize personal templates with your information
- Use personal templates for actual applications
- Keep examples for reference and system updates
Update personal details in each document file:
#let name = "Your Name"
#let location = "Your Location"
#let email = "your.email@domain.com"
// ... etcModify the template call to customize appearance:
#show: resume.with(
accent-color: "#26428b", # Change accent color
font: "Georgia", # Change font
paper: "a4", # Paper size (a4, us-letter)
language: "en", # Language (en, da)
author-position: center, # Name alignment
// ... more options
)The system is designed to be easily extensible:
- Add new languages: Extend
lang-configintemplate.typ - Add new sections: Create new functions following the existing pattern
- Modify styling: Update the template styling rules
- Add new document types: Create new folders and corresponding justfile commands
Running just all generates these PDFs and organizes them:
The automated workflow compiles and uploads CV and Resume files from the PDF-output/ directory to Cloudflare R2. Cover letters are intentionally excluded from automated uploads to maintain privacy and allow for customization per application.
The template now supports Typst formatting (like *bold*, _italic_, etc.) in highlights, honors, courses, and skills!
- Based on basic-resume by stufx
- Inspired by the original cv.typ template
- Built with Typst - the modern markup and typesetting system