Master Profile
The single source of truth new resumes, cover letters, and portfolios are seeded from.
Description
The Master Profile is the canonical, resume-shaped record of a user's career data — basics, experience, education, projects, skills, and a dozen other optional sections. When a user creates a new Resume or Cover Letter document without providing initial content, the API automatically seeds it from this profile.
Updates use Optimistic Concurrency Control: pass the updatedAt timestamp you last read as
expectedUpdatedAt, and the API rejects the write with 409 if someone else (another tab,
another device) updated the profile in the meantime.
Authentication
| Method | Access Level | Requirement |
|---|---|---|
GET | Authenticated | Session cookie or API key with the resume:read scope. |
PUT | Authenticated | Session cookie or API key with the resume:write scope. |
Available Endpoints
GET /profiles/master— Get Master ProfilePUT /profiles/master— Update Master Profile
For importing profile data from GitHub or LinkedIn instead of writing it by hand, see Profile Import.
Update Auto-Sync PreferencePUT
Turns the account-level background document sync on or off. Requires the `user:write` scope when called with an API key. This is the account-wide switch. It does not override a document's own `keepLocalOnly` flag — a document opted out individually stays local even with auto-sync on. Turning auto-sync off does not delete anything already synced; it only stops new local edits from being pushed. Defaults to `true` on a new account. A successful change invalidates the caller's cached session.
Get Master ProfileGET
Retrieves the authenticated user's master profile along with an account summary. Requires the `resume:read` scope when called with an API key. When the user has never saved a profile, this still returns `200` with a placeholder whose `id` is an empty string and whose `content` is `{}` — it does not return `404`. Cached for 1 hour and invalidated on write.