# ayazxdev/hiring-platform architecture

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

- Interactive diagram: https://gitdiagram.com/ayazxdev/hiring-platform
- Repository: https://github.com/ayazxdev/hiring-platform

## Overview

FHN is a proof-of-work hiring platform: candidates submit applications and evidence, the backend coordinates fraud checks and skill evaluation, and employers review ranked candidates and credentials. The graph combines README-documented agent capabilities with sampled pipeline and frontend code. The agent aggregator’s internal dispatch details and several domain-stage implementations were not sampled, so those links are shown only at the documented service boundary.

Main entry points: [`agents_services/agents_aggregator.py`](https://github.com/ayazxdev/hiring-platform/blob/master/agents_services/agents_aggregator.py) (Agent aggregator), [`backend/app/services/pipeline_service.py`](https://github.com/ayazxdev/hiring-platform/blob/master/backend/app/services/pipeline_service.py) (Pipeline service), [`fair-hiring-frontend/src/App.jsx`](https://github.com/ayazxdev/hiring-platform/blob/master/fair-hiring-frontend/src/App.jsx) (Hiring app), [`fair-hiring-frontend/src/components/CompanyRolePipeline.jsx`](https://github.com/ayazxdev/hiring-platform/blob/master/fair-hiring-frontend/src/components/CompanyRolePipeline.jsx) (Role pipeline)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_experience["Hiring experience"]
  node_webapp["Hiring app<br/>[App.jsx]"]
  node_apply["Candidate apply<br/>[CandidateApply.jsx]"]
  node_rolepipeline["Role pipeline"]
  node_pipelinegrid["Candidate review<br/>[PipelineGrid.jsx]"]
  node_frontendapi["Backend API client<br/>[backend.js]"]
end

subgraph group_backend["Backend workflow"]
  node_api["FastAPI application<br/>[main.py]"]
  node_applicationroutes["Application routes<br/>[application.py]"]
  node_pipelineroutes["Pipeline routes<br/>[pipeline.py]"]
  node_pipelineservice["Pipeline service"]
  node_orchestrator["Pipeline orchestrator"]
  node_agentclient["Agent client<br/>[agent_client.py]"]
end

subgraph group_agents["Evaluation agents"]
  node_aggregator["Agent aggregator"]
  node_evidenceagents["Evidence agents<br/>[github_service.py]"]
  node_careeragents["Career evidence"]
  node_ats["Resume security<br/>[ats_pipeline.py]"]
  node_skills["Skill verification"]
  node_bias["Bias filtering"]
  node_matching["Candidate matching"]
  node_passport["Skill passport"]
end

subgraph group_state["Review and records"]
  node_review["Human review"]
  node_database[("Hiring database<br/>[database.py]")]
end

node_candidate(("Candidate"))
node_employer(("Employer"))
node_github["GitHub"]
node_codingplatforms["Coding platforms"]
node_linkedin["LinkedIn"]

node_candidate -->|"uses"| node_webapp
node_employer -->|"uses"| node_webapp
node_webapp -->|"presents"| node_apply
node_webapp -->|"presents"| node_rolepipeline
node_rolepipeline -->|"requests"| node_frontendapi
node_rolepipeline -->|"renders"| node_pipelinegrid
node_apply -->|"submits"| node_frontendapi
node_frontendapi -->|"calls"| node_api
node_api -->|"routes"| node_applicationroutes
node_api -->|"routes"| node_pipelineroutes
node_pipelineroutes -->|"runs"| node_pipelineservice
node_pipelineservice -->|"starts"| node_orchestrator
node_orchestrator -->|"calls"| node_agentclient
node_agentclient -->|"requests"| node_aggregator
node_aggregator -->|"dispatches"| node_evidenceagents
node_aggregator -->|"dispatches"| node_careeragents
node_aggregator -->|"dispatches"| node_ats
node_aggregator -->|"dispatches"| node_skills
node_aggregator -->|"dispatches"| node_bias
node_aggregator -->|"dispatches"| node_matching
node_aggregator -->|"dispatches"| node_passport
node_github -->|"provides evidence"| node_evidenceagents
node_codingplatforms -->|"provides evidence"| node_evidenceagents
node_linkedin -.->|"provides evidence"| node_careeragents
node_pipelineservice -->|"stores results"| node_database
node_pipelineservice -->|"queues cases"| node_review
node_review -->|"records reviews"| node_database

click node_webapp "https://github.com/ayazxdev/hiring-platform/blob/master/fair-hiring-frontend/src/App.jsx"
click node_apply "https://github.com/ayazxdev/hiring-platform/blob/master/fair-hiring-frontend/src/components/CandidateApply.jsx"
click node_rolepipeline "https://github.com/ayazxdev/hiring-platform/blob/master/fair-hiring-frontend/src/components/CompanyRolePipeline.jsx"
click node_pipelinegrid "https://github.com/ayazxdev/hiring-platform/blob/master/fair-hiring-frontend/src/components/PipelineGrid.jsx"
click node_frontendapi "https://github.com/ayazxdev/hiring-platform/blob/master/fair-hiring-frontend/src/api/backend.js"
click node_api "https://github.com/ayazxdev/hiring-platform/blob/master/backend/app/main.py"
click node_applicationroutes "https://github.com/ayazxdev/hiring-platform/blob/master/backend/app/routers/application.py"
click node_pipelineroutes "https://github.com/ayazxdev/hiring-platform/blob/master/backend/app/routers/pipeline.py"
click node_pipelineservice "https://github.com/ayazxdev/hiring-platform/blob/master/backend/app/services/pipeline_service.py"
click node_orchestrator "https://github.com/ayazxdev/hiring-platform/blob/master/backend/app/services/pipeline_orchestrator.py"
click node_agentclient "https://github.com/ayazxdev/hiring-platform/blob/master/backend/app/agent_client.py"
click node_aggregator "https://github.com/ayazxdev/hiring-platform/blob/master/agents_services/agents_aggregator.py"
click node_evidenceagents "https://github.com/ayazxdev/hiring-platform/blob/master/agents_services/github_service.py"
click node_careeragents "https://github.com/ayazxdev/hiring-platform/blob/master/agents_services/linkedin_service.py"
click node_ats "https://github.com/ayazxdev/hiring-platform/blob/master/agents_files/skill_verification_agent/agents/ats_guard/ats_pipeline.py"
click node_skills "https://github.com/ayazxdev/hiring-platform/blob/master/agents_files/skill_verification_agent/agents/skill_verification_agent_v2.py"
click node_bias "https://github.com/ayazxdev/hiring-platform/blob/master/agents_services/bias_agent_service.py"
click node_matching "https://github.com/ayazxdev/hiring-platform/blob/master/agents_services/matching_agent_service.py"
click node_passport "https://github.com/ayazxdev/hiring-platform/blob/master/agents_services/passport_service.py"
click node_review "https://github.com/ayazxdev/hiring-platform/blob/master/agents_files/services/human_review_service.py"
click node_database "https://github.com/ayazxdev/hiring-platform/blob/master/backend/app/database.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_webapp,node_apply,node_rolepipeline,node_pipelinegrid,node_frontendapi toneBlue
class node_api,node_applicationroutes,node_pipelineroutes,node_pipelineservice,node_orchestrator,node_agentclient toneAmber
class node_aggregator,node_evidenceagents,node_careeragents,node_ats,node_skills,node_bias,node_matching,node_passport toneMint
class node_review,node_database toneRose
class node_candidate,node_employer,node_github,node_codingplatforms,node_linkedin toneIndigo
```

## Components

### Hiring experience

- [Hiring app](https://github.com/ayazxdev/hiring-platform/blob/master/fair-hiring-frontend/src/App.jsx): `fair-hiring-frontend/src/App.jsx`
- [Candidate apply](https://github.com/ayazxdev/hiring-platform/blob/master/fair-hiring-frontend/src/components/CandidateApply.jsx): `fair-hiring-frontend/src/components/CandidateApply.jsx`
- [Role pipeline](https://github.com/ayazxdev/hiring-platform/blob/master/fair-hiring-frontend/src/components/CompanyRolePipeline.jsx): `fair-hiring-frontend/src/components/CompanyRolePipeline.jsx`
- [Candidate review](https://github.com/ayazxdev/hiring-platform/blob/master/fair-hiring-frontend/src/components/PipelineGrid.jsx): `fair-hiring-frontend/src/components/PipelineGrid.jsx`
- [Backend API client](https://github.com/ayazxdev/hiring-platform/blob/master/fair-hiring-frontend/src/api/backend.js): `fair-hiring-frontend/src/api/backend.js`

### Backend workflow

- [FastAPI application](https://github.com/ayazxdev/hiring-platform/blob/master/backend/app/main.py): `backend/app/main.py`
- [Application routes](https://github.com/ayazxdev/hiring-platform/blob/master/backend/app/routers/application.py): `backend/app/routers/application.py`
- [Pipeline routes](https://github.com/ayazxdev/hiring-platform/blob/master/backend/app/routers/pipeline.py): `backend/app/routers/pipeline.py`
- [Pipeline service](https://github.com/ayazxdev/hiring-platform/blob/master/backend/app/services/pipeline_service.py): `backend/app/services/pipeline_service.py`
- [Pipeline orchestrator](https://github.com/ayazxdev/hiring-platform/blob/master/backend/app/services/pipeline_orchestrator.py): `backend/app/services/pipeline_orchestrator.py`
- [Agent client](https://github.com/ayazxdev/hiring-platform/blob/master/backend/app/agent_client.py): `backend/app/agent_client.py`

### Evaluation agents

- [Agent aggregator](https://github.com/ayazxdev/hiring-platform/blob/master/agents_services/agents_aggregator.py): `agents_services/agents_aggregator.py`
- [Evidence agents](https://github.com/ayazxdev/hiring-platform/blob/master/agents_services/github_service.py): `agents_services/github_service.py`
- [Career evidence](https://github.com/ayazxdev/hiring-platform/blob/master/agents_services/linkedin_service.py): `agents_services/linkedin_service.py`
- [Resume security](https://github.com/ayazxdev/hiring-platform/blob/master/agents_files/skill_verification_agent/agents/ats_guard/ats_pipeline.py): `agents_files/skill_verification_agent/agents/ats_guard/ats_pipeline.py`
- [Skill verification](https://github.com/ayazxdev/hiring-platform/blob/master/agents_files/skill_verification_agent/agents/skill_verification_agent_v2.py): `agents_files/skill_verification_agent/agents/skill_verification_agent_v2.py`
- [Bias filtering](https://github.com/ayazxdev/hiring-platform/blob/master/agents_services/bias_agent_service.py): `agents_services/bias_agent_service.py`
- [Candidate matching](https://github.com/ayazxdev/hiring-platform/blob/master/agents_services/matching_agent_service.py): `agents_services/matching_agent_service.py`
- [Skill passport](https://github.com/ayazxdev/hiring-platform/blob/master/agents_services/passport_service.py): `agents_services/passport_service.py`

### Review and records

- [Human review](https://github.com/ayazxdev/hiring-platform/blob/master/agents_files/services/human_review_service.py): `agents_files/services/human_review_service.py`
- [Hiring database](https://github.com/ayazxdev/hiring-platform/blob/master/backend/app/database.py): `backend/app/database.py`

### Other components

- **Candidate**
- **Employer**
- **GitHub**
- **Coding platforms**
- **LinkedIn**

## Connections

- Candidate → Hiring app: uses
- Employer → Hiring app: uses
- Hiring app → Candidate apply: presents
- Hiring app → Role pipeline: presents
- Role pipeline → Backend API client: requests
- Role pipeline → Candidate review: renders
- Candidate apply → Backend API client: submits
- Backend API client → FastAPI application: calls
- FastAPI application → Application routes: routes
- FastAPI application → Pipeline routes: routes
- Pipeline routes → Pipeline service: runs
- Pipeline service → Pipeline orchestrator: starts
- Pipeline orchestrator → Agent client: calls
- Agent client → Agent aggregator: requests
- Agent aggregator → Evidence agents: dispatches
- Agent aggregator → Career evidence: dispatches
- Agent aggregator → Resume security: dispatches
- Agent aggregator → Skill verification: dispatches
- Agent aggregator → Bias filtering: dispatches
- Agent aggregator → Candidate matching: dispatches
- Agent aggregator → Skill passport: dispatches
- GitHub → Evidence agents: provides evidence
- Coding platforms → Evidence agents: provides evidence
- LinkedIn → Career evidence: provides evidence
- Pipeline service → Hiring database: stores results
- Pipeline service → Human review: queues cases
- Human review → Hiring database: records reviews
