Files
Bewerbungszauberer/openspec/specs/applicant-profile/spec.md
T
gurixandClaude 84a229c255 chore: archive completed OpenSpec changes
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>
2025-11-03 20:38:51 +01:00

133 lines
5.7 KiB
Markdown

# 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.md` contains 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:
1. Personal Information (name, email, phone, location, LinkedIn, GitHub)
2. Professional Summary (2-3 sentence overview)
3. Work Experience (company, position, dates, responsibilities, achievements)
4. Education (institution, degree, field, dates, honors)
5. Skills (categorized: technical, languages, tools, soft skills)
6. Projects (name, description, technologies, link)
7. Certifications (name, issuer, date)
8. 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.md` to 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-profile` to check if `profile.md` is complete
#### Scenario: Validation detects incomplete profile
- **WHEN** `/validate-profile` is run and `profile.md` contains 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-profile` is run and `profile.md` has 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.md` is 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.md` is 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