The Patch API lets you make small, targeted changes to your resume without sending the entire data object. Instead of replacing the whole resume with a PUT, you send a list of JSON Patch operations that describe exactly what to change. This is based on the JSON Patch (RFC 6902) standard.

When to use PATCH or PUT

The PATCH endpoint only changes the resume’s data: its content and design. To change the resume’s name, slug, tags or isPublic, use PUT /resumes/{id}.

Authentication

All requests require your API key in the x-api-key header. See Using the API for how to create one.
The API is served under https://hiresweep.com/api/openapi.

Endpoint

Request body

The resume ID is taken from the URL path. The body has the operations array and, optionally, expectedUpdatedAt:
Each operation is an object with the following properties:

Examples

Replace a basic field

Update the resume holder’s name and headline:

Add an experience entry

Append a new item to the experience section:
The path /sections/experience/items/- uses the special - index, which means “append to the end of the array”. To insert at a specific position, use a numeric index like /sections/experience/items/0 for the beginning.

Remove an item from a section

Remove the second skill (index 1) from the skills section:

Update metadata (template, colors, fonts)

Switch the template and update the primary color:

Test, then replace

The test operation checks that a value matches before proceeding. If the test fails, the entire patch is rejected. This is useful to avoid overwriting changes made by another client:
If /basics/name is not "Albert Einstein" at the time of the request, the entire patch fails with a 400 error and no changes are applied.

Only patch the version you read

To make sure nobody changed the resume between your read and your patch, for example in the builder, send the updatedAt value from GET /resumes/{id} as expectedUpdatedAt:
If the resume changed since then, the request fails with 409 RESUME_VERSION_CONFLICT and nothing is applied. The error’s data.updatedAt holds the current version: read the resume again, rebuild your operations and retry.

Move an item within a section

Move the first experience item to the third position:

Error handling

Error responses are JSON with a code field that names the error.
All operations in a single request are applied atomically. If any operation fails (including a test), none of the operations are applied.

Tips

  • Fetch first, then patch. Use GET /resumes/{id} to inspect the current structure before crafting your operations. This helps you target the correct paths and array indices.
  • Guard against concurrent edits. Send expectedUpdatedAt, or combine test and replace when you expect a field to hold a specific value.
  • Batch related changes. You can send multiple operations in a single request. They are applied in order, so later operations can depend on earlier ones.
  • The - index appends. When adding items to arrays, use - as the index (e.g., /sections/skills/items/-) to append to the end.