A VS Code extension for managing markdown-based resumes and cover letters with automated build support using Pandoc.
- ✨ Create Resumes & Cover Letters - Interactive prompts guide you through document creation
- 📋 Clipboard Support - Paste content directly from Claude/ChatGPT/Opus
- 🏗️ One-Click Building - Build to DOCX and PDF with keyboard shortcuts
- 📁 Smart File Organization - Automatically organizes files by company name
- 🚀 Quick Access - Open build folders directly from VS Code
- ⌨️ Keyboard Shortcuts - Efficient workflow with customizable keybindings
- Pandoc - Required for markdown-to-DOCX/PDF conversion
- Windows: Download the installer from pandoc.org/installing.html
- macOS:
brew install pandoc - Linux:
sudo apt install pandocor equivalent
- Optional: WeasyPrint - For better PDF generation (
pip install weasyprint)
From VS Code Marketplace:
- Open VS Code
- Go to Extensions (Ctrl+Shift+X)
- Search for "Markdown Resume Manager"
- Click Install
Or install manually:
code --install-extension markdown-resume-manager-1.0.1.vsixMake sure Pandoc is installed on your system:
- Download from pandoc.org/installing.html
- Verify installation:
pandoc --version
- Open a folder in VS Code (or create a new one)
- Open Command Palette (Ctrl+Shift+P)
- Run: Resume Manager: Initialize Project Structure
This creates:
your-resume-project/
├── resumes/
│ └── tailored/ # Company-specific resumes
├── cover-letters/
│ └── tailored/ # Company-specific cover letters
├── templates/ # Base templates
└── build/ # Generated DOCX/PDF files (auto-created)
Method 1: Keyboard Shortcut
- Press
Ctrl+KthenCtrl+Alt+N(Windows/Linux) orCmd+KthenCmd+Alt+N(Mac)
Method 2: Command Palette
- Press
Ctrl+Shift+P(orCmd+Shift+Pon Mac) - Type "Resume Manager: Create New Resume"
Then:
- Enter company name (e.g., "google")
- Enter position (e.g., "senior-engineer") - optional
- Choose content source:
- Paste from clipboard - If you have markdown content copied
- Open empty file in editor - Start from scratch
- Create empty file - Just create the file
- Optionally build immediately
Same as above, but use:
- Keyboard:
Ctrl+KthenCtrl+Alt+C(orCmd+KthenCmd+Alt+C) - Command: "Resume Manager: Create New Cover Letter"
While editing a markdown resume or cover letter:
Build to DOCX:
- Press
Ctrl+KthenCtrl+Alt+B(orCmd+KthenCmd+Alt+B) - Or use Command Palette: "Resume Manager: Build Current Document (DOCX)"
Build to DOCX + PDF:
- Press
Ctrl+KthenCtrl+Alt+D(orCmd+KthenCmd+Alt+D) - Or use Command Palette: "Resume Manager: Build Current Document (DOCX + PDF)"
- Use Command Palette: "Resume Manager: Open Build Folder"
- Or click "Open Build Folder" after a successful build
All commands are available via the Command Palette (Ctrl+Shift+P):
Resume Manager: Initialize Project Structure- Set up the required folder structureResume Manager: Create New Resume- Create a new tailored resumeResume Manager: Create New Cover Letter- Create a new cover letterResume Manager: Build Current Document (DOCX)- Build to DOCXResume Manager: Build Current Document (DOCX + PDF)- Build both formatsResume Manager: Open Build Folder- Open the build folder
This extension uses chord keybindings (two-step shortcuts) to avoid conflicts with VS Code's built-in commands. To use a chord keybinding, press the first key combination, release it, then press the second key combination.
Note: These keybindings are designed to not conflict with VS Code's built-in shortcuts out of the box. However, you're free to customize them in your VS Code settings (File > Preferences > Keyboard Shortcuts) to match your preferred workflow.
For example, to build a document:
- Press and release
Ctrl+K(you'll see "Ctrl+K was pressed. Waiting for second key..." in the status bar) - Then press
Ctrl+Alt+B
| Action | Windows/Linux | Mac |
|---|---|---|
| New Resume | Ctrl+K Ctrl+Alt+N |
Cmd+K Cmd+Alt+N |
| New Cover Letter | Ctrl+K Ctrl+Alt+C |
Cmd+K Cmd+Alt+C |
| Build (DOCX) | Ctrl+K Ctrl+Alt+B* |
Cmd+K Cmd+Alt+B* |
| Build (DOCX+PDF) | Ctrl+K Ctrl+Alt+D |
Cmd+K Cmd+Alt+D |
*Only works when editing markdown files in resumes/ or cover-letters/ folders
Configure the extension in VS Code settings:
{
"markdownResumeManager.resumeOutputName": "Your_Name_Resume",
"markdownResumeManager.coverLetterOutputName": "Your_Name_Cover_Letter",
"markdownResumeManager.pandocPath": "pandoc"
}markdownResumeManager.resumeOutputName- Output filename for resumes without extension (default:Your_Name_Resume)markdownResumeManager.coverLetterOutputName- Output filename for cover letters without extension (default:Your_Name_Cover_Letter)markdownResumeManager.pandocPath- Path to Pandoc executable (default:pandoc). On Windows, if Pandoc is not in your PATH, set this to the full path:C:\\Program Files\\Pandoc\\pandoc.exe
-
Ask Claude/ChatGPT/Opus to generate a tailored resume
- "Create a resume tailored for a Senior Software Engineer position at Google"
-
Copy the markdown output to clipboard
-
In VS Code, press
Ctrl+KthenCtrl+Alt+N -
Enter company:
google -
Enter position:
senior-engineer -
Choose "Paste from clipboard"
-
File created at:
resumes/tailored/google-senior-engineer.md -
Make any edits needed
-
Press
Ctrl+KthenCtrl+Alt+Bto build -
Click "Open Build Folder"
-
Your files are ready:
build/google/Your_Name_Resume.docx
Input files:
- Resumes:
{company}-{position}.md(e.g.,google-senior.md) - Cover Letters:
{company}-cover.md(e.g.,google-cover.md)
Output files:
- All resumes: Configured name (default:
Your_Name_Resume.docx) - All cover letters: Configured name (default:
Your_Name_Cover_Letter.docx) - Organized in:
build/{company}/
- Install Pandoc from pandoc.org/installing.html
- Windows: Download and run the .msi installer
- macOS:
brew install pandoc - Linux:
sudo apt install pandoc(or your distro's package manager) - Verify installation:
pandoc --version - Restart VS Code after installing Pandoc
Windows users: If Pandoc is installed but not recognized:
-
Find the Pandoc path in PowerShell:
where pandoc # or gcm pandoc
This will show the full path (e.g.,
C:\Program Files\Pandoc\pandoc.exe) -
Open VS Code settings (Ctrl+,)
-
Search for "Markdown Resume Manager"
-
Set
Pandoc Pathto the full path found in step 1
- You need to build the document first before opening the build folder
- The folder is created automatically during the first build
- PDF generation requires additional dependencies
- Install WeasyPrint:
pip install weasyprint - Or use DOCX-only builds with
Ctrl+KthenCtrl+Alt+B
- Make sure you're editing a markdown file in
resumes/orcover-letters/ - Check for conflicting keybindings in VS Code settings
- Make sure you have a workspace folder open
- Extension activates when markdown files are present in the workspace
Contributions are welcome! Please feel free to submit a Pull Request.
MIT License - see LICENSE file for details
Eric McKenna - GitHub
Testing:
npm test # Run extension testsPackaging:
npm run package # Create .vsix file in dist/ folderPublishing to VS Code Marketplace:
-
Create a Personal Access Token:
- Go to https://dev.azure.com/
- User Settings → Personal Access Tokens
- Create token with Marketplace > Manage scope
-
Store the token in
.envfile (already git-ignored):VSCE_PAT=your-token-here
-
Publish with npm scripts:
npm run publish # Publish current version npm run publish:patch # Bump patch version (1.0.0 → 1.0.1) and publish npm run publish:minor # Bump minor version (1.0.0 → 1.1.0) and publish npm run publish:major # Bump major version (1.0.0 → 2.0.0) and publish
Note: The .env file is excluded from git and packaging via .gitignore and .vscodeignore for security.
- ✨ Initial release
- 📝 Create resumes and cover letters with interactive prompts
- 🏗️ Build to DOCX and PDF using Pandoc (no shell scripts required!)
- 📋 Clipboard paste support for quick content insertion
- ⚙️ Configurable output names
- 🌍 Full cross-platform support (Windows, macOS, Linux)
- 🚀 One-command project initialization
- ⌨️ Keyboard shortcuts for all major operations
- ✅ Automated testing with 14 test suites
- 📦 Native build system - no external scripts needed