---
title: "Update candidate"
method: POST
path: "/candidate-portal/{candidateId}"
tags: ["Candidate Portal"]
---

# Update candidate

`POST /candidate-portal/{candidateId}`

Update existing candidate from CV and form details. Used by the candidate portal when an existing candidate updates their profile.

## Path parameters

- `candidateId` string, required

## Request body

- CandidatePortalSubmissionDto
  - `firstName` string, required
  - `lastName` string, required
  - `latestCvAttachmentId` string
  - `emails` object[]
    - `email` string, email, required
    - `purpose` 'personal' | 'work', nullable, required
    - `isPrimary` boolean
  - `phoneNumbers` object[]
    - `phoneNumber` string, required
    - `purpose` 'personal' | 'work', nullable, required
    - `isPrimary` boolean
  - `socialMedia` object[]
    - `url` string, uri, required
    - `type` 'LINKEDIN' | 'TWITTER' | 'FACEBOOK' | 'INSTAGRAM', required
    - `isPrimary` boolean

## Response `204`

Candidate updated successfully

## Other responses

- `400` — Bad request - missing or invalid required fields
- `401` — Unauthorized - invalid or missing authentication
- `404` — Candidate not found
- `500` — Error response

---

[API](https://skmtc.net/spott/apis/spott-webhooks.md) · [All operations](https://skmtc.net/spott/apis/spott-webhooks/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/spott/spott-webhooks/versions/ad1f8c51cf0a/schema)
