---
title: "Create candidate from CV"
method: POST
path: "/candidates/_from-unsupervised-cv"
tags: ["Candidates"]
---

# Create candidate from CV

`POST /candidates/_from-unsupervised-cv`

Automatically create a candidate from a single uploaded CV file without human review.

**Process:**
- Upload 1 CV file (PDF or DOCX format)
- AI automatically extracts candidate information (name, contact details, work experience, education, etc.)
- Returns the created candidate's unique ID

**Duplicate Detection:**
- If a candidate with the same email, phone number, or LinkedIn URL already exists:
  - The existing candidate ID is returned
  - An automatic CV diff is triggered in the background to update the existing candidate
  - No duplicate candidate is created

**Supported Formats:**
- PDF (.pdf)
- Microsoft Word (.docx)

**Limitations:**
- Exactly 1 file per request (use /from-cv/unsupervised/_bulk for multiple files)
- Maximum 10MB per file
- CV must contain extractable text (scanned images may fail unless they contain OCR text)

## Response `201`

Candidate created successfully. Returns the unique candidate ID.

- string

## Other responses

- `400` — Bad request - invalid input or CV parsing failed
- `401` — Unauthorized - invalid or missing authentication
- `413` — Payload too large - file exceeds 10MB limit
- `415` — Unsupported Media Type - file format not supported
- `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/revisions/ad1f8c51cf0a/schema)
