A Flask-based web application that analyzes job postings and provides insights into the job market. The platform extracts skills from job advertisements, evaluates job descriptions, recommends similar jobs, and tracks trending skills using Redis data structures.
The system collects job data from publicly available job listing websites and processes it using Natural Language Processing (NLP) and machine learning techniques.
- Analyze job descriptions to extract required skills.
- Evaluate job listings using NLP-based techniques.
- Analyze patterns across multiple job postings.
- Identify frequently requested skills.
- Uses HyperLogLog to track trending skills efficiently.
- Handles large-scale skill tracking with minimal memory usage.
- Uses SkillNer + spaCy models to extract professional skills from job descriptions.
- Uses Sentence Transformers to generate semantic embeddings.
- Finds similar job listings using vector similarity.
- Uses RapidFuzz for fast fuzzy matching between job descriptions.
- Compare and evaluate job postings using NLP similarity techniques.
- Efficient pagination for browsing large job datasets.
- Redis caching layer improves response speed and reduces database queries.
- Job data is collected from publicly accessible job listing websites using Scrapy.
- Python
- Flask
- Redis
- PostgreSQL
- SQLAlchemy
- spaCy
- SkillNer
- Sentence Transformers
- RapidFuzz
- Scikit-learn
- PyTorch
- Scrapy
- HTML
- CSS
- JavaScript
- Pandas
- NumPy
Scrapy Crawlers
│
▼
PostgreSQL Database
│
▼
Flask API Layer
│
├── Redis Cache
│ └── HyperLogLog (Trending Skills)
│
├── NLP Processing
│ ├── SkillNer (Skill Extraction)
│ ├── RapidFuzz (Text Similarity)
│ └── Sentence Transformers (Job Similarity)
│
▼
Frontend (HTML / CSS / JavaScript)
git clone https://github.com/Simon0017/JobWebApp.git
cd JobWebApppython -m venv venvActivate it:
source venv/bin/activatevenv\Scripts\activatepip install -r requirements.txtCreate a .env file:
POSTGRES_HOST=localhost
POSTGRES_PORT=5432
POSTGRES_DB=****
POSTGRES_USER=***
POSTGRES_PASSWORD=****
DATABASE_URL=****************************
Make sure the Redis server is running:
redis-serverflask runApplication will start at:
http://127.0.0.1:5000
| Library | Purpose |
|---|---|
| Flask | Web framework |
| Redis | Caching and trending skill tracking |
| Scrapy | Job data collection |
| spaCy | NLP processing |
| SkillNer | Skill extraction |
| Sentence Transformers | Job similarity and recommendations |
| RapidFuzz | Text similarity matching |
| SQLAlchemy | Database ORM |
The Flask backend exposes APIs used by the frontend for:
- Job listings retrieval
- Job similarity queries
- Job evaluation
- Trending skills
- Market analytics
All endpoints support pagination for efficient browsing.
Example:
GET /jobs?page=1
project/
│
├── app.py
├── requirements.txt
├── .env
│
├── models/
├── services/
├── db_selectors/
├── views/
│
│
├── static/
│ ├── css/
│ ├── js/
│
└── templates/
All job data used in this project is obtained from publicly available job listing websites and collected using legal web scraping techniques.
- Real-time job updates
- Advanced recommendation algorithms
- Salary prediction models
- Skill gap analysis
- Data visualization dashboards
- Real-time trending skill monitoring
This project is licensed under the GPL- 3.0 license.
Developed as part of a job market analysis and recommendation platform project using modern NLP, machine learning, and data engineering tools.