Files
jobtrackingapp/docs/jobs/overview.md
T
cesnimda ce76046a29 feat: complete release readiness work
- consolidate API ownership and remove dead vendor code

- add Stripe billing, learning paths, and public CV hardening

- add migration, recovery, security, audit, and browser gates
2026-07-31 16:54:16 +02:00

2.0 KiB

overview

The job domain tracks opportunities before and after application. Canonical stages cover Saved, Interested, Preparing, Applied, Waiting, Interview, Offer, Rejected, and Ghosted while preserving unknown custom status values. Each owned application aggregates company, correspondence, attachments, follow-ups, checklist, timeline, analysis, and generated application material.

See docs/architecture/application-workspace.md and docs/decisions/ADR-002-job-application-model.md.

Job Tracking Overview

Purpose

Job tracking is the primary purpose of Jobjakt.

The application exists first to help users manage their job search.

Career features, CV generation, AI assistance, and job discovery support this workflow.

They do not replace it.


Core Product Statement

Jobjakt helps users:

Find opportunities

Track applications

Manage communication

Prepare better applications

Secure employment


Core Objects

The main entities are:

Job

The opportunity itself.

Examples:

  • Software Engineer position.
  • Developer role.
  • Marketing position.

Contains:

  • Title.
  • Company.
  • Description.
  • URL.
  • Location.
  • Salary information.
  • Requirements.

Application

The user's attempt to obtain the role.

A job can exist without an application.

Example:

User saves an interesting role.

Later they apply.


Company

The organisation offering the role.

Should be reusable.

Example:

Multiple jobs from Google should link to one company.


Communication

Interactions related to the application.

Examples:

  • Emails.
  • Calls.
  • Messages.
  • Notes.

Follow-up

A planned action.

Examples:

  • Contact recruiter.
  • Check application status.
  • Prepare interview.

Product Principles

Reduce manual work

Import information where possible.


Keep users organised

The user should always know:

  • What jobs exist.
  • What stage applications are at.
  • What action is next.

Avoid unnecessary complexity

Do not require users to complete every field.

Smart defaults are preferred.