JobTrackr is a modern, feature-rich job application tracking tool with a graphical user interface (GUI) built using PyQt6. It helps you organize, track, and analyze your job search process, including applications, companies, contacts, and interactions.
- Track Job Applications: Store details about each job application, including position, company, status, salary, notes, and more.
- Company Management: Manage companies, their details, and relationships between companies (e.g., parent, subsidiary, recruiter).
- Contact Management: Keep track of contacts, their roles, and their associations with companies and applications.
- Interaction Logging: Record interviews, calls, emails, and other interactions related to your job search.
- Status History: Automatically log changes to application status and maintain a full change history.
- Dashboard: Visual overview of your job search, including statistics and recent activity.
- Search & Filtering: Powerful search and filtering across applications, companies, and contacts.
- Settings & Customization: Configure database location, theme, and other preferences.
- Data Persistence: All data is stored locally using SQLite via SQLAlchemy ORM.
- Cross-Platform: Runs on Windows, macOS, and Linux.
- Python 3.13+ (see your Python version with
python --version) - uv
uv syncOn first run, JobTrackr will automatically create and migrate the database.
uv run python -m src.mainThis will launch the JobTrackr GUI.
src/— Main application source codedb/— Database models and migration logicgui/— PyQt6 GUI components, dialogs, and tabsservices/— Business logic and data access servicesutils/— Utility functions (logging, decorators, etc.)
test/— Automated tests (unit and end-to-end)alembic/— Database migration scripts
- Dashboard: Overview of your job search, stats, and recent applications.
- Applications Tab: Add, edit, and view job applications.
- Companies Tab: Manage companies and their relationships.
- Contacts Tab: Manage contacts and their associations.
- Search: Quickly find applications, companies, or contacts.
- Settings: Configure preferences and database location.
make lint # Format and lint code
make mypy # Type checking
make test # Run tests with coveragemake migrate # Apply migrations
make revision # Create a new migration (will prompt for a message)make pyinstaller- Settings: Stored in
~/.jobtrackr/settings.json - Database: Default location is
~/jobtrackr_data/jobtrackr.db - Logs: Written to
~/.jobtrackr/logs/
Contributions are welcome! Please open issues or pull requests on GitHub.
This project is licensed under the MIT License.
Mikołaj Kaczmarek
12432719+AN0DA@users.noreply.github.com
JobTrackr — Take control of your job search!