Initial commit
This commit is contained in:
12
.claude-plugin/plugin.json
Normal file
12
.claude-plugin/plugin.json
Normal file
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"name": "jobseeker-skills",
|
||||
"description": "Collection of Jobseeker cover letter and application writing skillsr",
|
||||
"version": "0.0.0-2025.11.28",
|
||||
"author": {
|
||||
"name": "Robin Collins",
|
||||
"email": "robin.f.collins@outlook.com"
|
||||
},
|
||||
"skills": [
|
||||
"./skills/employment-application"
|
||||
]
|
||||
}
|
||||
3
README.md
Normal file
3
README.md
Normal file
@@ -0,0 +1,3 @@
|
||||
# jobseeker-skills
|
||||
|
||||
Collection of Jobseeker cover letter and application writing skillsr
|
||||
60
plugin.lock.json
Normal file
60
plugin.lock.json
Normal file
@@ -0,0 +1,60 @@
|
||||
{
|
||||
"$schema": "internal://schemas/plugin.lock.v1.json",
|
||||
"pluginId": "gh:robin-collins/claude_code_skills:jobseeker-skills",
|
||||
"normalized": {
|
||||
"repo": null,
|
||||
"ref": "refs/tags/v20251128.0",
|
||||
"commit": "8bd72fa1274d73f643fcc78558ef17901be312c0",
|
||||
"treeHash": "90b4f68790350cdf3b0d340343ff980a097e68db7362e86322b7587bc0c2f063",
|
||||
"generatedAt": "2025-11-28T10:28:02.350947Z",
|
||||
"toolVersion": "publish_plugins.py@0.2.0"
|
||||
},
|
||||
"origin": {
|
||||
"remote": "git@github.com:zhongweili/42plugin-data.git",
|
||||
"branch": "master",
|
||||
"commit": "aa1497ed0949fd50e99e70d6324a29c5b34f9390",
|
||||
"repoRoot": "/Users/zhongweili/projects/openmind/42plugin-data"
|
||||
},
|
||||
"manifest": {
|
||||
"name": "jobseeker-skills",
|
||||
"description": "Collection of Jobseeker cover letter and application writing skillsr"
|
||||
},
|
||||
"content": {
|
||||
"files": [
|
||||
{
|
||||
"path": "README.md",
|
||||
"sha256": "240ca65ae94a08506bcca48a2962cadd12b6f9b3cfa0c7086c6dde0307251288"
|
||||
},
|
||||
{
|
||||
"path": ".claude-plugin/plugin.json",
|
||||
"sha256": "f89bd368663f174bf0a84827d47684e34a0083b1ca29e6821fa0276938a4a153"
|
||||
},
|
||||
{
|
||||
"path": "skills/employment-application/SKILL.md",
|
||||
"sha256": "9135dc6c7a64d4963cc206cc978cc1afd96f1e8ce4e88bbcdf22a8b4ad39cc44"
|
||||
},
|
||||
{
|
||||
"path": "skills/employment-application/references/cover_letter_best_practices.md",
|
||||
"sha256": "202a08c5d681ef0cd3046c20f60f1f09a57e8ca42d5b220850c51a60115c68d0"
|
||||
},
|
||||
{
|
||||
"path": "skills/employment-application/references/workflow_guidelines.md",
|
||||
"sha256": "55d844ca19a85e3607d5444efc1fe19b05e669f121efa8bbc61537c53b3b9945"
|
||||
},
|
||||
{
|
||||
"path": "skills/employment-application/references/CV_Styling_Guide.md",
|
||||
"sha256": "2513bf91758ace6265188f54f8da40fac4f05176c2721c95941d6f7b08682fb1"
|
||||
},
|
||||
{
|
||||
"path": "skills/employment-application/scripts/generate_cover_letter.js",
|
||||
"sha256": "5b17e3f83b3b6ca11f341bb5e4cff76662e38e8f633c5e2d93ac6f6eddf79aab"
|
||||
}
|
||||
],
|
||||
"dirSha256": "90b4f68790350cdf3b0d340343ff980a097e68db7362e86322b7587bc0c2f063"
|
||||
},
|
||||
"security": {
|
||||
"scannedAt": null,
|
||||
"scannerVersion": null,
|
||||
"flags": []
|
||||
}
|
||||
}
|
||||
354
skills/employment-application/SKILL.md
Normal file
354
skills/employment-application/SKILL.md
Normal file
@@ -0,0 +1,354 @@
|
||||
---
|
||||
name: employment-application
|
||||
description: Analyze employment opportunities and create compelling, tailored cover letters and CVs/resumes that explicitly address selection criteria. Use this skill when users request help with job applications, want to tailor application documents to specific positions, need cover letters written, or ask to update CVs for particular roles. The skill provides systematic workflows for advertisement analysis, selection criteria addressing, document generation using the docx library with specific styling guidelines, and comprehensive evaluation with actionable recommendations.
|
||||
---
|
||||
|
||||
# Employment Application
|
||||
|
||||
## Overview
|
||||
|
||||
This skill provides a comprehensive, systematic approach to analyzing employment opportunities and creating compelling application documents (cover letters and CVs/resumes). The skill guides through advertisement analysis, selection criteria mapping, tailored document creation with specific styling requirements, and detailed evaluation with actionable recommendations.
|
||||
|
||||
The skill is designed for creating high-impact professional applications that:
|
||||
- Explicitly address each key selection criterion
|
||||
- Draw evidence from detailed CV source material
|
||||
- Follow professional document styling standards
|
||||
- Position candidates as the most qualified and compelling choice
|
||||
|
||||
## When to Use This Skill
|
||||
|
||||
Invoke this skill when users:
|
||||
- Request help analyzing a job advertisement or employment opportunity
|
||||
- Want to create a cover letter for a specific position
|
||||
- Need to tailor their CV/resume to a particular role
|
||||
- Ask for evaluation or improvement of application documents
|
||||
- Request systematic approach to addressing selection criteria
|
||||
- Need professional document generation using specific styling guidelines
|
||||
|
||||
## Core Workflow
|
||||
|
||||
### Phase 1: Employment Opportunity Analysis
|
||||
|
||||
**Objective:** Thoroughly understand the position, requirements, and organizational context.
|
||||
|
||||
#### Step 1: Read and Analyze Advertisement
|
||||
|
||||
Carefully examine the employment opportunity advertisement to identify:
|
||||
|
||||
1. **Position Structure**
|
||||
- Full position title and level
|
||||
- Department, team, and reporting relationships
|
||||
- Employment type and conditions
|
||||
|
||||
2. **Core Responsibilities**
|
||||
- Primary duties and deliverables
|
||||
- Strategic vs. operational balance
|
||||
- Day-to-day activities expected
|
||||
|
||||
3. **Required Qualifications**
|
||||
- Educational requirements
|
||||
- Years of experience needed
|
||||
- Technical skills and certifications
|
||||
- Industry-specific knowledge
|
||||
|
||||
4. **Key Selection Criteria**
|
||||
- Explicitly stated criteria (often numbered or bulleted)
|
||||
- Prioritized or weighted requirements
|
||||
- "Essential" vs. "desirable" distinctions
|
||||
- Cultural fit indicators and organizational values
|
||||
|
||||
5. **Organizational Context**
|
||||
- Company size, structure, and industry
|
||||
- Current challenges or strategic initiatives
|
||||
- Values and culture signals
|
||||
|
||||
#### Step 2: Map Requirements to Candidate Qualifications
|
||||
|
||||
Create systematic mapping between:
|
||||
- Job requirements → Candidate experience and skills
|
||||
- Selection criteria → Supporting evidence and achievements
|
||||
- Required competencies → Demonstrated capabilities
|
||||
- Skills gaps → Transferable skills or learning readiness
|
||||
|
||||
**Source material:** Reference the detailed CV file (typically `CV-Collins-Robin-Enhanced.md` or similar) to identify relevant achievements, technical skills, certifications, and experience.
|
||||
|
||||
---
|
||||
|
||||
### Phase 2: Cover Letter Development
|
||||
|
||||
**Objective:** Craft a tailored, compelling cover letter that explicitly addresses each selection criterion with specific evidence.
|
||||
|
||||
#### Step 1: Review Source Material Thoroughly
|
||||
|
||||
Examine the detailed CV file to identify:
|
||||
- Relevant achievements demonstrating required competencies
|
||||
- Quantifiable results aligning with role expectations
|
||||
- Technical skills and certifications matching requirements
|
||||
- Leadership examples and problem-solving scenarios
|
||||
- Industry experience and domain knowledge
|
||||
|
||||
#### Step 2: Address Each Selection Criterion Explicitly
|
||||
|
||||
For every key selection criterion identified in Phase 1:
|
||||
|
||||
**Pattern to follow:**
|
||||
1. **Acknowledge the criterion** - Reference it directly using similar language
|
||||
2. **Provide specific evidence** - Draw concrete examples from CV with quantifiable achievements
|
||||
3. **Connect to value** - Explain how this experience translates to contributions in the new role
|
||||
|
||||
**Example:**
|
||||
"Your requirement for cybersecurity incident response expertise aligns perfectly with my experience leading critical cyberattack responses. At IRIST IT, I led the EMOTET cyberattack remediation, developing a comprehensive response strategy and restoring all affected systems within 12 hours through expert crisis management. This experience has equipped me with the rapid problem-solving and technical expertise essential for [aspect of new role]."
|
||||
|
||||
#### Step 3: Structure the Cover Letter
|
||||
|
||||
**Opening Paragraph:**
|
||||
- Position title being applied for
|
||||
- Brief value proposition (2-3 sentences highlighting key fit)
|
||||
- Genuine enthusiasm for the opportunity
|
||||
- How you learned about the position (if relevant)
|
||||
|
||||
**Body Paragraphs (2-4 paragraphs):**
|
||||
- Each paragraph addresses 1-2 key selection criteria
|
||||
- Lead with the criterion/requirement
|
||||
- Provide specific evidence with quantifiable results
|
||||
- Demonstrate progression, impact, and problem-solving
|
||||
- Connect past achievements to future contributions
|
||||
|
||||
**Closing Paragraph:**
|
||||
- Reiterate 2-3 key strengths alignment
|
||||
- Express authentic interest in role and organization
|
||||
- Request for interview or further discussion
|
||||
- Thank you statement
|
||||
- Contact information reference
|
||||
|
||||
#### Step 4: Apply Professional Writing Standards
|
||||
|
||||
**Tone:** Confident without arrogance, specific without verbosity, achievement-focused without exaggeration
|
||||
|
||||
**Language:** Use strong action verbs (led, implemented, achieved, transformed, drove), focus on results and outcomes
|
||||
|
||||
**Avoid:** Generic platitudes, CV repetition without context, apologetic language, overly technical jargon, desperate tones
|
||||
|
||||
**Length:** Typically 300-500 words (3-4 paragraphs)
|
||||
|
||||
**Reference:** See `references/cover_letter_best_practices.md` for detailed guidelines
|
||||
|
||||
---
|
||||
|
||||
### Phase 3: CV/Resume Update and Styling
|
||||
|
||||
**Objective:** Ensure CV aligns with advertised role and conforms to explicit styling standards.
|
||||
|
||||
#### Step 1: Identify Content Enhancements
|
||||
|
||||
Compare current CV against:
|
||||
- Information referenced in cover letter
|
||||
- Skills emphasized in job advertisement
|
||||
- Achievements from detailed CV source that strengthen alignment
|
||||
- Keywords and terminology from advertisement
|
||||
|
||||
Incorporate relevant content:
|
||||
- Achievements demonstrating required competencies
|
||||
- Technical skills matching job requirements
|
||||
- Certifications newly relevant to this role
|
||||
- Project experience showing required capabilities
|
||||
|
||||
#### Step 2: Apply Strict Styling Standards
|
||||
|
||||
**CRITICAL:** All CV documents MUST conform to `CV_Styling_Guide.md` specifications.
|
||||
|
||||
**Required styling elements:**
|
||||
- **Font:** Calibri throughout entire document
|
||||
- **Brand color:** #11217B (professional navy blue) for name, headings, job/project titles
|
||||
- **Name:** 33pt, bold, brand blue, left-aligned
|
||||
- **Section headings:** 14pt, bold, brand blue, with brand blue bottom border
|
||||
- **Contact info:** 11pt with clickable hyperlinks (ExternalHyperlink) for email and GitHub
|
||||
- **Job titles:** Structured format: `Bold Blue Title | Bold Black Company | Italic Black Location | Regular Black Dates`
|
||||
- **Project titles:** Structured format: `Bold Blue Project | Bold Black Organization | Italic Black Dates`
|
||||
- **Body text:** 10.5pt, justified alignment
|
||||
- **Bullet lists:** Standard bullet (•) with 0.5" indent, 0.25" hanging indent
|
||||
|
||||
#### Step 3: Generate Document Using docx Library
|
||||
|
||||
When creating or updating CV documents programmatically:
|
||||
|
||||
**Required imports:**
|
||||
```javascript
|
||||
const {
|
||||
Document,
|
||||
Packer,
|
||||
Paragraph,
|
||||
TextRun,
|
||||
AlignmentType,
|
||||
LevelFormat,
|
||||
BorderStyle,
|
||||
ExternalHyperlink
|
||||
} = require('docx');
|
||||
const fs = require('fs');
|
||||
```
|
||||
|
||||
**Critical implementation notes:**
|
||||
- Define all paragraph styles (Name, ContactInfo, SectionHeading, JobTitle, Body)
|
||||
- SectionHeading style MUST include bottom border: `border: { bottom: { color: "11217B", style: BorderStyle.SINGLE, size: 18 } }`
|
||||
- Use ExternalHyperlink for email (`mailto:`) and web links
|
||||
- Explicitly specify colors in all TextRun objects within structured titles
|
||||
- Use `LevelFormat.BULLET` constant (not string) for bullet configuration
|
||||
- Font sizes in half-points (multiply by 2: 11pt = 22 half-points)
|
||||
|
||||
**Reference:** See `references/CV_Styling_Guide.md` for complete specifications, code examples, and formatting patterns
|
||||
|
||||
#### Step 4: Template Script
|
||||
|
||||
A cover letter generation template is provided in `scripts/generate_cover_letter.js` demonstrating:
|
||||
- Proper docx library usage
|
||||
- Required imports and configuration
|
||||
- Style definitions
|
||||
- Document structure
|
||||
- Content organization
|
||||
|
||||
Adapt this template for CV generation following the detailed patterns in `CV_Styling_Guide.md`.
|
||||
|
||||
---
|
||||
|
||||
### Phase 4: Analysis and Evaluation
|
||||
|
||||
**Objective:** Provide detailed assessment and actionable recommendations for improvement.
|
||||
|
||||
#### Cover Letter Evaluation
|
||||
|
||||
**Strengths Assessment:**
|
||||
- How comprehensively each selection criterion is addressed
|
||||
- Quality and relevance of supporting evidence
|
||||
- Clarity and persuasiveness of value proposition
|
||||
- Alignment with organizational culture
|
||||
- Professional tone and presentation
|
||||
|
||||
**Gap Identification:**
|
||||
- Selection criteria not fully addressed
|
||||
- Weak or generic evidence provided
|
||||
- Missing quantifiable achievements
|
||||
- Opportunities for stronger connections
|
||||
- Areas where transferable skills could be better articulated
|
||||
|
||||
**Competitive Positioning:**
|
||||
- What makes this application distinctive
|
||||
- Unique qualifications highlighted
|
||||
- Demonstration of organizational understanding
|
||||
- Evidence of research beyond job description
|
||||
|
||||
#### CV/Resume Evaluation
|
||||
|
||||
**Content Effectiveness:**
|
||||
- Relevance of featured experience to target role
|
||||
- Strength of achievement descriptions
|
||||
- Appropriate emphasis on key skills
|
||||
- Clarity and scannability
|
||||
- ATS (Applicant Tracking System) optimization
|
||||
|
||||
**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 structured formatting
|
||||
|
||||
#### Recommendations
|
||||
|
||||
Provide specific, actionable recommendations in three priority tiers:
|
||||
|
||||
**High Priority (Must Address):**
|
||||
- Critical gaps in selection criteria coverage
|
||||
- Major formatting inconsistencies with style guide
|
||||
- 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
|
||||
|
||||
Support all recommendations with:
|
||||
- Specific references to job advertisement
|
||||
- Examples from CV source material
|
||||
- Citations from cover letter or CV sections
|
||||
- Industry best practices
|
||||
|
||||
---
|
||||
|
||||
## Deliverables
|
||||
|
||||
At the conclusion of the workflow, provide:
|
||||
|
||||
1. **Final Cover Letter**
|
||||
- Tailored to specific opportunity
|
||||
- Addresses all key selection criteria
|
||||
- Professional tone and structure
|
||||
- Ready for submission
|
||||
|
||||
2. **Updated CV Document**
|
||||
- Aligned with role requirements
|
||||
- Fully compliant with CV_Styling_Guide.md
|
||||
- Professional, scannable format
|
||||
- ATS-friendly
|
||||
|
||||
3. **Comprehensive Analysis Report**
|
||||
- Strengths identified
|
||||
- Gaps highlighted with specific examples
|
||||
- Actionable, prioritized recommendations
|
||||
- Evidence-based validation
|
||||
|
||||
4. **Source Code Files**
|
||||
- JavaScript files used for document generation
|
||||
- Well-commented and reusable
|
||||
- Following docx library best practices
|
||||
- Typically: `cover_letter.js`, `updated_cv.js` or similar
|
||||
|
||||
---
|
||||
|
||||
## Resources
|
||||
|
||||
### references/
|
||||
|
||||
**workflow_guidelines.md** - Detailed systematic workflow with phase-by-phase instructions, success criteria, common pitfalls, and best practices summary.
|
||||
|
||||
**cover_letter_best_practices.md** - Comprehensive guide to cover letter structure, tone, language, quantification, selection criteria addressing, and customization checklists.
|
||||
|
||||
**CV_Styling_Guide.md** - Complete CV styling specifications including color palette, typography standards, required imports, style definitions, content formatting patterns, code examples, and validation checklist. This document is MANDATORY reference for all CV generation.
|
||||
|
||||
### scripts/
|
||||
|
||||
**generate_cover_letter.js** - Template script demonstrating professional cover letter generation using docx library with proper formatting, structure, and best practices.
|
||||
|
||||
---
|
||||
|
||||
## Quality Standards
|
||||
|
||||
An excellent employment application demonstrates:
|
||||
|
||||
1. **Complete Alignment** - Every selection criterion explicitly addressed with strong supporting evidence
|
||||
2. **Compelling Narrative** - Clear value proposition, authentic enthusiasm, demonstrated cultural fit
|
||||
3. **Professional Excellence** - Flawless presentation, appropriate tone, perfect formatting compliance
|
||||
4. **Strategic Positioning** - Competitive differentiation, organizational context understanding, forward-looking contributions
|
||||
|
||||
---
|
||||
|
||||
## Workflow Guidelines Summary
|
||||
|
||||
Detailed systematic workflows are available in `references/workflow_guidelines.md`. Key principles:
|
||||
|
||||
- **Research thoroughly** - Read advertisement multiple times, research organization
|
||||
- **Be specific** - Use concrete examples with quantifiable achievements
|
||||
- **Follow standards** - CV_Styling_Guide.md compliance is mandatory
|
||||
- **Address everything** - Every key criterion must be covered
|
||||
- **Proofread meticulously** - Zero tolerance for errors
|
||||
- **Add value** - Don't just repeat CV, provide context and narrative
|
||||
- **Show understanding** - Demonstrate knowledge beyond job description
|
||||
- **Be authentic** - Genuine enthusiasm and cultural alignment
|
||||
|
||||
Refer to bundled references for comprehensive guidelines on each phase of the application development process.
|
||||
950
skills/employment-application/references/CV_Styling_Guide.md
Normal file
950
skills/employment-application/references/CV_Styling_Guide.md
Normal 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
|
||||
@@ -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
|
||||
443
skills/employment-application/references/workflow_guidelines.md
Normal file
443
skills/employment-application/references/workflow_guidelines.md
Normal 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
|
||||
167
skills/employment-application/scripts/generate_cover_letter.js
Normal file
167
skills/employment-application/scripts/generate_cover_letter.js
Normal file
@@ -0,0 +1,167 @@
|
||||
#!/usr/bin/env node
|
||||
|
||||
/**
|
||||
* Cover Letter Generator Template
|
||||
*
|
||||
* This script provides a template for generating professional cover letters
|
||||
* using the docx library with proper formatting and structure.
|
||||
*
|
||||
* Usage: Customize the content sections below with job-specific information
|
||||
*/
|
||||
|
||||
const { Document, Packer, Paragraph, TextRun, AlignmentType } = require('docx');
|
||||
const fs = require('fs');
|
||||
|
||||
// Configuration
|
||||
const OUTPUT_FILE = 'Collins_Robin_Cover_Letter.docx';
|
||||
const APPLICANT_NAME = 'Robin Collins';
|
||||
const APPLICANT_EMAIL = 'robin.f.collins@outlook.com';
|
||||
const APPLICANT_PHONE = '0475 795 732';
|
||||
|
||||
// Job-specific configuration - CUSTOMIZE THESE
|
||||
const POSITION_TITLE = '[Position Title]';
|
||||
const COMPANY_NAME = '[Company Name]';
|
||||
const HIRING_MANAGER = '[Hiring Manager Name or "Hiring Manager"]';
|
||||
const DATE = new Date().toLocaleDateString('en-AU', { year: 'numeric', month: 'long', day: 'numeric' });
|
||||
|
||||
/**
|
||||
* Content sections - CUSTOMIZE WITH JOB-SPECIFIC CONTENT
|
||||
*/
|
||||
const OPENING_PARAGRAPH = `Dear ${HIRING_MANAGER},
|
||||
|
||||
I am writing to express my strong interest in the ${POSITION_TITLE} position at ${COMPANY_NAME}. [Add 1-2 sentences about your unique value proposition and why you're an excellent fit for this specific role.]`;
|
||||
|
||||
const BODY_PARAGRAPH_1 = `[Address first key selection criterion or requirement. Lead with the criterion, provide specific evidence from your experience with quantifiable results, and connect to the organizational need.]`;
|
||||
|
||||
const BODY_PARAGRAPH_2 = `[Address second key selection criterion. Include specific achievements, metrics, and demonstrate how your experience directly applies to role requirements.]`;
|
||||
|
||||
const BODY_PARAGRAPH_3 = `[Optional: Address additional selection criteria or provide compelling examples that differentiate you as a candidate.]`;
|
||||
|
||||
const CLOSING_PARAGRAPH = `I am excited about the opportunity to bring my [key skills/experience] to ${COMPANY_NAME} and contribute to [specific organizational goal or initiative]. I would welcome the opportunity to discuss how my background aligns with your needs in greater detail. Thank you for considering my application.
|
||||
|
||||
Sincerely,
|
||||
${APPLICANT_NAME}
|
||||
${APPLICANT_EMAIL}
|
||||
${APPLICANT_PHONE}`;
|
||||
|
||||
/**
|
||||
* Style definitions
|
||||
*/
|
||||
const styles = {
|
||||
default: {
|
||||
document: {
|
||||
run: { font: 'Calibri', size: 22 } // 11pt
|
||||
}
|
||||
},
|
||||
paragraphStyles: [
|
||||
{
|
||||
id: 'Header',
|
||||
name: 'Header',
|
||||
basedOn: 'Normal',
|
||||
run: { font: 'Calibri', size: 22, bold: true },
|
||||
paragraph: { spacing: { after: 120 }, alignment: AlignmentType.LEFT }
|
||||
},
|
||||
{
|
||||
id: 'Body',
|
||||
name: 'Body',
|
||||
basedOn: 'Normal',
|
||||
run: { font: 'Calibri', size: 22 },
|
||||
paragraph: { spacing: { after: 240, line: 360 }, alignment: AlignmentType.LEFT }
|
||||
},
|
||||
{
|
||||
id: 'Closing',
|
||||
name: 'Closing',
|
||||
basedOn: 'Normal',
|
||||
run: { font: 'Calibri', size: 22 },
|
||||
paragraph: { spacing: { before: 240, after: 120 }, alignment: AlignmentType.LEFT }
|
||||
}
|
||||
]
|
||||
};
|
||||
|
||||
/**
|
||||
* Generate cover letter document
|
||||
*/
|
||||
function generateCoverLetter() {
|
||||
const doc = new Document({
|
||||
styles: styles,
|
||||
sections: [{
|
||||
properties: {
|
||||
page: {
|
||||
margin: { top: 1440, right: 1440, bottom: 1440, left: 1440 } // 1 inch margins
|
||||
}
|
||||
},
|
||||
children: [
|
||||
// Header with contact info
|
||||
new Paragraph({
|
||||
style: 'Header',
|
||||
children: [new TextRun(APPLICANT_NAME)]
|
||||
}),
|
||||
new Paragraph({
|
||||
children: [
|
||||
new TextRun(`${APPLICANT_EMAIL} | ${APPLICANT_PHONE}`)
|
||||
],
|
||||
spacing: { after: 240 }
|
||||
}),
|
||||
|
||||
// Date
|
||||
new Paragraph({
|
||||
children: [new TextRun(DATE)],
|
||||
spacing: { after: 240 }
|
||||
}),
|
||||
|
||||
// Opening
|
||||
new Paragraph({
|
||||
style: 'Body',
|
||||
children: [new TextRun(OPENING_PARAGRAPH)]
|
||||
}),
|
||||
|
||||
// Body paragraphs
|
||||
new Paragraph({
|
||||
style: 'Body',
|
||||
children: [new TextRun(BODY_PARAGRAPH_1)]
|
||||
}),
|
||||
|
||||
new Paragraph({
|
||||
style: 'Body',
|
||||
children: [new TextRun(BODY_PARAGRAPH_2)]
|
||||
}),
|
||||
|
||||
// Optional third body paragraph (comment out if not needed)
|
||||
new Paragraph({
|
||||
style: 'Body',
|
||||
children: [new TextRun(BODY_PARAGRAPH_3)]
|
||||
}),
|
||||
|
||||
// Closing
|
||||
new Paragraph({
|
||||
style: 'Closing',
|
||||
children: [new TextRun(CLOSING_PARAGRAPH)]
|
||||
})
|
||||
]
|
||||
}]
|
||||
});
|
||||
|
||||
return doc;
|
||||
}
|
||||
|
||||
/**
|
||||
* Save document to file
|
||||
*/
|
||||
async function main() {
|
||||
try {
|
||||
const doc = generateCoverLetter();
|
||||
const buffer = await Packer.toBuffer(doc);
|
||||
fs.writeFileSync(OUTPUT_FILE, buffer);
|
||||
console.log(`✅ Cover letter created successfully: ${OUTPUT_FILE}`);
|
||||
} catch (error) {
|
||||
console.error('❌ Error generating cover letter:', error);
|
||||
process.exit(1);
|
||||
}
|
||||
}
|
||||
|
||||
// Run if called directly
|
||||
if (require.main === module) {
|
||||
main();
|
||||
}
|
||||
|
||||
module.exports = { generateCoverLetter };
|
||||
Reference in New Issue
Block a user