# sanjayr0107/resumesphere-ai architecture

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

- Interactive diagram: https://gitdiagram.com/sanjayr0107/resumesphere-ai
- Repository: https://github.com/sanjayr0107/resumesphere-ai

## Overview

ResumeSphere AI is a FastAPI career platform. Its primary workflow accepts a resume PDF, extracts and preprocesses text, runs analysis and matching, then returns scores, recommendations, and optimization guidance. Separate capabilities cover interactive interview practice, recruiter tools, and career services such as learning, networking, and marketplace features. The excerpts show the main resume pipeline, PDF extraction, interview-session delegation, and selected database-backed routes; other feature routes are included where documented or registered, but their internal calls are not inferred.

Main entry points: [`backend/main.py`](https://github.com/sanjayr0107/resumesphere-ai/blob/main/backend/main.py) (FastAPI application), [`backend/resume_pipeline.py`](https://github.com/sanjayr0107/resumesphere-ai/blob/main/backend/resume_pipeline.py) (Analysis pipeline), [`backend/app/db/models.py`](https://github.com/sanjayr0107/resumesphere-ai/blob/main/backend/app/db/models.py) (Application data), [`backend/app/api/routes.py`](https://github.com/sanjayr0107/resumesphere-ai/blob/main/backend/app/api/routes.py) (Resume API)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_entry["Application entry"]
  node_api["FastAPI application<br/>[main.py]"]
  node_resume_routes["Resume API<br/>[routes.py]"]
end

subgraph group_resume["Resume intelligence"]
  node_parser["PDF extraction<br/>[parser_service.py]"]
  node_pipeline["Analysis pipeline<br/>[resume_pipeline.py]"]
  node_preprocess["Text preprocessing"]
  node_skills["Skill extraction"]
  node_sections["Section detection<br/>[section_service.py]"]
  node_ats["ATS scoring<br/>[ats_service.py]"]
  node_embeddings["Semantic embeddings"]
  node_jobmatch["Job matching"]
  node_recommendations["Job recommendations"]
  node_skillgap["Skill gap analysis"]
  node_recruiter["Recruiter insights"]
end

subgraph group_interviews["Interview practice"]
  node_interview_routes["Interview API<br/>[routes.py]"]
  node_sessions["Interview sessions"]
  node_questions["Question generation"]
  node_evaluation["Answer evaluation"]
end

subgraph group_career["Career services"]
  node_enterprise["Recruiter workspace"]
  node_learning["Learning features<br/>[routes_learning.py]"]
  node_talent["Talent services<br/>[routes_talent.py]"]
  node_marketplace["AI marketplace"]
  node_network["Talent network<br/>[routes_network.py]"]
  node_ecosystem["Career ecosystem"]
  node_copilot["Career copilot<br/>[routes_copilot.py]"]
end

subgraph group_platform["Platform capabilities"]
  node_cloud["Cloud connectors<br/>[routes_cloud.py]"]
  node_saas["Enterprise SaaS<br/>[routes_saas.py]"]
  node_platform_features["App ecosystem<br/>[routes_platform.py]"]
  node_models[("Application data<br/>[models.py]")]
  node_database[("SQLite database<br/>[database.py]")]
end

node_user(("Job seeker / recruiter"))

node_user -->|"sends requests"| node_api
node_api -->|"registers router"| node_resume_routes
node_api -->|"registers router"| node_enterprise
node_api -->|"registers router"| node_cloud
node_api -->|"registers router"| node_ecosystem
node_api -->|"registers router"| node_learning
node_api -->|"registers router"| node_marketplace
node_api -->|"registers router"| node_network
node_api -->|"registers router"| node_talent
node_api -->|"registers router"| node_copilot
node_api -->|"registers router"| node_saas
node_api -->|"registers router"| node_platform_features
node_resume_routes -->|"extracts PDF text"| node_parser
node_resume_routes -->|"runs analysis"| node_pipeline
node_pipeline -->|"cleans text"| node_preprocess
node_pipeline -->|"extracts skills"| node_skills
node_pipeline -->|"detects sections"| node_sections
node_pipeline -->|"scores resume"| node_ats
node_pipeline -->|"creates embeddings"| node_embeddings
node_pipeline -->|"matches jobs"| node_jobmatch
node_pipeline -->|"gets recommendations"| node_recommendations
node_pipeline -->|"analyzes gaps"| node_skillgap
node_pipeline -->|"builds insights"| node_recruiter
node_interview_routes -->|"manages sessions"| node_sessions
node_sessions -->|"generates questions"| node_questions
node_sessions -->|"evaluates answers"| node_evaluation
node_enterprise -->|"queries records"| node_models
node_cloud -->|"stores connector data"| node_models
node_ecosystem -->|"stores profiles"| node_models
node_models -.->|"persists entities"| node_database

click node_api "https://github.com/sanjayr0107/resumesphere-ai/blob/main/backend/main.py"
click node_resume_routes "https://github.com/sanjayr0107/resumesphere-ai/blob/main/backend/app/api/routes.py"
click node_parser "https://github.com/sanjayr0107/resumesphere-ai/blob/main/backend/app/services/parser_service.py"
click node_pipeline "https://github.com/sanjayr0107/resumesphere-ai/blob/main/backend/resume_pipeline.py"
click node_preprocess "https://github.com/sanjayr0107/resumesphere-ai/blob/main/backend/app/services/preprocessing_service.py"
click node_skills "https://github.com/sanjayr0107/resumesphere-ai/blob/main/backend/app/services/skill_extractor_service.py"
click node_sections "https://github.com/sanjayr0107/resumesphere-ai/blob/main/backend/app/services/section_service.py"
click node_ats "https://github.com/sanjayr0107/resumesphere-ai/blob/main/backend/app/services/ats_service.py"
click node_embeddings "https://github.com/sanjayr0107/resumesphere-ai/blob/main/backend/app/services/embedding_service.py"
click node_jobmatch "https://github.com/sanjayr0107/resumesphere-ai/blob/main/backend/app/services/job_match_service.py"
click node_recommendations "https://github.com/sanjayr0107/resumesphere-ai/blob/main/backend/app/services/recommendation_service.py"
click node_skillgap "https://github.com/sanjayr0107/resumesphere-ai/blob/main/backend/app/services/skill_gap_service.py"
click node_recruiter "https://github.com/sanjayr0107/resumesphere-ai/blob/main/backend/app/services/recruiter_service.py"
click node_interview_routes "https://github.com/sanjayr0107/resumesphere-ai/blob/main/backend/app/api/routes.py"
click node_sessions "https://github.com/sanjayr0107/resumesphere-ai/blob/main/backend/app/services/interview_session_service.py"
click node_questions "https://github.com/sanjayr0107/resumesphere-ai/blob/main/backend/app/services/interview_generator_service.py"
click node_evaluation "https://github.com/sanjayr0107/resumesphere-ai/blob/main/backend/app/services/interview_evaluator_service.py"
click node_enterprise "https://github.com/sanjayr0107/resumesphere-ai/blob/main/backend/app/api/routes_enterprise.py"
click node_learning "https://github.com/sanjayr0107/resumesphere-ai/blob/main/backend/app/api/routes_learning.py"
click node_talent "https://github.com/sanjayr0107/resumesphere-ai/blob/main/backend/app/api/routes_talent.py"
click node_marketplace "https://github.com/sanjayr0107/resumesphere-ai/blob/main/backend/app/api/routes_marketplace.py"
click node_network "https://github.com/sanjayr0107/resumesphere-ai/blob/main/backend/app/api/routes_network.py"
click node_ecosystem "https://github.com/sanjayr0107/resumesphere-ai/blob/main/backend/app/api/routes_ecosystem.py"
click node_copilot "https://github.com/sanjayr0107/resumesphere-ai/blob/main/backend/app/api/routes_copilot.py"
click node_cloud "https://github.com/sanjayr0107/resumesphere-ai/blob/main/backend/app/api/routes_cloud.py"
click node_saas "https://github.com/sanjayr0107/resumesphere-ai/blob/main/backend/app/api/routes_saas.py"
click node_platform_features "https://github.com/sanjayr0107/resumesphere-ai/blob/main/backend/app/api/routes_platform.py"
click node_models "https://github.com/sanjayr0107/resumesphere-ai/blob/main/backend/app/db/models.py"
click node_database "https://github.com/sanjayr0107/resumesphere-ai/blob/main/backend/app/db/database.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_api,node_resume_routes toneBlue
class node_parser,node_pipeline,node_preprocess,node_skills,node_sections,node_ats,node_embeddings,node_jobmatch,node_recommendations,node_skillgap,node_recruiter toneAmber
class node_interview_routes,node_sessions,node_questions,node_evaluation toneMint
class node_enterprise,node_learning,node_talent,node_marketplace,node_network,node_ecosystem,node_copilot toneRose
class node_cloud,node_saas,node_platform_features,node_models,node_database,node_user toneIndigo
```

## Components

### Application entry

- [FastAPI application](https://github.com/sanjayr0107/resumesphere-ai/blob/main/backend/main.py): `backend/main.py`
- [Resume API](https://github.com/sanjayr0107/resumesphere-ai/blob/main/backend/app/api/routes.py): `backend/app/api/routes.py`

### Resume intelligence

- [PDF extraction](https://github.com/sanjayr0107/resumesphere-ai/blob/main/backend/app/services/parser_service.py): `backend/app/services/parser_service.py`
- [Analysis pipeline](https://github.com/sanjayr0107/resumesphere-ai/blob/main/backend/resume_pipeline.py): `backend/resume_pipeline.py`
- [Text preprocessing](https://github.com/sanjayr0107/resumesphere-ai/blob/main/backend/app/services/preprocessing_service.py): `backend/app/services/preprocessing_service.py`
- [Skill extraction](https://github.com/sanjayr0107/resumesphere-ai/blob/main/backend/app/services/skill_extractor_service.py): `backend/app/services/skill_extractor_service.py`
- [Section detection](https://github.com/sanjayr0107/resumesphere-ai/blob/main/backend/app/services/section_service.py): `backend/app/services/section_service.py`
- [ATS scoring](https://github.com/sanjayr0107/resumesphere-ai/blob/main/backend/app/services/ats_service.py): `backend/app/services/ats_service.py`
- [Semantic embeddings](https://github.com/sanjayr0107/resumesphere-ai/blob/main/backend/app/services/embedding_service.py): `backend/app/services/embedding_service.py`
- [Job matching](https://github.com/sanjayr0107/resumesphere-ai/blob/main/backend/app/services/job_match_service.py): `backend/app/services/job_match_service.py`
- [Job recommendations](https://github.com/sanjayr0107/resumesphere-ai/blob/main/backend/app/services/recommendation_service.py): `backend/app/services/recommendation_service.py`
- [Skill gap analysis](https://github.com/sanjayr0107/resumesphere-ai/blob/main/backend/app/services/skill_gap_service.py): `backend/app/services/skill_gap_service.py`
- [Recruiter insights](https://github.com/sanjayr0107/resumesphere-ai/blob/main/backend/app/services/recruiter_service.py): `backend/app/services/recruiter_service.py`

### Interview practice

- [Interview API](https://github.com/sanjayr0107/resumesphere-ai/blob/main/backend/app/api/routes.py): `backend/app/api/routes.py`
- [Interview sessions](https://github.com/sanjayr0107/resumesphere-ai/blob/main/backend/app/services/interview_session_service.py): `backend/app/services/interview_session_service.py`
- [Question generation](https://github.com/sanjayr0107/resumesphere-ai/blob/main/backend/app/services/interview_generator_service.py): `backend/app/services/interview_generator_service.py`
- [Answer evaluation](https://github.com/sanjayr0107/resumesphere-ai/blob/main/backend/app/services/interview_evaluator_service.py): `backend/app/services/interview_evaluator_service.py`

### Career services

- [Recruiter workspace](https://github.com/sanjayr0107/resumesphere-ai/blob/main/backend/app/api/routes_enterprise.py): `backend/app/api/routes_enterprise.py`
- [Learning features](https://github.com/sanjayr0107/resumesphere-ai/blob/main/backend/app/api/routes_learning.py): `backend/app/api/routes_learning.py`
- [Talent services](https://github.com/sanjayr0107/resumesphere-ai/blob/main/backend/app/api/routes_talent.py): `backend/app/api/routes_talent.py`
- [AI marketplace](https://github.com/sanjayr0107/resumesphere-ai/blob/main/backend/app/api/routes_marketplace.py): `backend/app/api/routes_marketplace.py`
- [Talent network](https://github.com/sanjayr0107/resumesphere-ai/blob/main/backend/app/api/routes_network.py): `backend/app/api/routes_network.py`
- [Career ecosystem](https://github.com/sanjayr0107/resumesphere-ai/blob/main/backend/app/api/routes_ecosystem.py): `backend/app/api/routes_ecosystem.py`
- [Career copilot](https://github.com/sanjayr0107/resumesphere-ai/blob/main/backend/app/api/routes_copilot.py): `backend/app/api/routes_copilot.py`

### Platform capabilities

- [Cloud connectors](https://github.com/sanjayr0107/resumesphere-ai/blob/main/backend/app/api/routes_cloud.py): `backend/app/api/routes_cloud.py`
- [Enterprise SaaS](https://github.com/sanjayr0107/resumesphere-ai/blob/main/backend/app/api/routes_saas.py): `backend/app/api/routes_saas.py`
- [App ecosystem](https://github.com/sanjayr0107/resumesphere-ai/blob/main/backend/app/api/routes_platform.py): `backend/app/api/routes_platform.py`
- [Application data](https://github.com/sanjayr0107/resumesphere-ai/blob/main/backend/app/db/models.py): `backend/app/db/models.py`
- [SQLite database](https://github.com/sanjayr0107/resumesphere-ai/blob/main/backend/app/db/database.py): `backend/app/db/database.py`

### Other components

- **Job seeker / recruiter**

## Connections

- Job seeker / recruiter → FastAPI application: sends requests (evidence: `README.md`)
- FastAPI application → Resume API: registers router (evidence: `backend/main.py`)
- FastAPI application → Recruiter workspace: registers router (evidence: `backend/main.py`)
- FastAPI application → Cloud connectors: registers router (evidence: `backend/main.py`)
- FastAPI application → Career ecosystem: registers router (evidence: `backend/main.py`)
- FastAPI application → Learning features: registers router (evidence: `backend/main.py`)
- FastAPI application → AI marketplace: registers router (evidence: `backend/main.py`)
- FastAPI application → Talent network: registers router (evidence: `backend/main.py`)
- FastAPI application → Talent services: registers router (evidence: `backend/main.py`)
- FastAPI application → Career copilot: registers router (evidence: `backend/main.py`)
- FastAPI application → Enterprise SaaS: registers router (evidence: `backend/main.py`)
- FastAPI application → App ecosystem: registers router (evidence: `backend/main.py`)
- Resume API → PDF extraction: extracts PDF text (evidence: `backend/app/api/routes.py`)
- Resume API → Analysis pipeline: runs analysis (evidence: `backend/app/api/routes.py`)
- Analysis pipeline → Text preprocessing: cleans text (evidence: `backend/resume_pipeline.py`)
- Analysis pipeline → Skill extraction: extracts skills (evidence: `backend/resume_pipeline.py`)
- Analysis pipeline → Section detection: detects sections (evidence: `backend/resume_pipeline.py`)
- Analysis pipeline → ATS scoring: scores resume (evidence: `backend/resume_pipeline.py`)
- Analysis pipeline → Semantic embeddings: creates embeddings (evidence: `backend/resume_pipeline.py`)
- Analysis pipeline → Job matching: matches jobs (evidence: `backend/resume_pipeline.py`)
- Analysis pipeline → Job recommendations: gets recommendations (evidence: `backend/resume_pipeline.py`)
- Analysis pipeline → Skill gap analysis: analyzes gaps (evidence: `backend/resume_pipeline.py`)
- Analysis pipeline → Recruiter insights: builds insights (evidence: `backend/resume_pipeline.py`)
- Interview API → Interview sessions: manages sessions (evidence: `backend/app/api/routes.py`)
- Interview sessions → Question generation: generates questions (evidence: `backend/app/services/interview_session_service.py`)
- Interview sessions → Answer evaluation: evaluates answers (evidence: `backend/app/services/interview_session_service.py`)
- Recruiter workspace → Application data: queries records (evidence: `backend/app/api/routes_enterprise.py`)
- Cloud connectors → Application data: stores connector data (evidence: `backend/app/api/routes_cloud.py`)
- Career ecosystem → Application data: stores profiles (evidence: `backend/app/api/routes_ecosystem.py`)
- Application data → SQLite database: persists entities
