---
title: "Create Candidate"
method: POST
path: "/api/candidates"
tags: ["Candidates"]
---

# Create Candidate

`POST /api/candidates`

## Request

- Base URL: `https://api.ruzora.com` (the document declares no server; this is the origin it was published from)
- URL: `https://api.ruzora.com/api/candidates`
- Auth: HTTP bearer

Create a new candidate

## Request body

- Candidate: Write shape — the ``POST /api/candidates`` request body. Same fields as :class:`CandidateRead` plus the availability vocabulary guard. Never use this as a ``response_model``: it rejects ``'stale'``, which is a legitimate stored value.
  - `id` string, nullable
  - `name` string, required
  - `github_url` string, nullable
  - `linkedin_url` string, nullable
  - `email` string, nullable
  - `location` string, required
  - `skills` string[]
  - `score` integer
  - `score_analysis` string, nullable
  - `status` string
  - `source` string
  - `bio_summary` string, nullable
  - `current_role` string, nullable
  - `skill_ratings` object, nullable
  - `experience_entries` object[], nullable
  - `education` object[], nullable
  - `certifications` object[], nullable
  - `overall_score` integer, nullable
  - `timezone` string, nullable
  - `availability_status` string, nullable
  - `technical_score` integer, nullable
  - `communication_score` integer, nullable
  - `ai_readiness_score` integer, nullable

## Response `200`

Successful Response

- unknown

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/ruzora/apis/ruzora-candidate-crm-api.md) · [All operations](https://skmtc.dev/ruzora/apis/ruzora-candidate-crm-api/llms.txt) · [OpenAPI document](https://skmtc.dev/ruzora/apis/ruzora-candidate-crm-api/revisions/f9b8223f3ac4?raw)
