A job application tracker for the command line.
Project description
jobless
A job application tracker for the command line.
Built with the idea of replacing cluttered spreadsheets and infinite browser tabs, jobless is a simple job application tracker for the terminal. Keep your applications, companies, contacts, and skills organized in a single place.
Features
- Track job applications, companies, contacts, and skills.
- Advance filtering and sorting.
Roadmap (WIP)
- TUI (more on this down below.)
- Full-text search.
- Notifications/Events.
Installation
jobless can be installed via uv:
uv tool install --python 3.14 jobless
# or
uvx --python 3.14 jobless
Prefer pipx?
If you prefer pipx, it's as easy as running pipx install jobless.
Commands
Applications
jobless app <command>
| Command | Description |
|---|---|
add |
Add a new application. Prompts for title and company if not provided as flags. Skills and contacts can be attached at creation time. |
view |
Show all details for an application. Pass --web to open the job posting URL in your browser. |
update |
Update any field on an existing application. Add or remove individual skills and contacts without touching the rest. |
list |
List applications with optional filters. Filter by status, location type, company, skill, applied date range, or follow-up date range. |
del |
Delete one or more applications by ID. |
If you need to, you can always run:
jobless app --help
# or
jobless app <command> --help
Companies
jobless company <command>
Companies can be created automatically when adding an application, but you can also manage them directly if you want or need to.
| Command | Description |
|---|---|
add |
Add a company manually with a name, website, and industry. |
view |
Show company details. Pass --web to open the company website. |
update |
Update the name, URL, or industry. Pass '' to clear an optional field. |
list |
List companies with optional filters, including by number of linked applications. |
del |
Delete one or more companies. If a company has linked applications you will be asked to confirm before everything is removed. |
Contacts
jobless contact <command>
Refers to people you've talked to, recruiters, or anyone else worth keeping a record of.
| Command | Description |
|---|---|
add |
Add a contact with a name, email, phone, and/or URL (e.g. a LinkedIn profile). |
view |
Show contact details. Pass --web to open the contact's URL. |
update |
Update any field. Pass '' to clear an optional field. |
list |
List contacts with optional filters, including by number of linked applications. |
del |
Delete one or more contacts. Linked applications are not affected. |
Skills
jobless skill <command>
Skills are created automatically when you tag an application. There is no add command but you can rename or delete them if needed here.
| Command | Description |
|---|---|
update |
Rename a skill. |
list |
List all skills. Filter by name or number of linked applications. |
del |
Delete one or more skills. They will be unlinked from any applications that reference them. |
Exporting
Every list command supports a --format flag with supports JSON. If you need to export your data, the easiest way is to:
# dump all applications to a file
jobless app list --format json > application.json
# or export only active applications (for example)
jobless app list --status applied --status interviewing --format json > active.json
Where is the TUI?
For the time being I decided to remove the TUI that was the original form of jobless. The reason being that the TUI was making me slower and this tool, instead of making things easy for me, was adding a hurdle that wasn't that necessary. That said, I plan to re-add the TUI in the future, but only after I've polished a few rough edges in the current CLI.
Using with other tools
Since jobless is a plain CLI, it fits naturally into any shell workflow. The JSON output in particular makes it easy to pipe data into tools like jq, scripts, or AI assistants/agents with shell access.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file jobless-0.18.0.tar.gz.
File metadata
- Download URL: jobless-0.18.0.tar.gz
- Upload date:
- Size: 46.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.12 {"installer":{"name":"uv","version":"0.11.12","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Arch Linux","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2d4855838f840694d38626fdadd65e071a0a80faf034cefb6c857b865bfbc675
|
|
| MD5 |
80c35c5f74e959cb527cc8380e6d0872
|
|
| BLAKE2b-256 |
a7ede2e4469827667339f33c43007a30b5e09f63e99ae123119c63008bee3c85
|
File details
Details for the file jobless-0.18.0-py3-none-any.whl.
File metadata
- Download URL: jobless-0.18.0-py3-none-any.whl
- Upload date:
- Size: 23.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.12 {"installer":{"name":"uv","version":"0.11.12","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Arch Linux","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ab5d098d939e553d03ac2c683ee87229e7584c2d234c82ae94f38343672a2a9f
|
|
| MD5 |
e8d8d3ba6e7de452256d34219ed75668
|
|
| BLAKE2b-256 |
b667aae967faec9351c6be7b6c8ee7f740d371a47accea84c585a0c42eb34641
|