---
title: "Signup Roles"
method: GET
path: "/api/candidate-accounts/roles"
tags: ["candidate-accounts"]
---

# Signup Roles

`GET /api/candidate-accounts/roles`

## 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/candidate-accounts/roles`
- Auth: none declared

The roles a newcomer can pick as their target on the signup form.

Unauthenticated by necessity: the person asking has no account yet, and
the answer is the same list `/jobs` already publishes on the open
internet. Nothing candidate-specific is in the response.

Behind `_gate()` like the rest of this router, so the surface appears
and disappears as one feature. A failure returns an EMPTY list rather
than a 500: the signup form degrades to "we could not load the roles,
join anyway and pick later", which is strictly better than blocking a
signup on a dropdown.

## Response `200`

Successful Response

- unknown

---

[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)
