An intelligent job recommendation system that scrapes live job postings and delivers personalized job matches using semantic similarity powered by transformer models.
This project helps job seekers discover relevant opportunities by combining:
- 📡 Real-time job scraping
- 📄 Resume analysis
- 🧠 Transformer-based NLP matching
Unlike traditional systems that rely on keyword matching, this system understands context and meaning, providing more accurate recommendations.
- Dynamically fetches job listings from RemoteOK, Adzuna Api
- Ensures up-to-date job recommendations
- Extracts skills and relevant information from uploaded resumes
- Supports structured and unstructured formats
- Uses Sentence Transformers to generate embeddings
- Computes Cosine Similarity to rank job relevance
- Upload resume OR input skills manually
- Combines both for improved accuracy
- Recommendations are generated only when triggered
- Efficient and scalable design
User Input / Resume
↓
Resume Parsing (NLP)
↓
Skill Extraction
↓
Job Scraper (Live Data)
↓
Text Embedding (Sentence Transformers)
↓
Similarity Matching (Cosine Similarity)
↓
Top Job Recommendations
- Python 3.11
- Streamlit – Interactive UI
- Pandas / NumPy – Data processing
- Sentence Transformers – Semantic embeddings
- Scikit-learn – Cosine similarity
- Requests – Web scraping
Job_Recommender/
│
├── app.py # Streamlit app entry point
├── job_scraper.py # Job scraping logic
├── recommender.py # Recommendation engine
├── requirements.txt
└── README.md# Clone repository
git clone https://github.com/Codaks-py/Job_Recommender.git
# Navigate into project
cd Job_Recommender
# Create virtual environment
python -m venv venv
# Activate environment
venv\Scripts\activate # Windows
source venv/bin/activate # Mac/Linux
# Install dependencies
pip install -r requirements.txtstreamlit run app.py- Upload your resume OR enter skills manually
- Click "Get Recommendations"
- View ranked job matches instantly
link: https://jobrecommenderapp.streamlit.app/
The system returns:
- 💼 Job Title
- 🏢 Company
- 📈 Match Score (%)
- 🧠 Relevant Skills
- 🔗 Job Link
This system uses semantic similarity powered by transformer models:
- Text from resumes and job descriptions is encoded using Sentence Transformers
- Each input is converted into a dense vector (embedding)
- Cosine similarity is used to measure closeness
- Jobs are ranked based on semantic relevance
-
Understands context, not just keywords
-
Matches similar meanings:
- "ML Engineer" ≈ "Machine Learning Developer"
-
Significantly more accurate than traditional methods
This project demonstrates a real-world NLP application using:
- Transformer-based embeddings
- Semantic search / retrieval systems
- End-to-end ML pipeline integration
Similar techniques are used in modern platforms like LinkedIn and Indeed.
- Combines ML + NLP + Data Engineering + UI
- Uses real-time job data (not static datasets)
- Implements transformer-based recommendation system
- Built as an end-to-end deployable application
- 🌐 Multi-source job scraping
- 🤖 Upgrade to advanced embeddings (fine-tuned models)
Contributions are welcome!
git checkout -b feature-name
git commit -m "Add feature"
git push origin feature-name