This project is part of the AI Studio 2024 Challenge in collaboration with Candogram Inc., a leading provider of job market education. The goal is to analyze and classify job postings with the word "engineer" in their titles to create meaningful job title clusters and visualize these clusters effectively. This is my version of the project, my peers also have their own iterations which you should check out too!
- Analyze ~20,000 job postings containing the word "engineer."
- Group job titles into clusters (e.g., software engineer, civil engineer) using natural language processing (NLP) and clustering techniques.
- Provide a scatterplot visualization of the clusters and assign job titles to each cluster.
The dataset contains 20,138 job postings in a CSV format with the following fields:
RequisitionIDOrigJobTitleJobTitleJobDescription
- Remove HTML tags from job descriptions.
- Isolate job description text from other sections of the postings.
- Convert job descriptions into embeddings for clustering.
-
Data Cleaning:
- Remove HTML code from job postings.
- Extract relevant job description sentences (marketing, requirements, legal, etc.).
-
Vectorization:
- Convert job descriptions into vectors using techniques like FastText or similar.
-
Clustering Algorithms:
- Apply KMeans and Latent Dirichlet Allocation (LDA) for clustering.
- Development Tools: Jupyter Notebook, Python Virtual Environment
- Libraries: Pandas, Scikit-learn, matplotlib, pyLDAvis, FastText, GPT-4o mini API
- Scatterplot of clustered jobs.
- Cluster-wise job titles with insights into their common features.
- Python 3.9+
- Virtual environment set up in the project directory
- Clone this repository:
git clone https://github.com/iDaManall/job-title-generalization.git
- Navigate to the project directory:
cd your-repo-name - Create a virtual environment and install dependencies:
python3 -m venv env source env/bin/activate # or env\Scripts\activate on Windows pip install -r requirements.txt
- Download and prepare the dataset in the
data/folder. - Launch Jupyter Notebook:
jupyter notebook
We welcome contributions to improve the clustering accuracy or add new features. Please follow these steps:
- Fork this repository.
- Create a feature branch:
git checkout -b feature-name
- Commit changes and push to your branch:
git push origin feature-name
- Create a pull request.
This project is licensed under the MIT License. See the LICENSE file for details.
- Candogram Inc. for providing the dataset and challenge framework.
- References: