# 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.