---
title: "Improve Job Description"
method: POST
path: "/api/job-roles/improve-jd"
tags: ["Job Roles"]
---

# Improve Job Description

`POST /api/job-roles/improve-jd`

## 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/improve-jd`
- Auth: HTTP bearer

Revise an existing JD to address a curated set of fixes from the
quality scorecard. Used by Paste/Upload tabs — same UX as
Generate's "Regenerate with fixes" but starts from the user's
existing text instead of a blank slate, so we keep their content
and just patch the flagged issues.

The LLM is told to PRESERVE the original structure and content
where possible; revisions should be surgical, not stylistic.

## Request body

- ImproveJDRequest: Revise an existing JD to address a set of fixes selected from the quality scorecard. Used by Paste/Upload tabs where the recruiter's own JD text is the starting point — we don't regenerate from scratch (would lose their content), we surgically rewrite.
  - `jd_text` string, required
  - `fix_instructions` string[], required
  - `job_title` string, nullable

## Response `200`

Successful Response

- GenerateJDResponse: Response with generated job description
  - `success` boolean, required
  - `job_description` string, required
  - `message` string, nullable

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