---
title: "Get a job role"
method: GET
path: "/api/public/v1/job-roles/{job_role_id}"
tags: ["Public API v1 — Job Roles", "Public API v1 — Job Roles"]
---

# Get a job role

`GET /api/public/v1/job-roles/{job_role_id}`

## Request

- Base URL: `https://api.thebetterhire.ai` (the document declares no server; this is the origin it was published from)
- URL: `https://api.thebetterhire.ai/api/public/v1/job-roles/{job_role_id}`
- Auth: HTTP bearer

The role's rubric and whether an AI-led interview can be scheduled on it.

## Path parameters

- `job_role_id` string, required

## Response `200`

Successful Response

- BackendRoutersPublicJobRolesJobRoleResponse
  - `id` string, required
  - `title` string, required
  - `experience_level` string, nullable
  - `company_name` string, nullable
  - `competencies` Competency[], required
    - `name` string, required
    - `description` string, required
    - `importance` integer, required
    - `evaluation_criteria` string, nullable
  - `interview_ready` InterviewReadiness, required: Whether an AI-led (brain) interview can be scheduled on this role.
    - `ready` boolean, nullable, required: true: schedule with POST /interviews/schedule/brain. false: see `note`. null: the interview engine could not be consulted — retry GET /job-roles/{id}.
    - `min_duration_minutes` integer, nullable: Shortest slot the rubric fits in, when ready: 45, 60 or 90, or 30 for an entry-level role.
    - `note` string, nullable
  - `created_at` string, required
  - `updated_at` string, required
  - `inferred` InferredRole: What the extraction read off the posting (platform request 0003 §6d). Every field is validated in code; null means "the text does not say", never a guess. Sandbox roles infer from labelled lines only.
    - `title` string, nullable: The role title as a recruiter would write it, at most 120 characters; never a section heading or a line of punctuation. Null when the text does not name the role.
    - `experience_level` string, nullable: entry, mid, senior, lead or executive, when the text says.
    - `company_name` string, nullable: The hiring company, only when the text names one.
    - `skill_ids` string[]: Specialist skill packs the posting genuinely calls for (ids from GET /skills). Usually empty.

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/thebetterhire/apis/interanalysis-b2b-api.md) · [All operations](https://skmtc.dev/thebetterhire/apis/interanalysis-b2b-api/llms.txt) · [OpenAPI document](https://skmtc.dev/thebetterhire/apis/interanalysis-b2b-api/revisions/c8ad03e900ea?raw)
