{"id":23388279,"url":"https://github.com/djdhairya/resume-categorization","last_synced_at":"2026-04-10T20:52:42.551Z","repository":{"id":268453501,"uuid":"904414206","full_name":"djdhairya/Resume-Categorization","owner":"djdhairya","description":"The Resume Categorization App helps automate the process of categorizing resumes into different job domains using machine learning. It provides a user-friendly interface for uploading resumes, categorizing them, and downloading the results.","archived":false,"fork":false,"pushed_at":"2024-12-16T21:01:25.000Z","size":214,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-08T13:21:59.516Z","etag":null,"topics":["accuracy","logistic-regression","machine-learning","matplotlib","pandas","pkl","pypdf2","sickit-learn","streamlit"],"latest_commit_sha":null,"homepage":"","language":"Jupyter Notebook","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/djdhairya.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-12-16T21:00:17.000Z","updated_at":"2024-12-16T21:02:53.000Z","dependencies_parsed_at":"2024-12-16T21:51:34.026Z","dependency_job_id":"df7d5c80-3ae1-419f-9ec0-ae2e7cc92f4c","html_url":"https://github.com/djdhairya/Resume-Categorization","commit_stats":null,"previous_names":["djdhairya/resume-categorization"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/djdhairya%2FResume-Categorization","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/djdhairya%2FResume-Categorization/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/djdhairya%2FResume-Categorization/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/djdhairya%2FResume-Categorization/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/djdhairya","download_url":"https://codeload.github.com/djdhairya/Resume-Categorization/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247848156,"owners_count":21006202,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["accuracy","logistic-regression","machine-learning","matplotlib","pandas","pkl","pypdf2","sickit-learn","streamlit"],"created_at":"2024-12-22T02:18:31.098Z","updated_at":"2026-04-10T20:52:42.498Z","avatar_url":"https://github.com/djdhairya.png","language":"Jupyter Notebook","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n# Resume Categorization App\n\n## Overview\n\nThis is a **Resume Categorization** app built using **Streamlit** and **Machine Learning**. The app allows users to upload resumes in PDF format, which are then categorized into various job domains using a **Logistic Regression** model. The app stores categorized resumes in folders and generates a CSV file containing the filename and corresponding category.\n\n## Project Structure\n\n```\nResume-Categorization/\n│\n├── app.py                   \n├── application.ipynb        \n├── model/                   \n│   ├── model.pkl            \n│   └── tfidf.pkl            \n├── data/\n│   └── ResumeDataSet.csv    \n```\n\n## Requirements\n\nTo run this app, you will need to install the following dependencies:\n\n- Python \n- Streamlit\n- scikit-learn\n- PyPDF2\n- pandas\n- pickle\n\n\n\n## How to Use\n\n### 1. Launch the App\nRun the Streamlit app by executing:\n\n```bash\nstreamlit run app.py\n```\n\nThis will start the Streamlit app and open it in your browser.\n\n### 2. Upload Resumes\n- Click the file uploader to select multiple PDF resumes for processing.\n- The app will process the resumes and categorize them based on their content.\n\n### 3. Categorize the Resumes\n- After uploading the resumes, click the \"Categorize Resumes\" button.\n- The app will display a table with the filename and its assigned category.\n- The categorized resumes will be stored in folders named after the predicted categories.\n\n### 4. Download Results\n- After categorization, you can download the results as a CSV file that contains the filenames and their respective categories.\n- The CSV file will be available for download directly from the app.\n\n### 5. Directory Structure\n- The categorized resumes will be stored in the output directory, organized into folders for each category.\n  - Example: `categorized_resumes/Java Developer/Resume1.pdf`\n\n## File Descriptions\n\n### `app.py`\n\nThis file contains the Streamlit application code. It handles:\n- Uploading resumes\n- Categorizing the resumes using the pre-trained model\n- Saving the categorized resumes in respective folders\n- Generating and providing a downloadable CSV file with the results\n\n### `application.ipynb`\n\nThis Jupyter Notebook is used for:\n- Training the machine learning model using a dataset of resumes (`ResumeDataSet.csv`).\n- Evaluating the model's performance.\n- Saving the trained model (`model.pkl`) and the TF-IDF vectorizer (`tfidf.pkl`).\n\n### `model/model.pkl`\n\nThis is the trained **Logistic Regression** model used to categorize resumes. It is used by the `app.py` file to predict the category of the uploaded resume.\n\n### `model/tfidf.pkl`\n\nThis file contains the **TF-IDF vectorizer** that is used to transform the text data (cleaned resume) into numerical features that can be fed into the model for categorization.\n\n### `data/ResumeDataSet.csv`\n\nThis CSV file contains the dataset of resumes used to train the machine learning model. Each row represents a resume with its associated category.\n\n## Category Mapping\n\nThe app categorizes resumes into the following job domains:\n\n- **0**: Advocate\n- **1**: Arts\n- **2**: Automation Testing\n- **3**: Blockchain\n- **4**: Business Analyst\n- **5**: Civil Engineer\n- **6**: Data Science\n- **7**: Database\n- **8**: DevOps Engineer\n- **9**: DotNet Developer\n- **10**: ETL Developer\n- **11**: Electrical Engineering\n- **12**: HR\n- **13**: Hadoop\n- **14**: Health and Fitness\n- **15**: Java Developer\n- **16**: Mechanical Engineer\n- **17**: Network Security Engineer\n- **18**: Operations Manager\n- **19**: PMO\n- **20**: Python Developer\n- **21**: SAP Developer\n- **22**: Sales\n- **23**: Testing\n- **24**: Web Designing\n\n## Conclusion\n\nThe Resume Categorization App helps automate the process of categorizing resumes into different job domains using machine learning. It provides a user-friendly interface for uploading resumes, categorizing them, and downloading the results.\n\n![Screenshot 2024-12-17 002247](https://github.com/user-attachments/assets/90e52558-981d-40c6-81db-4f52090ac739)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdjdhairya%2Fresume-categorization","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdjdhairya%2Fresume-categorization","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdjdhairya%2Fresume-categorization/lists"}