# bharathkulal/bimba-ai architecture

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

- Interactive diagram: https://gitdiagram.com/bharathkulal/bimba-ai
- Repository: https://github.com/bharathkulal/bimba-ai

## Overview

Bimba AI is a full-stack resume and career platform. Its central user workflow is to upload or build a resume, extract and normalize its content, assess its ATS readiness and health, then use job matching and templates to improve and export it. The repository also includes job discovery, skill-gap guidance, AI assistance, and administrative and placement portals. The graph reflects documented modules and sampled call ownership; unsampled frontend-to-endpoint wiring and some storage interactions are left out.

Main entry points: [`backend/app/api/v1/resumes/resumes_routes.py`](https://github.com/bharathkulal/bimba-ai/blob/main/backend/app/api/v1/resumes/resumes_routes.py) (Resume endpoints), [`frontend/src/components/resume-builder/ResumeBuilderFlow.tsx`](https://github.com/bharathkulal/bimba-ai/blob/main/frontend/src/components/resume-builder/ResumeBuilderFlow.tsx) (Resume builder), [`frontend/src/routes/AppRoutes.tsx`](https://github.com/bharathkulal/bimba-ai/blob/main/frontend/src/routes/AppRoutes.tsx) (Application routes), [`frontend/src/services/api.ts`](https://github.com/bharathkulal/bimba-ai/blob/main/frontend/src/services/api.ts) (API client)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_client["User experience"]
  node_builder["Resume builder"]
  node_routes["Application routes<br/>[AppRoutes.tsx]"]
  node_api["API client<br/>[api.ts]"]
  node_admin["Administration"]
  node_placement["Placement portal"]
end

subgraph group_resume["Resume processing"]
  node_upload["Upload service<br/>[upload_service.py]"]
  node_pipeline["Document pipeline<br/>[pipeline.py]"]
  node_canonical["Resume normalization"]
  node_template_service["Template service"]
  node_pdf_export["PDF rendering<br/>[server.mjs]"]
end

subgraph group_career["Career intelligence"]
  node_ats["ATS analysis<br/>[ats_engine.py]"]
  node_health["Resume intelligence"]
  node_matching["Job matching"]
  node_skillgap["Skill gap guidance"]
end

subgraph group_platform["API and persistence"]
  node_resume_api["Resume endpoints<br/>[resumes_routes.py]"]
  node_jobs_api["Job endpoints<br/>[jobs.py]"]
  node_templates_api["Template endpoints"]
  node_ai_routes["AI endpoints<br/>[ai_routes.py]"]
  node_database[("MongoDB<br/>[mongodb.py]")]
end

subgraph group_integrations["External services"]
  node_job_provider["Job providers<br/>[base.py]"]
  node_ai_gateway["AI gateway<br/>[ai_gateway.py]"]
end

node_user(("Resume user"))

node_user -->|"opens app"| node_routes
node_routes -->|"routes to"| node_builder
node_builder -->|"requests API"| node_api
node_api -->|"HTTP requests"| node_resume_api
node_resume_api -->|"processes upload"| node_upload
node_upload -->|"extracts document"| node_pipeline
node_pipeline -->|"normalizes content"| node_canonical
node_resume_api -->|"analyzes resume"| node_ats
node_resume_api -->|"requests analysis"| node_health
node_health -->|"parses job needs"| node_matching
node_jobs_api -.->|"retrieves listings"| node_job_provider
node_skillgap -->|"parses requirements"| node_matching
node_templates_api -->|"uses templates"| node_template_service
node_ai_routes -->|"generates responses"| node_ai_gateway

click node_builder "https://github.com/bharathkulal/bimba-ai/blob/main/frontend/src/components/resume-builder/ResumeBuilderFlow.tsx"
click node_routes "https://github.com/bharathkulal/bimba-ai/blob/main/frontend/src/routes/AppRoutes.tsx"
click node_api "https://github.com/bharathkulal/bimba-ai/blob/main/frontend/src/services/api.ts"
click node_resume_api "https://github.com/bharathkulal/bimba-ai/blob/main/backend/app/api/v1/resumes/resumes_routes.py"
click node_upload "https://github.com/bharathkulal/bimba-ai/blob/main/backend/app/services/upload_service.py"
click node_pipeline "https://github.com/bharathkulal/bimba-ai/blob/main/backend/app/services/resume_pipeline/pipeline.py"
click node_canonical "https://github.com/bharathkulal/bimba-ai/blob/main/backend/app/services/zero_loss_engine.py"
click node_ats "https://github.com/bharathkulal/bimba-ai/blob/main/backend/app/services/ats/ats_engine.py"
click node_health "https://github.com/bharathkulal/bimba-ai/blob/main/backend/app/services/resume_intelligence/resume_intelligence_engine.py"
click node_matching "https://github.com/bharathkulal/bimba-ai/blob/main/backend/app/services/job_matching/job_match_engine.py"
click node_skillgap "https://github.com/bharathkulal/bimba-ai/blob/main/backend/app/services/skill_gap/skill_gap_engine.py"
click node_jobs_api "https://github.com/bharathkulal/bimba-ai/blob/main/backend/app/api/jobs.py"
click node_job_provider "https://github.com/bharathkulal/bimba-ai/blob/main/backend/app/services/job_provider/base.py"
click node_templates_api "https://github.com/bharathkulal/bimba-ai/blob/main/backend/app/api/v1/templates/templates_routes.py"
click node_template_service "https://github.com/bharathkulal/bimba-ai/blob/main/backend/app/services/template_service.py"
click node_pdf_export "https://github.com/bharathkulal/bimba-ai/blob/main/backend/pdf_renderer/server.mjs"
click node_ai_routes "https://github.com/bharathkulal/bimba-ai/blob/main/backend/app/api/v1/ai/ai_routes.py"
click node_ai_gateway "https://github.com/bharathkulal/bimba-ai/blob/main/backend/app/services/ai_gateway.py"
click node_database "https://github.com/bharathkulal/bimba-ai/blob/main/backend/app/core/mongodb.py"
click node_admin "https://github.com/bharathkulal/bimba-ai/tree/main/frontend/src/pages/admin"
click node_placement "https://github.com/bharathkulal/bimba-ai/tree/main/frontend/src/pages/placement"

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_builder,node_routes,node_api,node_admin,node_placement,node_user toneBlue
class node_upload,node_pipeline,node_canonical,node_template_service,node_pdf_export toneAmber
class node_ats,node_health,node_matching,node_skillgap toneMint
class node_resume_api,node_jobs_api,node_templates_api,node_ai_routes,node_database toneRose
class node_job_provider,node_ai_gateway toneIndigo
```

## Components

### User experience

- [Resume builder](https://github.com/bharathkulal/bimba-ai/blob/main/frontend/src/components/resume-builder/ResumeBuilderFlow.tsx): `frontend/src/components/resume-builder/ResumeBuilderFlow.tsx`
- [Application routes](https://github.com/bharathkulal/bimba-ai/blob/main/frontend/src/routes/AppRoutes.tsx): `frontend/src/routes/AppRoutes.tsx`
- [API client](https://github.com/bharathkulal/bimba-ai/blob/main/frontend/src/services/api.ts): `frontend/src/services/api.ts`
- [Administration](https://github.com/bharathkulal/bimba-ai/tree/main/frontend/src/pages/admin): `frontend/src/pages/admin`
- [Placement portal](https://github.com/bharathkulal/bimba-ai/tree/main/frontend/src/pages/placement): `frontend/src/pages/placement`

### Resume processing

- [Upload service](https://github.com/bharathkulal/bimba-ai/blob/main/backend/app/services/upload_service.py): `backend/app/services/upload_service.py`
- [Document pipeline](https://github.com/bharathkulal/bimba-ai/blob/main/backend/app/services/resume_pipeline/pipeline.py): `backend/app/services/resume_pipeline/pipeline.py`
- [Resume normalization](https://github.com/bharathkulal/bimba-ai/blob/main/backend/app/services/zero_loss_engine.py): `backend/app/services/zero_loss_engine.py`
- [Template service](https://github.com/bharathkulal/bimba-ai/blob/main/backend/app/services/template_service.py): `backend/app/services/template_service.py`
- [PDF rendering](https://github.com/bharathkulal/bimba-ai/blob/main/backend/pdf_renderer/server.mjs): `backend/pdf_renderer/server.mjs`

### Career intelligence

- [ATS analysis](https://github.com/bharathkulal/bimba-ai/blob/main/backend/app/services/ats/ats_engine.py): `backend/app/services/ats/ats_engine.py`
- [Resume intelligence](https://github.com/bharathkulal/bimba-ai/blob/main/backend/app/services/resume_intelligence/resume_intelligence_engine.py): `backend/app/services/resume_intelligence/resume_intelligence_engine.py`
- [Job matching](https://github.com/bharathkulal/bimba-ai/blob/main/backend/app/services/job_matching/job_match_engine.py): `backend/app/services/job_matching/job_match_engine.py`
- [Skill gap guidance](https://github.com/bharathkulal/bimba-ai/blob/main/backend/app/services/skill_gap/skill_gap_engine.py): `backend/app/services/skill_gap/skill_gap_engine.py`

### API and persistence

- [Resume endpoints](https://github.com/bharathkulal/bimba-ai/blob/main/backend/app/api/v1/resumes/resumes_routes.py): `backend/app/api/v1/resumes/resumes_routes.py`
- [Job endpoints](https://github.com/bharathkulal/bimba-ai/blob/main/backend/app/api/jobs.py): `backend/app/api/jobs.py`
- [Template endpoints](https://github.com/bharathkulal/bimba-ai/blob/main/backend/app/api/v1/templates/templates_routes.py): `backend/app/api/v1/templates/templates_routes.py`
- [AI endpoints](https://github.com/bharathkulal/bimba-ai/blob/main/backend/app/api/v1/ai/ai_routes.py): `backend/app/api/v1/ai/ai_routes.py`
- [MongoDB](https://github.com/bharathkulal/bimba-ai/blob/main/backend/app/core/mongodb.py): `backend/app/core/mongodb.py`

### External services

- [Job providers](https://github.com/bharathkulal/bimba-ai/blob/main/backend/app/services/job_provider/base.py): `backend/app/services/job_provider/base.py`
- [AI gateway](https://github.com/bharathkulal/bimba-ai/blob/main/backend/app/services/ai_gateway.py): `backend/app/services/ai_gateway.py`

### Other components

- **Resume user**

## Connections

- Resume user → Application routes: opens app
- Application routes → Resume builder: routes to
- Resume builder → API client: requests API
- API client → Resume endpoints: HTTP requests
- Resume endpoints → Upload service: processes upload
- Upload service → Document pipeline: extracts document
- Document pipeline → Resume normalization: normalizes content
- Resume endpoints → ATS analysis: analyzes resume
- Resume endpoints → Resume intelligence: requests analysis
- Resume intelligence → Job matching: parses job needs
- Job endpoints → Job providers: retrieves listings
- Skill gap guidance → Job matching: parses requirements
- Template endpoints → Template service: uses templates
- AI endpoints → AI gateway: generates responses
