{"id":29253471,"url":"https://github.com/saket0x07/resume-scanner","last_synced_at":"2026-04-19T14:32:39.966Z","repository":{"id":302627436,"uuid":"1013089636","full_name":"saket0x07/resume-scanner","owner":"saket0x07","description":"An NLP-powered Resume Scanner built with Python and Streamlit. Upload job descriptions and resumes, and instantly rank candidates based on semantic similarity using SpaCy and NLTK.","archived":false,"fork":false,"pushed_at":"2025-07-03T10:56:34.000Z","size":10,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-07-23T14:42:43.579Z","etag":null,"topics":["ai-tools","jobmatching","nlp","nltk","resume-scanner","spacy","streamlit","text-similarity"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/saket0x07.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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,"zenodo":null}},"created_at":"2025-07-03T10:42:57.000Z","updated_at":"2025-07-03T11:00:52.000Z","dependencies_parsed_at":"2025-07-03T11:49:29.068Z","dependency_job_id":"029c0125-b109-4631-9f61-d51ec253648a","html_url":"https://github.com/saket0x07/resume-scanner","commit_stats":null,"previous_names":["saket0x07/resume-scanner"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/saket0x07/resume-scanner","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/saket0x07%2Fresume-scanner","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/saket0x07%2Fresume-scanner/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/saket0x07%2Fresume-scanner/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/saket0x07%2Fresume-scanner/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/saket0x07","download_url":"https://codeload.github.com/saket0x07/resume-scanner/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/saket0x07%2Fresume-scanner/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32009847,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-18T20:23:30.271Z","status":"online","status_checked_at":"2026-04-19T02:00:07.110Z","response_time":55,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["ai-tools","jobmatching","nlp","nltk","resume-scanner","spacy","streamlit","text-similarity"],"created_at":"2025-07-04T02:02:43.948Z","updated_at":"2026-04-19T14:32:39.795Z","avatar_url":"https://github.com/saket0x07.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 🔍 Resume Scanner using NLP\n\nA smart resume scanner built with Python and NLP to parse and rank resumes based on their similarity to a given job description. Designed for recruiters and developers to simplify hiring decisions.\n\n![Streamlit](https://img.shields.io/badge/Built%20With-Streamlit-blue?logo=streamlit)\n![SpaCy](https://img.shields.io/badge/NLP-SpaCy-green?logo=spacy)\n![Python](https://img.shields.io/badge/Python-3.10+-yellow?logo=python)\n\n---\n\n## 🚀 Features\n\n- 📂 Upload job descriptions and multiple resumes (PDF or DOCX)\n- 🧠 Semantic matching using SpaCy's word vectors\n- 📊 Resume ranking with similarity scores (scaled to %)\n- 🧹 Text cleaning and preprocessing with NLTK\n- ⚡ Intuitive Streamlit interface for instant insights\n\n---\n\n## 🧰 Tech Stack\n\n| Layer         | Libraries / Tools     |\n|---------------|-----------------------|\n| Language      | Python                |\n| NLP           | SpaCy, NLTK           |\n| Parsing       | PyMuPDF, docx2txt     |\n| Frontend UI   | Streamlit             |\n\n---\n\n## 📦 Installation\n\n```bash\ngit clone https://github.com/saket0x07/resume-scanner.git\ncd resume-scanner\npip install -r requirements.txt\npython -m spacy download en_core_web_md\nstreamlit run app.py\n\n---\n\n## 📄 How It Works\nUpload a job description in .txt format.\nUpload one or more resumes in .pdf or .docx.\nThe app extracts and cleans the text, computes semantic similarity, and ranks resumes by relevance.\nResults are displayed with percentage-based scores.\n\n---\n\n## Project Structure\n\nresume-scanner/\n├── app.py\n├── requirements.txt\n├── utils/\n│   ├── extract.py\n│   ├── preprocess.py\n│   ├── match.py\n│   └── ranker.py\n├── components/\n│   ├── sidebar.py\n│   ├── display.py\n│   └── loader.py\n├── data/\n│   ├── resumes/\n│   └── job_descriptions/\n├── assets/\n│   ├── styles.css\n│   └── logo.png\n└── README.md\n\n\n##\nAuthor\nSaket 👨‍💻 GitHub: @saket0x07 📅 Created: July 2025\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsaket0x07%2Fresume-scanner","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsaket0x07%2Fresume-scanner","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsaket0x07%2Fresume-scanner/lists"}