Skip to main content
POST
Create Cover Letter

Overview

Create a cover letter and link it to a resume. A cover letter cannot exist on its own: cvId is required and must reference an existing resume the caller owns. If the user has no resumes yet, create one first via POST /v1/resume. A resume can have at most one cover letter (the cvId link is unique). If one already exists, this endpoint returns 409 Conflict with the existing id - use PATCH /v1/cover-letter/{id} to update instead.
Plus plan only. This endpoint returns 403 Forbidden with { requiresUpgrade: true } if the user is on the free plan. The free read/list/delete endpoints stay available so downgraded users can still see and clean up their existing cover letters.
Scope required: cover-letter:write | Rate limit: 10 requests/min

Request

Body Parameters

string
required
Resume id this cover letter belongs to. Must be owned by the caller.
string
required
Cover letter title (max 200 chars).
string
required
Body text. Markdown allowed - the builder renders it.
string
Optional cover letter template id.
boolean
default:"false"
Mark as the user’s default cover letter (unsets any existing default).
object
Template-variable map, e.g. { "company": "Acme", "contactPerson": "Jane Doe" }. Values are strings.
boolean
default:"true"
Header: show name.
boolean
default:"true"
Header: show email.
boolean
default:"true"
Header: show phone.
boolean
default:"true"
Header: show address.
string
default:"left"
left | center | right.
string
default:"Inter"
Font family.
number
default:"11"
Font size in pt.
number
default:"1.6"
Line spacing.

Example

Response

boolean
Whether the cover letter was created.
string
The new cover letter’s unique ID.

Error: cover letter already exists

Status: 409 Conflict.