# sankaiai/ats-optimized-resume-agent-skill architecture

> Architecture diagram of the GitHub repository sankaiai/ats-optimized-resume-agent-skill, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-27). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/sankaiai/ats-optimized-resume-agent-skill
- Repository: https://github.com/sankaiai/ats-optimized-resume-agent-skill

## Overview

This repository packages a Claude Code skill that turns a candidate’s master resume and a target job description into a tailored, ATS-checked Word resume. The documented workflow runs from intake through job analysis, strategy, content tailoring, ATS review, and JSON generation; the Python CLI validates that JSON and renders the DOCX. Optional company research and team inference branch from job analysis. The skill workflow is documented in the root and skill-specific SKILL.md files; renderer relationships are based on sampled Python source, while skill-stage links follow the README.

Main entry points: [`renderer/src/cli.py`](https://github.com/sankaiai/ats-optimized-resume-agent-skill/blob/main/renderer/src/cli.py) (Resume CLI), [`skills/build-tailored-resume/SKILL.md`](https://github.com/sankaiai/ats-optimized-resume-agent-skill/blob/main/skills/build-tailored-resume/SKILL.md) (JD Analysis), [`renderer/src/rendering/render_docx.py`](https://github.com/sankaiai/ats-optimized-resume-agent-skill/blob/main/renderer/src/rendering/render_docx.py) (DOCX Renderer), [`renderer/src/utils/utils.py`](https://github.com/sankaiai/ats-optimized-resume-agent-skill/blob/main/renderer/src/utils/utils.py) (JSON Loader)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_workflow["Resume Workflow"]
  node_intake["Intake<br/>[SKILL.md]"]
  node_jd["JD Analysis<br/>[SKILL.md]"]
  node_research["Company Research<br/>[SKILL.md]"]
  node_team["Team Inference<br/>[SKILL.md]"]
  node_strategy["Strategy<br/>[SKILL.md]"]
  node_tailoring["Content Tailoring<br/>[SKILL.md]"]
  node_ats["ATS Check<br/>[SKILL.md]"]
end

subgraph group_renderer["Renderer"]
  node_cli["Resume CLI<br/>[cli.py]"]
  node_loader["JSON Loader<br/>[utils.py]"]
  node_validation["Output Validation<br/>[validate_output.py]"]
  node_config["Render Config<br/>[config.py]"]
  node_render["DOCX Renderer<br/>[render_docx.py]"]
  node_docx["Tailored DOCX"]
end

subgraph group_contract["Data Contract"]
  node_json_output["Resume JSON"]
  node_schema["Resume Schema<br/>[resume_schema.py]"]
end

node_user(("Candidate"))
node_web_search["Web Search"]

node_user -->|"provides inputs"| node_intake
node_intake -->|"passes candidate data"| node_jd
node_jd -.->|"triggers if needed"| node_research
node_jd -.->|"informs inference"| node_team
node_research -.->|"informs strategy"| node_strategy
node_team -.->|"informs strategy"| node_strategy
node_jd -->|"passes analysis"| node_strategy
node_web_search -.->|"provides context"| node_research
node_strategy -->|"sets direction"| node_tailoring
node_tailoring -->|"submits content"| node_ats
node_ats -->|"produces JSON"| node_json_output
node_json_output -->|"supplies input"| node_cli
node_cli -->|"loads JSON"| node_loader
node_cli -->|"constructs resume"| node_schema
node_cli -->|"validates resume"| node_validation
node_cli -->|"renders resume"| node_render
node_render -->|"uses settings"| node_config
node_render -->|"writes document"| node_docx

click node_intake "https://github.com/sankaiai/ats-optimized-resume-agent-skill/blob/main/skills/build-tailored-resume/SKILL.md"
click node_jd "https://github.com/sankaiai/ats-optimized-resume-agent-skill/blob/main/skills/build-tailored-resume/SKILL.md"
click node_research "https://github.com/sankaiai/ats-optimized-resume-agent-skill/blob/main/skills/build-tailored-resume/SKILL.md"
click node_team "https://github.com/sankaiai/ats-optimized-resume-agent-skill/blob/main/skills/build-tailored-resume/SKILL.md"
click node_strategy "https://github.com/sankaiai/ats-optimized-resume-agent-skill/blob/main/skills/build-tailored-resume/SKILL.md"
click node_tailoring "https://github.com/sankaiai/ats-optimized-resume-agent-skill/blob/main/skills/build-tailored-resume/SKILL.md"
click node_ats "https://github.com/sankaiai/ats-optimized-resume-agent-skill/blob/main/skills/build-tailored-resume/SKILL.md"
click node_cli "https://github.com/sankaiai/ats-optimized-resume-agent-skill/blob/main/renderer/src/cli.py"
click node_loader "https://github.com/sankaiai/ats-optimized-resume-agent-skill/blob/main/renderer/src/utils/utils.py"
click node_schema "https://github.com/sankaiai/ats-optimized-resume-agent-skill/blob/main/renderer/src/schemas/resume_schema.py"
click node_validation "https://github.com/sankaiai/ats-optimized-resume-agent-skill/blob/main/renderer/src/validation/validate_output.py"
click node_config "https://github.com/sankaiai/ats-optimized-resume-agent-skill/blob/main/renderer/src/rendering/config.py"
click node_render "https://github.com/sankaiai/ats-optimized-resume-agent-skill/blob/main/renderer/src/rendering/render_docx.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_intake,node_jd,node_research,node_team,node_strategy,node_tailoring,node_ats toneBlue
class node_cli,node_loader,node_validation,node_config,node_render,node_docx toneAmber
class node_json_output,node_schema toneMint
class node_user,node_web_search toneIndigo
```

## Components

### Resume Workflow

- [Intake](https://github.com/sankaiai/ats-optimized-resume-agent-skill/blob/main/skills/build-tailored-resume/SKILL.md): `skills/build-tailored-resume/SKILL.md`
- [JD Analysis](https://github.com/sankaiai/ats-optimized-resume-agent-skill/blob/main/skills/build-tailored-resume/SKILL.md): `skills/build-tailored-resume/SKILL.md`
- [Company Research](https://github.com/sankaiai/ats-optimized-resume-agent-skill/blob/main/skills/build-tailored-resume/SKILL.md): `skills/build-tailored-resume/SKILL.md`
- [Team Inference](https://github.com/sankaiai/ats-optimized-resume-agent-skill/blob/main/skills/build-tailored-resume/SKILL.md): `skills/build-tailored-resume/SKILL.md`
- [Strategy](https://github.com/sankaiai/ats-optimized-resume-agent-skill/blob/main/skills/build-tailored-resume/SKILL.md): `skills/build-tailored-resume/SKILL.md`
- [Content Tailoring](https://github.com/sankaiai/ats-optimized-resume-agent-skill/blob/main/skills/build-tailored-resume/SKILL.md): `skills/build-tailored-resume/SKILL.md`
- [ATS Check](https://github.com/sankaiai/ats-optimized-resume-agent-skill/blob/main/skills/build-tailored-resume/SKILL.md): `skills/build-tailored-resume/SKILL.md`

### Renderer

- [Resume CLI](https://github.com/sankaiai/ats-optimized-resume-agent-skill/blob/main/renderer/src/cli.py): `renderer/src/cli.py`
- [JSON Loader](https://github.com/sankaiai/ats-optimized-resume-agent-skill/blob/main/renderer/src/utils/utils.py): `renderer/src/utils/utils.py`
- [Output Validation](https://github.com/sankaiai/ats-optimized-resume-agent-skill/blob/main/renderer/src/validation/validate_output.py): `renderer/src/validation/validate_output.py`
- [Render Config](https://github.com/sankaiai/ats-optimized-resume-agent-skill/blob/main/renderer/src/rendering/config.py): `renderer/src/rendering/config.py`
- [DOCX Renderer](https://github.com/sankaiai/ats-optimized-resume-agent-skill/blob/main/renderer/src/rendering/render_docx.py): `renderer/src/rendering/render_docx.py`
- **Tailored DOCX**

### Data Contract

- **Resume JSON**
- [Resume Schema](https://github.com/sankaiai/ats-optimized-resume-agent-skill/blob/main/renderer/src/schemas/resume_schema.py): `renderer/src/schemas/resume_schema.py`

### Other components

- **Candidate**
- **Web Search**

## Connections

- Candidate → Intake: provides inputs
- Intake → JD Analysis: passes candidate data
- JD Analysis → Company Research: triggers if needed
- JD Analysis → Team Inference: informs inference
- Company Research → Strategy: informs strategy
- Team Inference → Strategy: informs strategy
- JD Analysis → Strategy: passes analysis
- Web Search → Company Research: provides context
- Strategy → Content Tailoring: sets direction
- Content Tailoring → ATS Check: submits content
- ATS Check → Resume JSON: produces JSON
- Resume JSON → Resume CLI: supplies input
- Resume CLI → JSON Loader: loads JSON
- Resume CLI → Resume Schema: constructs resume
- Resume CLI → Output Validation: validates resume
- Resume CLI → DOCX Renderer: renders resume
- DOCX Renderer → Render Config: uses settings
- DOCX Renderer → Tailored DOCX: writes document
