Look4Job is a Python-based job search and resume matching application.
It automatically finds jobs from multiple job boards and ranks them based on how well they match a user's resume.
The system allows users to upload a resume (PDF), extract skills, search job platforms, and display the most relevant job listings.
- Upload resume in PDF format
- Automatically convert PDF resume to text
- Extract skills from resume
- Smart job search based on resume content
- Scrape jobs from multiple job websites
- Remove duplicate job listings
- Filter jobs based on experience level
- Rank jobs based on skill match
- Detect internship vs regular jobs
- Simple web interface
Look4Job collects jobs from multiple platforms including:
- Indeed
- ZipRecruiter
- Glassdoor
- Google Jobs
- Naukri
- Bayt
- BDJobs
Jobs from these sites are scraped concurrently for faster results. :contentReference[oaicite:0]{index=0}
look4job/
init.py # Main job scraping engine web.py # FastAPI web application matcher.py # Resume parsing and job ranking logic model.py # Data models and job structures util.py # Utility functions exception.py # Custom exceptions requirements.txt # Project dependencies
Backend
- Python
- FastAPI
Data Processing
- Pandas
- NumPy
- Regex
Web Scraping
- Requests
- BeautifulSoup
- TLS Client
Resume Processing
- PyPDF
Web Templates
- Jinja2
Clone the repository
git clone https://github.com/tharunsridhar/look4job-app
cd look4job-app
Install dependencies
pip install -r requirements.txt
Start the server:
uvicorn web:app --reload
Open browser:
- User uploads a resume (PDF).
- The system converts the PDF into text.
- Skills are extracted from the resume.
- A job search query is inferred from the resume.
- Job listings are scraped from multiple job boards.
- Jobs are filtered based on experience requirements.
- Jobs are ranked based on skill matching and relevance.
- The best matching jobs are displayed to the user.
Jobs are ranked using multiple signals:
Skill Match
Counts how many skills from the resume appear in the job description.
Experience Match
Compares required experience with the candidate's experience.
Title Relevance
Filters out irrelevant roles such as sales or marketing.
Seniority Rules
Adjusts ranking based on titles like:
- Intern
- Junior
- Senior
- Lead
The final ranking score determines which jobs appear first.
Resume must be:
- PDF format
- Contain readable text (not scanned image only)
The application displays ranked job results with:
- Job Title
- Company
- Location
- Date Posted
- Match Score
- Matched Skills
- Experience Fit
- Job URL
Possible improvements:
- NLP based skill extraction
- Resume semantic analysis
- AI job recommendation system
- Resume-job embedding matching
- Automatic job application support
Tharun Sridhar Computer Science Student Focus: Backend Development, AI Integration, and Security