PathFinder is a job recommendation web application that allows users to upload their social media activity documents (such as LinkedIn data exports in PDF format) and receive personalized job suggestions. The system leverages modern web technologies and natural language processing to match user profiles to relevant job roles using semantic similarity.
| Layer | Technology |
|---|---|
| Frontend | Next.js, React, Tailwind CSS, Axios |
| Backend | FastAPI, Python |
| NLP Model | Sentence Transformers (all-MiniLM-L6-v2) |
| Data | Pandas, Numpy, scikit-learn |
| PDF Parsing | PyMuPDF |
- Upload social media activity documents (PDF)
- Automatic text extraction and encoding
- Semantic similarity matching with precomputed job embeddings
- Top 5 job recommendations with similarity scores
- Responsive, modern UI
- Fetch live job details for the top recommendation using Apify API
PathFinder uses the Apify Indeed Scraper to fetch real-time job listings matching the top recommendation. To use this feature:
- Create an account at Apify
- Get your API token
- Add the token to your backend
.envfile - The system will automatically fetch live job listings including:
- Position details
- Company information
- Salary (when available)
- Application links
- Job type and location
- Clone the repository
git clone https://github.com/AchiraNadeeshan/social-activity-job-matcher.git cd social-activity-job-matcher/backend - Create and activate a virtual environment
python -m venv venv .\venv\Scripts\Activate.ps1 # PowerShell # or .\venv\Scripts\activate.bat # CMD # or source venv/bin/activate # Unix/MacOS
- Install dependencies
pip install -r requirements.txt
- Add your Apify API key
Create a
.envfile in the backend directory:Do not commitAPIFY_API_TOKEN=your_apify_api_key_here.envto version control. - Run the API
The API will be available at http://127.0.0.1:8000
uvicorn main:app --reload
- Install dependencies
cd ../frontend npm install # or yarn install
- Run the development server
Visit http://localhost:3000
npm run dev # or yarn dev
- The top recommendation is displayed separately with live job details fetched from Apify.
- The next 4 recommendations are shown in a 2x2 grid below the top result.
- Embedding Model:
sentence-transformers/all-MiniLM-L6-v2 - Similarity Metric: Cosine Similarity
- Process:
- User PDF is parsed and text extracted
- Text is encoded into embeddings
- Compared against precomputed job role embeddings
- Top 5 jobs returned based on semantic similarity
- Top job recommendation includes live job data fetched from Apify
| Name | Registration No | Team Role |
|---|---|---|
| Achira Nadeeshan | 22UG1-0723 | Team Lead, Full Stack Development, Presentation, Documentation |
| H.M.K.S. Dedunupitiya | 22UG1-0812 | NLP Model, Presentation, Documentation |
| Pasindu Nimsara | 22UG1-0627 | Frontend Development, System Architecture Analysis |
| K.P. Dilhara | 22UG1-0390 | Documentation Lead |
| T. Siriwardhana | 22UG1-0126 | Data Scientist, System Architecture Analysis |
| H.L.V. Prasanjana | 22UG1-0521 | DevOps Engineer |
| U.V.C.T. Jayathilaka | 22UG1-0380 | Full Stack Developer |
| S.P.A.S. Senarathne | 22UG1-0345 | UI/UX Designer |
| Eranga Ekanayake | 22UG1-0076 | Research Analyst |
| Dewmina Bandara | 22UG1-0804 | QA Engineer |
This project is licensed under the Creative Commons Attribution-NonCommercial 4.0 International License (CC BY-NC 4.0). You are free to use, share, and adapt the code for non-commercial purposes with proper attribution.
For issues or contributions, contact Achira Nadeeshan or open an issue on GitHub.