Initial commit

This commit is contained in:
Zhongwei Li
2025-11-30 08:52:43 +08:00
commit 8a385c425d
8 changed files with 2102 additions and 0 deletions

View File

@@ -0,0 +1,950 @@
# CV Styling Guide - Robin Collins
## Professional Document Formatting Standards
---
## Table of Contents
1. [Design Philosophy](#design-philosophy)
2. [Color Palette](#color-palette)
3. [Typography Standards](#typography-standards)
4. [Required Imports](#required-imports)
5. [Document Structure](#document-structure)
6. [Style Definitions](#style-definitions)
7. [Content Formatting Patterns](#content-formatting-patterns)
8. [Complete Code Examples](#complete-code-examples)
---
## Design Philosophy
**Professional, Modern, Technology-Focused**
This CV styling emphasizes:
- **Calibri font** for modern, professional appearance with excellent screen and print readability
- **Professional blue accent color** (#11217B) for brand consistency and visual interest
- **Left-aligned headers** for contemporary, clean layout
- **Clear visual hierarchy** through typography, color, and spacing
- **Clickable contact links** for digital accessibility
- **Structured job/project titles** with consistent formatting for scannability
---
## Color Palette
### Primary Brand Color
```javascript
const BRAND_BLUE = "11217B"; // Professional navy blue
```
**Hex:** `#11217B`
**RGB:** `17, 33, 123`
**Usage:** Name, section headings, section borders, job titles, project names
### Neutral Colors
```javascript
const BLACK = "000000"; // Body text, standard information
```
**Usage:** Body text, company names, separators, dates, locations
### Standard Link Color
Use the built-in `"Hyperlink"` style for email and web links (typically blue with underline).
---
## Typography Standards
### Font Specifications
**Primary Font:** Calibri (throughout entire document)
```javascript
font: "Calibri"
```
**Why Calibri?**
- Modern, professional sans-serif font
- Excellent readability on screen and print
- Default Microsoft Office font (ensures consistency across systems)
- Clean, contemporary appearance suitable for technology professionals
### Font Sizing Hierarchy
| Element | Size (half-points) | Size (points) | Purpose |
|---------|-------------------|---------------|---------|
| Name | 66 | 33pt | Maximum visual impact for primary identifier |
| Section Headings | 28 | 14pt | Clear section delineation |
| Body Text (Default) | 22 | 11pt | Standard readable text |
| Job Titles | 22 | 11pt | Consistent with body but styled differently |
| Body Paragraphs | 21 | 10.5pt | Slightly smaller for better text density |
| Contact Info | 22 | 11pt | Readable, professional |
**Note:** docx library uses half-points (multiply point size × 2)
---
## Required Imports
Always include these imports at the start of your CV generation file:
```javascript
const {
Document,
Packer,
Paragraph,
TextRun,
AlignmentType,
LevelFormat,
BorderStyle,
ExternalHyperlink
} = require('docx');
const fs = require('fs');
```
**Key imports for CV styling:**
- `BorderStyle` - Required for section heading underlines
- `ExternalHyperlink` - Required for clickable email and GitHub links
- `LevelFormat` - Required for bullet list formatting
---
## Document Structure
### Default Document Settings
```javascript
const doc = new Document({
styles: {
default: {
document: {
run: { font: "Calibri", size: 22 }
}
},
paragraphStyles: [
// Style definitions go here
]
},
numbering: {
config: [
// Bullet list configuration
]
},
sections: [{
properties: {
page: {
margin: { top: 1440, right: 1440, bottom: 1440, left: 1440 }
}
},
children: [
// Content goes here
]
}]
});
```
**Key settings:**
- Default font: Calibri, 11pt (22 half-points)
- Margins: 1 inch (1440 DXA) on all sides
- Standard letter page size (default)
---
## Style Definitions
### 1. Name Style
**Purpose:** Primary identifier at the top of CV
```javascript
{
id: "Name",
name: "Name",
basedOn: "Normal",
run: {
font: "Calibri",
size: 66, // 33pt - Large, impactful
bold: true,
color: "11217B" // Brand blue
},
paragraph: {
spacing: { after: 60 },
alignment: AlignmentType.LEFT
}
}
```
**Key characteristics:**
- Left-aligned (modern, professional layout)
- Large size (33pt) for maximum impact
- Brand blue color for visual identity
- Bold weight for emphasis
- Minimal spacing after (60)
**Usage:**
```javascript
new Paragraph({
style: "Name",
children: [new TextRun("ROBIN COLLINS")]
})
```
---
### 2. Contact Info Style
**Purpose:** Email, phone, GitHub links
```javascript
{
id: "ContactInfo",
name: "Contact Info",
basedOn: "Normal",
run: {
font: "Calibri",
size: 22 // 11pt - Standard size
},
paragraph: {
spacing: { after: 120 },
alignment: AlignmentType.LEFT
}
}
```
**Key characteristics:**
- Left-aligned (consistent with name)
- Standard size (11pt)
- More spacing after (120) to separate header from body
**Usage (with clickable links):**
```javascript
new Paragraph({
style: "ContactInfo",
children: [
new ExternalHyperlink({
children: [new TextRun({ text: "robin.f.collins@outlook.com", style: "Hyperlink" })],
link: "mailto:robin.f.collins@outlook.com"
}),
new TextRun(" | 0475 795 732 | "),
new ExternalHyperlink({
children: [new TextRun({ text: "github.com/robin-collins", style: "Hyperlink" })],
link: "https://github.com/robin-collins"
})
]
})
```
**Important:**
- Use `ExternalHyperlink` for clickable email (mailto:) and web links
- Use `style: "Hyperlink"` on TextRun within hyperlinks for standard link styling
- Separate elements with ` | ` (pipe character with spaces)
---
### 3. Section Heading Style
**Purpose:** Major section headers (PROFILE, CORE COMPETENCIES, etc.)
```javascript
{
id: "SectionHeading",
name: "Section Heading",
basedOn: "Normal",
run: {
font: "Calibri",
size: 28, // 14pt - Prominent but not overwhelming
bold: true,
color: "11217B" // Brand blue
},
paragraph: {
spacing: {
before: 200, // Space above for clear separation
after: 120 // Space below before content
},
border: {
bottom: {
color: "11217B", // Brand blue underline
space: 1,
style: BorderStyle.SINGLE,
size: 18 // Border thickness
}
}
}
}
```
**Key characteristics:**
- Brand blue color for visual identity
- Bold weight for emphasis
- 14pt size for hierarchy
- **Bottom border in brand blue** - signature visual element
- Substantial spacing before (200) to separate sections
- Spacing after (120) before section content
**Usage:**
```javascript
new Paragraph({
style: "SectionHeading",
children: [new TextRun("PROFILE")]
})
```
**Visual effect:**
```
PROFILE
─────────────────────────────────────
(Blue underline extends across the text)
```
---
### 4. Job Title Style
**Purpose:** Job titles, company names, project titles (with custom internal formatting)
```javascript
{
id: "JobTitle",
name: "Job Title",
basedOn: "Normal",
run: {
font: "Calibri",
size: 22, // 11pt - Same as body
bold: true, // Default bold (overridden per TextRun)
color: "11217B" // Default brand blue (overridden per TextRun)
},
paragraph: {
spacing: {
before: 120, // Space above for separation from previous content
after: 60 // Space below before bullet points
}
}
}
```
**Key characteristics:**
- Style provides defaults (blue, bold) but individual TextRuns override
- Same size as body text (11pt)
- Spacing creates visual grouping with following bullet points
**Usage:** See [Job Title Formatting Pattern](#job-title-formatting-pattern) below
---
### 5. Body Style
**Purpose:** Body paragraphs, profile section, any standard text
```javascript
{
id: "Body",
name: "Body",
basedOn: "Normal",
run: {
font: "Calibri",
size: 21 // 10.5pt - Slightly smaller for better density
},
paragraph: {
spacing: { after: 100 },
alignment: AlignmentType.JUSTIFIED
}
}
```
**Key characteristics:**
- Slightly smaller (10.5pt) than default for better text density in paragraphs
- **Justified alignment** for professional, polished appearance
- Standard spacing after (100)
**Usage:**
```javascript
new Paragraph({
style: "Body",
children: [new TextRun("Your body text content here...")]
})
```
---
## Bullet List Configuration
**Purpose:** All bullet point lists throughout CV
```javascript
numbering: {
config: [
{
reference: "bullet-list",
levels: [{
level: 0,
format: LevelFormat.BULLET,
text: "•",
alignment: AlignmentType.LEFT,
style: {
paragraph: {
indent: {
left: 720, // 0.5 inch indent
hanging: 360 // 0.25 inch hanging indent
}
}
}
}]
}
]
}
```
**Key settings:**
- Standard bullet character: `•`
- Left indent: 0.5 inch (720 DXA)
- Hanging indent: 0.25 inch (360 DXA)
- Use `LevelFormat.BULLET` constant (not string "bullet")
**Usage in content:**
```javascript
new Paragraph({
numbering: { reference: "bullet-list", level: 0 },
children: [
new TextRun({ text: "Business Development & Technology Sales: ", bold: true }),
new TextRun("Description text here...")
]
})
```
**Pattern for competency/skill bullets:**
- **Bold label** followed by colon and space: `{ text: "Label: ", bold: true }`
- Regular text for description: `new TextRun("Description...")`
---
## Content Formatting Patterns
### Job Title Formatting Pattern
**Structure:** `Job Title | Company Name | Location | Dates`
**Formatting rules:**
1. **Job Title:** Bold, Brand Blue (#11217B)
2. **Separator:** ` | ` (pipe with spaces), Black (#000000)
3. **Company Name:** Bold, Black (#000000)
4. **Separator:** ` | ` (pipe with spaces), Black (#000000)
5. **Location:** Italic, Black (#000000)
6. **Separator:** ` | ` (pipe with spaces), Black (#000000)
7. **Dates:** Regular (no bold/italic), Black (#000000)
**Code template:**
```javascript
new Paragraph({
style: "JobTitle",
children: [
new TextRun({ text: "Job Title Text", bold: true, color: "11217B" }),
new TextRun({ text: " | ", color: "000000" }),
new TextRun({ text: "Company Name", bold: true, color: "000000" }),
new TextRun({ text: " | ", color: "000000" }),
new TextRun({ text: "Location", italics: true, color: "000000" }),
new TextRun({ text: " | ", color: "000000" }),
new TextRun({ text: "Date Range", color: "000000" })
]
})
```
**Example 1 - Full format (Professional Experience):**
```javascript
new Paragraph({
style: "JobTitle",
children: [
new TextRun({ text: "Support Engineer", bold: true, color: "11217B" }),
new TextRun({ text: " | ", color: "000000" }),
new TextRun({ text: "IRIST IT", bold: true, color: "000000" }),
new TextRun({ text: " | ", color: "000000" }),
new TextRun({ text: "Adelaide SA", italics: true, color: "000000" }),
new TextRun({ text: " | ", color: "000000" }),
new TextRun({ text: "2019", color: "000000" })
]
})
```
**Visual result:**
```
Support Engineer | IRIST IT | Adelaide SA | 2019
^^^^^^^^^^^^^^^ ^^^^^^^^^ ^^^^^^^^^^^ ^^^^
Bold Blue Bold Black Italic Black Regular Black
```
**Example 2 - Career break (no company/location):**
```javascript
new Paragraph({
style: "JobTitle",
children: [
new TextRun({ text: "Personal Leave", bold: true, color: "11217B" }),
new TextRun({ text: " | ", color: "000000" }),
new TextRun({ text: "December 2017 January 2025", color: "000000" })
]
})
```
---
### Project Title Formatting Pattern
**Structure:** `Project Name | Company/Organization | Dates`
**Formatting rules:**
1. **Project Name:** Bold, Brand Blue (#11217B)
2. **Separator:** ` | ` (pipe with spaces), Black (#000000)
3. **Company/Organization:** Bold, Black (#000000)
4. **Separator:** ` | ` (pipe with spaces), Black (#000000)
5. **Dates:** Italic, Black (#000000)
**Code template:**
```javascript
new Paragraph({
style: "JobTitle", // Uses JobTitle style
children: [
new TextRun({ text: "Project Name", bold: true, color: "11217B" }),
new TextRun({ text: " | ", color: "000000" }),
new TextRun({ text: "Company or Organization", bold: true, color: "000000" }),
new TextRun({ text: " | ", color: "000000" }),
new TextRun({ text: "Date Range", italics: true, color: "000000" })
]
})
```
**Example:**
```javascript
new Paragraph({
style: "JobTitle",
children: [
new TextRun({ text: "Healthcare IT Compliance & Support", bold: true, color: "11217B" }),
new TextRun({ text: " | ", color: "000000" }),
new TextRun({ text: "Flaxmill Road Doctors Surgery", bold: true, color: "000000" }),
new TextRun({ text: " | ", color: "000000" }),
new TextRun({ text: "2014-2017", italics: true, color: "000000" })
]
})
```
**Visual result:**
```
Healthcare IT Compliance & Support | Flaxmill Road Doctors Surgery | 2014-2017
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^
Bold Blue Bold Black Italic Black
```
**Note:** Projects use dates in italic to visually differentiate from job titles where dates are regular text.
---
### Competency/Skill Bullet Formatting Pattern
**Structure:** Bold label followed by colon, then description text
**Code template:**
```javascript
new Paragraph({
numbering: { reference: "bullet-list", level: 0 },
children: [
new TextRun({ text: "Competency Label: ", bold: true }),
new TextRun("Detailed description and supporting information...")
]
})
```
**Example:**
```javascript
new Paragraph({
numbering: { reference: "bullet-list", level: 0 },
children: [
new TextRun({ text: "Business Development & Technology Sales: ", bold: true }),
new TextRun("Proven success in B2B technology sales, pipeline generation through multi-channel outreach...")
]
})
```
**Visual result:**
```
• Business Development & Technology Sales: Proven success in B2B
technology sales, pipeline generation through multi-channel outreach...
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Bold label with colon
```
---
### Technical Skills Bullet Formatting Pattern
**Structure:** Bold category label followed by colon, then technologies/tools
**Code template:**
```javascript
new Paragraph({
numbering: { reference: "bullet-list", level: 0 },
children: [
new TextRun({ text: "Category Name: ", bold: true }),
new TextRun("Technology 1, Technology 2, Technology 3 | Tool A, Tool B")
]
})
```
**Example:**
```javascript
new Paragraph({
numbering: { reference: "bullet-list", level: 0 },
children: [
new TextRun({ text: "AI/ML & Automation: ", bold: true }),
new TextRun("TensorFlow, PyTorch, Keras, Scikit-learn, OpenAI GPT, Anthropic Claude | Python, PowerShell, Bash scripting | Terraform, Ansible")
]
})
```
**Visual result:**
```
• AI/ML & Automation: TensorFlow, PyTorch, Keras, Scikit-learn,
OpenAI GPT, Anthropic Claude | Python, PowerShell, Bash scripting
^^^^^^^^^^^^^^^^^^^
Bold category
```
**Separator conventions:**
- Comma (`,`) - Between similar items in a list
- Pipe (`|`) - Between different sub-categories of tools/technologies
---
### Achievement Bullet Formatting Pattern
**Structure:** Plain text or text with emphasized portions
**Standard bullet (no emphasis):**
```javascript
new Paragraph({
numbering: { reference: "bullet-list", level: 0 },
children: [new TextRun("Achievement or responsibility description...")]
})
```
**Bullet with emphasized metrics:**
```javascript
new Paragraph({
numbering: { reference: "bullet-list", level: 0 },
children: [
new TextRun("Led critical EMOTET cyberattack response, developing comprehensive remediation strategy and restoring all affected systems within "),
new TextRun({ text: "12 hours", bold: true }),
new TextRun(" through expert crisis management")
]
})
```
**Usage guideline:**
- Most bullets are plain text
- Use inline bold for key metrics or critical outcomes
- Keep emphasis minimal for professional appearance
---
## Complete Code Examples
### Example 1: Complete Header Section
```javascript
// Header with name and contact info
new Paragraph({
style: "Name",
children: [new TextRun("ROBIN COLLINS")]
}),
new Paragraph({
style: "ContactInfo",
children: [
new ExternalHyperlink({
children: [new TextRun({ text: "robin.f.collins@outlook.com", style: "Hyperlink" })],
link: "mailto:robin.f.collins@outlook.com"
}),
new TextRun(" | 0475 795 732 | "),
new ExternalHyperlink({
children: [new TextRun({ text: "github.com/robin-collins", style: "Hyperlink" })],
link: "https://github.com/robin-collins"
})
]
}),
```
---
### Example 2: Complete Section with Content
```javascript
// Section heading
new Paragraph({
style: "SectionHeading",
children: [new TextRun("CORE COMPETENCIES")]
}),
// Competency bullets
new Paragraph({
numbering: { reference: "bullet-list", level: 0 },
children: [
new TextRun({ text: "Business Development & Technology Sales: ", bold: true }),
new TextRun("Proven success in B2B technology sales, pipeline generation through multi-channel outreach (phone, email, face-to-face networking), and consultative selling approach.")
]
}),
new Paragraph({
numbering: { reference: "bullet-list", level: 0 },
children: [
new TextRun({ text: "AI & Automation Expertise: ", bold: true }),
new TextRun("Deep hands-on knowledge of artificial intelligence, machine learning, and automation technologies.")
]
}),
```
---
### Example 3: Complete Job Entry
```javascript
// Job title with structured formatting
new Paragraph({
style: "JobTitle",
children: [
new TextRun({ text: "Support Engineer", bold: true, color: "11217B" }),
new TextRun({ text: " | ", color: "000000" }),
new TextRun({ text: "IRIST IT", bold: true, color: "000000" }),
new TextRun({ text: " | ", color: "000000" }),
new TextRun({ text: "Adelaide SA", italics: true, color: "000000" }),
new TextRun({ text: " | ", color: "000000" }),
new TextRun({ text: "2019", color: "000000" })
]
}),
// Achievement bullets
new Paragraph({
numbering: { reference: "bullet-list", level: 0 },
children: [new TextRun("Provided Level 1, 2, and 3 technical support, troubleshooting complex hardware, software, and network issues across diverse client environments")]
}),
new Paragraph({
numbering: { reference: "bullet-list", level: 0 },
children: [new TextRun("Led critical EMOTET cyberattack response, developing comprehensive remediation strategy and restoring all affected systems within 12 hours")]
}),
```
---
### Example 4: Complete Project Entry
```javascript
// Project title with structured formatting
new Paragraph({
style: "JobTitle",
children: [
new TextRun({ text: "Healthcare IT Compliance & Support", bold: true, color: "11217B" }),
new TextRun({ text: " | ", color: "000000" }),
new TextRun({ text: "Flaxmill Road Doctors Surgery", bold: true, color: "000000" }),
new TextRun({ text: " | ", color: "000000" }),
new TextRun({ text: "2014-2017", italics: true, color: "000000" })
]
}),
// Project achievement bullets
new Paragraph({
numbering: { reference: "bullet-list", level: 0 },
children: [new TextRun("Provided comprehensive IT consulting and compliance services, conducting audits and remediating PCEHR/MyHR compliance gaps within 3 months")]
}),
new Paragraph({
numbering: { reference: "bullet-list", level: 0 },
children: [new TextRun("Implemented secure, centralized electronic health record system with robust backup/disaster recovery solutions")]
}),
```
---
## Document Generation and Export
### File Output
```javascript
// Generate document buffer and save to file
Packer.toBuffer(doc).then(buffer => {
fs.writeFileSync("Collins_Robin_CV_Enhanced_Technology_Sales.docx", buffer);
console.log("Updated CV created successfully");
});
```
**File naming convention:**
- Format: `Collins_Robin_CV_[Descriptor].docx`
- Example: `Collins_Robin_CV_Enhanced_Technology_Sales.docx`
- Use descriptive suffixes for different versions/purposes
---
## Style Application Guidelines
### When to Use Each Style
| Style | Usage | Example |
|-------|-------|---------|
| `Name` | Only for candidate name at top of document | ROBIN COLLINS |
| `ContactInfo` | Contact information line (email, phone, links) | Email \| Phone \| GitHub |
| `SectionHeading` | Major section headers | PROFILE, EXPERIENCE, SKILLS |
| `JobTitle` | Job titles, project titles, any structured titles | Job \| Company \| Location \| Dates |
| `Body` | Profile paragraphs, any narrative text blocks | Profile summary, descriptions |
| `numbering: bullet-list` | All bullet point lists | Skills, achievements, responsibilities |
### Consistency Rules
1. **Always specify font explicitly** in each style definition (`font: "Calibri"`)
2. **Always specify color explicitly** in job/project title TextRuns
3. **Use pipe separators consistently** (` | ` with spaces) in structured titles
4. **Apply bold to labels** in competency/skill bullets
5. **Use justified alignment** for body paragraphs only
6. **Use left alignment** for everything else (name, contact, headings, titles, bullets)
---
## Common Patterns Quick Reference
### Pattern 1: Section with Bullet Content
```javascript
new Paragraph({
style: "SectionHeading",
children: [new TextRun("SECTION NAME")]
}),
new Paragraph({
numbering: { reference: "bullet-list", level: 0 },
children: [new TextRun({ text: "Label: ", bold: true }), new TextRun("Content...")]
}),
```
### Pattern 2: Job Entry
```javascript
new Paragraph({
style: "JobTitle",
children: [
new TextRun({ text: "Title", bold: true, color: "11217B" }),
new TextRun({ text: " | ", color: "000000" }),
new TextRun({ text: "Company", bold: true, color: "000000" }),
new TextRun({ text: " | ", color: "000000" }),
new TextRun({ text: "Location", italics: true, color: "000000" }),
new TextRun({ text: " | ", color: "000000" }),
new TextRun({ text: "Dates", color: "000000" })
]
}),
new Paragraph({
numbering: { reference: "bullet-list", level: 0 },
children: [new TextRun("Achievement...")]
}),
```
### Pattern 3: Project Entry
```javascript
new Paragraph({
style: "JobTitle",
children: [
new TextRun({ text: "Project Name", bold: true, color: "11217B" }),
new TextRun({ text: " | ", color: "000000" }),
new TextRun({ text: "Organization", bold: true, color: "000000" }),
new TextRun({ text: " | ", color: "000000" }),
new TextRun({ text: "Dates", italics: true, color: "000000" }) // Note: Italic for projects
]
}),
new Paragraph({
numbering: { reference: "bullet-list", level: 0 },
children: [new TextRun("Project achievement...")]
}),
```
---
## Validation Checklist
Before generating final document, verify:
- [ ] All imports included (especially `BorderStyle`, `ExternalHyperlink`)
- [ ] Font set to `"Calibri"` in all style definitions
- [ ] Brand blue color (`"11217B"`) used consistently for name, headings, titles
- [ ] Section headings include bottom border
- [ ] Contact info includes clickable hyperlinks
- [ ] Job titles use structured 5-part format (Title | Company | Location | Dates)
- [ ] Project titles use structured 3-part format with italic dates
- [ ] All separators use ` | ` (pipe with spaces)
- [ ] Color specified explicitly in all TextRuns within job/project titles
- [ ] Bullet list uses `LevelFormat.BULLET` constant
- [ ] Body paragraphs use justified alignment
- [ ] Margins set to 1440 (1 inch) on all sides
---
## Version History
**Version 1.0** - November 3, 2025
- Initial style guide created
- Documented Calibri font standard
- Documented brand blue color (#11217B)
- Documented structured title formatting patterns
- Documented hyperlink usage in contact information
- Documented section heading border styling
---
## Notes for Future Updates
### Maintaining Consistency
- Always refer to this guide when creating new CV versions
- Update this guide if making any intentional style changes
- Keep code examples synchronized with current standards
### Adding New Sections
When adding new content sections:
1. Use existing style definitions (don't create new ones unless necessary)
2. Follow established formatting patterns for similar content
3. Maintain consistent spacing (before/after values)
4. Use appropriate bullet or paragraph format
### Customizing for Different Positions
To customize CV for different job applications:
- **Keep all styles unchanged** (consistency is key)
- Modify content order/emphasis in sections
- Adjust bullet point content and emphasis
- Keep visual design consistent for brand recognition
---
## Technical Reference
### DXA Units Conversion
- 1 inch = 1440 DXA (twentieths of a point)
- Common values:
- 720 DXA = 0.5 inch
- 360 DXA = 0.25 inch
- 1440 DXA = 1 inch
### Half-Point Font Sizes
- docx library uses half-points
- To convert: Point size × 2 = half-points
- Examples:
- 11pt = 22 half-points
- 14pt = 28 half-points
- 33pt = 66 half-points
### Color Format
- Use 6-character hex color codes (without #)
- Examples:
- `"11217B"` = Professional blue
- `"000000"` = Black
- `"FFFFFF"` = White
---
## Support and Questions
For questions or clarifications about this styling guide:
1. Refer to code examples in this document first
2. Check existing CV source files for implementation examples
3. Test changes in isolated code before applying to full document
4. Maintain backup of working version before major style updates
---
**Document maintained by:** Robin Collins
**Last updated:** November 3, 2025
**Purpose:** Standard reference for all CV document generation and updates

View File

@@ -0,0 +1,113 @@
# Cover Letter Best Practices
## Structure and Content Guidelines
### Opening Paragraph Elements
- Specific position title
- How you learned about the opportunity (if relevant)
- Brief compelling hook (your unique value in 1-2 sentences)
- Genuine enthusiasm for the role
### Body Paragraph Strategy
**Selection Criteria Addressing Format:**
1. Lead with the criterion or requirement
2. Provide specific evidence from past experience
3. Include quantifiable results when possible
4. Connect to organizational needs
5. Show progression and growth
**Example Pattern:**
"Your requirement for [specific criterion] aligns perfectly with my experience in [area]. At [Company], I [specific achievement with quantifiable result], which [benefit/outcome]. This demonstrates [capability/skill] that I would bring to [aspect of new role]."
### Closing Paragraph Checklist
- Reiterate 2-3 key strengths
- Express genuine interest in organization
- Request for interview/further discussion
- Thank you statement
- Reference to attached/enclosed CV
---
## Tone and Language
### Effective Action Verbs
**Leadership:** Led, directed, orchestrated, championed, spearheaded, guided
**Achievement:** Achieved, delivered, exceeded, attained, accomplished, realized
**Innovation:** Developed, created, designed, implemented, established, pioneered
**Improvement:** Enhanced, optimized, streamlined, transformed, upgraded, modernized
**Problem-Solving:** Resolved, diagnosed, remediated, troubleshot, addressed, mitigated
**Collaboration:** Partnered, collaborated, coordinated, facilitated, engaged, aligned
### What to Avoid
- Passive voice: "Was responsible for" → "Led" or "Managed"
- Weak qualifiers: "Helped with," "Assisted in," "Somewhat experienced"
- Generic claims: "Hard worker," "Team player," "Fast learner"
- Clichés: "Think outside the box," "Hit the ground running"
- Apologetic language: "Although I haven't," "While I may lack"
- Presumptuous statements: "I look forward to starting," "When I join your team"
---
## Quantification Guidelines
### Metrics to Include
- Percentage improvements (efficiency, performance, revenue)
- Time savings or speed improvements
- Cost reductions or budget management
- Team sizes led or supported
- Project scope (users affected, systems managed)
- Compliance or quality improvements
### Quantification Examples
**Before:** "Improved system performance"
**After:** "Improved system performance by 40%, reducing page load time from 5 seconds to 3 seconds"
**Before:** "Managed cybersecurity incident"
**After:** "Led critical cyberattack response, restoring all affected systems within 12 hours and preventing estimated $200K+ in potential damages"
---
## Addressing Selection Criteria
### Direct Addressing Template
"Your requirement for [criterion] is demonstrated through my [X years] of experience in [field/role]. Specifically, at [Organization], I [achievement with metrics] which [outcome/benefit]. This experience has equipped me with [skills/knowledge] directly applicable to [aspect of advertised role]."
### Transferable Skills Approach
When experience doesn't directly match:
"While my background is in [your field], the [specific skills/competencies] required for [criterion] align closely with my experience in [related area]. For example, [specific achievement] demonstrates [transferable capability] that would enable me to [contribution to new role]."
---
## Customization Checklist
Before sending cover letter, verify:
- [ ] Company name spelled correctly throughout
- [ ] Position title matches advertisement exactly
- [ ] Industry-specific terminology used appropriately
- [ ] Organizational values or mission referenced
- [ ] No generic template language remaining
- [ ] Tone matches company culture (formal vs. contemporary)
- [ ] All claims supported by CV evidence
- [ ] Contact information matches CV exactly
---
## Length Guidelines
- **Ideal:** 300-450 words (3-4 paragraphs)
- **Maximum:** 500 words
- **Opening:** 3-4 sentences
- **Body:** 2-3 paragraphs (4-6 sentences each)
- **Closing:** 3-4 sentences
---
## Common Mistakes
1. **Repeating CV without adding value** - Use cover letter to provide context and narrative
2. **Focusing on what job offers you** - Focus on what you offer the organization
3. **Generic applications** - Must be tailored to specific role and organization
4. **Poor evidence** - Vague claims without specific examples
5. **Wrong tone** - Too casual, too formal, or mismatched to culture
6. **Typos and errors** - Proofread multiple times
7. **Missing selection criteria** - Every key criterion must be addressed
8. **Too long** - Hiring managers spend 30 seconds on first review

View File

@@ -0,0 +1,443 @@
# Employment Application Workflow Guidelines
## Purpose
This document outlines the systematic workflow for analyzing employment opportunities and creating tailored, compelling application documents (cover letters and CVs/resumes).
---
## Core Workflow Process
### Phase 1: Employment Opportunity Analysis
**Objective:** Thoroughly understand the position requirements and organizational expectations.
#### Step 1.1: Advertisement Analysis
Carefully analyze the provided employment opportunity advertisement, noting:
1. **Position Details**
- Full position title and level
- Department/team structure
- Reporting relationships
- Employment type (full-time, contract, etc.)
2. **Core Responsibilities**
- Primary duties and accountabilities
- Key deliverables expected
- Day-to-day activities
- Strategic vs. operational balance
3. **Required Qualifications**
- Essential educational requirements
- Mandatory certifications or licenses
- Years of experience required
- Specific technical skills
- Industry-specific knowledge
4. **Key Selection Criteria**
- Explicit criteria listed in advertisement
- Weighted or prioritized requirements
- "Nice to have" vs. "must have" distinctions
- Cultural fit indicators
5. **Organizational Context**
- Company size and structure
- Industry sector
- Organizational values and culture
- Current challenges or initiatives mentioned
#### Step 1.2: Requirements Mapping
Create a structured mapping between:
- Job requirements → Candidate qualifications (from CV-Collins-Robin-Enhanced.md)
- Selection criteria → Supporting evidence and achievements
- Skills gaps → Transferable skills or learning opportunities
---
### Phase 2: Cover Letter Development
**Objective:** Craft a tailored, compelling cover letter that explicitly addresses each selection criterion.
#### Step 2.1: Source Material Review
Thoroughly review `CV-Collins-Robin-Enhanced.md` and related project documents to identify:
- Relevant achievements that demonstrate required competencies
- Quantifiable results that align with role expectations
- Technical skills and certifications matching job requirements
- Leadership examples and problem-solving scenarios
- Industry experience and domain knowledge
#### Step 2.2: Selection Criteria Addressing
For each key selection criterion:
1. **Explicit Acknowledgment**
- Directly reference the criterion
- Use similar language to the job advertisement
- Show understanding of why this criterion matters
2. **Evidence-Based Response**
- Draw specific examples from CV-Collins-Robin-Enhanced.md
- Include quantifiable achievements where possible
- Demonstrate both breadth and depth of experience
- Show progression and growth
3. **Value Proposition**
- Connect past achievements to future contributions
- Highlight unique qualifications or perspectives
- Demonstrate understanding of organizational needs
#### Step 2.3: Cover Letter Structure
**Opening Paragraph**
- Position being applied for
- Brief value proposition (2-3 sentences)
- Enthusiasm for the opportunity
- How candidate learned about position (if applicable)
**Body Paragraphs (2-4 paragraphs)**
- Each paragraph addresses 1-2 key selection criteria
- Lead with criterion/requirement
- Provide specific evidence from experience
- Connect to organizational needs
- Include quantifiable achievements
- Demonstrate problem-solving and impact
**Closing Paragraph**
- Reiterate key strengths alignment
- Express genuine interest in role and organization
- Call to action (interview request)
- Thank you for consideration
- Contact information reference
#### Step 2.4: Tone and Language Best Practices
**Professional and Contemporary**
- Confident without arrogance
- Specific without being verbose
- Achievement-focused without exaggeration
- Personalized without being informal
**Action-Oriented Language**
- Use strong action verbs (led, implemented, achieved, drove, transformed)
- Focus on results and outcomes
- Demonstrate agency and initiative
- Show continuous learning and adaptation
**Avoid**
- Generic platitudes ("I'm a hard worker," "team player")
- Repetition of CV without adding context
- Apologetic language or qualification hedging
- Overly technical jargon without explanation
- Desperate or presumptuous tones
#### Step 2.5: Quality Assurance Checklist
Before finalizing cover letter, verify:
- [ ] Each key selection criterion explicitly addressed
- [ ] Specific examples drawn from CV-Collins-Robin-Enhanced.md
- [ ] Quantifiable achievements included where possible
- [ ] Tone aligns with organizational culture (from advertisement analysis)
- [ ] No grammatical errors or typos
- [ ] Length appropriate (typically 3-4 paragraphs, 300-500 words)
- [ ] Contact information matches CV
- [ ] Personalized for specific role (no generic content)
- [ ] Value proposition clear and compelling
---
### Phase 3: CV/Resume Update
**Objective:** Ensure CV document aligns with advertised role and incorporates critical supporting information.
#### Step 3.1: Gap Analysis
Compare CV-Collins-Robin-EnhancedTemplateCondensed.docx against:
- Information used in cover letter
- Skills emphasized in job advertisement
- Achievements highlighted in CV-Collins-Robin-Enhanced.md but missing from condensed CV
#### Step 3.2: Content Enhancement
Incorporate from CV-Collins-Robin-Enhanced.md:
- Relevant achievements that strengthen alignment
- Technical skills matching job requirements
- Certifications or qualifications newly relevant
- Project experience demonstrating required competencies
- Leadership or problem-solving examples
#### Step 3.3: Content Prioritization
For roles with specific focus areas, consider:
- Moving relevant sections higher in document
- Expanding bullet points for directly relevant experience
- Adding keywords from job advertisement (naturally)
- Emphasizing transferable skills for career transitions
#### Step 3.4: Styling Compliance
**CRITICAL:** Ensure final CV conforms to explicit styling guide `CV_Styling_Guide.md`:
**Required Style Elements:**
- Font: Calibri throughout
- Brand color: #11217B (professional navy blue)
- Name: 33pt, bold, brand blue, left-aligned
- Section headings: 14pt, bold, brand blue, with brand blue underline
- Contact info: Clickable hyperlinks for email and GitHub
- Job titles: Structured format (Title | Company | Location | Dates)
- Project titles: Structured format (Project | Organization | Dates)
- Body text: 10.5pt, justified alignment
- Bullet lists: Standard bullet character with proper indentation
**Formatting Validation:**
- [ ] All styles from CV_Styling_Guide.md correctly applied
- [ ] Brand blue color (#11217B) used consistently
- [ ] Structured title formatting for all job/project entries
- [ ] Clickable hyperlinks in contact information
- [ ] Section heading underlines present
- [ ] Proper spacing and indentation throughout
- [ ] Margins: 1 inch on all sides
- [ ] Professional, clean, scannable appearance
#### Step 3.5: docx Library Implementation
When generating or updating CV using docx library:
1. **Required Imports**
```javascript
const {
Document,
Packer,
Paragraph,
TextRun,
AlignmentType,
LevelFormat,
BorderStyle,
ExternalHyperlink
} = require('docx');
const fs = require('fs');
```
2. **Style Definitions**
Implement all styles from CV_Styling_Guide.md:
- Name style
- ContactInfo style
- SectionHeading style (with bottom border)
- JobTitle style
- Body style
- Bullet list configuration
3. **Content Patterns**
Follow exact formatting patterns from guide:
- Job title: Bold blue title | Bold black company | Italic black location | Regular black dates
- Project title: Bold blue project | Bold black organization | Italic black dates
- Competency bullets: Bold label + regular description
- Technical skills: Bold category + technology list
---
### Phase 4: Analysis and Evaluation
**Objective:** Provide detailed assessment and actionable recommendations for improvement.
#### Step 4.1: Cover Letter Analysis
**Strengths Assessment**
- How well does cover letter address each selection criterion?
- Quality and relevance of supporting evidence
- Clarity and persuasiveness of value proposition
- Alignment with organizational culture and values
- Professional tone and presentation quality
**Gap Identification**
- Selection criteria not fully addressed
- Weak or generic evidence provided
- Missing quantifiable achievements
- Opportunities for stronger connections to role requirements
- Areas where transferable skills could be better articulated
**Competitive Positioning**
- What makes this application stand out?
- Unique qualifications or perspectives highlighted
- Demonstration of understanding beyond job description
- Evidence of research into organization
- Alignment with strategic initiatives or challenges
#### Step 4.2: CV/Resume Analysis
**Content Effectiveness**
- Relevance of featured experience to target role
- Strength of achievement descriptions
- Appropriate emphasis on key skills
- Clarity and scannability for hiring managers/ATS
- Completeness without unnecessary information
**Formatting Compliance**
- Adherence to CV_Styling_Guide.md specifications
- Professional appearance and readability
- Consistent styling throughout
- Proper use of brand colors and typography
- Clickable links and proper structure
**ATS Optimization**
- Keyword inclusion from job advertisement
- Standard section headings
- Simple formatting without tables or graphics
- Clear job titles and dates
- Technical skills clearly listed
#### Step 4.3: Recommendations
Provide specific, actionable recommendations in three categories:
**High Priority (Must Address)**
- Critical gaps in selection criteria coverage
- Major formatting inconsistencies
- Weak or missing evidence for key requirements
- Tone or language issues
**Medium Priority (Should Address)**
- Opportunities to strengthen evidence
- Additional relevant achievements to incorporate
- Minor formatting improvements
- Enhanced quantification of results
**Low Priority (Nice to Have)**
- Optional enhancements for differentiation
- Additional context or detail
- Stylistic refinements
- Future application considerations
#### Step 4.4: Evidence-Based Validation
Support all recommendations with:
- Specific references to job advertisement requirements
- Examples from CV-Collins-Robin-Enhanced.md that could be used
- Citations from cover letter or CV sections
- Industry best practices or hiring manager perspectives
- Comparison to selection criteria
---
## Output Deliverables
### Required Outputs
1. **Final Cover Letter**
- Tailored to specific employment opportunity
- Addresses all key selection criteria
- Professional tone and structure
- 300-500 words typically
- Contact information included
2. **Updated CV Document**
- CV-Collins-Robin-EnhancedTemplateCondensed.docx updated
- Aligned with role requirements
- Fully compliant with CV_Styling_Guide.md
- Professional, scannable format
- Ready for submission
3. **Analysis Report**
- Strengths identified
- Gaps highlighted
- Actionable recommendations provided
- Evidence-based validation included
- Prioritized improvement suggestions
4. **Source Code Files**
- JavaScript files used for document generation
- Possible file names: `cover_letter.js`, `updated_cv.js`
- Reusable for future applications
- Well-commented for maintainability
- Following docx library best practices
---
## Best Practices Summary
### Research and Preparation
- Read job advertisement multiple times for deep understanding
- Research organization's website, news, and recent initiatives
- Review CV-Collins-Robin-Enhanced.md thoroughly
- Map requirements to qualifications systematically
### Writing Excellence
- Be specific and concrete with examples
- Quantify achievements whenever possible
- Use active voice and strong action verbs
- Demonstrate understanding beyond job description
- Proofread meticulously
### Technical Execution
- Follow CV_Styling_Guide.md exactly
- Use docx library correctly with all required imports
- Implement consistent formatting patterns
- Generate clean, professional documents
- Test output for rendering and compatibility
### Quality Assurance
- Self-review against all criteria
- Check for consistency across documents
- Validate technical implementation
- Ensure ATS compatibility
- Verify contact information accuracy
---
## Common Pitfalls to Avoid
1. **Generic Applications**
- Failing to tailor to specific role
- Using template language without customization
- Not addressing organization-specific needs
2. **Poor Evidence**
- Vague or unquantified achievements
- Irrelevant examples
- Repetition without adding value
3. **Formatting Issues**
- Inconsistent styling
- Non-compliance with CV_Styling_Guide.md
- Poor readability or scannability
- ATS-unfriendly formatting
4. **Tone Problems**
- Too casual or too formal
- Arrogant or presumptuous
- Apologetic or uncertain
- Generic or impersonal
5. **Technical Errors**
- Typos or grammatical mistakes
- Incorrect contact information
- Broken hyperlinks
- Formatting bugs in generated documents
---
## Success Criteria
An excellent employment application demonstrates:
1. **Complete Alignment**
- Every selection criterion addressed
- Evidence strongly supports qualifications
- Skills and experience clearly match requirements
2. **Compelling Narrative**
- Clear value proposition
- Authentic enthusiasm and interest
- Demonstration of cultural fit
- Unique perspective or approach
3. **Professional Excellence**
- Flawless presentation
- Appropriate tone and language
- Perfect formatting compliance
- Error-free execution
4. **Strategic Positioning**
- Competitive differentiation
- Understanding of organizational context
- Forward-looking contribution focus
- Memorable and persuasive case
---
**Document Version:** 1.0
**Last Updated:** 2025-01-18
**Purpose:** Systematic workflow guide for employment application document creation