▄▄▄▄▄▄ ▄▄▄▄▄▄▄
█▀ ██ █▄ █▀▀██▀▀▀▀
██ ██ ██ ▄ ▄▄ ▄
██ ▄███▄ ████▄ ██ ████▄▄▀▀█▄ ▄███▀ ██ ▄█▀ ▄█▀█▄ ████▄
██ ██ ██ ██ ██ ██ ██ ▄█▀██ ██ ████ ██▄█▀ ██
██▄▀███▀▄████▀ ▀██▄▄█▀ ▀█▄██▄▀███▄▄██ ▀█▄▄▀█▄▄▄▄█▀
▄ ██
▀████▀
MAKE SURE TO NOT OPEN THE jobs.db FILE ON ANY OTHER SQLite BROWSERS OR EDITORS SUCH AS DB BROWSER, OTHERWISE IT WILL GIVE YOU A "Database is Locked" ERROR!
JobTracker is a simple Python CLI interface to view all submitted jobs, add a new job application, modify a job application's status, and export jobs to CSV in a compact program. JobTracker also uses a SQLite database to ensure entirely local functionality without any online connections or fancy integrations. Lastly, JobTracker only requires one outside dependency to work, Rich, to ensure a nice and clean table interface, compared to using Pandas, MatPlotLib, and Plottable to provide the same (if not more complex) interface.
- Use
git clone https://github.com/IPochynyukCoding/jobtrackerto initialize the repository. - Make sure you go to the "jobtracker" folder to ensure the files will work
- Use
pip install requirements.txtto install the Rich Python library - Open main_interface.py to setup the SQLite database to create the database.
- Open the main_interface.py file and press '1' on the menu.
- View the table to your heart's content, though it will not update if you open another instance of 'main_interface.py' and either update the job's status or add a job.
- Press any key to exit the table view.
- Open the main_interface.py file and press '2' on the menu
- Paste the job URL from your browser (if the base URL does not exist, it will prompt you to add the site's name to add to the database)
- Paste the job title from the job listing
- Paste the employer name from the job listing
- Wait for the database to add the job
- Open the main_interface.py file and press '3' on the menu
- Find the job you want to update
- Select the most recent status in the list (i.e., if you get a rejection email, select "Rejected")
- Input the date with the format of "YYYY-MM-DD", which if you get an interview date on Feburary 4th, 2026, input
2026-02-04to the prompt. - Input the time with the 24-hour format, which if you get an interview at "2:00PM", input
14:00to the prompt, or if you have an interview at "12:00AM", input00:00to the prompt. Lastly, if you have an interview at "9:00AM", input09:00to the prompt.
- Open the main_interface.py file and press '4' on the menu
- Select one of the three options 2a. Current status for all Jobs 2b. Job History sorted chronologically 2ba. Sorts job history by update date. 2c. Job History sorted by Job ID 2ca. Sorts job history by both job and update date.
- Look for the specific file on the directory