Skip to content

Skill2Salary is a smart salary prediction platform designed to help users estimate their expected salary based on educational background, work experience, and job preferences. Powered by machine learning, the app uses real-world data to make informed predictions and guide users in career planning.

License

Notifications You must be signed in to change notification settings

akash85246/Skill2Salary

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

14 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

Contributors Forks Stargazers Issues LinkedIn


Logo

Skill2Salary-ml

An awesome personal book review platform where user can share his reviews of books.
Report Bug ยท Request Feature . Contribute . Pull Requests . Report Security Issue . Fork the Project

Table of Contents
  1. About The Project
  2. Getting Started
  3. Usage
  4. Behind the Scenes
  5. Tips for Better Predictions
  6. Contributing
  7. Contact
  8. Acknowledgments

About The Project

Product Name Screen Shot

Skill2Salary is a smart salary prediction platform designed to help users estimate their expected salary based on educational background, work experience, and job preferences. Powered by machine learning, the app uses real-world data to make informed predictions and guide users in career planning.

Features

  • Salary Prediction Engine: Predicts salaries based on user input such as education, experience, job level, and location.
  • Advanced Ensemble Models: Utilizes ensemble techniques like Stacking, Random Forest, and Gradient Boosting for robust predictions.
  • Hyperparameter Tuning: Implements both GridSearchCV and RandomizedSearchCV to optimize model performance.
  • Streamlit-Based UI: Clean and interactive user interface built entirely with Streamlit for real-time predictions.
  • Categorical Feature Encoding: Uses OrdinalEncoder with controlled category ordering and handles unknown categories gracefully.
  • Feature Engineering: Includes derived metrics like experience buckets, combined experience score, and average academic score for improved accuracy.
  • Log-Salary Handling: Trained on log-transformed salary data to handle skewed distributions, with inverse transformation for final output.
  • Responsive Input Forms: Organizes user inputs into logical sections (education, job, company) for a better user experience.
  • Lightweight and Fast: No authentication, no databaseโ€”runs purely as a lightweight local or cloud-hosted app.
  • Deployment Ready: Easily deployable on platforms like Render, HuggingFace Spaces, or Streamlit Cloud.

(back to top)

Built With

Built with cutting-edge technologies to deliver performance and reliability.

  • Python
  • Pandas
  • Scikit-Learn
  • Streamlit
  • NumPy
  • Matplotlib
  • Git
  • GitHub

(back to top)

Getting Started

Get started quickly with these easy setup instructions.

๐Ÿ› ๏ธ Prerequisites

Before you begin, make sure you have the following installed and configured:

  • Python 3.8+: Download Python
  • pip: Comes pre-installed with Python. Used to install Python packages.
  • Streamlit: Install using pip install streamlit (Streamlit Docs)
  • Scikit-learn: Install using pip install scikit-learn
  • Pandas & NumPy: Install using pip install pandas numpy
  • Matplotlib or Seaborn (optional): For data visualization
    pip install matplotlib seaborn
  • Git: Download Git to clone the repository or manage version control
  • Jupyter Notebook (optional): For experimentation before deployment
    pip install notebook

Recommended Knowledge

To make the most out of this project, it helps to be familiar with:

  • Machine Learning Concepts
  • Data Preprocessing & Feature Engineering
  • Python & Pandas
  • Model Evaluation & Hyperparameter Tuning

๐Ÿš€ Installation

Follow these steps to set up the Skill2Salary project locally:


  1. Clone the Repository
git clone https://github.com/akash85246/Skill2Salary-ml.git
cd Skill2Salary-ml

  1. Create and Activate a Virtual Environment (Optional but recommended)
python -m venv venv
source venv/bin/activate      # On Windows: venv\Scripts\activate

  1. Install Python Dependencies
pip install -r requirements.txt

If you donโ€™t have a requirements.txt, install manually:

pip install streamlit pandas numpy scikit-learn

  1. Ensure Model Artifacts are Present

Make sure the following files are inside the model/ directory:

  • model.pkl โ€“ Trained ensemble model
  • oe.pkl โ€“ OrdinalEncoder used during training
  • selector.pkl โ€“ Feature selector (e.g., SelectKBest)
  • columns.pkl โ€“ List of columns used during training

These files are required for prediction and must match the training pipeline.


  1. Run the Streamlit App
streamlit run app.py

  1. (Optional): Explore the Jupyter Notebooks for Training & Tuning
jupyter notebook

You can explore training workflows like feature selection, model tuning (GridSearchCV, RandomizedSearchCV), and ensemble building.


๐Ÿ“Œ Note: This project doesn't require any database or authentication setup. It's a lightweight, ML-powered web app built purely with Streamlit for UI and scikit-learn for prediction.

(back to top)

๐Ÿ“ˆ Usage

Using the Skill2Salary application is simple and intuitive. Here's how to get started:


๐ŸŽฏ Predicting Your Salary

  1. Launch the App

    streamlit run app.py
  2. Fill in Your Details
    Provide your:

    • Education level
    • 10th and 12th grade marks
    • College CGPA
    • Work experience in years
    • Job seniority level
    • Company size and location
    • Year you started working
  3. Click on the "๐Ÿ” Predict Salary" Button
    The model processes your input and returns a salary estimate based on advanced ensemble regression models.


Behind the Scenes

  • The app uses a Stacked Ensemble Regressor trained on industry-level salary datasets.
  • Features are processed using:
    • OrdinalEncoder with predefined categories.
    • SelectKBest for feature selection.
  • Log-transformed salaries are predicted and converted back using np.expm1() for more accurate skewed distribution modeling.

Tips for Better Predictions

  • Use real or realistic inputs to get meaningful results.
  • The model was trained with robust hyperparameter tuning (GridSearchCV and RandomizedSearchCV).
  • Try different combinations of job roles and experience levels to understand how they affect salary.

(back to top)

See the open issues for a full list of proposed features (and known issues).

(back to top)

Contributing

Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.

If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again!

  1. Fork the Project

    • Click the "Fork" button at the top-right corner of this page to create a copy of the repository in your GitHub account.
  2. Clone the Repository

    • Clone your forked repository to your local machine:
      git clone https://github.com/your-username/Skill2Salary-ml.git
  3. Create Your Feature Branch

    • Navigate to your project folder and create a new branch for your feature:
      git checkout -b feature/AmazingFeature
  4. Commit Your Changes

    • After making the necessary changes, commit them:
      git commit -m 'Add some AmazingFeature'
  5. Push to the Branch

    • Push your changes to your forked repository:
      git push origin feature/AmazingFeature
  6. Open a Pull Request

    • Go to the original repository (akash85246/Skill2Salary-ml), and open a pull request to merge your feature branch into the main branch.
    • Provide a brief description of the changes you've made and submit the pull request for review.

Top contributors:

contrib.rocks image

(back to top)

Contact

Akash Rajput - @akash_rajp91025 - akash.rajput.dev@gmail.com

Project Link: https://github.com/akash85246/Skill2Salary-ml

(back to top)

About

Skill2Salary is a smart salary prediction platform designed to help users estimate their expected salary based on educational background, work experience, and job preferences. Powered by machine learning, the app uses real-world data to make informed predictions and guide users in career planning.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published