https://github.com/natnaelhhaile/JobSphere
a nodeJS web app that helps users find job opportunities from several job board platforms based on their resumes
https://github.com/natnaelhhaile/JobSphere
ajax axios bootstrap5 ejs-templates expressjs html-css-javascript jwt-authentication mongodb multer nodejs
Last synced: 5 months ago
JSON representation
a nodeJS web app that helps users find job opportunities from several job board platforms based on their resumes
- Host: GitHub
- URL: https://github.com/natnaelhhaile/JobSphere
- Owner: curiousityDrives
- License: mit
- Created: 2024-12-07T17:17:14.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2025-01-06T04:28:36.000Z (about 1 year ago)
- Last Synced: 2025-01-06T05:24:35.258Z (about 1 year ago)
- Topics: ajax, axios, bootstrap5, ejs-templates, expressjs, html-css-javascript, jwt-authentication, mongodb, multer, nodejs
- Language: JavaScript
- Homepage:
- Size: 6.13 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
JobSphere
**JobSphere** is a job-matching web application that helps users find job opportunities tailored to their resumes. It leverages **resume parsing, job scraping, bookmarking, and authentication** to enhance the job search experience. The application enables users to upload their resumes, extract relevant skills and experience, and receive **personalized job recommendations**.
---
## ๐ Features
### ๐ **Authentication & Security**
- **Social Login Integration**: Sign up and log in seamlessly using **Google & Facebook** (implemented via Passport.js).
- **JWT Authentication**: Secure user sessions with token-based authentication.
### ๐ **Resume Upload & Parsing**
- Upload resumes to **automatically extract skills, experience, and keywords**.
- **Resume parsing** to analyze and extract relevant job-matching criteria.
### ๐ข **Job Search & Recommendations**
- **Web Scraping**: Fetch jobs from **Indeed, Glassdoor, and ZipRecruiter**.
- **Dashboard with Tailored Job Listings**: Personalized job postings based on parsed resume data.
- **Bookmarking System**: Users can **save jobs** theyโre interested in and access them later via the **Bookmarks Page**.
- **Job Detail Pages**: View full job descriptions, application links, and company details.
### ๐ **Profile & User Management**
- Update user profile details (email, password, second email, phone number).
- Resume management: Upload, replace, or delete your resume.
### ๐จ **Responsive & Modern UI**
- Fully **responsive design** for desktop and mobile screens.
- **Intuitive job dashboard** for a streamlined job search experience.
---
## ๐ธ Screenshots
Landing Page
Social Login & Sign-Up Pages
Dashboard with Job Recommendations
Bookmarking System
Profile Page
---
## ๐ Technologies Used
- **Frontend:** HTML5, CSS3, Bootstrap, EJS, Fetch API
- **Backend:** Node.js, Express.js
- **Database:** MongoDB
- **Authentication:** Passport.js (Google & Facebook Login), JSON Web Tokens (JWT), Bcrypt.js
- **Resume Parsing:** Integrated with the Resume Parser API
- **Job Scraping:** Python-based web scraping (`jobspy` module)
- **APIs/Middleware:** Multer, Axios, Connect-Flash, Cookie-Parser, Express-Session
---
## ๐ฅ Project Setup
### Prerequisites
- **Node.js** (v14 or higher)
- **MongoDB** (local or cloud via MongoDB Atlas)
- **Python 3.x** (for running the job scraper script)
### Installation
```bash
# Clone the repository
git clone https://github.com/curiousityDrives/JobSphere.git
cd jobsphere
# Install Node.js dependencies
npm install
# Set up MongoDB (local or cloud-based)
# If using MongoDB Atlas, update the connection URI in app.js
# Install Python dependencies for job scraping
pip install jobspy
# Create a .env file and add required environment variables
```
**Example `.env` file:**
```env
JWT_SECRET=your_jwt_secret
API_KEY=your_resume_parser_api_key
GOOGLE_CLIENT_ID=your_google_client_id
GOOGLE_CLIENT_SECRET=your_google_client_secret
FACEBOOK_APP_ID=your_facebook_app_id
FACEBOOK_APP_SECRET=your_facebook_app_secret
```
```bash
# Start the server
npm start
# Open in browser: http://localhost:3000
```
---
## ๐ฎ Future Enhancements
๐ **Advanced AI-Powered Job Matching**
- Implementing a **machine learning model** to rank and sort scraped jobs based on their relevance to the user's resume.
๐ค **GenAI-Powered Resume Parsing**
- Integrating **Generative AI (LLMs)** to enhance resume parsing and improve **data context retention**, ensuring better job recommendations.
๐ **Job Tracker & Application Management**
- Users will be able to **track job applications**, manage their **in-progress interviews**, and monitor **reviewed applications**.
Stay tuned for these exciting updates! ๐ฏ
---
## ๐ค Contributing
Contributions are welcome! If you have ideas for improvements or find any issues, feel free to open an issue or submit a pull request.
```bash
# Fork the repository
# Create a new branch
git checkout -b feature/your-feature-name
# Make your changes
# Commit changes
git commit -m 'Added new feature'
# Push to GitHub
git push origin feature/your-feature-name
# Open a pull request
```
---
## ๐ License
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
---
## ๐ค Acknowledgments
- Thanks to **[JobSpy](https://github.com/username/jobspy)** for web scraping capabilities.
- Thanks to **[Resume Parser API](https://apilayer.com/marketplace/resume-parser-api)** for resume data extraction.
---
Developed & maintained by Natnael Haile.