Skip to content

Latest commit

 

History

History
187 lines (128 loc) · 7.32 KB

README.md

File metadata and controls

187 lines (128 loc) · 7.32 KB

jobSphere

JobSphere Logo

JobSphere is a web application that helps users find job opportunities based on their resumes. It uses a combination of resume parsing, job scraping from multiple platforms, and MongoDB to store user data and job listings. The application allows users to upload their resumes, extract relevant skills and experience, and automatically generate job recommendations based on their profile.


Features

  • User Authentication: Users can sign up, log in, and securely store their information.
  • Resume Upload: Users can upload their resumes, which will be parsed to extract relevant details (skills, experience, etc.).
  • Job Scraping: Automatically fetch jobs from platforms like Indeed, Glassdoor, and ZipRecruiter using parsed resume data.
  • Job Dashboard: Displays a list of relevant job opportunities tailored to the user based on their resume.
  • Profile Management: Users can view and manage their profile information.
  • Responsive Design: The application is designed to be responsive and works well on various screen sizes.

Screenshots

Landing Page

Landing Page Landing Page - Mobile View Landing Page - Alternate Mobile View

Sign-Up/Signin Pages

Screenshot 2024-12-29 at 22 01 13 Screenshot 2024-12-29 at 22 01 24

Dashboard with Job Recommendations

Screenshot 2024-12-29 at 21 55 18 Screenshot 2024-12-29 at 21 55 35

Profile Page

Screenshot 2024-12-29 at 21 56 57

Modal for Uploading a Resume

Screenshot 2024-12-29 at 21 57 23

Modal for Deleting Your Account

Screenshot 2024-12-29 at 21 57 40 Screenshot 2024-12-29 at 21 57 48


Technologies Used

  • Frontend: HTML5, CSS3, Bootstrap, EJS, fetch-API
  • Backend: Node.js, Express.js
  • Database: MongoDB
  • Resume Parsing: Integrated with the Resume Parser API
  • Job Scraping: Python-based web scraping using the jobspy module
  • Authentication: JSON Web Tokens (JWT), Bcrypt.js for password hashing
  • APIs/ Middleware: Multer, Axios, Connect-Flash, Cookie-Parser, Express-Session

Project Setup

Prerequisites

Make sure you have the following installed:

  • Node.js (v14 or higher)
  • MongoDB (or use a MongoDB cloud service like Atlas)
  • Python 3.x (for running the job scraper script)

Installation

  1. Clone the repository:

    git clone https://github.com/curiousityDrives/JobSphere.git
    cd jobsphere
  2. Install Node.js dependencies:

    npm install
  3. Set up MongoDB:

    • If you’re using a local MongoDB instance, make sure MongoDB is running.
    • If you prefer to use MongoDB Atlas, update the mongoose.connect() URI in app.js with your MongoDB Atlas credentials.
  4. Add the jobspy module and any other necessary Python packages for web scraping.

  5. Set up environment variables:

    • Create a .env file in the root directory and add the following:
      JWT_SECRET=your_jwt_secret
      API_KEY=your_resume_parser_api_key
  6. Run the server:

    npm start
  7. Navigate to http://localhost:3000 in your browser to access the application.


Usage

Sign Up & Log In

  • Create an account by clicking the "Sign Up" link and filling out the registration form with your username, email, and password.
  • After signing up, you can log in using your credentials.

Upload Resume

  • Once logged in, you can upload your resume by navigating to the "Upload Resume" page.
  • The resume will be parsed, and relevant job recommendations will be displayed based on the extracted data.

Job Dashboard

  • After uploading your resume, the dashboard will show you a list of job opportunities that match your experience and skills.
  • If no jobs are found, you will be prompted to upload a resume.

Job Posts

  • When you click on the any of the jobs on your dashboard, you are redirected to a page where that specific job post's details are displayed, from which you can decide either to apply from the site of the post or directly from the company's site.
  • In this page, you can also find information on the company and links to their profile, if available.

Profile

  • The profile page allows you to view and manage your user details. You can edit your username, your password, add a second email, add a phone number, upload another resume, or delete your account.

Future Features

  • Enhanced job filtering and sorting based on salary, location, and job type.
  • Integrate additional job platforms for more comprehensive job scraping.
  • Add the ability for users to save job postings and receive notifications.
  • Improve the UI with modern design trends and better responsiveness.

Contributing

Contributions are welcome! If you find any bugs or have ideas for new features, feel free to open an issue or submit a pull request.

How to Contribute:

  1. Fork the repository.
  2. Create a new branch (git checkout -b feature/your-feature-name).
  3. Make your changes.
  4. Commit your changes (git commit -am 'Add new feature').
  5. Push to the branch (git push origin feature/your-feature-name).
  6. Create a new pull request.

License

This project is licensed under the MIT License - see the LICENSE file for details.


Acknowledgments


Note: This project is still a work in progress, and many features and improvements are in the pipeline. Feel free to contribute or suggest enhancements!


Created and maintained by Natnael Haile.