---
title: "Auto Improve And Evaluate"
method: POST
path: "/api/jd-quality/auto-improve"
tags: ["JD Quality"]
---

# Auto Improve And Evaluate

`POST /api/jd-quality/auto-improve`

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

Single-shot auto-improve + evaluate. The studio calls this when a
JD first lands (Generate / Paste / Upload). Two LLM calls
server-side:
  1. auto_improve_jd  → returns revised_jd + auto_applied_changes
  2. evaluate_jd_quality(revised_jd) → returns score + remaining issues

The frontend then shows: improved JD in textarea, "We auto-applied
N improvements" list, and a needs-input section for any remaining
issues that require recruiter values (salary / company / location).

Returns:
  {
    overall: 0-100,                     # score on the REVISED JD
    dimensions: {...},                   # remaining issues only
    revised_jd: "<full text>",
    auto_applied_changes: ["..."],
    original_text_length: int,           # for "X chars → Y chars" UI
    revised_text_length: int,
  }

## Request body

- JDQualityRequest
  - `jd_text` string, required
  - `job_title` string, nullable

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