# sivatejachary/careerorbitai architecture

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

- Interactive diagram: https://gitdiagram.com/sivatejachary/careerorbitai
- Repository: https://github.com/sivatejachary/careerorbitai

## Overview

CareerOrbitAI is a recruiting platform spanning job publishing, candidate applications, pipeline review, configurable workflows, and AI-assisted calling. The principal flow is job creation and publication, candidate submission, application ingestion, screening and recruiter review, then workflow-driven follow-up. The tree and excerpts support the application-ingestion and workflow-execution layers; unsampled integrations are included only where their dedicated modules establish a product capability, and uncertain internal call links are omitted.

Main entry points: [`backend/app/main.py`](https://github.com/sivatejachary/careerorbitai/blob/main/backend/app/main.py) (FastAPI application), [`frontend/src/App.tsx`](https://github.com/sivatejachary/careerorbitai/blob/main/frontend/src/App.tsx) (Route application), [`backend/app/services/ingestion_service.py`](https://github.com/sivatejachary/careerorbitai/blob/main/backend/app/services/ingestion_service.py) (Application ingestion), [`backend/app/api/public_careers.py`](https://github.com/sivatejachary/careerorbitai/blob/main/backend/app/api/public_careers.py) (Public careers and forms)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_frontend["Recruiting workspaces"]
  node_app["Route application<br/>[App.tsx]"]
  node_jobsui["Jobs workspace<br/>[JobsList.tsx]"]
  node_careersui["Careers portal<br/>[CareerPage.tsx]"]
  node_applyui["Application form"]
  node_pipelineui["Candidate pipeline"]
  node_candidateui["Candidate details"]
  node_workflowui["Workflow editor<br/>[WorkflowEditor.tsx]"]
  node_callui["AI calling workspace"]
end

subgraph group_api["API surface"]
  node_backend["FastAPI application<br/>[main.py]"]
  node_publicapi["Public careers and forms<br/>[public_careers.py]"]
  node_jobsapi["Job endpoints<br/>[jobs.py]"]
  node_applicationsapi["Application endpoints<br/>[applications.py]"]
  node_candidatesapi["Candidate pipeline API<br/>[candidates_v3.py]"]
  node_workflowsapi["Workflow endpoints<br/>[workflows.py]"]
  node_callsapi["AI calling endpoints<br/>[ai_calling.py]"]
  node_elevenhook["Call-result webhook"]
end

subgraph group_services["Domain services"]
  node_ingestion["Application ingestion"]
  node_screening["Candidate screening"]
  node_resume["Resume processing<br/>[resume_service.py]"]
  node_workflowengine["Workflow execution<br/>[workflow_engine.py]"]
  node_scheduler["Background scheduler<br/>[scheduler.py]"]
  node_calling["Batch call service"]
end

subgraph group_state["Persistent state"]
  node_db[("Application database<br/>[database.py]")]
  node_applicationdata[("Application records<br/>[job_application.py]")]
  node_workflowdata[("Workflow records")]
  node_calldata[("Call records<br/>[call_attempt.py]")]
end

subgraph group_integrations["External providers"]
  node_googleadapter["Google Forms adapter"]
  node_microsoftadapter["Microsoft Forms adapter"]
end

node_recruiter(("Recruiter"))
node_applicant(("Job applicant"))
node_elevenlabs(("ElevenLabs"))
node_googleforms(("Google Forms"))

node_recruiter -->|"opens workspace"| node_app
node_app -->|"routes to"| node_jobsui
node_app -->|"routes to"| node_pipelineui
node_app -->|"routes to"| node_workflowui
node_app -->|"routes to"| node_callui
node_app -->|"routes to"| node_careersui
node_app -->|"routes to"| node_applyui
node_jobsui -->|"requests jobs"| node_jobsapi
node_pipelineui -->|"loads candidates"| node_candidatesapi
node_candidateui -->|"requests details"| node_candidatesapi
node_workflowui -->|"manages workflows"| node_workflowsapi
node_callui -->|"requests calls"| node_callsapi
node_careersui -->|"loads openings"| node_publicapi
node_applyui -->|"submits application"| node_publicapi
node_backend -->|"mounts router"| node_jobsapi
node_backend -->|"mounts router"| node_publicapi
node_backend -->|"mounts router"| node_applicationsapi
node_backend -->|"mounts router"| node_candidatesapi
node_backend -->|"mounts router"| node_workflowsapi
node_backend -->|"mounts router"| node_callsapi
node_backend -->|"mounts router"| node_elevenhook
node_applicationsapi -->|"queries applications"| node_applicationdata
node_ingestion -->|"creates application"| node_applicationdata
node_ingestion -->|"processes resume"| node_resume
node_ingestion -->|"enrolls execution"| node_workflowengine
node_ingestion -->|"commits records"| node_db
node_workflowengine -->|"updates execution"| node_workflowdata
node_workflowengine -->|"reads call outcome"| node_calldata
node_backend -->|"starts poller"| node_scheduler
node_callsapi -->|"initiates calls"| node_calling
node_calling -->|"records attempts"| node_calldata
node_elevenlabs -->|"posts call events"| node_elevenhook
node_elevenhook -->|"updates call records"| node_calldata
node_googleforms -.->|"provides form data"| node_googleadapter
node_microsoftadapter -.->|"supports form intake"| node_publicapi

click node_app "https://github.com/sivatejachary/careerorbitai/blob/main/frontend/src/App.tsx"
click node_jobsui "https://github.com/sivatejachary/careerorbitai/blob/main/frontend/src/components/jobs/JobsList.tsx"
click node_careersui "https://github.com/sivatejachary/careerorbitai/blob/main/frontend/src/components/careers/CareerPage.tsx"
click node_applyui "https://github.com/sivatejachary/careerorbitai/blob/main/frontend/src/components/careers/PublicApplicationPage.tsx"
click node_pipelineui "https://github.com/sivatejachary/careerorbitai/blob/main/frontend/src/components/jobs/JobPipelineView.tsx"
click node_candidateui "https://github.com/sivatejachary/careerorbitai/blob/main/frontend/src/components/candidates/CandidatePipelinePanel.tsx"
click node_workflowui "https://github.com/sivatejachary/careerorbitai/blob/main/frontend/src/components/workflow/WorkflowEditor/WorkflowEditor.tsx"
click node_callui "https://github.com/sivatejachary/careerorbitai/blob/main/frontend/src/components/aiCalling/AICallingWorkspace.tsx"
click node_backend "https://github.com/sivatejachary/careerorbitai/blob/main/backend/app/main.py"
click node_publicapi "https://github.com/sivatejachary/careerorbitai/blob/main/backend/app/api/public_careers.py"
click node_jobsapi "https://github.com/sivatejachary/careerorbitai/blob/main/backend/app/api/jobs.py"
click node_applicationsapi "https://github.com/sivatejachary/careerorbitai/blob/main/backend/app/api/applications.py"
click node_candidatesapi "https://github.com/sivatejachary/careerorbitai/blob/main/backend/app/api/candidates_v3.py"
click node_workflowsapi "https://github.com/sivatejachary/careerorbitai/blob/main/backend/app/api/workflows.py"
click node_callsapi "https://github.com/sivatejachary/careerorbitai/blob/main/backend/app/api/ai_calling.py"
click node_ingestion "https://github.com/sivatejachary/careerorbitai/blob/main/backend/app/services/ingestion_service.py"
click node_screening "https://github.com/sivatejachary/careerorbitai/blob/main/backend/app/services/screening_service.py"
click node_resume "https://github.com/sivatejachary/careerorbitai/blob/main/backend/app/services/resume_service.py"
click node_workflowengine "https://github.com/sivatejachary/careerorbitai/blob/main/backend/app/services/workflow_engine.py"
click node_scheduler "https://github.com/sivatejachary/careerorbitai/blob/main/backend/app/services/scheduler.py"
click node_calling "https://github.com/sivatejachary/careerorbitai/blob/main/backend/app/services/batch_calling_service.py"
click node_db "https://github.com/sivatejachary/careerorbitai/blob/main/backend/app/database.py"
click node_applicationdata "https://github.com/sivatejachary/careerorbitai/blob/main/backend/app/models/job_application.py"
click node_workflowdata "https://github.com/sivatejachary/careerorbitai/blob/main/backend/app/models/workflow_execution.py"
click node_calldata "https://github.com/sivatejachary/careerorbitai/blob/main/backend/app/models/call_attempt.py"
click node_elevenhook "https://github.com/sivatejachary/careerorbitai/blob/main/backend/app/api/webhooks_elevenlabs.py"
click node_googleadapter "https://github.com/sivatejachary/careerorbitai/blob/main/backend/app/adapters/google_forms_adapter.py"
click node_microsoftadapter "https://github.com/sivatejachary/careerorbitai/blob/main/backend/app/adapters/microsoft_forms_adapter.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_app,node_jobsui,node_careersui,node_applyui,node_pipelineui,node_candidateui,node_workflowui,node_callui toneBlue
class node_backend,node_publicapi,node_jobsapi,node_applicationsapi,node_candidatesapi,node_workflowsapi,node_callsapi,node_elevenhook toneAmber
class node_ingestion,node_screening,node_resume,node_workflowengine,node_scheduler,node_calling toneMint
class node_db,node_applicationdata,node_workflowdata,node_calldata toneRose
class node_googleadapter,node_microsoftadapter,node_recruiter,node_applicant,node_elevenlabs,node_googleforms toneIndigo
```

## Components

### Recruiting workspaces

- [Route application](https://github.com/sivatejachary/careerorbitai/blob/main/frontend/src/App.tsx): `frontend/src/App.tsx`
- [Jobs workspace](https://github.com/sivatejachary/careerorbitai/blob/main/frontend/src/components/jobs/JobsList.tsx): `frontend/src/components/jobs/JobsList.tsx`
- [Careers portal](https://github.com/sivatejachary/careerorbitai/blob/main/frontend/src/components/careers/CareerPage.tsx): `frontend/src/components/careers/CareerPage.tsx`
- [Application form](https://github.com/sivatejachary/careerorbitai/blob/main/frontend/src/components/careers/PublicApplicationPage.tsx): `frontend/src/components/careers/PublicApplicationPage.tsx`
- [Candidate pipeline](https://github.com/sivatejachary/careerorbitai/blob/main/frontend/src/components/jobs/JobPipelineView.tsx): `frontend/src/components/jobs/JobPipelineView.tsx`
- [Candidate details](https://github.com/sivatejachary/careerorbitai/blob/main/frontend/src/components/candidates/CandidatePipelinePanel.tsx): `frontend/src/components/candidates/CandidatePipelinePanel.tsx`
- [Workflow editor](https://github.com/sivatejachary/careerorbitai/blob/main/frontend/src/components/workflow/WorkflowEditor/WorkflowEditor.tsx): `frontend/src/components/workflow/WorkflowEditor/WorkflowEditor.tsx`
- [AI calling workspace](https://github.com/sivatejachary/careerorbitai/blob/main/frontend/src/components/aiCalling/AICallingWorkspace.tsx): `frontend/src/components/aiCalling/AICallingWorkspace.tsx`

### API surface

- [FastAPI application](https://github.com/sivatejachary/careerorbitai/blob/main/backend/app/main.py): `backend/app/main.py`
- [Public careers and forms](https://github.com/sivatejachary/careerorbitai/blob/main/backend/app/api/public_careers.py): `backend/app/api/public_careers.py`
- [Job endpoints](https://github.com/sivatejachary/careerorbitai/blob/main/backend/app/api/jobs.py): `backend/app/api/jobs.py`
- [Application endpoints](https://github.com/sivatejachary/careerorbitai/blob/main/backend/app/api/applications.py): `backend/app/api/applications.py`
- [Candidate pipeline API](https://github.com/sivatejachary/careerorbitai/blob/main/backend/app/api/candidates_v3.py): `backend/app/api/candidates_v3.py`
- [Workflow endpoints](https://github.com/sivatejachary/careerorbitai/blob/main/backend/app/api/workflows.py): `backend/app/api/workflows.py`
- [AI calling endpoints](https://github.com/sivatejachary/careerorbitai/blob/main/backend/app/api/ai_calling.py): `backend/app/api/ai_calling.py`
- [Call-result webhook](https://github.com/sivatejachary/careerorbitai/blob/main/backend/app/api/webhooks_elevenlabs.py): `backend/app/api/webhooks_elevenlabs.py`

### Domain services

- [Application ingestion](https://github.com/sivatejachary/careerorbitai/blob/main/backend/app/services/ingestion_service.py): `backend/app/services/ingestion_service.py`
- [Candidate screening](https://github.com/sivatejachary/careerorbitai/blob/main/backend/app/services/screening_service.py): `backend/app/services/screening_service.py`
- [Resume processing](https://github.com/sivatejachary/careerorbitai/blob/main/backend/app/services/resume_service.py): `backend/app/services/resume_service.py`
- [Workflow execution](https://github.com/sivatejachary/careerorbitai/blob/main/backend/app/services/workflow_engine.py): `backend/app/services/workflow_engine.py`
- [Background scheduler](https://github.com/sivatejachary/careerorbitai/blob/main/backend/app/services/scheduler.py): `backend/app/services/scheduler.py`
- [Batch call service](https://github.com/sivatejachary/careerorbitai/blob/main/backend/app/services/batch_calling_service.py): `backend/app/services/batch_calling_service.py`

### Persistent state

- [Application database](https://github.com/sivatejachary/careerorbitai/blob/main/backend/app/database.py): `backend/app/database.py`
- [Application records](https://github.com/sivatejachary/careerorbitai/blob/main/backend/app/models/job_application.py): `backend/app/models/job_application.py`
- [Workflow records](https://github.com/sivatejachary/careerorbitai/blob/main/backend/app/models/workflow_execution.py): `backend/app/models/workflow_execution.py`
- [Call records](https://github.com/sivatejachary/careerorbitai/blob/main/backend/app/models/call_attempt.py): `backend/app/models/call_attempt.py`

### External providers

- [Google Forms adapter](https://github.com/sivatejachary/careerorbitai/blob/main/backend/app/adapters/google_forms_adapter.py): `backend/app/adapters/google_forms_adapter.py`
- [Microsoft Forms adapter](https://github.com/sivatejachary/careerorbitai/blob/main/backend/app/adapters/microsoft_forms_adapter.py): `backend/app/adapters/microsoft_forms_adapter.py`

### Other components

- **Recruiter**
- **Job applicant**
- **ElevenLabs**
- **Google Forms**

## Connections

- Recruiter → Route application: opens workspace
- Route application → Jobs workspace: routes to
- Route application → Candidate pipeline: routes to
- Route application → Workflow editor: routes to
- Route application → AI calling workspace: routes to
- Route application → Careers portal: routes to
- Route application → Application form: routes to
- Jobs workspace → Job endpoints: requests jobs
- Candidate pipeline → Candidate pipeline API: loads candidates
- Candidate details → Candidate pipeline API: requests details
- Workflow editor → Workflow endpoints: manages workflows
- AI calling workspace → AI calling endpoints: requests calls
- Careers portal → Public careers and forms: loads openings
- Application form → Public careers and forms: submits application
- FastAPI application → Job endpoints: mounts router
- FastAPI application → Public careers and forms: mounts router
- FastAPI application → Application endpoints: mounts router
- FastAPI application → Candidate pipeline API: mounts router
- FastAPI application → Workflow endpoints: mounts router
- FastAPI application → AI calling endpoints: mounts router
- FastAPI application → Call-result webhook: mounts router
- Application endpoints → Application records: queries applications
- Application ingestion → Application records: creates application
- Application ingestion → Resume processing: processes resume
- Application ingestion → Workflow execution: enrolls execution
- Application ingestion → Application database: commits records
- Workflow execution → Workflow records: updates execution
- Workflow execution → Call records: reads call outcome
- FastAPI application → Background scheduler: starts poller
- AI calling endpoints → Batch call service: initiates calls
- Batch call service → Call records: records attempts
- ElevenLabs → Call-result webhook: posts call events
- Call-result webhook → Call records: updates call records
- Google Forms → Google Forms adapter: provides form data
- Microsoft Forms adapter → Public careers and forms: supports form intake
