A simple end-to-end demo for job title recommendations using classical ML. Train a RandomForestClassifier
on text features, then serve predictions via a Streamlit app.
- Training: Build model from tabular/text data (company, skills, description)
- Serving: Interactive UI with Streamlit
- Artifacts: Saves
job_recommendation_model.pkl
,vectorizer.pkl
,label_encoder.pkl
app/
app1.py # Streamlit UI
model/
al.py # Training script (creates .pkl artifacts)
data/
raw_data/
fake_news_dataset.csv # Sample placeholder (not used by current training script)
README.md
See requirements.txt
. Install with:
pip install -r requirements.txt
Contents:
pandas
numpy
matplotlib
seaborn
scikit-learn
joblib
streamlit
- Ensure Python 3.9+ is installed.
- Create and activate a virtual environment (recommended):
python -m venv .venv
# Windows PowerShell
. .venv\Scripts\Activate.ps1
- Install dependencies:
pip install -r requirements.txt
- The training script
model/al.py
currently reads a dataset from an absolute path:C:\Users\indur\Downloads\job_recommendation_dataset.csv
- Update this path inside
model/al.py
to point to your dataset, or place your CSV in the repo and use a relative path (e.g.,data/raw_data/job_recommendation_dataset.csv
). - Required columns expected by the script:
Job Title
,Company
,Skills Required
,Description
.
Run the training script to produce the model artifacts:
python model/al.py
This will save:
job_recommendation_model.pkl
vectorizer.pkl
label_encoder.pkl
Start the Streamlit app:
streamlit run app/app1.py
Then open the URL shown in the terminal (usually http://localhost:8501
).
- Enter optional Company, comma-separated Skills, and an optional Description.
- Click "Recommend Job" to see the predicted job title.
- If you see file-not-found errors for
.pkl
files, run the training step first. - If you see a CSV path error, fix the dataset path in
model/al.py
. - For best results, ensure your dataset contains the expected columns and encoding (UTF-8).
This project is for educational/demo purposes. Add a license if you plan to distribute.
- Built with
pandas
,scikit-learn
, andstreamlit
.