# akashp18/linkedin-skills architecture

> Architecture diagram of the GitHub repository akashp18/linkedin-skills, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-29). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/akashp18/linkedin-skills
- Repository: https://github.com/akashp18/linkedin-skills

## Overview

This repository is a bundle of LinkedIn marketing skills for Claude Code, Codex, and compatible agents, with optional Python integrations for reading LinkedIn data, generating images, and publishing. The principal workflow is a user request activating a skill, producing a draft, and—before a publishing action—requesting user approval. The README documents the broader capabilities; source excerpts show the shared integration layer but not each skill’s internal instructions, so skill-to-service wiring is only shown where explicitly documented.

Main entry points: [`lib/backend_selector.py`](https://github.com/akashp18/linkedin-skills/blob/main/lib/backend_selector.py) (Backend selector), [`lib/apify_client.py`](https://github.com/akashp18/linkedin-skills/blob/main/lib/apify_client.py) (LinkedIn data reader), [`lib/publora_client.py`](https://github.com/akashp18/linkedin-skills/blob/main/lib/publora_client.py) (Publishing client), [`lib/pixfaro_client.py`](https://github.com/akashp18/linkedin-skills/blob/main/lib/pixfaro_client.py) (Image generation)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_content["Content creation"]
  node_post_writer["Post writer<br/>[SKILL.md]"]
  node_humanizer["Humanizer<br/>[SKILL.md]"]
  node_hook_extractor["Hook extractor<br/>[SKILL.md]"]
  node_repurposer["Content repurposer<br/>[SKILL.md]"]
end

subgraph group_engagement["Engagement workflows"]
  node_comment_drafter["Comment drafter<br/>[SKILL.md]"]
  node_reply_handler["Reply handler<br/>[SKILL.md]"]
  node_thread_monitor["Thread monitor<br/>[SKILL.md]"]
  node_engager_analytics["Engager analytics<br/>[SKILL.md]"]
end

subgraph group_insight["Planning and profile"]
  node_content_planner["Content planner<br/>[SKILL.md]"]
  node_profile_optimizer["Profile optimizer<br/>[SKILL.md]"]
  node_employee_advocacy["Employee advocacy<br/>[SKILL.md]"]
  node_interviewer["Founder interviewer<br/>[SKILL.md]"]
end

subgraph group_runtime["Shared runtime"]
  node_approval["Approval card<br/>[approval.py]"]
  node_backend["Backend selector"]
  node_url_parser["LinkedIn URL parser<br/>[url_parser.py]"]
  node_apify["LinkedIn data reader<br/>[apify_client.py]"]
  node_publora["Publishing client<br/>[publora_client.py]"]
  node_pixfaro["Image generation<br/>[pixfaro_client.py]"]
end

node_user(("User"))
node_linkedin(("LinkedIn"))

node_user -->|"requests post"| node_post_writer
node_user -->|"requests audit"| node_humanizer
node_user -->|"requests analysis"| node_hook_extractor
node_user -->|"requests reuse"| node_repurposer
node_user -->|"requests comment"| node_comment_drafter
node_user -->|"requests reply"| node_reply_handler
node_user -->|"requests monitoring"| node_thread_monitor
node_user -->|"requests analytics"| node_engager_analytics
node_user -->|"requests plan"| node_content_planner
node_user -->|"requests rewrite"| node_profile_optimizer
node_user -->|"requests advocacy"| node_employee_advocacy
node_user -->|"requests interview"| node_interviewer
node_backend -->|"formats draft"| node_approval
node_backend -->|"fetches data"| node_apify
node_backend -->|"publishes actions"| node_publora
node_backend -->|"generates images"| node_pixfaro
node_backend -->|"parses URLs"| node_url_parser
node_publora -.->|"publishes content"| node_linkedin
node_apify -.->|"reads LinkedIn"| node_linkedin
node_pixfaro -.->|"hosts images"| node_linkedin

click node_post_writer "https://github.com/akashp18/linkedin-skills/blob/main/skills/linkedin-post-writer/SKILL.md"
click node_humanizer "https://github.com/akashp18/linkedin-skills/blob/main/skills/linkedin-humanizer/SKILL.md"
click node_hook_extractor "https://github.com/akashp18/linkedin-skills/blob/main/skills/linkedin-hook-extractor/SKILL.md"
click node_repurposer "https://github.com/akashp18/linkedin-skills/blob/main/skills/linkedin-repurposer/SKILL.md"
click node_comment_drafter "https://github.com/akashp18/linkedin-skills/blob/main/skills/linkedin-comment-drafter/SKILL.md"
click node_reply_handler "https://github.com/akashp18/linkedin-skills/blob/main/skills/linkedin-reply-handler/SKILL.md"
click node_thread_monitor "https://github.com/akashp18/linkedin-skills/blob/main/skills/linkedin-thread-monitor/SKILL.md"
click node_engager_analytics "https://github.com/akashp18/linkedin-skills/blob/main/skills/linkedin-engager-analytics/SKILL.md"
click node_content_planner "https://github.com/akashp18/linkedin-skills/blob/main/skills/linkedin-content-planner/SKILL.md"
click node_profile_optimizer "https://github.com/akashp18/linkedin-skills/blob/main/skills/linkedin-profile-optimizer/SKILL.md"
click node_employee_advocacy "https://github.com/akashp18/linkedin-skills/blob/main/skills/linkedin-employee-advocacy/SKILL.md"
click node_interviewer "https://github.com/akashp18/linkedin-skills/blob/main/skills/linkedin-interviewer/SKILL.md"
click node_approval "https://github.com/akashp18/linkedin-skills/blob/main/lib/approval.py"
click node_backend "https://github.com/akashp18/linkedin-skills/blob/main/lib/backend_selector.py"
click node_url_parser "https://github.com/akashp18/linkedin-skills/blob/main/lib/url_parser.py"
click node_apify "https://github.com/akashp18/linkedin-skills/blob/main/lib/apify_client.py"
click node_publora "https://github.com/akashp18/linkedin-skills/blob/main/lib/publora_client.py"
click node_pixfaro "https://github.com/akashp18/linkedin-skills/blob/main/lib/pixfaro_client.py"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_post_writer,node_humanizer,node_hook_extractor,node_repurposer,node_user toneBlue
class node_comment_drafter,node_reply_handler,node_thread_monitor,node_engager_analytics toneAmber
class node_content_planner,node_profile_optimizer,node_employee_advocacy,node_interviewer toneMint
class node_approval,node_backend,node_url_parser,node_apify,node_publora,node_pixfaro toneRose
class node_linkedin toneIndigo
```

## Components

### Content creation

- [Post writer](https://github.com/akashp18/linkedin-skills/blob/main/skills/linkedin-post-writer/SKILL.md): `skills/linkedin-post-writer/SKILL.md`
- [Humanizer](https://github.com/akashp18/linkedin-skills/blob/main/skills/linkedin-humanizer/SKILL.md): `skills/linkedin-humanizer/SKILL.md`
- [Hook extractor](https://github.com/akashp18/linkedin-skills/blob/main/skills/linkedin-hook-extractor/SKILL.md): `skills/linkedin-hook-extractor/SKILL.md`
- [Content repurposer](https://github.com/akashp18/linkedin-skills/blob/main/skills/linkedin-repurposer/SKILL.md): `skills/linkedin-repurposer/SKILL.md`

### Engagement workflows

- [Comment drafter](https://github.com/akashp18/linkedin-skills/blob/main/skills/linkedin-comment-drafter/SKILL.md): `skills/linkedin-comment-drafter/SKILL.md`
- [Reply handler](https://github.com/akashp18/linkedin-skills/blob/main/skills/linkedin-reply-handler/SKILL.md): `skills/linkedin-reply-handler/SKILL.md`
- [Thread monitor](https://github.com/akashp18/linkedin-skills/blob/main/skills/linkedin-thread-monitor/SKILL.md): `skills/linkedin-thread-monitor/SKILL.md`
- [Engager analytics](https://github.com/akashp18/linkedin-skills/blob/main/skills/linkedin-engager-analytics/SKILL.md): `skills/linkedin-engager-analytics/SKILL.md`

### Planning and profile

- [Content planner](https://github.com/akashp18/linkedin-skills/blob/main/skills/linkedin-content-planner/SKILL.md): `skills/linkedin-content-planner/SKILL.md`
- [Profile optimizer](https://github.com/akashp18/linkedin-skills/blob/main/skills/linkedin-profile-optimizer/SKILL.md): `skills/linkedin-profile-optimizer/SKILL.md`
- [Employee advocacy](https://github.com/akashp18/linkedin-skills/blob/main/skills/linkedin-employee-advocacy/SKILL.md): `skills/linkedin-employee-advocacy/SKILL.md`
- [Founder interviewer](https://github.com/akashp18/linkedin-skills/blob/main/skills/linkedin-interviewer/SKILL.md): `skills/linkedin-interviewer/SKILL.md`

### Shared runtime

- [Approval card](https://github.com/akashp18/linkedin-skills/blob/main/lib/approval.py): `lib/approval.py`
- [Backend selector](https://github.com/akashp18/linkedin-skills/blob/main/lib/backend_selector.py): `lib/backend_selector.py`
- [LinkedIn URL parser](https://github.com/akashp18/linkedin-skills/blob/main/lib/url_parser.py): `lib/url_parser.py`
- [LinkedIn data reader](https://github.com/akashp18/linkedin-skills/blob/main/lib/apify_client.py): `lib/apify_client.py`
- [Publishing client](https://github.com/akashp18/linkedin-skills/blob/main/lib/publora_client.py): `lib/publora_client.py`
- [Image generation](https://github.com/akashp18/linkedin-skills/blob/main/lib/pixfaro_client.py): `lib/pixfaro_client.py`

### Other components

- **User**
- **LinkedIn**

## Connections

- User → Post writer: requests post
- User → Humanizer: requests audit
- User → Hook extractor: requests analysis
- User → Content repurposer: requests reuse
- User → Comment drafter: requests comment
- User → Reply handler: requests reply
- User → Thread monitor: requests monitoring
- User → Engager analytics: requests analytics
- User → Content planner: requests plan
- User → Profile optimizer: requests rewrite
- User → Employee advocacy: requests advocacy
- User → Founder interviewer: requests interview
- Backend selector → Approval card: formats draft
- Backend selector → LinkedIn data reader: fetches data
- Backend selector → Publishing client: publishes actions
- Backend selector → Image generation: generates images
- Backend selector → LinkedIn URL parser: parses URLs
- Publishing client → LinkedIn: publishes content
- LinkedIn data reader → LinkedIn: reads LinkedIn
- Image generation → LinkedIn: hosts images
