# tharunsai01/resumeai architecture

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

- Interactive diagram: https://gitdiagram.com/tharunsai01/resumeai
- Repository: https://github.com/tharunsai01/resumeai

## Overview

HireSmart AI is a role-based recruitment frontend for candidates, recruiters, and administrators. Users enter through the routed app and reach role-specific workflows: candidates manage resumes, find and apply to jobs, and track applications; recruiters manage jobs, screen and rank applicants, then handle interviews and hiring decisions; administrators oversee users, complaints, taxonomy, AI evaluation, audit activity, and system health. The README describes AI screening and resume-security stages, but sampled source does not establish their internal wiring. The application service uses browser local storage; no backend or persistent database is evidenced.

Main entry points: [`src/App.tsx`](https://github.com/tharunsai01/resumeai/blob/main/src/App.tsx) (Role-based routes), [`src/hooks/useJobActions.ts`](https://github.com/tharunsai01/resumeai/blob/main/src/hooks/useJobActions.ts) (Application actions), [`src/pages/recruiter/Screening.tsx`](https://github.com/tharunsai01/resumeai/blob/main/src/pages/recruiter/Screening.tsx) (AI screening), [`src/pages/recruiter/Shortlist.tsx`](https://github.com/tharunsai01/resumeai/blob/main/src/pages/recruiter/Shortlist.tsx) (Shortlist review)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_entry["App and identity"]
  node_app["Role-based routes<br/>[App.tsx]"]
  node_auth["Auth state<br/>[AuthContext.tsx]"]
  node_authservice["Local auth<br/>[authService.ts]"]
end

subgraph group_candidate["Candidate journey"]
  node_candidatejobs["Job discovery<br/>[Jobs.tsx]"]
  node_resume["Resume analysis<br/>[ResumeAnalysis.tsx]"]
  node_recommendations["Job matching<br/>[Recommended.tsx]"]
  node_applications["Application tracking<br/>[Applications.tsx]"]
  node_actions["Application actions<br/>[useJobActions.ts]"]
  node_applicationdata[("Application records")]
end

subgraph group_recruiter["Recruiter workflow"]
  node_recruiterjobs["Job management<br/>[Jobs.tsx]"]
  node_screening["AI screening<br/>[Screening.tsx]"]
  node_screenservice["Screening logic"]
  node_shortlist["Shortlist review<br/>[Shortlist.tsx]"]
  node_pipeline["Hiring pipeline<br/>[HiringPipeline.tsx]"]
  node_interviews["Interview management<br/>[Interviews.tsx]"]
end

subgraph group_admin["Platform oversight"]
  node_adminusers["User administration<br/>[Users.tsx]"]
  node_complaints["Complaint handling<br/>[Complaints.tsx]"]
  node_taxonomy["Skill taxonomy<br/>[Skills.tsx]"]
  node_evaluation["AI evaluation<br/>[AiEvaluation.tsx]"]
  node_audithealth["Audit and health<br/>[Dashboard.tsx]"]
end

node_user(("Platform user"))

node_user -->|"opens"| node_app
node_app -->|"provides auth"| node_auth
node_app -->|"routes candidate"| node_candidatejobs
node_app -->|"routes candidate"| node_resume
node_app -->|"routes candidate"| node_recommendations
node_app -->|"routes candidate"| node_applications
node_app -->|"routes recruiter"| node_recruiterjobs
node_app -->|"routes recruiter"| node_screening
node_app -->|"routes recruiter"| node_shortlist
node_app -->|"routes recruiter"| node_pipeline
node_app -->|"routes recruiter"| node_interviews
node_app -->|"routes admin"| node_adminusers
node_app -->|"routes admin"| node_complaints
node_app -->|"routes admin"| node_taxonomy
node_app -->|"routes admin"| node_evaluation
node_app -->|"routes admin"| node_audithealth
node_actions -->|"creates and reads"| node_applicationdata
node_actions -->|"loads job data"| node_candidatejobs
node_actions -->|"updates status"| node_applications
node_screening -.->|"requests screening"| node_screenservice
node_screening -.->|"informs review"| node_shortlist
node_shortlist -.->|"advances candidates"| node_pipeline
node_pipeline -.->|"coordinates interviews"| node_interviews

click node_app "https://github.com/tharunsai01/resumeai/blob/main/src/App.tsx"
click node_auth "https://github.com/tharunsai01/resumeai/blob/main/src/context/AuthContext.tsx"
click node_authservice "https://github.com/tharunsai01/resumeai/blob/main/src/services/authService.ts"
click node_candidatejobs "https://github.com/tharunsai01/resumeai/blob/main/src/pages/candidate/Jobs.tsx"
click node_resume "https://github.com/tharunsai01/resumeai/blob/main/src/pages/candidate/ResumeAnalysis.tsx"
click node_recommendations "https://github.com/tharunsai01/resumeai/blob/main/src/pages/candidate/Recommended.tsx"
click node_applications "https://github.com/tharunsai01/resumeai/blob/main/src/pages/candidate/Applications.tsx"
click node_actions "https://github.com/tharunsai01/resumeai/blob/main/src/hooks/useJobActions.ts"
click node_applicationdata "https://github.com/tharunsai01/resumeai/blob/main/src/services/applicationService.ts"
click node_recruiterjobs "https://github.com/tharunsai01/resumeai/blob/main/src/pages/recruiter/Jobs.tsx"
click node_screening "https://github.com/tharunsai01/resumeai/blob/main/src/pages/recruiter/Screening.tsx"
click node_screenservice "https://github.com/tharunsai01/resumeai/blob/main/src/services/aiScreeningService.ts"
click node_shortlist "https://github.com/tharunsai01/resumeai/blob/main/src/pages/recruiter/Shortlist.tsx"
click node_pipeline "https://github.com/tharunsai01/resumeai/blob/main/src/pages/recruiter/HiringPipeline.tsx"
click node_interviews "https://github.com/tharunsai01/resumeai/blob/main/src/pages/recruiter/Interviews.tsx"
click node_adminusers "https://github.com/tharunsai01/resumeai/blob/main/src/pages/admin/Users.tsx"
click node_complaints "https://github.com/tharunsai01/resumeai/blob/main/src/pages/admin/Complaints.tsx"
click node_taxonomy "https://github.com/tharunsai01/resumeai/blob/main/src/pages/admin/Skills.tsx"
click node_evaluation "https://github.com/tharunsai01/resumeai/blob/main/src/pages/admin/AiEvaluation.tsx"
click node_audithealth "https://github.com/tharunsai01/resumeai/blob/main/src/pages/admin/Dashboard.tsx"

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_app,node_auth,node_authservice,node_user toneBlue
class node_candidatejobs,node_resume,node_recommendations,node_applications,node_actions,node_applicationdata toneAmber
class node_recruiterjobs,node_screening,node_screenservice,node_shortlist,node_pipeline,node_interviews toneMint
class node_adminusers,node_complaints,node_taxonomy,node_evaluation,node_audithealth toneRose
```

## Components

### App and identity

- [Role-based routes](https://github.com/tharunsai01/resumeai/blob/main/src/App.tsx): `src/App.tsx`
- [Auth state](https://github.com/tharunsai01/resumeai/blob/main/src/context/AuthContext.tsx): `src/context/AuthContext.tsx`
- [Local auth](https://github.com/tharunsai01/resumeai/blob/main/src/services/authService.ts): `src/services/authService.ts`

### Candidate journey

- [Job discovery](https://github.com/tharunsai01/resumeai/blob/main/src/pages/candidate/Jobs.tsx): `src/pages/candidate/Jobs.tsx`
- [Resume analysis](https://github.com/tharunsai01/resumeai/blob/main/src/pages/candidate/ResumeAnalysis.tsx): `src/pages/candidate/ResumeAnalysis.tsx`
- [Job matching](https://github.com/tharunsai01/resumeai/blob/main/src/pages/candidate/Recommended.tsx): `src/pages/candidate/Recommended.tsx`
- [Application tracking](https://github.com/tharunsai01/resumeai/blob/main/src/pages/candidate/Applications.tsx): `src/pages/candidate/Applications.tsx`
- [Application actions](https://github.com/tharunsai01/resumeai/blob/main/src/hooks/useJobActions.ts): `src/hooks/useJobActions.ts`
- [Application records](https://github.com/tharunsai01/resumeai/blob/main/src/services/applicationService.ts): `src/services/applicationService.ts`

### Recruiter workflow

- [Job management](https://github.com/tharunsai01/resumeai/blob/main/src/pages/recruiter/Jobs.tsx): `src/pages/recruiter/Jobs.tsx`
- [AI screening](https://github.com/tharunsai01/resumeai/blob/main/src/pages/recruiter/Screening.tsx): `src/pages/recruiter/Screening.tsx`
- [Screening logic](https://github.com/tharunsai01/resumeai/blob/main/src/services/aiScreeningService.ts): `src/services/aiScreeningService.ts`
- [Shortlist review](https://github.com/tharunsai01/resumeai/blob/main/src/pages/recruiter/Shortlist.tsx): `src/pages/recruiter/Shortlist.tsx`
- [Hiring pipeline](https://github.com/tharunsai01/resumeai/blob/main/src/pages/recruiter/HiringPipeline.tsx): `src/pages/recruiter/HiringPipeline.tsx`
- [Interview management](https://github.com/tharunsai01/resumeai/blob/main/src/pages/recruiter/Interviews.tsx): `src/pages/recruiter/Interviews.tsx`

### Platform oversight

- [User administration](https://github.com/tharunsai01/resumeai/blob/main/src/pages/admin/Users.tsx): `src/pages/admin/Users.tsx`
- [Complaint handling](https://github.com/tharunsai01/resumeai/blob/main/src/pages/admin/Complaints.tsx): `src/pages/admin/Complaints.tsx`
- [Skill taxonomy](https://github.com/tharunsai01/resumeai/blob/main/src/pages/admin/Skills.tsx): `src/pages/admin/Skills.tsx`
- [AI evaluation](https://github.com/tharunsai01/resumeai/blob/main/src/pages/admin/AiEvaluation.tsx): `src/pages/admin/AiEvaluation.tsx`
- [Audit and health](https://github.com/tharunsai01/resumeai/blob/main/src/pages/admin/Dashboard.tsx): `src/pages/admin/Dashboard.tsx`

### Other components

- **Platform user**

## Connections

- Platform user → Role-based routes: opens
- Role-based routes → Auth state: provides auth
- Role-based routes → Job discovery: routes candidate
- Role-based routes → Resume analysis: routes candidate
- Role-based routes → Job matching: routes candidate
- Role-based routes → Application tracking: routes candidate
- Role-based routes → Job management: routes recruiter
- Role-based routes → AI screening: routes recruiter
- Role-based routes → Shortlist review: routes recruiter
- Role-based routes → Hiring pipeline: routes recruiter
- Role-based routes → Interview management: routes recruiter
- Role-based routes → User administration: routes admin
- Role-based routes → Complaint handling: routes admin
- Role-based routes → Skill taxonomy: routes admin
- Role-based routes → AI evaluation: routes admin
- Role-based routes → Audit and health: routes admin
- Application actions → Application records: creates and reads
- Application actions → Job discovery: loads job data
- Application actions → Application tracking: updates status
- AI screening → Screening logic: requests screening
- AI screening → Shortlist review: informs review
- Shortlist review → Hiring pipeline: advances candidates
- Hiring pipeline → Interview management: coordinates interviews
