---
title: "Find Similar Job Roles"
method: GET
path: "/api/job-roles/similar"
tags: ["Job Roles"]
---

# Find Similar Job Roles

`GET /api/job-roles/similar`

## 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/job-roles/similar`
- Auth: HTTP bearer

Soft duplicate-detection at create time. Returns up to 3 active
roles in the same org whose titles overlap with `title`. Used by
the create-role form to surface a non-blocking "similar role
exists" banner so recruiters don't fragment the candidate
pipeline by accidentally creating "Sr PD" and "Senior Product
Designer" as separate roles.

Matching is intentionally simple (case-insensitive substring in
either direction, plus exact match). Doesn't catch abbreviation
differences like "Sr" vs "Senior" — fuzzy matching via pg_trgm
is a future iteration once we see real-world false negatives.

## Query parameters

- `title` string, required

## Response `200`

Successful Response

- unknown

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