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

> Update a resume - only provided fields are modified

## Overview

The Update Resume endpoint lets you modify any aspect of a resume. Only fields you include in the request are updated - everything else stays unchanged.

**Common use cases:**

* **AI agent resume tailoring** - update `jobTitle`, `summary` or `hiddenItems` to match a specific job description.
* **Rename or reorganize** - change the resume name, switch templates, or reorder sections.
* **Set as default** - promote a resume to be the default for auto-prepare applications.

<Note>
  **Self-contained model:** experiences, education, skills, certificates, projects, awards, publications, interests and customSections are managed via the dedicated content endpoints (e.g. `PATCH /v1/experiences/:id`), not via `cvData`. Arrays under these keys in `cvData` are silently dropped. Use those endpoints to edit the resume's items, and `hiddenItems` to hide items on this CV.
</Note>

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

## Request

```bash theme={null}
PATCH /v1/resume/{id}
```

### Path Parameters

<ParamField path="id" type="string" required>
  Resume id
</ParamField>

### Body Parameters

All fields are optional. At least one must be provided.

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

<ParamField body="template" type="string">
  Template ID
</ParamField>

<ParamField body="isDefault" type="boolean">
  Set as the default resume (unsets any existing default)
</ParamField>

<ParamField body="jobTitle" type="string">
  CV-level job title override (max 150 chars). Pass `null` to clear and fall back to the shared identity job title.
</ParamField>

<ParamField body="cvData" type="object">
  CV-level overrides (personal info, `summary`). Replaces the stored cvData. Section arrays (`experiences`, `education`, `skills`, `certificates`, `projects`, `awards`, `publications`, `interests`, `customSections`) are silently dropped - use the dedicated content endpoints + `hiddenItems` instead.
</ParamField>

<ParamField body="hiddenItems" type="object">
  Per-section blacklist of the resume's item IDs to hide on this CV. Replaces any existing value. Pass `null` to clear. Keys: `experiences`, `education`, `skills`, `certificates`, `projects`, `awards`, `publications`, `interests`, or `customSection:<definitionId>`.
</ParamField>

<ParamField body="personalOverrides" type="object">
  Per-CV content override. Replaces any existing value; pass `null` to clear all overrides. Only `summary` takes effect - it overrides the selected summary for this CV (set it to `null` inside the object to clear just that one). Identity fields (name, email, phone, address, links, photo) are shared profile-level and cannot be overridden per resume; edit them via the profile endpoint. The per-CV job title is the top-level `jobTitle` field, not `personalOverrides`.
</ParamField>

<ParamField body="itemOrder" type="object">
  Per-section ordering map. Replaces any existing value. Pass `null` to clear and fall back to default order. Keys: `experiences`, `education`, `skills`, `certificates`, `projects`, `awards`, `publications`, `interests`, `skillCategories`; values are arrays of the resume's item IDs.
</ParamField>

<ParamField body="selectedSummaryId" type="string">
  ID of the summary this resume shows. Pass `null` to clear.
</ParamField>

<ParamField body="designSettings" type="object">
  Visual styling
</ParamField>

<ParamField body="optionalFields" type="object">
  Show/hide toggles
</ParamField>

<ParamField body="sectionOrder" type="array">
  Section order
</ParamField>

### Example

Tailor the CV for a specific role by hiding off-topic experiences and adjusting the headline:

```bash theme={null}
curl -X PATCH "https://api.mokaru.ai/v1/resume/clx1234" \
  -H "Authorization: Bearer mk_your_key" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Backend Engineer - Stripe",
    "cvData": { "jobTitle": "Senior Backend Engineer" },
    "hiddenItems": {
      "experiences": ["clx_exp_internship", "clx_exp_unrelated"],
      "skills": ["clx_skill_photoshop"]
    }
  }'
```

## Response

<ResponseField name="success" type="boolean">Whether the resume was updated</ResponseField>
<ResponseField name="id" type="string">The resume ID</ResponseField>

```json theme={null}
{
  "success": true,
  "id": "clx1234..."
}
```
