# Resume Generator with docx-js ## Overview This project generates professional Word documents (.docx) from JSON Resume format using the `docx` npm package. ## Setup ```bash npm install docx ``` ## Usage 1. Place your resume data in `resume.json` following the JSON Resume schema (https://jsonresume.org/schema/) 2. Run: `node generate_resume.js` 3. Output: `Phillip_Tarrant_Resume_{YEAR}.docx` ## Key docx-js Patterns ### Page Setup - Always set explicit page size (US Letter: 12240 x 15840 DXA, where 1440 DXA = 1 inch) - Set margins in DXA units ### Text Formatting - Use `TextRun` for text with formatting (bold, italic, size, font) - Size is in half-points (22 = 11pt, 24 = 12pt, 32 = 16pt) - Always specify font explicitly for consistency ### Lists/Bullets - Never use unicode bullets manually (like "•" in text) - Use `numbering` config with `LevelFormat.BULLET` - Reference the numbering config in paragraphs ### Critical Rules 1. Never use `\n` for line breaks - use separate Paragraph elements 2. Always set table `width` when using tables 3. PageBreak must be inside a Paragraph 4. Use Arial as default font (universally supported) ## Customization - Modify margins in `sections[0].properties.page.margin` - Change fonts by updating the `font` property in TextRun objects - Adjust spacing with `spacing: { before: X, after: Y }` on Paragraphs ## JSON Resume Schema The input JSON should follow the standard JSON Resume format with these sections: - `basics`: name, label, email, phone, url, summary, location, profiles - `work`: array of positions with name, position, startDate, endDate, summary, highlights - `education`: institution, area, studyType, startDate, endDate, score - `certificates`: name, issuer, date - `awards`: title, awarder, date, summary - `skills`: array of skill categories with name, level, keywords