Migrate all repos into monorepo context folders
Bahn: aisupport, Analyse-O2C-C2S, awesome-bahn-mcp-servers, beam-mcp,
Confluence_Bot, db-planet-mcp-server, O2C-Harness, project-audit,
Projekt-KIQ-HP, teamlandkarte-mcp
Dhive: Jury-Voting
Privat: CV, NoteGraph (NOTE: NoteGraph needs complete redo after consolidation)
Shared: AI-Orchestrator, OrgMyLife, power_skills_and_more
Shared/references: symphony (read-only)
Bahn repos remain available as independent remotes - this monorepo
pulls them in via subtree, the originals are untouched.
This commit is contained in:
@@ -0,0 +1,102 @@
|
||||
---
|
||||
name: cv-generate
|
||||
description: Generates tailored CVs from knowledge base data, matched against a specific job posting.
|
||||
activation: manual
|
||||
---
|
||||
|
||||
# cv-generate
|
||||
|
||||
Generates tailored CVs from knowledge base data, matched against a specific job posting. Supports individual CVs and combined tandem CVs for job sharing applications. Outputs Markdown files to `output/cvs/`.
|
||||
|
||||
## Activation
|
||||
|
||||
Activated by user request with a job posting as input. Example triggers:
|
||||
- "generate a CV for this job posting"
|
||||
- "create a CV for [job title]"
|
||||
- "apply to this position"
|
||||
- "generate tandem CV for this role"
|
||||
|
||||
## Inputs
|
||||
|
||||
- **Job posting** (required): The job posting text or a file path to the posting. Used to determine which skills, experiences, and qualifications to emphasize.
|
||||
- **Person ID** (optional): Which profile to generate a CV for. Defaults to the primary profile if only one exists.
|
||||
- **Tandem ID** (optional): If provided, generates a full tandem application set (combined tandem CV + individual CVs for each partner).
|
||||
- **Output filename prefix** (optional): Custom prefix for output files. Defaults to `<person-id>-<date>`.
|
||||
|
||||
## Workflow
|
||||
|
||||
### 1. Parse job posting
|
||||
|
||||
- Extract key requirements from the job posting: required skills, desired experience areas, qualifications, responsibilities, and keywords
|
||||
- Identify the role title, organization, and domain for context
|
||||
|
||||
### 2. Load knowledge base data
|
||||
|
||||
- Read the target person profile from `kb/profiles/<person-id>.yaml`
|
||||
- Read `kb/graph-index.yaml` to discover related entities
|
||||
- Load all referenced experiences from `kb/experiences/`
|
||||
- Load all referenced skills from `kb/skills/`
|
||||
- Load all referenced projects from `kb/projects/`
|
||||
- Load all referenced certifications from `kb/certifications/`
|
||||
- Load referenced organizations from `kb/organizations/`
|
||||
|
||||
### 3. Select relevant content
|
||||
|
||||
- Use relevance selection logic (`src/cv/relevance-selection.ts`) to score and rank experiences, skills, and projects against the job posting requirements
|
||||
- Select entries with non-empty intersection with posting requirements
|
||||
- Order selected items by relevance: matching items appear before non-matching items
|
||||
- Retain a minimal set of non-matching items for completeness where appropriate
|
||||
|
||||
### 4. Generate individual CV
|
||||
|
||||
- Apply the individual CV template (`templates/cv-individual.md`)
|
||||
- Structure the CV with sections ordered by relevance to the posting
|
||||
- Emphasize matching skills and experiences in descriptions
|
||||
- Include only information present in the knowledge base — never fabricate content
|
||||
- Write output to `output/cvs/<prefix>-individual.md`
|
||||
|
||||
### 5. Generate tandem CV (if tandem application)
|
||||
|
||||
- Load tandem entity from `kb/tandems/<tandem-id>.yaml`
|
||||
- Load both partner profiles and their related entities
|
||||
- Use tandem generation logic (`src/cv/tandem-generator.ts`) to produce the combined CV
|
||||
- Show complementary qualifications, shared vision, and collaboration model
|
||||
- Apply the tandem CV template (`templates/cv-tandem.md`)
|
||||
- Write combined tandem CV to `output/cvs/<prefix>-tandem.md`
|
||||
- Generate individual CVs for each partner tailored to the same posting
|
||||
- Write partner CVs to `output/cvs/<prefix>-<partner-id>-individual.md`
|
||||
|
||||
### 6. Review and present output
|
||||
|
||||
- List all generated files with a brief summary of what each contains
|
||||
- Highlight which skills and experiences were emphasized
|
||||
- Note any gaps where the knowledge base lacked information relevant to the posting
|
||||
|
||||
## Output
|
||||
|
||||
- Individual CV: `output/cvs/<prefix>-individual.md`
|
||||
- Tandem CV (if applicable): `output/cvs/<prefix>-tandem.md`
|
||||
- Partner individual CVs (if tandem): `output/cvs/<prefix>-<partner-id>-individual.md`
|
||||
|
||||
## Rules and Constraints
|
||||
|
||||
1. **No fabrication** — only include information present in the knowledge base; never invent skills, experiences, or qualifications
|
||||
2. **Relevance-driven ordering** — matching items always appear before non-matching items
|
||||
3. **Tandem produces 3 documents** — a tandem application always generates exactly one combined tandem CV and one individual CV per partner
|
||||
4. **Markdown output** — all CVs are output as Markdown suitable for conversion to PDF or DOCX
|
||||
5. **Template-based** — use templates from `templates/` for consistent formatting
|
||||
6. **Schema-validated sources** — only read from validated entity files in `kb/`
|
||||
7. **Kebab-case output naming** — output file names use kebab-case
|
||||
|
||||
## Shared Modules
|
||||
|
||||
This skill depends on the following shared validation and utility modules:
|
||||
|
||||
- `src/schemas/validate.ts` — Entity validation (validate sources before generation)
|
||||
- `src/schemas/types.ts` — TypeScript type definitions for all entity types
|
||||
- `src/io/yaml-utils.ts` — YAML serialization/deserialization
|
||||
- `src/io/entity-files.ts` — Entity file read management
|
||||
|
||||
## References
|
||||
|
||||
- `references/cv-formatting-guide.md` — formatting conventions for CV output
|
||||
@@ -0,0 +1,135 @@
|
||||
# CV Formatting Guide
|
||||
|
||||
Reference document for consistent CV formatting in generated output.
|
||||
|
||||
## Section Structure and Ordering
|
||||
|
||||
### Individual CV Sections
|
||||
|
||||
1. **Header** — Name, contact details, professional summary
|
||||
2. **Professional Summary** — 2–4 sentence overview tailored to the target role
|
||||
3. **Key Skills** — Grouped by category, most relevant to the posting listed first
|
||||
4. **Professional Experience** — Reverse chronological, relevant roles expanded with achievements
|
||||
5. **Projects** — Selected projects demonstrating relevant competencies
|
||||
6. **Education** — Degrees and institutions
|
||||
7. **Certifications** — Relevant certifications with issuer and date
|
||||
8. **Languages** — Language proficiency levels
|
||||
9. **Publications** — If applicable and relevant
|
||||
|
||||
### Tandem CV Sections
|
||||
|
||||
1. **Header** — Both partner names, "Job Sharing Tandem" label
|
||||
2. **Tandem Introduction** — Shared vision and collaboration model
|
||||
3. **Complementary Skills Overview** — How the partners' skills complement each other
|
||||
4. **Joint Competencies** — Competencies the tandem brings together
|
||||
5. **Partner A Profile** — Condensed individual profile (summary, key skills, top experiences)
|
||||
6. **Partner B Profile** — Condensed individual profile (summary, key skills, top experiences)
|
||||
7. **Combined Experience Timeline** — Merged chronological view of both partners' relevant experience
|
||||
8. **Education & Certifications** — Combined list from both partners
|
||||
|
||||
## Formatting Conventions
|
||||
|
||||
### Dates
|
||||
|
||||
- Format: `MM/YYYY` (e.g., `04/2023`)
|
||||
- Current/ongoing roles: `MM/YYYY – present`
|
||||
- Date ranges: `MM/YYYY – MM/YYYY`
|
||||
- Education with only years: `YYYY – YYYY`
|
||||
|
||||
### Skills
|
||||
|
||||
- Group by category: Programming Languages, Frameworks, Methodologies, Soft Skills, Domain Knowledge
|
||||
- Within each category, list most relevant to the posting first
|
||||
- Use the skill name exactly as stored in the knowledge base
|
||||
- Include skill level only when it adds value (e.g., "Python (expert)")
|
||||
|
||||
### Experiences
|
||||
|
||||
- Format: **Role Title** | Organization | Date Range
|
||||
- Follow with 2–4 bullet points highlighting achievements and responsibilities
|
||||
- Prioritize achievements that match the job posting requirements
|
||||
- Use action verbs at the start of each bullet point
|
||||
|
||||
### Achievements
|
||||
|
||||
- Start with an action verb (Led, Developed, Implemented, Designed, Managed)
|
||||
- Include quantifiable results where available
|
||||
- Keep each bullet to one or two sentences
|
||||
|
||||
### Projects
|
||||
|
||||
- Format: **Project Name** — Brief description
|
||||
- Include technologies used and outcome/impact
|
||||
- Only include projects relevant to the target posting
|
||||
|
||||
### Certifications
|
||||
|
||||
- Format: **Certification Name** — Issuer, Date
|
||||
- Include expiry date if applicable: `(expires MM/YYYY)`
|
||||
|
||||
### Languages
|
||||
|
||||
- Format: Language — Level (e.g., "German — Native", "English — Fluent")
|
||||
|
||||
## Tandem-Specific Formatting
|
||||
|
||||
### Tandem Header
|
||||
|
||||
```markdown
|
||||
# [Partner A Name] & [Partner B Name]
|
||||
## Job Sharing Tandem Application
|
||||
### [Target Role Title]
|
||||
```
|
||||
|
||||
### Complementary Skills Presentation
|
||||
|
||||
Present as a two-column comparison or paired list showing how skills complement:
|
||||
|
||||
```markdown
|
||||
| Area | Partner A | Partner B |
|
||||
|------|-----------|-----------|
|
||||
| Technical Leadership | Cloud architecture, AI/ML | Data engineering, DevOps |
|
||||
| Management | Strategic planning | Operational execution |
|
||||
```
|
||||
|
||||
### Collaboration Model
|
||||
|
||||
Describe the working arrangement in 2–3 sentences covering:
|
||||
- How responsibilities are divided
|
||||
- Communication and handoff approach
|
||||
- Availability model (e.g., split days, alternating weeks)
|
||||
|
||||
## Markdown Output Guidelines
|
||||
|
||||
### Document Structure
|
||||
|
||||
- Use `#` for the CV title (person name or tandem names)
|
||||
- Use `##` for major sections (Professional Experience, Skills, etc.)
|
||||
- Use `###` for subsections (individual roles, project entries)
|
||||
- Use `---` horizontal rules to separate major sections visually
|
||||
|
||||
### Text Formatting
|
||||
|
||||
- **Bold** for role titles, company names, and section emphasis
|
||||
- *Italic* for dates and supplementary context
|
||||
- Unordered lists (`-`) for achievements and skill lists
|
||||
- Tables for structured comparisons (tandem skills, language levels)
|
||||
|
||||
### Whitespace
|
||||
|
||||
- One blank line between sections
|
||||
- No trailing whitespace
|
||||
- End file with a single newline
|
||||
|
||||
### Metadata Block
|
||||
|
||||
Include a YAML front matter block at the top of each generated CV:
|
||||
|
||||
```markdown
|
||||
---
|
||||
generated: YYYY-MM-DD
|
||||
person: <person-id>
|
||||
posting: <brief posting identifier>
|
||||
type: individual | tandem
|
||||
---
|
||||
```
|
||||
Reference in New Issue
Block a user