JobTrack is a lightweight CLI tool that helps you track your job applications, built with Go and SQLite. It is my first Go project (yay!).
- Go installed (
go versionto check) - Make installed (
make -vto check)
make install✅ This will:
- Build JobTrack
- Install it to /usr/local/bin
- Install man pages (man jobtrack, man jobtrack-create etc)
After make install, you will only need to move the completion script for your shell manually as shown below.
make build✅ This will only build JobTrack (to an executable named jobtrack)
You will need to manually move the binary, completion script and man pages as shown below.
If you do not want to build from source, download a prebuilt release.
- Go to the Releases page.
- Download the .zip file for your OS and architecture.
- Extract and move the executable to a directory in your PATH:
sudo mv jobtrack /usr/local/bin/- Move man pages
sudo mv man/* /usr/share/man/man1/
mandb # Update the man page database- Move autocompletions (if needed):
- Bash
sudo mv completions/jobtrack.bash /etc/bash_completion.d/- Zsh
sudo mkdir /usr/local/share/zsh/site-functions/_jobtrack
sudo mv completions/_jobtrack /usr/local/share/zsh/site-functions/_jobtrack- Fish
sudo mv completions/jobtrack.fish /etc/fish/completions/After moving the completion scripts, please restart your shell for changes to be effected.
Adds a new job to the database.
jobtrack create --company="Google" --position="Software Engineer"--company(required): Name of the company.--position(required): Job title you're applying for.--status: Application status (e.g., Applied, Interview, Offer).--applied: Date applied (YYYY-MM-DD).--location: Job location.--salary-range: Salary expectation.--job-posting-url: Link to the job posting.
Displays job applications stored in the database.
jobtrack list--id: Show a specific job by ID.--status: Show jobs with a specific status (e.g., Applied, Interview, Offer).--after: Show jobs applied to after a date (YYYY-MM-DD).--before: Show jobs applied to before a date (YYYY-MM-DD).
Modify an existing job entry.
jobtrack update --id=3 --status="Offer"--id(required): The ID of the job to update.- Other flags (
--status.--company,--position) to update their respective fields.
Modify an existing job entry.
jobtrack update --id=3 --status="Offer"--id(required): The ID of the job to update.- Other flags (
--status.--company,--position) to update their respective fields.
Delete a job from the database using its ID.
jobtrack delete --id=5Saves job applications to a file.
jobtrack export --format=json --output=jobs.json--formator-f: Choosejson(default) orcsv.--outputor-o: Specify output file (prints to stdout by default).
CSV export example
jobtrack export --format=csv --output=jobs.csv[
{
"company": "Reddit",
"position": "SDE",
"status": "Interview",
"location": "Remote",
"salary_range": "400k",
"job_posting_url": "https://reddit.com/jobs",
"applied_at": "2025-03-22T00:00:00Z",
"created_at": "2025-03-22T12:59:27Z",
"updated_at": "2025-03-22T12:59:27Z",
"id": 1
},
{
"company": "Amazon",
"position": "SDE Intern",
"status": "Applied",
"location": "Remote",
"salary_range": "200k",
"job_posting_url": "https://amazon.com/jobs",
"applied_at": "2025-03-22T00:00:00Z",
"created_at": "2025-03-22T12:59:34Z",
"updated_at": "2025-03-22T12:59:34Z",
"id": 2
}
]Company,Position,Status,Location,SalaryRange,JobPostingURL,AppliedAt,CreatedAt,UpdatedAt
Reddit,SDE,Interview,Remote,400k,https://reddit.com/jobs,2025-03-22,2025-03-22 12:59:27,2025-03-22 12:59:27
Amazon,SDE Intern,Applied,Remote,200k,https://amazon.com/jobs,2025-03-22,2025-03-22 12:59:34,2025-03-22 12:59:34Loads job applications from a properly formatted file to the databaase.
From JSON:
jobtrack import jobs.jsonFrom CSV:
jobtrack import jobs.csvPlease ensure the file is formatted correctly, I have not implemented checks for that and your installation might break.
After installation, you can view the man pages using:
man jobtrack
man jobtrack-create
man jobtrack-list
man jobtrack-update
man jobtrack-delete
man jobtrack-import
man jobtrack-export- If you wish to uninstall via
make:
make uninstall- If you wish to uninstall manually:
sudo rm -f /usr/local/bin/jobtrack
sudo rm -f /usr/share/man/man1/jobtrack*
rm -rf $HOME/.local/share/jobtrackYou can then remove the completion scripts from the directories where you installed them.
- Fork the repo
- Clone your fork
- Create a new branch
- Make changes and commit
- Push changes and make a PR
I'd be happy to review and merge any PR's that add some useful functionality.
JobTrack is released under the MIT license. See LICENSE.