Archive all completed changes and create final specifications: Archived changes (2025-11-03): - add-application-email (8 requirements) - add-application-management (9 requirements) - add-application-validation (9 requirements) - add-cover-letter-generation (13 requirements) - add-cover-letter-pdf-conversion (7 requirements) - add-profile-template (4 requirements) - add-profile-validation (3 requirements) Created specifications: - applicant-profile: User profile management with validation - application-email: Email generation for job applications - application-management: Application workflow and folder structure - application-validation: Application completeness checking - cover-letter-generation: Tailored cover letter creation - cover-letter-pdf-conversion: PDF export with Swiss formatting All features are now fully documented in openspec/specs/ and ready for use. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
5.7 KiB
applicant-profile Specification
Purpose
TBD - created by archiving change add-profile-template. Update Purpose after archive.
Requirements
Requirement: Profile Storage
The system SHALL provide a markdown file (src/profile.md) in the distributable framework directory for storing applicant information.
Scenario: Profile file exists with template structure
- WHEN the framework is set up in
src/directory - THEN
src/profile.mdcontains template sections for Personal Information, Professional Summary, Work Experience, Education, Skills, Projects, Certifications, and Languages
Scenario: Profile sections are clearly documented
- WHEN user opens
src/profile.md - THEN each section includes helpful comments explaining what information to include and formatting guidance
Requirement: Profile Schema
The profile markdown SHALL include the following sections with structured information:
- Personal Information (name, email, phone, location, LinkedIn, GitHub)
- Professional Summary (2-3 sentence overview)
- Work Experience (company, position, dates, responsibilities, achievements)
- Education (institution, degree, field, dates, honors)
- Skills (categorized: technical, languages, tools, soft skills)
- Projects (name, description, technologies, link)
- Certifications (name, issuer, date)
- Languages (language, proficiency level)
Scenario: Work experience includes all necessary fields
- WHEN user adds a work experience entry
- THEN template provides fields for company, position, employment period, key responsibilities, and quantifiable achievements
Scenario: Skills are organized by category
- WHEN user lists their skills
- THEN template groups skills into categories (Technical Skills, Programming Languages, Tools & Technologies, Soft Skills)
Requirement: Claude Code Integration
The src/CLAUDE.md file SHALL instruct Claude Code to automatically read profile.md when the user requests help with job applications.
Scenario: Claude Code loads profile for application tasks
- WHEN user asks Claude Code to help with a job application (CV, cover letter, or email) in a directory containing the framework
- THEN Claude Code reads
profile.mdto access applicant information without asking the user to provide it again
Scenario: Profile is used as source of truth
- WHEN generating application documents
- THEN Claude Code uses only information from
profile.md, ensuring consistency across all applications and preventing hallucinations
Requirement: Framework Distribution
The framework SHALL be contained in a src/ directory separate from the development project files.
Scenario: Users can copy framework to use elsewhere
- WHEN user wants to use the job application framework
- THEN they can copy the entire
src/directory to any location and start using it immediately
Scenario: Development and usage are separated
- WHEN working on the framework itself
- THEN changes are made in this repository, and
src/contains only the distributable framework files
Requirement: Profile Validation Command
The system SHALL provide a /validate-profile slash command that verifies the profile is complete and ready for use.
Scenario: Validation command is available
- WHEN user is in a directory containing the framework
- THEN they can run
/validate-profileto check ifprofile.mdis complete
Scenario: Validation detects incomplete profile
- WHEN
/validate-profileis run andprofile.mdcontains placeholder text patterns (e.g.,[Your name],[Company]) - THEN the command reports which sections contain placeholders and need completion
Scenario: Validation confirms complete profile
- WHEN
/validate-profileis run andprofile.mdhas no placeholder patterns in required fields - THEN the command reports that the profile is ready for application generation
Requirement: Placeholder Detection
The validation SHALL detect common placeholder patterns indicating incomplete profile data.
Scenario: Square bracket placeholders detected
- WHEN profile contains text in the format
[placeholder text] - THEN validation identifies these as incomplete fields
Scenario: Required sections checked
- WHEN validation runs
- THEN it checks that Personal Information, Professional Summary, and at least one Work Experience entry are filled out (not placeholders)
Scenario: Optional sections allowed to be empty
- WHEN validation runs
- THEN empty optional sections (Certifications, Projects) do not cause validation failure
Requirement: Automatic Validation Before Applications
The src/CLAUDE.md instructions SHALL require Claude Code to validate the profile before generating any application documents.
Scenario: Profile validated before CV generation
- WHEN user requests CV generation
- THEN Claude Code first validates
profile.mdis complete before proceeding
Scenario: Profile validated before cover letter generation
- WHEN user requests cover letter or application email generation
- THEN Claude Code first validates
profile.mdis complete before proceeding
Scenario: Validation failure blocks application generation
- WHEN profile validation fails (incomplete data detected)
- THEN Claude Code informs the user to complete the profile and does not generate application documents
Scenario: User can skip validation explicitly
- WHEN user explicitly requests to skip validation (e.g., "generate CV without validation" or "I know my profile is incomplete, proceed anyway")
- THEN Claude Code can proceed with a warning about potential placeholder text in output