Merge feature/profile-template into master
Add applicant profile template framework in src/ directory. This is the first foundational piece of the job application framework. - Created OpenSpec proposal for profile template - Implemented src/profile.md template with 8 sections - Implemented src/CLAUDE.md with Claude Code instructions - All tasks completed and validated 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,25 @@
|
|||||||
|
# Add Applicant Profile Template
|
||||||
|
|
||||||
|
## Why
|
||||||
|
|
||||||
|
The job application workflow requires applicant information (personal details, experience, skills, education) to generate CVs, cover letters, and emails. Currently, there's no structured way to store and access this information, forcing Claude Code to ask repeatedly or requiring manual input each time.
|
||||||
|
|
||||||
|
## What Changes
|
||||||
|
|
||||||
|
- Create `src/` directory to hold the distributable framework files (separate from this development project)
|
||||||
|
- Add `src/profile.md` template file for storing applicant's personal and professional information
|
||||||
|
- Create `src/CLAUDE.md` with instructions for Claude Code to read `profile.md` when helping with job applications
|
||||||
|
- Define a structured markdown format for the profile that covers all necessary sections (personal info, experience, education, skills, projects)
|
||||||
|
|
||||||
|
## Impact
|
||||||
|
|
||||||
|
- **Affected specs**: Creates new capability `applicant-profile`
|
||||||
|
- **Affected code**:
|
||||||
|
- New directory: `src/` (contains the distributable framework)
|
||||||
|
- New file: `src/profile.md` (template for users to fill out)
|
||||||
|
- New file: `src/CLAUDE.md` (framework instructions for Claude Code)
|
||||||
|
- **User benefit**:
|
||||||
|
- Clear separation between framework development and framework usage
|
||||||
|
- Users can copy `src/` folder to any location to start using the framework
|
||||||
|
- One-time profile setup, reusable for all applications
|
||||||
|
- **No breaking changes**: This is the first foundational piece of the framework
|
||||||
@@ -0,0 +1,68 @@
|
|||||||
|
# Applicant Profile
|
||||||
|
|
||||||
|
## ADDED 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
|
||||||
@@ -0,0 +1,24 @@
|
|||||||
|
# Implementation Tasks
|
||||||
|
|
||||||
|
## 1. Create Framework Directory
|
||||||
|
|
||||||
|
- [x] 1.1 Create `src/` directory to hold distributable framework files
|
||||||
|
|
||||||
|
## 2. Create Profile Template
|
||||||
|
|
||||||
|
- [x] 2.1 Create `src/profile.md` with all required sections
|
||||||
|
- [x] 2.2 Add helpful comments and examples for each section
|
||||||
|
- [x] 2.3 Include markdown formatting guidelines within the template
|
||||||
|
|
||||||
|
## 3. Create Framework Claude Instructions
|
||||||
|
|
||||||
|
- [x] 3.1 Create `src/CLAUDE.md` with profile reading instructions
|
||||||
|
- [x] 3.2 Specify that profile should be read for any job application-related tasks
|
||||||
|
- [x] 3.3 Add instruction to use profile as single source of truth for applicant data
|
||||||
|
|
||||||
|
## 4. Validation
|
||||||
|
|
||||||
|
- [x] 4.1 Verify `src/profile.md` template is complete and well-documented
|
||||||
|
- [x] 4.2 Verify `src/CLAUDE.md` contains clear instructions for Claude Code
|
||||||
|
- [x] 4.3 Ensure all required profile sections are present and clearly explained
|
||||||
|
- [x] 4.4 Test that the framework can be copied to another directory and works independently
|
||||||
+123
@@ -0,0 +1,123 @@
|
|||||||
|
# Job Application Framework - Instructions for Claude Code
|
||||||
|
|
||||||
|
This directory contains the Job Application Framework (Bewerbungszauberer), designed to help create tailored CVs, cover letters, and application emails using Claude Code.
|
||||||
|
|
||||||
|
## Core Principle: Profile as Source of Truth
|
||||||
|
|
||||||
|
**IMPORTANT**: When the user requests help with ANY job application task (CV, cover letter, email, or application advice), you MUST:
|
||||||
|
|
||||||
|
1. **Always read `profile.md` first** - This file contains the applicant's verified personal and professional information
|
||||||
|
2. **Use ONLY information from `profile.md`** - Never fabricate, assume, or hallucinate details about the applicant
|
||||||
|
3. **Maintain consistency** - All generated documents must align with the information in `profile.md`
|
||||||
|
|
||||||
|
## When to Read the Profile
|
||||||
|
|
||||||
|
Read `profile.md` automatically when the user asks for help with:
|
||||||
|
|
||||||
|
- Creating or tailoring a CV/resume
|
||||||
|
- Writing a cover letter
|
||||||
|
- Drafting an application email
|
||||||
|
- Customizing application documents for a specific job
|
||||||
|
- Reviewing or improving existing application materials
|
||||||
|
- Extracting relevant experience or skills for a position
|
||||||
|
- Advice on how to position themselves for a role
|
||||||
|
|
||||||
|
## Job Application Workflow
|
||||||
|
|
||||||
|
When helping with job applications, follow this workflow:
|
||||||
|
|
||||||
|
### 1. Research & Context
|
||||||
|
- Read the job description provided by the user
|
||||||
|
- Extract key requirements, skills, and keywords
|
||||||
|
- Analyze the company culture from the job posting language
|
||||||
|
- Read `profile.md` to understand what the applicant brings
|
||||||
|
|
||||||
|
### 2. Match & Strategy
|
||||||
|
- Identify which of the applicant's experiences (from `profile.md`) best match the job requirements
|
||||||
|
- Determine which skills and projects to emphasize
|
||||||
|
- Decide on the appropriate tone (formal, balanced, or casual) based on company culture
|
||||||
|
|
||||||
|
### 3. Content Generation
|
||||||
|
- Generate CV/cover letter/email based on the strategy
|
||||||
|
- Emphasize relevant experience from `profile.md`
|
||||||
|
- Incorporate keywords from the job description naturally
|
||||||
|
- Maintain factual accuracy - use only verified information from `profile.md`
|
||||||
|
|
||||||
|
### 4. Quality Assurance
|
||||||
|
- Verify all company names, dates, and facts are correct
|
||||||
|
- Ensure consistency between all documents (CV ↔ cover letter ↔ email)
|
||||||
|
- Check that tone matches the target company culture
|
||||||
|
- Confirm ATS optimization if applicable (simple formatting, keywords, standard sections)
|
||||||
|
|
||||||
|
## Document Standards
|
||||||
|
|
||||||
|
### CV/Resume
|
||||||
|
- Use information from relevant sections of `profile.md`
|
||||||
|
- Tailor the professional summary to the specific role
|
||||||
|
- Emphasize experiences and skills that match job requirements
|
||||||
|
- Keep formatting simple and ATS-friendly
|
||||||
|
- Use quantifiable achievements when available
|
||||||
|
|
||||||
|
### Cover Letter
|
||||||
|
- Structure: Opening → Why this role → What you bring → Cultural fit → Closing
|
||||||
|
- Length: Aim for 1 page (3-4 paragraphs)
|
||||||
|
- Tone: Match company culture (formal/balanced/casual)
|
||||||
|
- Personalize: Reference specific aspects of the job/company
|
||||||
|
- Connect: Link applicant's experience to job requirements
|
||||||
|
|
||||||
|
### Application Email
|
||||||
|
- Keep it short (3-4 sentences maximum)
|
||||||
|
- Subject line: Clear and professional
|
||||||
|
- Body: Brief introduction, reference to attached documents, expression of interest
|
||||||
|
- Professional signature using contact info from `profile.md`
|
||||||
|
|
||||||
|
## Cultural Considerations
|
||||||
|
|
||||||
|
This framework is designed with the German job market in mind:
|
||||||
|
|
||||||
|
- More formal tone is often expected
|
||||||
|
- Detailed work history with exact dates is valued
|
||||||
|
- Certificates and credentials are highly regarded
|
||||||
|
- A professional photo on CV may be common (user's choice)
|
||||||
|
|
||||||
|
Adjust recommendations based on the target market if the user specifies a different region.
|
||||||
|
|
||||||
|
## Constraints
|
||||||
|
|
||||||
|
**Data Privacy**:
|
||||||
|
- All information stays local - only API calls to Claude use the data
|
||||||
|
- Never suggest uploading sensitive personal data to third-party services
|
||||||
|
- Respect GDPR and data protection principles
|
||||||
|
|
||||||
|
**Accuracy & Honesty**:
|
||||||
|
- NEVER fabricate experience, skills, or achievements
|
||||||
|
- If `profile.md` lacks information needed for a job application, ask the user to update `profile.md` first
|
||||||
|
- Be transparent about what can and cannot be emphasized from the applicant's background
|
||||||
|
|
||||||
|
**Quality Standards**:
|
||||||
|
- All generated content is a DRAFT - user must review and approve
|
||||||
|
- Fact-check company names, contact persons, and details from job postings
|
||||||
|
- Maintain consistency across all documents for a single application
|
||||||
|
|
||||||
|
## Example Usage
|
||||||
|
|
||||||
|
**User**: "Help me apply for this software engineering position at TechCorp [paste job description]"
|
||||||
|
|
||||||
|
**Claude Code should**:
|
||||||
|
1. Read `profile.md` to load applicant information
|
||||||
|
2. Analyze the job description for requirements and culture
|
||||||
|
3. Identify matching experiences and skills from the profile
|
||||||
|
4. Ask clarifying questions: "Would you like me to create a CV, cover letter, or both?"
|
||||||
|
5. Generate tailored documents using only information from `profile.md`
|
||||||
|
6. Ensure all documents are consistent and factually accurate
|
||||||
|
|
||||||
|
## Updating the Profile
|
||||||
|
|
||||||
|
If you notice missing or outdated information during application preparation:
|
||||||
|
- Inform the user which sections of `profile.md` need updates
|
||||||
|
- Ask them to update `profile.md` first before generating documents
|
||||||
|
- This ensures the profile remains the single source of truth
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
**Remember**: The quality of output depends on the quality of `profile.md`. Encourage users to keep it complete, accurate, and up to date.
|
||||||
+173
@@ -0,0 +1,173 @@
|
|||||||
|
# Applicant Profile
|
||||||
|
|
||||||
|
<!--
|
||||||
|
This file contains your personal and professional information.
|
||||||
|
Claude Code will read this file when helping you with job applications.
|
||||||
|
Fill out all sections with your actual information. Remove placeholder text.
|
||||||
|
Keep this file up to date as your experience grows.
|
||||||
|
-->
|
||||||
|
|
||||||
|
## Personal Information
|
||||||
|
|
||||||
|
<!-- Your basic contact details -->
|
||||||
|
|
||||||
|
- **Full Name**: [Your full name]
|
||||||
|
- **Email**: [your.email@example.com]
|
||||||
|
- **Phone**: [+1 234 567 8900]
|
||||||
|
- **Location**: [City, Country]
|
||||||
|
- **LinkedIn**: [linkedin.com/in/yourprofile]
|
||||||
|
- **GitHub**: [github.com/yourusername]
|
||||||
|
- **Portfolio/Website**: [Optional: yourwebsite.com]
|
||||||
|
|
||||||
|
## Professional Summary
|
||||||
|
|
||||||
|
<!--
|
||||||
|
Write a concise 2-3 sentence overview of your professional identity.
|
||||||
|
Focus on: your role, years of experience, key strengths, and what you're looking for.
|
||||||
|
Example: "Software engineer with 5+ years of experience building scalable web applications.
|
||||||
|
Specialized in React, Node.js, and cloud infrastructure. Passionate about clean code and mentoring junior developers."
|
||||||
|
-->
|
||||||
|
|
||||||
|
[Your professional summary here]
|
||||||
|
|
||||||
|
## Work Experience
|
||||||
|
|
||||||
|
<!--
|
||||||
|
List your work history in reverse chronological order (most recent first).
|
||||||
|
For each position, include specific achievements with quantifiable results when possible.
|
||||||
|
Format dates as: Month Year - Month Year (or "Present")
|
||||||
|
-->
|
||||||
|
|
||||||
|
### [Job Title] at [Company Name]
|
||||||
|
**Period**: [Month Year] - [Month Year / Present]
|
||||||
|
**Location**: [City, Country / Remote]
|
||||||
|
|
||||||
|
**Key Responsibilities**:
|
||||||
|
- [Main responsibility or project 1]
|
||||||
|
- [Main responsibility or project 2]
|
||||||
|
- [Main responsibility or project 3]
|
||||||
|
|
||||||
|
**Achievements**:
|
||||||
|
- [Quantifiable achievement, e.g., "Reduced API response time by 40%"]
|
||||||
|
- [Impact-driven result, e.g., "Led team of 4 developers to launch feature used by 10K+ users"]
|
||||||
|
|
||||||
|
### [Previous Job Title] at [Previous Company]
|
||||||
|
**Period**: [Month Year] - [Month Year]
|
||||||
|
**Location**: [City, Country]
|
||||||
|
|
||||||
|
**Key Responsibilities**:
|
||||||
|
- [Responsibility 1]
|
||||||
|
- [Responsibility 2]
|
||||||
|
|
||||||
|
**Achievements**:
|
||||||
|
- [Achievement 1]
|
||||||
|
- [Achievement 2]
|
||||||
|
|
||||||
|
<!-- Add more positions as needed -->
|
||||||
|
|
||||||
|
## Education
|
||||||
|
|
||||||
|
<!--
|
||||||
|
List degrees, certifications, and relevant coursework.
|
||||||
|
Include honors, awards, or notable achievements.
|
||||||
|
-->
|
||||||
|
|
||||||
|
### [Degree] in [Field of Study]
|
||||||
|
**Institution**: [University/College Name]
|
||||||
|
**Period**: [Year] - [Year]
|
||||||
|
**Location**: [City, Country]
|
||||||
|
|
||||||
|
**Honors/Awards**: [Dean's List, Scholarships, etc.]
|
||||||
|
**Relevant Coursework**: [Course 1, Course 2, Course 3]
|
||||||
|
**GPA**: [Optional: 3.8/4.0]
|
||||||
|
|
||||||
|
<!-- Add more degrees as needed -->
|
||||||
|
|
||||||
|
## Skills
|
||||||
|
|
||||||
|
<!--
|
||||||
|
Organize skills by category for easy reference.
|
||||||
|
Be honest about proficiency levels - only list skills you can confidently use.
|
||||||
|
-->
|
||||||
|
|
||||||
|
### Technical Skills
|
||||||
|
- [Skill 1, e.g., "Web Development"]
|
||||||
|
- [Skill 2, e.g., "Database Design"]
|
||||||
|
- [Skill 3, e.g., "Cloud Architecture"]
|
||||||
|
|
||||||
|
### Programming Languages
|
||||||
|
- [Language 1, e.g., "Python (Advanced)"]
|
||||||
|
- [Language 2, e.g., "JavaScript/TypeScript (Advanced)"]
|
||||||
|
- [Language 3, e.g., "Java (Intermediate)"]
|
||||||
|
|
||||||
|
### Tools & Technologies
|
||||||
|
- [Tool category 1, e.g., "Frontend: React, Vue.js, Next.js"]
|
||||||
|
- [Tool category 2, e.g., "Backend: Node.js, Django, Express"]
|
||||||
|
- [Tool category 3, e.g., "DevOps: Docker, Kubernetes, AWS, GitHub Actions"]
|
||||||
|
- [Tool category 4, e.g., "Databases: PostgreSQL, MongoDB, Redis"]
|
||||||
|
|
||||||
|
### Soft Skills
|
||||||
|
- [Skill 1, e.g., "Team Leadership"]
|
||||||
|
- [Skill 2, e.g., "Cross-functional Collaboration"]
|
||||||
|
- [Skill 3, e.g., "Technical Communication"]
|
||||||
|
- [Skill 4, e.g., "Problem Solving"]
|
||||||
|
|
||||||
|
## Projects
|
||||||
|
|
||||||
|
<!--
|
||||||
|
Highlight significant projects (personal, open-source, or professional).
|
||||||
|
Include what you built, why it matters, and technologies used.
|
||||||
|
-->
|
||||||
|
|
||||||
|
### [Project Name]
|
||||||
|
**Description**: [Brief description of what the project does and its purpose]
|
||||||
|
**Technologies**: [Tech stack used, e.g., "React, Node.js, PostgreSQL, AWS"]
|
||||||
|
**Link**: [github.com/yourusername/project or live-demo.com]
|
||||||
|
**Key Highlights**:
|
||||||
|
- [Feature or achievement 1]
|
||||||
|
- [Feature or achievement 2]
|
||||||
|
|
||||||
|
### [Another Project Name]
|
||||||
|
**Description**: [Brief description]
|
||||||
|
**Technologies**: [Tech stack]
|
||||||
|
**Link**: [URL]
|
||||||
|
**Key Highlights**:
|
||||||
|
- [Highlight 1]
|
||||||
|
- [Highlight 2]
|
||||||
|
|
||||||
|
<!-- Add more projects as needed -->
|
||||||
|
|
||||||
|
## Certifications
|
||||||
|
|
||||||
|
<!--
|
||||||
|
List professional certifications with issuing organization and date.
|
||||||
|
Include certification ID or verification link if available.
|
||||||
|
-->
|
||||||
|
|
||||||
|
- **[Certification Name]** - [Issuing Organization], [Month Year]
|
||||||
|
- [Optional: Certification ID or verification link]
|
||||||
|
- **[Another Certification]** - [Issuing Organization], [Month Year]
|
||||||
|
|
||||||
|
<!-- Add more certifications as needed -->
|
||||||
|
|
||||||
|
## Languages
|
||||||
|
|
||||||
|
<!--
|
||||||
|
List languages you speak and your proficiency level.
|
||||||
|
Use standard levels: Native, Fluent, Advanced, Intermediate, Basic
|
||||||
|
-->
|
||||||
|
|
||||||
|
- **[Language 1]**: [Proficiency level, e.g., "Native"]
|
||||||
|
- **[Language 2]**: [Proficiency level, e.g., "Fluent (C1)"]
|
||||||
|
- **[Language 3]**: [Proficiency level, e.g., "Intermediate (B1)"]
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
<!--
|
||||||
|
INSTRUCTIONS FOR USE:
|
||||||
|
1. Replace all placeholder text [in brackets] with your actual information
|
||||||
|
2. Remove sections that don't apply to you
|
||||||
|
3. Add multiple entries where you have more experience (jobs, projects, etc.)
|
||||||
|
4. Keep this file updated as you gain new experience
|
||||||
|
5. Be honest and accurate - this is the source of truth for all your applications
|
||||||
|
-->
|
||||||
Reference in New Issue
Block a user