# Implementation Tasks ## 1. Create Application Folder Structure - [x] 1.1 Create `src/applications/` directory structure - [x] 1.2 Create `src/applications/pending/` directory for applications not yet sent - [x] 1.3 Add `.gitkeep` file to preserve directory structure in git ## 2. Design Application Template - [x] 2.1 Design `application.md` template structure with sections: - Organization Information (name, website, contact person) - Job Information (title, level, department) - Job Description Summary (key points from posting) - Research Notes (company culture, values, recent news) - Match Strategy (which experiences/skills to emphasize) - Key Messages (main points to convey in application) - Tone of Voice (formal/balanced/casual assessment) - Document Checklist (CV needed? Cover letter? Application form?) - [x] 2.2 Add helpful comments and instructions within template - [x] 2.3 Include metadata section (date created, status, deadline if known) ## 3. Implement `/new-application` Command - [x] 3.1 Create `src/.claude/commands/new-application.md` - [x] 3.2 Implement folder name generation logic: - Get current date in YYYY-MM-DD format - Parse user input for organization name and job title - Sanitize names (remove/replace invalid filesystem characters) - Combine into format: `YYYY-MM-DD-OrgName-JobTitle` - [x] 3.3 Implement folder creation logic: - Create `src/applications/pending/[generated-name]/` - Copy `application.md` template to new folder - Create `input/` subfolder - [x] 3.4 Add user guidance: - Confirm successful creation with folder path - Explain next steps (add files to input/, run /populate-application) - Provide examples of useful input files ## 4. Implement `/populate-application` Command - [x] 4.1 Create `src/.claude/commands/populate-application.md` - [x] 4.2 Implement current directory detection: - Check if running from inside an application folder - Verify `application.md` and `input/` exist - Provide helpful error if not in correct location - [x] 4.3 Implement input file discovery: - List all files in `input/` folder - Filter by supported formats (PDF, TXT, MD, DOCX, EML) - Warn about unsupported files - [x] 4.4 Implement document analysis: - Read each supported file - Extract key information (job requirements, company info, contact details) - Identify keywords and skills mentioned - Analyze tone and company culture from language - [x] 4.5 Implement profile cross-reference: - Read `src/profile.md` - Match job requirements to applicant's experience - Identify which projects/skills/achievements to emphasize - Suggest relevant stories or examples from profile - [x] 4.6 Implement application.md population: - Update each section with extracted/analyzed information - Preserve any existing manual entries - Mark auto-populated sections with timestamp - Leave sections empty if no relevant information found - [x] 4.7 Implement interactive prompts: - Ask user for missing critical information - Confirm before overwriting existing content - Provide summary of changes made ## 5. Update Framework Instructions - [x] 5.1 Update `src/CLAUDE.md` to add application management workflow section - [x] 5.2 Document the workflow sequence: 1. Validate profile (existing) 2. Initialize new application (`/new-application`) 3. Gather documents (user adds to input/) 4. Populate application (`/populate-application`) 5. Review and refine application.md manually if needed 6. Generate documents (future: CV, cover letter, email) - [x] 5.3 Add command reference for `/new-application` and `/populate-application` - [x] 5.4 Add guidance on what files to put in input/ folder - [x] 5.5 Explain how to work with application.md after population ## 6. Handle Edge Cases - [x] 6.1 Handle duplicate folder names (append counter if exists) - [x] 6.2 Handle very long organization/job names (truncate with ellipsis) - [x] 6.3 Handle missing input folder during population - [x] 6.4 Handle corrupted or unreadable input files - [x] 6.5 Handle running commands from wrong directory - [x] 6.6 Handle missing profile.md during population (graceful degradation) ## 7. Create Example Application (for testing) - [x] 7.1 Create example application folder structure manually for testing - [x] 7.2 Add sample job posting to input/ folder - [x] 7.3 Test population command with sample data - [x] 7.4 Document expected output in tasks or design doc ## 8. Validation & Documentation - [x] 8.1 Verify `/new-application` creates correct folder structure - [x] 8.2 Verify application.md template has all required sections - [x] 8.3 Verify input/ folder is created - [x] 8.4 Verify `/populate-application` reads files from input/ - [x] 8.5 Verify population extracts key information correctly - [x] 8.6 Verify profile integration works (matches skills/experience) - [x] 8.7 Verify edge cases are handled gracefully - [x] 8.8 Test with real job posting to validate workflow - [x] 8.9 Update CLAUDE.md instructions are clear and complete - [x] 8.10 Validate with `openspec validate add-application-management --strict`