--- name: linkedin-profile description: Generates optimized LinkedIn profile content, content strategy, and performance tracking from the personal knowledge base. activation: manual --- # linkedin-profile Generates optimized LinkedIn profile content from the knowledge base. Produces headline variants, About section, experience descriptions, a quarterly content strategy, and performance tracking reports. Outputs Markdown files to `output/linkedin/`. ## Activation Activated by user request for LinkedIn profile optimization, content strategy, or tracking. Example triggers: - "optimize my LinkedIn profile" - "generate LinkedIn headline variants" - "create a content strategy for Q3" - "update my LinkedIn tracking" - "write my LinkedIn About section" - "generate experience descriptions for LinkedIn" ## Inputs - **personId** (required): Reference to a Person entity ID in `kb/profiles/`. Defaults to the primary profile if only one exists. - **emphasis** (optional): Direction for headline generation — `dual-role`, `ai-expert`, or `leadership`. Defaults to `dual-role`. - **tone** (optional): Tone for the About section — `nahbar`, `fachlich`, or `inspirierend`. Defaults to `nahbar`. - **includeStats** (optional): Whether to include concrete numbers in the About section. Defaults to `true`. - **quarter** (optional): Target quarter for content strategy, e.g. `2026-Q3`. Required for content strategy workflow. - **existingFormats** (optional): Existing content formats to integrate (e.g. `podcast`, `column`). Used in content strategy generation. - **experienceIds** (optional): Specific experience IDs to generate descriptions for. If omitted, generates for all experiences. - **keywords** (optional): SEO keywords to include in experience descriptions. - **variants** (optional): Number of headline variants to generate. Defaults to `3`. ## Workflows ### 1. Profile Generation Generates optimized texts for Headline, About section, and Experience descriptions. #### 1.1 Load person profile - Read the target person profile from `kb/profiles/.yaml` - Read `kb/graph-index.yaml` to discover related entities - Load referenced experiences from `kb/experiences/` - Load referenced skills from `kb/skills/` - Load referenced projects from `kb/projects/` #### 1.2 Generate Headline - Use headline generation logic (`src/linkedin/headline-generator.ts`) - Generate multiple variants (default: 3) with different emphasis - Ensure both roles (DB InfraGO + Data Hive Cassel) are represented - Validate against 220-character limit - Include differentiating elements and relevant keywords #### 1.3 Generate About Section - Use About generation logic (`src/linkedin/about-generator.ts`) - Structure into sections: Hook, Mission, Expertise, CTA - Ensure hook is compelling in first 2 lines (before "mehr anzeigen") - Include concrete stats (60+ publications, 13+ years AI, 50+ projects) - Name three core themes (Innovation/Technology, People/Culture, Responsibility) - Validate against 2,600-character limit #### 1.4 Generate Experience Descriptions - Use experience generation logic (`src/linkedin/experience-generator.ts`) - Focus on results and impact, not task descriptions - Include relevant keywords for LinkedIn search - Highlight measurable achievements - Position DB InfraGO as primary role, Data Hive with founder achievements - Frame JobSharing experiment as leadership innovation - Position academic career as AI expertise foundation #### 1.5 Write Profile Output - Combine all generated sections into `output/linkedin/profile-optimized.md` - Include validation status and generation date - Present variants to user for selection and refinement ### 2. Content Strategy Generates a structured content plan for a given quarter. #### 2.1 Analyze profile and themes - Read person profile and identify core expertise areas - Map expertise to content theme clusters - Identify existing content formats (podcast, column) for integration #### 2.2 Generate strategy - Use content strategy logic (`src/linkedin/content-strategy.ts`) - Define posting frequency (2 posts per week) - Create theme clusters with weighting (Innovation 40%, People 35%, Responsibility 25%) - Generate weekly posting plan with concrete time slots - Define engagement routine (5+ comments/week on thought leaders) - Specify format mix (text, carousel, video, newsletter) - Integrate existing formats (Podcast "Almost Intelligent", Column "Kniepunkt") #### 2.3 Write Strategy Output - Write generated strategy to `output/linkedin/content-strategy.md` - Structure as quarterly template that can be updated ### 3. Tracking Records LinkedIn metrics and generates performance reports. #### 3.1 Record metrics - Use tracking logic (`src/linkedin/tracking-manager.ts`) - Store tracking entries as YAML entities in `kb/tracking/` - Record profile KPIs (views, search appearances, connection requests) - Record post KPIs (impressions, engagement rate, comments, reposts) #### 3.2 Generate reports - Calculate weekly reports with week-over-week comparison - Calculate monthly trend analysis with growth metrics - Mark best-practice posts (above-average engagement rate) - Derive data-driven recommendations for content optimization #### 3.3 Write Tracking Output - Write generated report to `output/linkedin/tracking-report.md` - Include weekly and monthly summaries - Highlight top-performing content and recommendations ## Outputs - **Profile document**: `output/linkedin/profile-optimized.md` — Headline variants, About section, Experience descriptions with validation status - **Content strategy**: `output/linkedin/content-strategy.md` — Quarterly posting plan, theme clusters, engagement routine, format mix - **Tracking report**: `output/linkedin/tracking-report.md` — Weekly/monthly metrics, trends, best practices, recommendations ## 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 ## Source Modules The skill orchestrates the following LinkedIn-specific modules: - `src/linkedin/headline-generator.ts` — Headline variant generation with keyword extraction - `src/linkedin/about-generator.ts` — About section generation with structured sections - `src/linkedin/experience-generator.ts` — Experience description generation with achievement focus - `src/linkedin/content-strategy.ts` — Content strategy and posting plan generation - `src/linkedin/tracking-manager.ts` — Metrics tracking, reporting, and trend analysis - `src/linkedin/constraints.ts` — LinkedIn-specific constraint validation (character limits) - `src/linkedin/types.ts` — TypeScript interfaces for all LinkedIn modules ## Rules and Constraints 1. **KB as source of truth** — all profile content is generated exclusively from knowledge base entities; never invent credentials, achievements, or stats 2. **Character limits enforced** — Headline max 220 characters, About max 2,600 characters; validated programmatically at generation time 3. **Dual-role representation** — Headline and About must represent both roles (DB InfraGO + Data Hive Cassel) 4. **Results over tasks** — Experience descriptions focus on impact and measurable outcomes, not job duties 5. **No jargon** — Headline and About must be understandable for a broad business audience 6. **Three core themes** — Content must map to Innovation/Technology, People/Culture, or Responsibility 7. **Markdown output** — all outputs as Markdown suitable for direct use 8. **Schema-validated sources** — only read from validated entity files in `kb/` 9. **Tracking as YAML entities** — metrics stored in `kb/tracking/` following KB conventions (kebab-case keys, ISO dates) 10. **Iterative refinement** — present generated content to user for feedback and allow interactive adjustments