# vets-who-code/ai-era-job-kit architecture

> Architecture diagram of the GitHub repository vets-who-code/ai-era-job-kit, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-11-11). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/vets-who-code/ai-era-job-kit
- Repository: https://github.com/vets-who-code/ai-era-job-kit

## Overview

AI-Era Job Kit is a portfolio-first job-search toolkit combining Claude skills/agents/commands with standalone Python scoring and career-management scripts. The main workflow starts with a portfolio and brag records, builds a shared market target from O*NET/BLS and job postings, scores resume/LinkedIn/GitHub/portfolio, combines results into a scorecard and improvement plan, then rebuilds the resume and checks consistency. The README documents broader interview, job-funnel, and Friday Setup capabilities. Edges use README statements or shown source references; unsampled implementation details are not inferred.

Main entry points: [`scripts/jobdata/market.py`](https://github.com/vets-who-code/ai-era-job-kit/blob/main/scripts/jobdata/market.py) (Market target), [`scripts/score_all.py`](https://github.com/vets-who-code/ai-era-job-kit/blob/main/scripts/score_all.py) (Score all), [`scripts/resume_score.py`](https://github.com/vets-who-code/ai-era-job-kit/blob/main/scripts/resume_score.py) (Resume scoring), [`templates/portfolio-repo/README.md`](https://github.com/vets-who-code/ai-era-job-kit/blob/main/templates/portfolio-repo/README.md) (Portfolio record)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_portfolio["Portfolio and evidence"]
  node_portfolio_record["Portfolio record<br/>[README.md]"]
  node_brag["Brag database<br/>[brag-curator.md]"]
  node_friday["Friday Setup<br/>[friday_setup.py]"]
  node_sync["Sync check<br/>[sync_check.py]"]
end

subgraph group_market["Market intelligence"]
  node_market_target["Market target<br/>[market.py]"]
  node_demand["Skill demand<br/>[demand.py]"]
  node_onet["O*NET occupations<br/>[onet.py]"]
  node_bls["BLS projections<br/>[bls.py]"]
  node_postings["Job postings<br/>[postings.py]"]
end

subgraph group_scoring["Scoring surfaces"]
  node_resume_score["Resume scoring<br/>[resume_score.py]"]
  node_screen_grade["Posting screen grade<br/>[screen_grade.py]"]
  node_linkedin["LinkedIn scoring<br/>[linkedin_score.py]"]
  node_github["GitHub scoring<br/>[github_score.py]"]
  node_portfolio_audit["Portfolio audit<br/>[portfolio_audit.py]"]
end

subgraph group_career["Career workflow"]
  node_scorecard["Composite scorecard<br/>[scorecard.py]"]
  node_all_scores["Score all<br/>[score_all.py]"]
  node_improvement["Improvement plan<br/>[SKILL.md]"]
  node_rebuild["Resume rebuild<br/>[resume_rebuild.py]"]
  node_funnel["Job funnel<br/>[funnel.py]"]
  node_career_agent["Career scorecard agent"]
  node_interview["Interview practice<br/>[ai-interviewer.md]"]
  node_job_commands["Job-hunt commands<br/>[job-hunt.md]"]
end

node_candidate(("Job seeker"))
node_public_data{{"Public data providers"}}

node_candidate -->|"maintains"| node_portfolio_record
node_candidate -->|"curates"| node_brag
node_friday -->|"pulls wins"| node_brag
node_portfolio_record -->|"supplies evidence"| node_resume_score
node_portfolio_record -->|"supplies evidence"| node_linkedin
node_onet -->|"provides skills"| node_market_target
node_demand -->|"ranks skills"| node_market_target
node_postings -->|"weights demand"| node_demand
node_public_data -->|"serves data"| node_onet
node_public_data -->|"serves data"| node_bls
node_public_data -->|"serves listings"| node_postings
node_resume_score -->|"creates target"| node_market_target
node_resume_score -->|"grades postings"| node_screen_grade
node_market_target -->|"scores against"| node_linkedin
node_market_target -->|"scores against"| node_github
node_market_target -->|"scores against"| node_portfolio_audit
node_all_scores -->|"runs"| node_resume_score
node_all_scores -->|"runs"| node_linkedin
node_all_scores -->|"runs"| node_github
node_all_scores -->|"runs"| node_portfolio_audit
node_scorecard -->|"informs plan"| node_improvement
node_career_agent -->|"runs chain"| node_scorecard
node_career_agent -->|"runs chain"| node_rebuild
node_candidate -->|"requests rebuild"| node_rebuild
node_candidate -->|"checks consistency"| node_sync
node_candidate -->|"tracks applications"| node_funnel
node_candidate -->|"practices"| node_interview
node_candidate -->|"starts workflow"| node_job_commands

click node_portfolio_record "https://github.com/vets-who-code/ai-era-job-kit/blob/main/templates/portfolio-repo/README.md"
click node_brag "https://github.com/vets-who-code/ai-era-job-kit/blob/main/agents/brag-curator.md"
click node_friday "https://github.com/vets-who-code/ai-era-job-kit/blob/main/scripts/friday_setup.py"
click node_sync "https://github.com/vets-who-code/ai-era-job-kit/blob/main/scripts/sync_check.py"
click node_market_target "https://github.com/vets-who-code/ai-era-job-kit/blob/main/scripts/jobdata/market.py"
click node_demand "https://github.com/vets-who-code/ai-era-job-kit/blob/main/scripts/jobdata/demand.py"
click node_onet "https://github.com/vets-who-code/ai-era-job-kit/blob/main/scripts/jobdata/onet.py"
click node_bls "https://github.com/vets-who-code/ai-era-job-kit/blob/main/scripts/jobdata/bls.py"
click node_postings "https://github.com/vets-who-code/ai-era-job-kit/blob/main/scripts/jobdata/postings.py"
click node_resume_score "https://github.com/vets-who-code/ai-era-job-kit/blob/main/scripts/resume_score.py"
click node_screen_grade "https://github.com/vets-who-code/ai-era-job-kit/blob/main/scripts/screen_grade.py"
click node_linkedin "https://github.com/vets-who-code/ai-era-job-kit/blob/main/scripts/linkedin_score.py"
click node_github "https://github.com/vets-who-code/ai-era-job-kit/blob/main/scripts/github_score.py"
click node_portfolio_audit "https://github.com/vets-who-code/ai-era-job-kit/blob/main/scripts/portfolio_audit.py"
click node_scorecard "https://github.com/vets-who-code/ai-era-job-kit/blob/main/scripts/scorecard.py"
click node_all_scores "https://github.com/vets-who-code/ai-era-job-kit/blob/main/scripts/score_all.py"
click node_improvement "https://github.com/vets-who-code/ai-era-job-kit/blob/main/skills/improvement-plan/SKILL.md"
click node_rebuild "https://github.com/vets-who-code/ai-era-job-kit/blob/main/scripts/resume_rebuild.py"
click node_funnel "https://github.com/vets-who-code/ai-era-job-kit/blob/main/scripts/funnel.py"
click node_career_agent "https://github.com/vets-who-code/ai-era-job-kit/blob/main/agents/career-scorecard.md"
click node_interview "https://github.com/vets-who-code/ai-era-job-kit/blob/main/agents/ai-interviewer.md"
click node_job_commands "https://github.com/vets-who-code/ai-era-job-kit/blob/main/commands/job-hunt.md"

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_portfolio_record,node_brag,node_friday,node_sync toneBlue
class node_market_target,node_demand,node_onet,node_bls,node_postings toneAmber
class node_resume_score,node_screen_grade,node_linkedin,node_github,node_portfolio_audit toneMint
class node_scorecard,node_all_scores,node_improvement,node_rebuild,node_funnel,node_career_agent,node_interview,node_job_commands toneRose
class node_candidate,node_public_data toneIndigo
```

## Components

### Portfolio and evidence

- [Portfolio record](https://github.com/vets-who-code/ai-era-job-kit/blob/main/templates/portfolio-repo/README.md): `templates/portfolio-repo/README.md`
- [Brag database](https://github.com/vets-who-code/ai-era-job-kit/blob/main/agents/brag-curator.md): `agents/brag-curator.md`
- [Friday Setup](https://github.com/vets-who-code/ai-era-job-kit/blob/main/scripts/friday_setup.py): `scripts/friday_setup.py`
- [Sync check](https://github.com/vets-who-code/ai-era-job-kit/blob/main/scripts/sync_check.py): `scripts/sync_check.py`

### Market intelligence

- [Market target](https://github.com/vets-who-code/ai-era-job-kit/blob/main/scripts/jobdata/market.py): `scripts/jobdata/market.py`
- [Skill demand](https://github.com/vets-who-code/ai-era-job-kit/blob/main/scripts/jobdata/demand.py): `scripts/jobdata/demand.py`
- [O*NET occupations](https://github.com/vets-who-code/ai-era-job-kit/blob/main/scripts/jobdata/onet.py): `scripts/jobdata/onet.py`
- [BLS projections](https://github.com/vets-who-code/ai-era-job-kit/blob/main/scripts/jobdata/bls.py): `scripts/jobdata/bls.py`
- [Job postings](https://github.com/vets-who-code/ai-era-job-kit/blob/main/scripts/jobdata/postings.py): `scripts/jobdata/postings.py`

### Scoring surfaces

- [Resume scoring](https://github.com/vets-who-code/ai-era-job-kit/blob/main/scripts/resume_score.py): `scripts/resume_score.py`
- [Posting screen grade](https://github.com/vets-who-code/ai-era-job-kit/blob/main/scripts/screen_grade.py): `scripts/screen_grade.py`
- [LinkedIn scoring](https://github.com/vets-who-code/ai-era-job-kit/blob/main/scripts/linkedin_score.py): `scripts/linkedin_score.py`
- [GitHub scoring](https://github.com/vets-who-code/ai-era-job-kit/blob/main/scripts/github_score.py): `scripts/github_score.py`
- [Portfolio audit](https://github.com/vets-who-code/ai-era-job-kit/blob/main/scripts/portfolio_audit.py): `scripts/portfolio_audit.py`

### Career workflow

- [Composite scorecard](https://github.com/vets-who-code/ai-era-job-kit/blob/main/scripts/scorecard.py): `scripts/scorecard.py`
- [Score all](https://github.com/vets-who-code/ai-era-job-kit/blob/main/scripts/score_all.py): `scripts/score_all.py`
- [Improvement plan](https://github.com/vets-who-code/ai-era-job-kit/blob/main/skills/improvement-plan/SKILL.md): `skills/improvement-plan/SKILL.md`
- [Resume rebuild](https://github.com/vets-who-code/ai-era-job-kit/blob/main/scripts/resume_rebuild.py): `scripts/resume_rebuild.py`
- [Job funnel](https://github.com/vets-who-code/ai-era-job-kit/blob/main/scripts/funnel.py): `scripts/funnel.py`
- [Career scorecard agent](https://github.com/vets-who-code/ai-era-job-kit/blob/main/agents/career-scorecard.md): `agents/career-scorecard.md`
- [Interview practice](https://github.com/vets-who-code/ai-era-job-kit/blob/main/agents/ai-interviewer.md): `agents/ai-interviewer.md`
- [Job-hunt commands](https://github.com/vets-who-code/ai-era-job-kit/blob/main/commands/job-hunt.md): `commands/job-hunt.md`

### Other components

- **Job seeker**
- **Public data providers**

## Connections

- Job seeker → Portfolio record: maintains (evidence: `README.md`)
- Job seeker → Brag database: curates (evidence: `README.md`)
- Friday Setup → Brag database: pulls wins (evidence: `README.md`)
- Portfolio record → Resume scoring: supplies evidence (evidence: `README.md`)
- Portfolio record → LinkedIn scoring: supplies evidence (evidence: `README.md`)
- O*NET occupations → Market target: provides skills (evidence: `scripts/jobdata/market.py`)
- Skill demand → Market target: ranks skills (evidence: `scripts/jobdata/market.py`)
- Job postings → Skill demand: weights demand (evidence: `scripts/jobdata/demand.py`)
- Public data providers → O*NET occupations: serves data (evidence: `scripts/jobdata/onet.py`)
- Public data providers → BLS projections: serves data (evidence: `scripts/jobdata/bls.py`)
- Public data providers → Job postings: serves listings (evidence: `scripts/jobdata/postings.py`)
- Resume scoring → Market target: creates target (evidence: `README.md`)
- Resume scoring → Posting screen grade: grades postings (evidence: `README.md`)
- Market target → LinkedIn scoring: scores against (evidence: `README.md`)
- Market target → GitHub scoring: scores against (evidence: `README.md`)
- Market target → Portfolio audit: scores against (evidence: `README.md`)
- Score all → Resume scoring: runs (evidence: `README.md`)
- Score all → LinkedIn scoring: runs (evidence: `README.md`)
- Score all → GitHub scoring: runs (evidence: `README.md`)
- Score all → Portfolio audit: runs (evidence: `README.md`)
- Composite scorecard → Improvement plan: informs plan (evidence: `README.md`)
- Career scorecard agent → Composite scorecard: runs chain (evidence: `README.md`)
- Career scorecard agent → Resume rebuild: runs chain (evidence: `README.md`)
- Job seeker → Resume rebuild: requests rebuild (evidence: `README.md`)
- Job seeker → Sync check: checks consistency (evidence: `README.md`)
- Job seeker → Job funnel: tracks applications (evidence: `README.md`)
- Job seeker → Interview practice: practices (evidence: `README.md`)
- Job seeker → Job-hunt commands: starts workflow (evidence: `README.md`)
