Files
Orchestrator/privat/CV/.kiro/skills/cv-generate/SKILL.md
T
ankn a5f8fb49ab 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.
2026-06-30 20:39:52 +02:00

103 lines
4.7 KiB
Markdown

---
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