> ## Documentation Index
> Fetch the complete documentation index at: https://docs.mokaru.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Update Application

> Update a tracked application in your pipeline

## Overview

The Update Application endpoint lets you modify an existing application in your Mokaru tracker. Use it to change the status as you progress through your pipeline, adjust priority, add notes, or correct job details.

**Common use cases:**

* **AI agent pipeline management** - let an AI agent monitor your email for interview invitations or rejections, then automatically update the corresponding application status. For example, when a recruiter email arrives, the agent can move the application from "applied" to "screening" or "interview\_scheduled".
* **n8n and Make automations** - build a workflow that listens for calendar events (interviews) and automatically updates the application status to "interview\_scheduled". After the interview date passes, move it to "interviewed".
* **Bulk status updates** - mark all stale applications as "no\_response" after a configurable period by combining the List Applications endpoint with this one.
* **Notes and context tracking** - append notes from meetings, phone screens, or research to keep all context in one place.

When you change the `status` field, a timeline entry is automatically created in the application history. This gives you a complete audit trail of status changes, whether made manually in the app or through the API.

<Note>
  **Scope required:** `tracker:write` | **Rate limit:** 20 requests/min
</Note>

## Request

```bash theme={null}
PATCH /v1/tracker/applications/:id
```

### Path Parameters

<ParamField path="id" type="string" required>
  The application ID (returned by the Create Application or List Applications endpoint)
</ParamField>

### Body Parameters

All body parameters are optional. Include only the fields you want to update.

<ParamField body="status" type="string">
  Application status. Changing this creates a timeline entry automatically.

  Options: `watchlist`, `preparing`, `applied`, `response`, `screening`, `interview_scheduled`, `interviewed`, `offer`, `negotiating`, `accepted`, `rejected`, `withdrawn`, `no_response`
</ParamField>

<ParamField body="priority" type="number">
  Priority level (1-5)
</ParamField>

<ParamField body="notes" type="string">
  Free-text notes about the application
</ParamField>

<ParamField body="jobTitle" type="string">
  Job title (max 200 characters)
</ParamField>

<ParamField body="company" type="string">
  Company name (max 200 characters)
</ParamField>

<ParamField body="location" type="string">
  Job location (max 200 characters)
</ParamField>

### Example

```bash theme={null}
curl -X PATCH "https://api.mokaru.ai/v1/tracker/applications/clx5678..." \
  -H "Authorization: Bearer mk_your_key" \
  -H "Content-Type: application/json" \
  -d '{
    "status": "interview_scheduled",
    "priority": 5,
    "notes": "Phone screen with hiring manager on March 20"
  }'
```

## Response

Returns the full updated application object.

<ResponseField name="id" type="string">Application ID</ResponseField>
<ResponseField name="jobTitle" type="string">Job title</ResponseField>
<ResponseField name="company" type="string">Company name</ResponseField>
<ResponseField name="location" type="string">Job location</ResponseField>
<ResponseField name="jobUrl" type="string">Link to the job posting</ResponseField>
<ResponseField name="status" type="string">Current status</ResponseField>
<ResponseField name="source" type="string">Where the job was found</ResponseField>
<ResponseField name="priority" type="number">Priority (1-5)</ResponseField>
<ResponseField name="notes" type="string">Application notes</ResponseField>
<ResponseField name="salaryMin" type="number">Minimum salary</ResponseField>
<ResponseField name="salaryMax" type="number">Maximum salary</ResponseField>
<ResponseField name="appliedDate" type="string">ISO 8601 date</ResponseField>
<ResponseField name="createdAt" type="string">ISO 8601 date</ResponseField>
<ResponseField name="updatedAt" type="string">ISO 8601 date</ResponseField>

```json theme={null}
{
  "id": "clx5678...",
  "jobTitle": "Senior Software Engineer",
  "company": "Acme Corp",
  "location": "San Francisco, CA",
  "jobUrl": "https://acme.com/careers/123",
  "status": "interview_scheduled",
  "source": "Other",
  "priority": 5,
  "notes": "Phone screen with hiring manager on March 20",
  "salaryMin": 150000,
  "salaryMax": 200000,
  "appliedDate": "2026-03-15T00:00:00.000Z",
  "createdAt": "2026-03-15T12:00:00.000Z",
  "updatedAt": "2026-03-18T09:30:00.000Z"
}
```

### Validation Errors

```json theme={null}
{
  "error": "Validation failed",
  "details": {
    "status": ["Invalid status value"],
    "priority": ["Must be between 1 and 5"]
  }
}
```
