- New format: company/position/paul-halvorsen-resume.md (cleaner than old company-naming convention) - Document build-resume skill usage with duplicate checking via applications_tracker.md - Add examples of new directory structure (tenstorrent/devrel-engineer/, stripe/backend-engineer/) - Include manual build instructions with proper file paths - Reference application tracking system to prevent duplicate efforts Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
280 lines
9.7 KiB
Markdown
280 lines
9.7 KiB
Markdown
# CLAUDE.md
|
|
|
|
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
|
|
|
|
## Project Overview
|
|
|
|
This is a resume builder using Pandoc to convert Markdown resumes with YAML metadata to PDF via LaTeX templates. The build process is containerized using Podman (Docker alternative) for reproducibility and portability.
|
|
|
|
## Build and Development Commands
|
|
|
|
**Directory Structure:**
|
|
Resumes are organized by company in subdirectories for easy management:
|
|
```
|
|
.
|
|
├── paul-halvorsen-resume.md (default/main resume)
|
|
├── paul-halvorsen-resume-detailed.md (comprehensive details)
|
|
├── templates/
|
|
│ ├── jb2resume.latex (classic template)
|
|
│ ├── jb2resume-modern.latex (improved modern template)
|
|
│ └── awesome-cv.latex (modern awesome-cv inspired)
|
|
├── files/
|
|
│ ├── paul-halvorsen-files-backend-engineer.md
|
|
│ ├── paul-halvorsen-files-backend-engineer.pdf (various templates)
|
|
│ └── ...
|
|
├── valon/
|
|
│ ├── paul-halvorsen-valon-software-engineer.md
|
|
│ ├── paul-halvorsen-valon-cover-letter.md
|
|
│ └── paul-halvorsen-valon-software-engineer.pdf (various templates)
|
|
└── [company]/
|
|
└── paul-halvorsen-[company]-[role].md
|
|
```
|
|
|
|
**Available Templates:**
|
|
|
|
1. **`jb2resume`** - Classic, traditional template
|
|
- Conservative design
|
|
- Best for: Traditional industries, classic look
|
|
- Command: `make resume FILE_NAME=path/to/resume`
|
|
|
|
2. **`jb2resume-modern`** (Recommended default)
|
|
- Modern improvements: better spacing, proper bullets, visual hierarchy
|
|
- Clean professional look with subtle visual accents
|
|
- Best for: Tech companies, modern look with substance
|
|
- Command: `make resume-modern FILE_NAME=path/to/resume`
|
|
|
|
3. **`awesome-cv`** - Modern, vibrant template
|
|
- Bold accent colors, prominent sections, contemporary design
|
|
- Best for: Startups, tech companies, when you want to stand out
|
|
- Command: `make resume-awesome FILE_NAME=path/to/resume`
|
|
|
|
**Build the resume PDF:**
|
|
```bash
|
|
# Build with default (modern) template
|
|
make resume FILE_NAME=paul-halvorsen-resume
|
|
|
|
# Build with modern template (improved jb2resume)
|
|
make resume-modern FILE_NAME=files/paul-halvorsen-files-backend-engineer
|
|
|
|
# Build with awesome-cv template (bold, modern design)
|
|
make resume-awesome FILE_NAME=valon/paul-halvorsen-valon-software-engineer
|
|
|
|
# Show all available commands and examples
|
|
make help
|
|
```
|
|
|
|
**Example workflow for custom resumes:**
|
|
```bash
|
|
# Using /build-resume (recommended)
|
|
/build-resume [paste job description]
|
|
|
|
# Or manual build
|
|
mkdir -p acme/backend-engineer
|
|
# Create paul-halvorsen-resume.md in acme/backend-engineer/
|
|
|
|
# Build with modern template
|
|
make resume-modern FILE_NAME=acme/backend-engineer/paul-halvorsen-resume
|
|
|
|
# Build cover letter
|
|
make cover-letter FILE_NAME=acme/backend-engineer/paul-halvorsen-cover-letter
|
|
|
|
# Output:
|
|
# acme/backend-engineer/paul-halvorsen-resume.pdf
|
|
# acme/backend-engineer/paul-halvorsen-cover-letter.pdf
|
|
```
|
|
|
|
**Clean commands:**
|
|
- `make clean` - Remove LaTeX log files
|
|
- `make cleanpaper` - Remove the generated PDF (uses FILE_NAME variable)
|
|
- `make cleanpodman` - Remove the Podman image and build cache (forces rebuild next time)
|
|
- `make cleanall` - Remove everything (logs, PDF, and Podman image)
|
|
|
|
## High-Level Architecture
|
|
|
|
### Resume Processing Pipeline
|
|
1. **Input**: Markdown file with YAML metadata block (`*.md`)
|
|
2. **Processing**: Pandoc converts markdown to LaTeX using a template
|
|
3. **Output**: PDF generated via LaTeX compilation
|
|
4. **Containerization**: All processing happens in a Podman container to ensure consistent output
|
|
|
|
### Key Components
|
|
|
|
**Templates** (`templates/` directory):
|
|
- `jb2resume.latex` - Default resume template (recommended)
|
|
- `jb2-modern.latex` - Alternative modern template
|
|
|
|
Both templates are dual-licensed under GPL v2+ and BSD 3-Clause.
|
|
|
|
**Dockerfile**:
|
|
- Based on `pandoc/latex:latest`
|
|
- Installs additional LaTeX packages: `enumitem`, `sectsty`, `underscore`
|
|
- Sets `/data` as the working volume
|
|
|
|
**Makefile**:
|
|
- Uses Podman (not Docker)
|
|
- `FILE_NAME=paul-halvorsen-resume` - Change this to build a different `.md` file
|
|
- `USER=paul` - Container user for file permissions
|
|
- Automatically detects if the Podman image needs rebuilding
|
|
|
|
### Resume Structure
|
|
|
|
**YAML Metadata Block** (top of `.md` file):
|
|
```yaml
|
|
---
|
|
name: [Your Name]
|
|
keywords: [comma-separated keywords for PDF metadata]
|
|
left-column:
|
|
- [Line 1 for left column under name]
|
|
- [Line 2 for left column]
|
|
right-column:
|
|
- [Line 1 for right column under name]
|
|
- [Line 2 for right column]
|
|
fontsize: [default 10pt]
|
|
fontenc: [default T1]
|
|
urlcolor: [default blue]
|
|
linkcolor: [default magenta]
|
|
numbersections: [true/false, controls section numbering]
|
|
name-color: [SVG color name like DarkSlateGray, applies to name]
|
|
section-color: [SVG color name like Tomato, applies to section headers]
|
|
---
|
|
```
|
|
|
|
The metadata block is required and must appear at the very top of the markdown file before any content.
|
|
|
|
**Resume Content**: Standard Markdown after the metadata block. Headers become sections, lists are formatted naturally.
|
|
|
|
### Multiple Resume Versions
|
|
|
|
The repository contains two main resume files:
|
|
- `paul-halvorsen-resume.md` - Concise version (built by default via Makefile)
|
|
- `paul-halvorsen-resume-detailed.md` - Extended version with more details
|
|
|
|
To build a different version, either:
|
|
1. Modify the `FILE_NAME` variable in the Makefile, or
|
|
2. Run Pandoc directly with the desired input file
|
|
|
|
### Important Notes
|
|
|
|
- The Makefile assumes Podman is installed and available
|
|
- Build output (.pdf files) and Podman artifacts (.podman-build file) are not tracked in git
|
|
- The `.podman-build` marker file prevents unnecessary image rebuilds (remove it to force rebuild)
|
|
- All LaTeX processing happens inside the container; no local LaTeX installation is needed
|
|
|
|
## Creating Customized Resumes for Job Applications
|
|
|
|
The detailed resume (`paul-halvorsen-resume-detailed.md`) contains comprehensive information across all roles and projects. To create a customized resume for a specific job application:
|
|
|
|
### Quick Start
|
|
|
|
```bash
|
|
# Use /build-resume with job description
|
|
/build-resume [paste job description]
|
|
```
|
|
|
|
Claude will:
|
|
- Check if you've already applied to this company/position (prevent duplicates)
|
|
- Create clean directory structure
|
|
- Generate customized resume and cover letter
|
|
- Build PDFs automatically
|
|
- Create job analysis document
|
|
|
|
### Directory Structure
|
|
|
|
New standardized format for all applications:
|
|
|
|
```
|
|
company/
|
|
└── position/
|
|
├── paul-halvorsen-resume.md
|
|
├── paul-halvorsen-resume.pdf
|
|
├── paul-halvorsen-cover-letter.md
|
|
├── paul-halvorsen-cover-letter.pdf
|
|
└── job-breakdown.md (analysis & strategy)
|
|
```
|
|
|
|
**Examples:**
|
|
- `tenstorrent/devrel-engineer/paul-halvorsen-resume.md`
|
|
- `stripe/backend-engineer/paul-halvorsen-resume.md`
|
|
- `files/senior-backend-engineer/paul-halvorsen-resume.md`
|
|
|
|
### Manual Build
|
|
|
|
If manually creating/updating files:
|
|
|
|
```bash
|
|
# Build with modern template
|
|
make resume-modern FILE_NAME=company/position/paul-halvorsen-resume
|
|
|
|
# Build cover letter
|
|
make cover-letter FILE_NAME=company/position/paul-halvorsen-cover-letter
|
|
|
|
# Build both
|
|
make resume-modern FILE_NAME=company/position/paul-halvorsen-resume && \
|
|
make cover-letter FILE_NAME=company/position/paul-halvorsen-cover-letter
|
|
```
|
|
|
|
### Application Tracking
|
|
|
|
All applications tracked in memory at:
|
|
```
|
|
~/.claude/projects/-home-paul-Public-resume/memory/applications_tracker.md
|
|
```
|
|
|
|
Prevents duplicate efforts for the same company/position combination.
|
|
|
|
### Expected Result
|
|
|
|
A 1-2 page resume tailored to the job requirements with:
|
|
- Reordered work experience (most relevant roles first)
|
|
- Emphasized skills and metrics matching the job description
|
|
- Highlighted relevant accomplishments and projects
|
|
- Customized summary/intro focused on the role
|
|
- Compelling cover letter addressing company mission and role fit
|
|
- Job analysis document with fit assessment and strategy notes
|
|
|
|
The detailed resume includes proficiency levels, performance metrics, specializations, and comprehensive technical details that allow Claude Code to intelligently match your background to specific job requirements.
|
|
|
|
## Template Selection Guide
|
|
|
|
### When to Use Each Template
|
|
|
|
**`jb2resume` (Classic)**
|
|
- Traditional companies (finance, government, law)
|
|
- Conservative industries
|
|
- When you want a proven, time-tested design
|
|
- Important: ATS compatibility is high priority
|
|
- Example: Financial institutions, government agencies
|
|
|
|
**`jb2resume-modern` (Recommended for Most Tech)**
|
|
- Tech startups and established tech companies
|
|
- Modern, professional look without being flashy
|
|
- Better spacing and readability than classic
|
|
- Still ATS-friendly and traditional enough for conservative industries
|
|
- Best balance of modern and professional
|
|
- **Default recommendation for Files.com, Valon, and similar companies**
|
|
|
|
**`awesome-cv` (Modern & Bold)**
|
|
- Early-stage startups and growth-stage companies (Series A-C)
|
|
- Design-forward or forward-thinking companies
|
|
- When you want to make a visual impression
|
|
- Companies that explicitly value design and attention to detail
|
|
- Use when: "We're disrupting X industry" is in the job description
|
|
- Example: Files.com, Valon, and similar Series C companies
|
|
|
|
### Quick Decision Tree
|
|
|
|
```
|
|
Is the company a startup or growth-stage company?
|
|
├─ YES → Use awesome-cv (bold, modern, stands out)
|
|
└─ NO → Is it a traditional/conservative industry?
|
|
├─ YES → Use jb2resume (classic, proven)
|
|
└─ NO → Use jb2resume-modern (modern but professional)
|
|
```
|
|
|
|
### For Paul's Current Applications
|
|
|
|
- **Files.com** (Series C, a16z-backed): awesome-cv recommended
|
|
- **Valon** (Series C, a16z-backed): awesome-cv recommended
|
|
- **Enterprise customers**: jb2resume-modern
|
|
- **Government/DoD contracts**: jb2resume (classic)
|