resumectl allows you to generate your resume from a YAML file to a PDF, HTML, or directly in your terminal.
You can view the available themes by looking at THEMES.md.
For reference, you can use the examples in examples/.
- Go 1.21+
- PDF generator: Google Chrome, Chromium, or WeasyPrint
go mod tidy
make buildThe init command allows you to quickly bootstrap a CV YAML file by importing data from your LinkedIn profile and/or GitHub projects.
# Create an empty CV template
resumectl init
# Initialize from LinkedIn profile (public data only)
resumectl init --linkedin johndoe
# Initialize with full LinkedIn data (requires authentication)
resumectl init --linkedin johndoe --cookie "YOUR_LI_AT_COOKIE"
# Add top GitHub projects
resumectl init --github yourusername
# Combine LinkedIn and GitHub
resumectl init --linkedin johndoe --cookie "AQEDAx..." --github yourusername
# Customize number of GitHub projects (default: 5)
resumectl init --github yourusername --projects 10
# Custom output file
resumectl init -f my-cv.yamlTo access full LinkedIn profile data (experiences, education, skills, etc.), you need to provide your li_at session cookie:
- Log in to LinkedIn in your browser
- Open Developer Tools (F12)
- Go to Application > Cookies > linkedin.com
- Copy the value of the
li_atcookie
# Generate HTML and PDF
resumectl generate
# Generate HTML only
resumectl generate --html
# Generate PDF only
resumectl generate --pdf
# Use custom YAML file
resumectl generate -d my_cv.yaml
# Use specific theme
resumectl generate --theme elegant# Show CV in terminal
resumectl show
# Validate YAML file
resumectl validate
# List available themes
resumectl themes
# Live preview with hot reload
resumectl serveresumectl supports shell completion for Bash, Zsh, Fish, and PowerShell.
# Load completions in current session
source <(resumectl completion bash)
# Load completions for each session (Linux)
resumectl completion bash > /etc/bash_completion.d/resumectl
# Load completions for each session (macOS with Homebrew)
resumectl completion bash > $(brew --prefix)/etc/bash_completion.d/resumectl# Enable shell completion if not already done
echo "autoload -U compinit; compinit" >> ~/.zshrc
# Load completions for each session
resumectl completion zsh > "${fpath[1]}/_resumectl"
# Restart your shell or run: source ~/.zshrc# Load completions in current session
resumectl completion fish | source
# Load completions for each session
resumectl completion fish > ~/.config/fish/completions/resumectl.fish# Load completions in current session
resumectl completion powershell | Out-String | Invoke-Expression
# Load completions for each session (add to your profile)
resumectl completion powershell > resumectl.ps1A JSON Schema is provided to enable auto-completion and validation in your editor when editing CV YAML files.
Add the following to your .vscode/settings.json:
{
"yaml.schemas": {
"./resumectl.schema.json": ["cv.yaml", "**/cv.yaml", "examples/*.yaml"]
}
}Make sure you have the YAML extension installed.
- Open Settings → Languages & Frameworks → Schemas and DTDs → JSON Schema Mappings
- Add a new mapping:
- Schema file:
resumectl.schema.json - File pattern:
cv.yamlor*.cv.yaml
- Schema file:
Add to your YAML file header:
# yaml-language-server: $schema=./resumectl.schema.json
---
personal:
...Or configure in your LSP settings.


