The process of applying for jobs and internships is not a cakewalk. Managing job applications is a time-consuming process. Due to the referrals and deadlines, the entire procedure can be stressful. Our application allows you to track and manage your job application process, as well as regulate it, without the use of cumbersome Excel spreadsheets.
Our application keeps track of the jobs you've added to your wish list. It also keeps track of the companies you've already applied to and keeps a list of any rejections. Rather than having the user browse each company's site for potential prospects, our application allows the applicant to search for them directly using basic keywords. Any prospective work offers can then be added to the applicant's wishlist.
Using Ollama, Qwen2.5 (1.5b) has been integrated into the system to support different language-heavy tasks:
- Resume Tip Generation - Users can now get automated feedback on their resumes
- Cover Letter Generation - Users can now get auto-generated cover letters, based on any uploaded resume and tailored to any given job description.
- Upload and store multiple resumes for different purposes
- Resume Viewer
- UI Overhaul - Improved responsiveness, Navbar, Added logout confirmation, Added option to delete resume
- Restructuring of backend - the single, massive backend file has been separated and organized by function
- Restructured Docker-related files to simplify deployment
- +60 More test cases
- Migrated job posting web scraper away from Google Jobs due to an update with Google's system preventing web scraping 1a. Integrated headless browser using Selenium and ChromeDriver to scrape CareerBuilder instead
- Users now stay logged in when refreshing the page
- Support for Google Account logins has been fixed
- Basic Design
- Samples
- Future Scope
- Explanation
- Technologies Used
- Installation
- Hosting the Database
- License
- Funding
- How to Contribute
- Team Members
The introductory visual interface displayed from which a user is able to register and log into the application. User can also login or sign up through Google Authorization.
The Google Authorization Login:After Logging In, the Profile page of the user is displayed where the user details such as Name, Institution, email, phone number, address, skills, and more are shown. Users can add or update information to their profile, such as their personal information, skills, preferred job locations, and their experience level.
The interface through which a user is able to search for specific jobs and apply on them through the 'Apply' button.
- Navigate to Job search page, search for particular Job.
- Click on Details button to see the Job Details
- Click on Apply button which will redirect to the Job Apply link.
The user is able to access different saved applications - Waitlisted applications, Waiting for Refereals, Applied Jobs, Application Status. The user can also add more jobs to track through this screen.
On this page, user can see different jobs that would be recommended to them based on their profile and their preferences. User can apply for that position from this page too.
This page now allows for users to upload multiple resumes, get automated, LLM-powered feedback, and get auto-generated cover letters when given any job description.
Short Term: 3 Months
- Include links to university career fairs.
- Direct connection to Linkedin, allowing for the addition of job opportunities to the wishlist.
- Add cover letters to database.
Medium Term: 6 Months
- Add a notification system for important application releases and deadlines.
- Add a feature that allows users to attach these reminders to their Google calendar.
- An option to maintain separate profiles for job tracking.
- Use recently added LLM to autofill profile fields.
Long Term: 12 Months
- Integrate the database into docker.
- Add a chrome extension to track external job search progress.
- Add Recruiter log-in and home page to interact with job-seekers.
Currently, we have five fundamental items in our project:
- The SearchPage where users can search about the Job Postings
- The MatchesPage where users get recommendation about the jobs according to their preferences
- The ApplicationsPage where users can add and see the position they applied to and can update/delete the the information. Any details in any table can be modified at any time during the process
- The ProfilePage where user can add his skills, experience level and preffered location. This information is used to recommend user jobs that require similar skillsets
- The ManageResumePage where users can upload resumes and get automated LLM-powered feedback, as well as cover letter generation tailored to any job description.
- Python
- Node.Js
- Flask
- MongoDB
- React
- Docker
- Ollama
- Langchain
- Selenium
- Python (recommended >= 3.8)
- pip (Latest version 21.3 used as of 11/3)
- npm (Latest version 6.14.4 used as of 11/3)
- Docker-Desktop (Latest version as of 11/27)
-
Clone the Repository
- Use the command
git clone https://github.com/jashgopani/application-tracking-system.gitto clone the repository.
- Use the command
-
Start the Docker Engine
- Ensure that Docker is installed on your system. If not, you can download it from the official Docker website.
- Start the Docker engine on your machine. The command varies based on your operating system.
-
Build Images and Start Program with Docker Compose
- Navigate to the project's root directory and build/start the system with the following command:
docker compose up -d --build
(note: Although supporting Qwen2.5:1.5b doesn't require a GPU, it still occupies lots of memory when running locally, so be sure to minimize other processes for optimal performance)
- Navigate to the project's root directory and build/start the system with the following command:
- Download MongoDB Community Server
- Follow the Installion Guide
- In app.py set 'host' string to 'localhost'
- Run the local database:
mongodb
- Recommended: Use a GUI such as Studio 3T to more easily interact with the database
- Create account for MongoDB
- If current MongoDB Atlas owner adds your username/password to the cluster, skip to step 4 *
- Follow MongoDB Atlas Setup Guide to create a database collection for hosting applications
- Create application.yml in the backend folder with the following content:
GOOGLE_CLIENT_ID : <Oauth Google ID> GOOGLE_CLIENT_SECRET : <Oauth Google Secret> CONF_URL : https://accounts.google.com/.well-known/openid-configuration SECRET_KEY : <Any Secret You Want> USERNAME : <MongoDB Atlas Username> PASSWORD : <MongoDB Atlas Password> CLUSTER_URL : <MongoDB Cluster URL> - In app.py set 'host' string to your MongoDB Atlas connection string. Replace the username and password with {username} and {password} respectively
- For testing through CI to function as expected, repository secrets will need to be added through the settings. Create individual secrets with the following keys/values:
MONGO_USER: MONGO_PASS:
The project is licensed under the MIT license.
This is an open source project that is free for use. Our team has not been sponsored in any way, nor are there any future plans for sponsorship.
Please see our CONTRIBUTING.md for instructions on how to contribute to the repository and assist us in improving the project.
- Christopher Elchik
- Brandon Troy
- Kanchana Dhana Sadasivan
For any questions, please email [email protected].