# naveen2002-ncg/career-recommendation-system architecture

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

- Interactive diagram: https://gitdiagram.com/naveen2002-ncg/career-recommendation-system
- Repository: https://github.com/naveen2002-ncg/career-recommendation-system

## Overview

This is a Streamlit career-recommendation app. A user supplies skills, certifications, industry interests, education, and experience; the app encodes those inputs, predicts career probabilities, applies keyword boosts, ranks the results, and displays the top three with confidence scores. A separate training script reads the career CSV, encodes features and labels, trains a balanced Random Forest, and saves the model and encoders used by the app. The graph reflects the sampled app and training code; Firebase login and history are documented only as future scope.

Main entry points: [`app.py`](https://github.com/naveen2002-ncg/career-recommendation-system/blob/main/app.py) (Career prediction), [`train_model.py`](https://github.com/naveen2002-ncg/career-recommendation-system/blob/main/train_model.py) (Model training), [`model`](https://github.com/naveen2002-ncg/career-recommendation-system/tree/main/model) (Model and encoders), [`data/career_data.csv`](https://github.com/naveen2002-ncg/career-recommendation-system/blob/main/data/career_data.csv) (Career dataset)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_recommendation["Recommendations"]
  node_inputs["Profile inputs<br/>[app.py]"]
  node_encoding["Feature encoding<br/>[app.py]"]
  node_prediction["Career prediction<br/>[app.py]"]
  node_boost_rank["Boost and rank<br/>[app.py]"]
  node_results["Top recommendations<br/>[app.py]"]
end

subgraph group_training["Model training"]
  node_trainer["Model training<br/>[train_model.py]"]
end

subgraph group_data["Data and artifacts"]
  node_career_data["Career dataset<br/>[career_data.csv]"]
  node_model_assets["Model and encoders"]
end

node_user(("Career seeker"))

node_user -->|"provides profile"| node_inputs
node_inputs -->|"encodes features"| node_encoding
node_encoding -->|"predicts probabilities"| node_prediction
node_prediction -->|"boosts and sorts"| node_boost_rank
node_boost_rank -->|"displays top three"| node_results
node_trainer -->|"reads"| node_career_data
node_trainer -->|"saves model and encoders"| node_model_assets
node_prediction -->|"uses classifier"| node_model_assets

click node_inputs "https://github.com/naveen2002-ncg/career-recommendation-system/blob/main/app.py"
click node_encoding "https://github.com/naveen2002-ncg/career-recommendation-system/blob/main/app.py"
click node_prediction "https://github.com/naveen2002-ncg/career-recommendation-system/blob/main/app.py"
click node_boost_rank "https://github.com/naveen2002-ncg/career-recommendation-system/blob/main/app.py"
click node_results "https://github.com/naveen2002-ncg/career-recommendation-system/blob/main/app.py"
click node_trainer "https://github.com/naveen2002-ncg/career-recommendation-system/blob/main/train_model.py"
click node_career_data "https://github.com/naveen2002-ncg/career-recommendation-system/blob/main/data/career_data.csv"
click node_model_assets "https://github.com/naveen2002-ncg/career-recommendation-system/tree/main/model"

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_inputs,node_encoding,node_prediction,node_boost_rank,node_results toneBlue
class node_trainer toneAmber
class node_career_data,node_model_assets toneMint
class node_user toneIndigo
```

## Components

### Recommendations

- [Profile inputs](https://github.com/naveen2002-ncg/career-recommendation-system/blob/main/app.py): `app.py`
- [Feature encoding](https://github.com/naveen2002-ncg/career-recommendation-system/blob/main/app.py): `app.py`
- [Career prediction](https://github.com/naveen2002-ncg/career-recommendation-system/blob/main/app.py): `app.py`
- [Boost and rank](https://github.com/naveen2002-ncg/career-recommendation-system/blob/main/app.py): `app.py`
- [Top recommendations](https://github.com/naveen2002-ncg/career-recommendation-system/blob/main/app.py): `app.py`

### Model training

- [Model training](https://github.com/naveen2002-ncg/career-recommendation-system/blob/main/train_model.py): `train_model.py`

### Data and artifacts

- [Career dataset](https://github.com/naveen2002-ncg/career-recommendation-system/blob/main/data/career_data.csv): `data/career_data.csv`
- [Model and encoders](https://github.com/naveen2002-ncg/career-recommendation-system/tree/main/model): `model`

### Other components

- **Career seeker**

## Connections

- Career seeker → Profile inputs: provides profile (evidence: `app.py`)
- Profile inputs → Feature encoding: encodes features (evidence: `app.py`)
- Feature encoding → Career prediction: predicts probabilities (evidence: `app.py`)
- Career prediction → Boost and rank: boosts and sorts (evidence: `app.py`)
- Boost and rank → Top recommendations: displays top three (evidence: `app.py`)
- Model training → Career dataset: reads (evidence: `train_model.py`)
- Model training → Model and encoders: saves model and encoders (evidence: `train_model.py`)
- Career prediction → Model and encoders: uses classifier (evidence: `app.py`)
