# g-h-0-s-t/hermes-alfred-skills architecture

> Architecture diagram of the GitHub repository g-h-0-s-t/hermes-alfred-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/g-h-0-s-t/hermes-alfred-skills
- Repository: https://github.com/g-h-0-s-t/hermes-alfred-skills

## Overview

Hermes Agent Toolkit packages reusable assistant skills, configuration, and automation scripts; the best-evidenced end-to-end product workflow is job discovery and application. The autopilot selects Greenhouse jobs and scrapes LinkedIn listings, then delegates applications to board-specific drivers that use logged-in Chrome sessions and record submissions. LinkedIn Easy Apply also supports profile-based relevance filtering and batch runs. Other skills advertise graph analysis, slide creation, video processing, traffic-camera access, and operational workflows, but their internal wiring is not established by the sampled sources. Some job-automation connections are explicit in README instructions; unsampled skill internals are represented only as capabilities.

Main entry points: [`skills/job-applications/job-apply-autopilot/scripts/autoapply_loop.py`](https://github.com/g-h-0-s-t/hermes-alfred-skills/blob/master/skills/job-applications/job-apply-autopilot/scripts/autoapply_loop.py) (Application Loop), [`skills/job-applications/linkedin-easy-apply/scripts/linkedin-easy-apply.cjs`](https://github.com/g-h-0-s-t/hermes-alfred-skills/blob/master/skills/job-applications/linkedin-easy-apply/scripts/linkedin-easy-apply.cjs) (LinkedIn Driver), [`scripts/job-apply/gh_batch.cjs`](https://github.com/g-h-0-s-t/hermes-alfred-skills/blob/master/scripts/job-apply/gh_batch.cjs) (Greenhouse Batch), [`scripts/job-apply/apply_one.cjs`](https://github.com/g-h-0-s-t/hermes-alfred-skills/blob/master/scripts/job-apply/apply_one.cjs) (Single Apply)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_jobflow["Job Applications"]
  node_autopilot["Application Loop<br/>[autoapply_loop.py]"]
  node_ghbatch["Greenhouse Batch<br/>[gh_batch.cjs]"]
  node_linkedin_driver["LinkedIn Driver"]
  node_single_apply["Single Apply<br/>[apply_one.cjs]"]
end

subgraph group_browser["Browser and State"]
  node_profile["Applicant Profile"]
  node_li_cdp["LinkedIn CDP<br/>[cdp_helper.cjs]"]
  node_ats_cdp["ATS CDP"]
  node_application_state["Application Records"]
  node_notifier["Submission Notifier"]
  node_pending_events["Pending Submissions"]
  node_config["Toolkit Configuration"]
end

subgraph group_skills["Other Skills"]
  node_graphify["Graphify<br/>[SKILL.md]"]
  node_slide_skills["Slide Creation and Verification<br/>[SKILL.md]"]
  node_video_skill["Live Video Pipeline<br/>[SKILL.md]"]
  node_traffic_skill["Traffic Camera Access<br/>[SKILL.md]"]
  node_ops_skill["Windows Autostart<br/>[SKILL.md]"]
end

node_operator(("Operator"))
node_linkedin{{"LinkedIn"}}
node_greenhouse{{"Greenhouse"}}
node_whatsapp{{"WhatsApp Channel"}}

node_operator -->|"starts"| node_autopilot
node_autopilot -->|"runs batch"| node_ghbatch
node_autopilot -->|"scrapes listings"| node_linkedin
node_autopilot -->|"runs applications"| node_single_apply
node_autopilot -->|"records submissions"| node_application_state
node_ghbatch -->|"uses browser"| node_ats_cdp
node_ghbatch -->|"applies to"| node_greenhouse
node_single_apply -->|"uses browser"| node_li_cdp
node_single_apply -->|"applies to"| node_linkedin
node_linkedin_driver -->|"reads profile"| node_profile
node_linkedin_driver -->|"connects through"| node_li_cdp
node_linkedin_driver -->|"collects and applies"| node_linkedin
node_linkedin_driver -->|"records applications"| node_application_state
node_notifier -->|"reads and clears"| node_pending_events
node_notifier -->|"prints messages"| node_whatsapp

click node_autopilot "https://github.com/g-h-0-s-t/hermes-alfred-skills/blob/master/skills/job-applications/job-apply-autopilot/scripts/autoapply_loop.py"
click node_ghbatch "https://github.com/g-h-0-s-t/hermes-alfred-skills/blob/master/scripts/job-apply/gh_batch.cjs"
click node_linkedin_driver "https://github.com/g-h-0-s-t/hermes-alfred-skills/blob/master/skills/job-applications/linkedin-easy-apply/scripts/linkedin-easy-apply.cjs"
click node_single_apply "https://github.com/g-h-0-s-t/hermes-alfred-skills/blob/master/scripts/job-apply/apply_one.cjs"
click node_profile "https://github.com/g-h-0-s-t/hermes-alfred-skills/blob/master/skills/job-applications/linkedin-easy-apply/scripts/applicant.profile.json"
click node_li_cdp "https://github.com/g-h-0-s-t/hermes-alfred-skills/blob/master/scripts/job-apply/cdp_helper.cjs"
click node_ats_cdp "https://github.com/g-h-0-s-t/hermes-alfred-skills/blob/master/scripts/job-apply/cdp_helper_9223.cjs"
click node_application_state "https://github.com/g-h-0-s-t/hermes-alfred-skills/blob/master/skills/job-applications/linkedin-easy-apply/scripts/linkedin-easy-apply.cjs"
click node_notifier "https://github.com/g-h-0-s-t/hermes-alfred-skills/blob/master/scripts/job-apply/submission_notifier.py"
click node_pending_events "https://github.com/g-h-0-s-t/hermes-alfred-skills/blob/master/scripts/job-apply/submission_notifier.py"
click node_graphify "https://github.com/g-h-0-s-t/hermes-alfred-skills/blob/master/skills/graphify/SKILL.md"
click node_slide_skills "https://github.com/g-h-0-s-t/hermes-alfred-skills/blob/master/skills/professional-slide-decks/SKILL.md"
click node_video_skill "https://github.com/g-h-0-s-t/hermes-alfred-skills/blob/master/skills/live-video-yolo-pipeline/SKILL.md"
click node_traffic_skill "https://github.com/g-h-0-s-t/hermes-alfred-skills/blob/master/skills/public-traffic-cam-access/SKILL.md"
click node_ops_skill "https://github.com/g-h-0-s-t/hermes-alfred-skills/blob/master/skills/windows-autostart-ops/SKILL.md"
click node_config "https://github.com/g-h-0-s-t/hermes-alfred-skills/blob/master/config/config-template.yaml"

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_autopilot,node_ghbatch,node_linkedin_driver,node_single_apply toneBlue
class node_profile,node_li_cdp,node_ats_cdp,node_application_state,node_notifier,node_pending_events,node_config toneAmber
class node_graphify,node_slide_skills,node_video_skill,node_traffic_skill,node_ops_skill toneMint
class node_operator,node_linkedin,node_greenhouse,node_whatsapp toneIndigo
```

## Components

### Job Applications

- [Application Loop](https://github.com/g-h-0-s-t/hermes-alfred-skills/blob/master/skills/job-applications/job-apply-autopilot/scripts/autoapply_loop.py): `skills/job-applications/job-apply-autopilot/scripts/autoapply_loop.py`
- [Greenhouse Batch](https://github.com/g-h-0-s-t/hermes-alfred-skills/blob/master/scripts/job-apply/gh_batch.cjs): `scripts/job-apply/gh_batch.cjs`
- [LinkedIn Driver](https://github.com/g-h-0-s-t/hermes-alfred-skills/blob/master/skills/job-applications/linkedin-easy-apply/scripts/linkedin-easy-apply.cjs): `skills/job-applications/linkedin-easy-apply/scripts/linkedin-easy-apply.cjs`
- [Single Apply](https://github.com/g-h-0-s-t/hermes-alfred-skills/blob/master/scripts/job-apply/apply_one.cjs): `scripts/job-apply/apply_one.cjs`

### Browser and State

- [Applicant Profile](https://github.com/g-h-0-s-t/hermes-alfred-skills/blob/master/skills/job-applications/linkedin-easy-apply/scripts/applicant.profile.json): `skills/job-applications/linkedin-easy-apply/scripts/applicant.profile.json`
- [LinkedIn CDP](https://github.com/g-h-0-s-t/hermes-alfred-skills/blob/master/scripts/job-apply/cdp_helper.cjs): `scripts/job-apply/cdp_helper.cjs`
- [ATS CDP](https://github.com/g-h-0-s-t/hermes-alfred-skills/blob/master/scripts/job-apply/cdp_helper_9223.cjs): `scripts/job-apply/cdp_helper_9223.cjs`
- [Application Records](https://github.com/g-h-0-s-t/hermes-alfred-skills/blob/master/skills/job-applications/linkedin-easy-apply/scripts/linkedin-easy-apply.cjs): `skills/job-applications/linkedin-easy-apply/scripts/linkedin-easy-apply.cjs`
- [Submission Notifier](https://github.com/g-h-0-s-t/hermes-alfred-skills/blob/master/scripts/job-apply/submission_notifier.py): `scripts/job-apply/submission_notifier.py`
- [Pending Submissions](https://github.com/g-h-0-s-t/hermes-alfred-skills/blob/master/scripts/job-apply/submission_notifier.py): `scripts/job-apply/submission_notifier.py`
- [Toolkit Configuration](https://github.com/g-h-0-s-t/hermes-alfred-skills/blob/master/config/config-template.yaml): `config/config-template.yaml`

### Other Skills

- [Graphify](https://github.com/g-h-0-s-t/hermes-alfred-skills/blob/master/skills/graphify/SKILL.md): `skills/graphify/SKILL.md`
- [Slide Creation and Verification](https://github.com/g-h-0-s-t/hermes-alfred-skills/blob/master/skills/professional-slide-decks/SKILL.md): `skills/professional-slide-decks/SKILL.md`
- [Live Video Pipeline](https://github.com/g-h-0-s-t/hermes-alfred-skills/blob/master/skills/live-video-yolo-pipeline/SKILL.md): `skills/live-video-yolo-pipeline/SKILL.md`
- [Traffic Camera Access](https://github.com/g-h-0-s-t/hermes-alfred-skills/blob/master/skills/public-traffic-cam-access/SKILL.md): `skills/public-traffic-cam-access/SKILL.md`
- [Windows Autostart](https://github.com/g-h-0-s-t/hermes-alfred-skills/blob/master/skills/windows-autostart-ops/SKILL.md): `skills/windows-autostart-ops/SKILL.md`

### Other components

- **Operator**
- **LinkedIn**
- **Greenhouse**
- **WhatsApp Channel**

## Connections

- Operator → Application Loop: starts
- Application Loop → Greenhouse Batch: runs batch
- Application Loop → LinkedIn: scrapes listings
- Application Loop → Single Apply: runs applications
- Application Loop → Application Records: records submissions
- Greenhouse Batch → ATS CDP: uses browser
- Greenhouse Batch → Greenhouse: applies to
- Single Apply → LinkedIn CDP: uses browser
- Single Apply → LinkedIn: applies to
- LinkedIn Driver → Applicant Profile: reads profile
- LinkedIn Driver → LinkedIn CDP: connects through
- LinkedIn Driver → LinkedIn: collects and applies
- LinkedIn Driver → Application Records: records applications
- Submission Notifier → Pending Submissions: reads and clears
- Submission Notifier → WhatsApp Channel: prints messages
