%%{init: {'theme':'base','themeVariables':{'primaryColor':'#FFF1E6','primaryTextColor':'#1a1a1a','primaryBorderColor':'#F77020','lineColor':'#F77020','secondaryColor':'#FFE4D1','tertiaryColor':'#ffffff','clusterBkg':'#FFF8F2','clusterBorder':'#F77020','fontFamily':'Inter','fontSize':'14px'},'flowchart':{'curve':'basis','htmlLabels':true}}}%%
flowchart TD
classDef trust fill:#F77020,stroke:#c4541a,stroke-width:2px,color:#ffffff
classDef action fill:#FFF1E6,stroke:#F77020,stroke-width:2px,color:#1a1a1a
classDef ai fill:#FFE4D1,stroke:#F77020,stroke-width:2px,color:#7a3a10
classDef user fill:#ffffff,stroke:#F77020,stroke-width:2px,color:#1a1a1a
classDef success fill:#F77020,stroke:#9c4214,stroke-width:3px,color:#ffffff
classDef decision fill:#ffffff,stroke:#F77020,stroke-width:2px,stroke-dasharray:4 2,color:#1a1a1a
Start([HR User Visits Admin URL]) --> Login[Login Screen]
Login --> Auth{Credentials Valid?}
Auth -- No --> LoginErr[Show Error & Retry]
LoginErr --> Login
Auth -- Yes --> JWT[Issue JWT Token]
JWT --> RoleCheck{Role & Permissions?}
RoleCheck -- HR Admin --> AdminHome[Admin Home Dashboard]
RoleCheck -- Recruiter --> RecruiterHome[Recruiter Home Dashboard]
AdminHome --> Companies[Companies & Branches]
Companies --> SelectCompany[Select Company / Branch]
SelectCompany --> Departments[Manage Departments]
Departments --> Recruiters[Manage Recruiters & Roles]
AdminHome --> Jobs[Job Openings Module]
RecruiterHome --> Jobs
Jobs --> JobAction{Action?}
JobAction -- Create --> NewJob[Draft New Job Opening]
JobAction -- Edit --> EditJob[Edit Existing Job]
JobAction -- Close --> CloseJob[Close / Archive Job]
NewJob --> JobDetails[Title, Dept, Branch, JD]
JobDetails --> AttachQ[Attach Questionnaires]
AttachQ --> ConfigPipeline[Configure Pipeline Stages]
ConfigPipeline --> EmailTemplates[Map Email Templates per Stage]
EmailTemplates --> AssignRec[Assign Recruiter]
AssignRec --> Publish[Publish to Career Portal]
AdminHome --> CandidateDB[Candidate Database]
CandidateDB --> Search[Search & Filter Candidates]
Search --> ViewProfile[View Candidate Profile]
ViewProfile --> AIInsight[AI Insights & Score]
RecruiterHome --> MyPipeline[My Assigned Pipeline]
MyPipeline --> StageView[Kanban Stage View]
StageView --> MoveCandidate[Move / Reject Candidate]
MoveCandidate --> AutoEmail[Trigger Stage Email]
AdminHome --> Notifications[Email & Notification Center]
Notifications --> TemplateMgr[Template Manager]
TemplateMgr --> Editor[Rich Text Editor with Variables]
AdminHome --> Reports[Reports & AI Insights]
Reports --> Funnel[Funnel Conversion]
Reports --> TimeHire[Time-to-Hire Metrics]
Reports --> Source[Source Effectiveness]
Reports --> AIRanking[AI Top-Ranked Candidates]
Publish --> AuditLog[Audit Log Entry]
MoveCandidate --> AuditLog
Editor --> AuditLog
AuditLog --> End([Persist to MongoDB])
class Start,Login,LoginErr,Companies,Departments,Recruiters user
class JWT,AdminHome,RecruiterHome,SelectCompany,Jobs,NewJob,EditJob,CloseJob,JobDetails,AttachQ,ConfigPipeline,EmailTemplates,AssignRec,Publish,CandidateDB,Search,ViewProfile,MyPipeline,StageView,MoveCandidate,AutoEmail,Notifications,TemplateMgr,Editor,Reports,Funnel,TimeHire,Source action
class AIInsight,AIRanking ai
class Auth,RoleCheck,JobAction decision
class AuditLog trust
class End success