Skip to content

valentino7504/jobtrack

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

69 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

JobTrack

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!).

🚀 Installation

1️⃣ Build from Source (Recommended if you have Go and make)

Requirements:

  • Go installed (go version to check)
  • Make installed (make -v to check)

Install via Make (Recommended)

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.

Manual Build Without Installation

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.

2️⃣ Download Prebuilt Binaries (No Go Required)

If you do not want to build from source, download a prebuilt release.

Steps:

  1. Go to the Releases page.
  2. Download the .zip file for your OS and architecture.
  3. Extract and move the executable to a directory in your PATH:
sudo mv jobtrack /usr/local/bin/
  1. Move man pages
sudo mv man/* /usr/share/man/man1/
mandb  # Update the man page database
  1. 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.

📌 Usage

Basic Commands

1️⃣ Create a new job entry

Adds a new job to the database.

jobtrack create --company="Google" --position="Software Engineer"
Options:
  • --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.

2️⃣ List jobs

Displays job applications stored in the database.

jobtrack list
Filtering Options:
  • --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).

3️⃣ Update a job entry

Modify an existing job entry.

jobtrack update --id=3 --status="Offer"
Filtering Options:
  • --id (required): The ID of the job to update.
  • Other flags (--status. --company, --position) to update their respective fields.

3️⃣ Update a job entry

Modify an existing job entry.

jobtrack update --id=3 --status="Offer"
Filtering Options:
  • --id (required): The ID of the job to update.
  • Other flags (--status. --company, --position) to update their respective fields.

4️⃣ Delete a job entry

Delete a job from the database using its ID.

jobtrack delete --id=5

⚠️ This action is permanent!

5️⃣ Export jobs to JSON or CSV

Saves job applications to a file.

jobtrack export --format=json --output=jobs.json
Options:
  • --format or -f: Choose json (default) or csv.
  • --output or -o: Specify output file (prints to stdout by default).

CSV export example

jobtrack export --format=csv --output=jobs.csv
Exported JSON example (jobs.json)
[
  {
    "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
  }
]
Exported CSV example (jobs.csv)
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:34

6️⃣ Import Jobs from JSON or CS

Loads job applications from a properly formatted file to the databaase.

From JSON:

jobtrack import jobs.json

From CSV:

jobtrack import jobs.csv

Please ensure the file is formatted correctly, I have not implemented checks for that and your installation might break.

📄 Man Pages

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

🗑️ Uninstallation

  • 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/jobtrack

You can then remove the completion scripts from the directories where you installed them.

🤝 Contributions

  1. Fork the repo
  2. Clone your fork
  3. Create a new branch
  4. Make changes and commit
  5. Push changes and make a PR

I'd be happy to review and merge any PR's that add some useful functionality.

🧾 License

JobTrack is released under the MIT license. See LICENSE.

About

jobtrack is a lightweight CLI tool built in Go that helps you track your job applications efficiently from the terminal.

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors