A job application is the primary resource in CareerTrack. Each record represents a single position you’ve applied to and captures everything relevant to that application: the company and role you targeted, where you found the listing, your current status in the process, salary expectations, location, personal notes, and key dates such as when you applied and when your next step is due. Every application is privately owned by the authenticated user who created it and cannot be accessed by other accounts.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/ericcobasdev/careertrack-api/llms.txt
Use this file to discover all available pages before exploring further.
Fields overview
The table below documents every field exposed by the API. Required fields must be provided when creating an application; all other fields are optional.| Field | Type | Required | Default | Description |
|---|---|---|---|---|
id | integer | — | auto | Auto-incrementing primary key assigned by the database. |
user_id | integer | — | auth user | Foreign key referencing the users table. Set automatically from the authenticated session. |
company_name | string (max 255) | ✅ | — | The name of the company you applied to. |
position_title | string (max 255) | ✅ | — | The title of the role you applied for. |
status | enum string | ❌ | applied | Current stage of the application. One of applied, interview, technical_test, offer, or rejected. See Application Statuses. |
source | string (max 255) | ❌ | null | Where you discovered the listing, e.g. LinkedIn, Indeed, Company website. |
source_url | string / URL (max 255) | ❌ | null | Direct URL to the job posting. Must be a valid URL when provided. |
salary_min | integer ≥ 0 | ❌ | null | Lower bound of the expected salary range (in your local currency unit). |
salary_max | integer ≥ 0 | ❌ | null | Upper bound of the expected salary range. |
location | string (max 255) | ❌ | null | Location of the role, e.g. Remote, New York, NY, London, UK. |
notes | text | ❌ | null | Free-form notes about the application — recruiter names, impressions, follow-up reminders. |
applied_at | date (YYYY-MM-DD) | ❌ | null | The date you submitted the application. |
next_step_at | datetime (ISO 8601) | ❌ | null | The date and time of an upcoming step, such as an interview or assignment deadline. |
created_at | datetime (ISO 8601) | — | auto | Timestamp set automatically when the record is first created. |
updated_at | datetime (ISO 8601) | — | auto | Timestamp updated automatically whenever the record changes. |
JSON representation
The API returns job applications usingJobApplicationResource, which serialises every field to JSON. Below is a realistic example of a single application object as returned by the API:
List endpoints wrap results in a
data array. Single-resource endpoints return the object directly under a data key.User ownership
Every job application belongs to exactly one user. TheJobApplication model expresses this with a BelongsTo relationship:
user_id foreign key in the database is defined with cascadeOnDelete, which means that if a user account is deleted, all of their job applications are automatically removed as well — no orphaned records are left behind.
Because the API is protected by Laravel Sanctum, user_id is never accepted as a request parameter. The value is always derived from the bearer token presented in the Authorization header, so one user can never read or modify another user’s applications.
Filtering
TheJobApplication model defines a scopeFilter query scope with four filter parameters. This scope is available for use on queries against the model:
| Query parameter | Behaviour |
|---|---|
status | Exact match on the status field. Must be a valid enum value. |
company | Case-insensitive partial match (LIKE %value%) on company_name. |
from | Returns only applications where applied_at is on or after this date (YYYY-MM-DD). |
to | Returns only applications where applied_at is on or before this date (YYYY-MM-DD). |
Related pages:
- Application Statuses — full reference for the
statusenum values and lifecycle - List Applications — complete API reference for
GET /api/applications