# b3ngz/acerecruitmentaihelper architecture

> Architecture diagram of the GitHub repository b3ngz/acerecruitmentaihelper, 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/b3ngz/acerecruitmentaihelper
- Repository: https://github.com/b3ngz/acerecruitmentaihelper

## Overview

This is a browser-based recruiting application: recruiters manage hiring campaigns and applicants, review assessments and rankings, schedule interviews, and prepare client reports. The main workflow runs from campaign setup and applicant processing through applicant review and assessment to ranked candidates and interviews; dashboard and reports provide summary views. The sampled page controllers call a shared data service, while settings also use shared localization. The data-service implementation and several other page controllers were not sampled, so their internal wiring is not inferred.

Main entry points: [`Assets/js/dataService.js`](https://github.com/b3ngz/acerecruitmentaihelper/blob/main/Assets/js/dataService.js) (Recruiting data service), [`Settings/settings.js`](https://github.com/b3ngz/acerecruitmentaihelper/blob/main/Settings/settings.js) (Account settings), [`Interviews/interviews.js`](https://github.com/b3ngz/acerecruitmentaihelper/blob/main/Interviews/interviews.js) (Interview tracker), [`Login/login.js`](https://github.com/b3ngz/acerecruitmentaihelper/blob/main/Login/login.js) (Sign in)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_access["Access and settings"]
  node_login["Sign in<br/>[login.js]"]
  node_settings["Account settings<br/>[settings.js]"]
end

subgraph group_hiring["Hiring workflow"]
  node_campaign["Campaign management<br/>[campaign.js]"]
  node_applicants["Applicant list<br/>[applicants.js]"]
  node_applicant_detail["Applicant profile"]
end

subgraph group_review["Review and selection"]
  node_assessments["Assessment records<br/>[assessment.js]"]
  node_rankings["Candidate rankings<br/>[rankings.js]"]
  node_dashboard["Recruiting dashboard<br/>[dashboard.js]"]
end

subgraph group_operations["Recruiting operations"]
  node_interviews["Interview tracker<br/>[interviews.js]"]
  node_reports["Client reports<br/>[reports.js]"]
end

subgraph group_shared["Shared services"]
  node_data_service["Recruiting data service<br/>[dataService.js]"]
  node_calendar_service["Calendar event service<br/>[calendarService.js]"]
  node_i18n["Localization<br/>[i18n.js]"]
end

node_recruiter(("Recruiter"))
node_auth{{"Recruitment API"}}
node_calendar{{"Google Calendar"}}

node_recruiter -->|"signs in"| node_login
node_login -->|"posts credentials"| node_auth
node_recruiter -->|"manages campaigns"| node_campaign
node_recruiter -->|"reviews applicants"| node_applicants
node_recruiter -->|"reviews assessments"| node_assessments
node_recruiter -->|"compares candidates"| node_rankings
node_recruiter -->|"schedules interviews"| node_interviews
node_recruiter -->|"prepares reports"| node_reports
node_recruiter -->|"views summary"| node_dashboard
node_recruiter -->|"updates preferences"| node_settings
node_campaign -->|"reads and updates"| node_data_service
node_applicants -->|"loads data"| node_data_service
node_applicant_detail -->|"reads and updates"| node_data_service
node_assessments -->|"loads data"| node_data_service
node_rankings -->|"loads rankings"| node_data_service
node_dashboard -->|"loads summaries"| node_data_service
node_interviews -->|"loads data"| node_data_service
node_interviews -->|"queues event"| node_calendar_service
node_calendar_service -.->|"prepares sync"| node_calendar
node_reports -->|"loads report data"| node_data_service
node_settings -->|"loads user data"| node_data_service
node_settings -->|"applies language"| node_i18n

click node_login "https://github.com/b3ngz/acerecruitmentaihelper/blob/main/Login/login.js"
click node_settings "https://github.com/b3ngz/acerecruitmentaihelper/blob/main/Settings/settings.js"
click node_campaign "https://github.com/b3ngz/acerecruitmentaihelper/blob/main/Campaign/campaign.js"
click node_applicants "https://github.com/b3ngz/acerecruitmentaihelper/blob/main/Applicants/applicants.js"
click node_applicant_detail "https://github.com/b3ngz/acerecruitmentaihelper/blob/main/Applicants/applicant-details.js"
click node_assessments "https://github.com/b3ngz/acerecruitmentaihelper/blob/main/Assessments/assessment.js"
click node_rankings "https://github.com/b3ngz/acerecruitmentaihelper/blob/main/Rankings/rankings.js"
click node_dashboard "https://github.com/b3ngz/acerecruitmentaihelper/blob/main/Dashboard/dashboard.js"
click node_interviews "https://github.com/b3ngz/acerecruitmentaihelper/blob/main/Interviews/interviews.js"
click node_reports "https://github.com/b3ngz/acerecruitmentaihelper/blob/main/Reports/reports.js"
click node_data_service "https://github.com/b3ngz/acerecruitmentaihelper/blob/main/Assets/js/dataService.js"
click node_calendar_service "https://github.com/b3ngz/acerecruitmentaihelper/blob/main/Assets/js/calendarService.js"
click node_i18n "https://github.com/b3ngz/acerecruitmentaihelper/blob/main/Assets/js/i18n.js"

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_login,node_settings toneBlue
class node_campaign,node_applicants,node_applicant_detail toneAmber
class node_assessments,node_rankings,node_dashboard,node_auth toneMint
class node_interviews,node_reports toneRose
class node_data_service,node_calendar_service,node_i18n,node_recruiter,node_calendar toneIndigo
```

## Components

### Access and settings

- [Sign in](https://github.com/b3ngz/acerecruitmentaihelper/blob/main/Login/login.js): `Login/login.js`
- [Account settings](https://github.com/b3ngz/acerecruitmentaihelper/blob/main/Settings/settings.js): `Settings/settings.js`

### Hiring workflow

- [Campaign management](https://github.com/b3ngz/acerecruitmentaihelper/blob/main/Campaign/campaign.js): `Campaign/campaign.js`
- [Applicant list](https://github.com/b3ngz/acerecruitmentaihelper/blob/main/Applicants/applicants.js): `Applicants/applicants.js`
- [Applicant profile](https://github.com/b3ngz/acerecruitmentaihelper/blob/main/Applicants/applicant-details.js): `Applicants/applicant-details.js`

### Review and selection

- [Assessment records](https://github.com/b3ngz/acerecruitmentaihelper/blob/main/Assessments/assessment.js): `Assessments/assessment.js`
- [Candidate rankings](https://github.com/b3ngz/acerecruitmentaihelper/blob/main/Rankings/rankings.js): `Rankings/rankings.js`
- [Recruiting dashboard](https://github.com/b3ngz/acerecruitmentaihelper/blob/main/Dashboard/dashboard.js): `Dashboard/dashboard.js`

### Recruiting operations

- [Interview tracker](https://github.com/b3ngz/acerecruitmentaihelper/blob/main/Interviews/interviews.js): `Interviews/interviews.js`
- [Client reports](https://github.com/b3ngz/acerecruitmentaihelper/blob/main/Reports/reports.js): `Reports/reports.js`

### Shared services

- [Recruiting data service](https://github.com/b3ngz/acerecruitmentaihelper/blob/main/Assets/js/dataService.js): `Assets/js/dataService.js`
- [Calendar event service](https://github.com/b3ngz/acerecruitmentaihelper/blob/main/Assets/js/calendarService.js): `Assets/js/calendarService.js`
- [Localization](https://github.com/b3ngz/acerecruitmentaihelper/blob/main/Assets/js/i18n.js): `Assets/js/i18n.js`

### Other components

- **Recruiter**
- **Recruitment API**
- **Google Calendar**

## Connections

- Recruiter → Sign in: signs in
- Sign in → Recruitment API: posts credentials
- Recruiter → Campaign management: manages campaigns
- Recruiter → Applicant list: reviews applicants
- Recruiter → Assessment records: reviews assessments
- Recruiter → Candidate rankings: compares candidates
- Recruiter → Interview tracker: schedules interviews
- Recruiter → Client reports: prepares reports
- Recruiter → Recruiting dashboard: views summary
- Recruiter → Account settings: updates preferences
- Campaign management → Recruiting data service: reads and updates
- Applicant list → Recruiting data service: loads data
- Applicant profile → Recruiting data service: reads and updates
- Assessment records → Recruiting data service: loads data
- Candidate rankings → Recruiting data service: loads rankings
- Recruiting dashboard → Recruiting data service: loads summaries
- Interview tracker → Recruiting data service: loads data
- Interview tracker → Calendar event service: queues event
- Calendar event service → Google Calendar: prepares sync
- Client reports → Recruiting data service: loads report data
- Account settings → Recruiting data service: loads user data
- Account settings → Localization: applies language
