> ## Documentation Index
> Fetch the complete documentation index at: https://docs.rxresu.me/llms.txt
> Use this file to discover all available pages before exploring further.

# Review extracted resume text

> Reviews the plain text extracted from a resume PDF and returns qualitative feedback: a summary, rewrite suggestions, strengths, and — when a job description is supplied — how the candidate's experience lines up with the role. Deliberately returns no score: the deterministic ATS report owns the only number in this feature. Requires authentication and AI credentials.



## OpenAPI

````yaml /spec.json post /ai/ats-review
openapi: 3.1.1
info:
  title: Reactive Resume
  version: 5.2.8
  description: Reactive Resume API
  license:
    name: MIT
    url: https://github.com/amruthpillai/reactive-resume/blob/main/LICENSE
  contact:
    name: Amruth Pillai
    email: hello@amruthpillai.com
    url: https://amruthpillai.com
servers:
  - url: https://rxresu.me/api/openapi
security:
  - apiKey: []
externalDocs:
  url: https://docs.rxresu.me
  description: Reactive Resume Documentation
paths:
  /ai/ats-review:
    post:
      tags:
        - AI
      summary: Review extracted resume text
      description: >-
        Reviews the plain text extracted from a resume PDF and returns
        qualitative feedback: a summary, rewrite suggestions, strengths, and —
        when a job description is supplied — how the candidate's experience
        lines up with the role. Deliberately returns no score: the deterministic
        ATS report owns the only number in this feature. Requires authentication
        and AI credentials.
      operationId: atsReview
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                aiProviderId:
                  type: string
                extractedText:
                  type: string
                  minLength: 1
                  maxLength: 50000
                findings:
                  type: array
                  maxItems: 120
                  items:
                    type: object
                    properties:
                      code:
                        type: string
                        maxLength: 64
                      severity:
                        type: string
                        maxLength: 16
                      message:
                        type: string
                        maxLength: 300
                    required:
                      - code
                      - severity
                      - message
                  default: []
                jobDescription:
                  type: string
                  maxLength: 20000
              required:
                - extractedText
      responses:
        '200':
          description: Qualitative review returned successfully.
          content:
            application/json:
              schema:
                type: object
                properties:
                  summary:
                    type: string
                  suggestions: {}
                  strengths: {}
                  jdAlignment:
                    anyOf:
                      - type: object
                        properties:
                          verdict:
                            type: string
                          missingConcepts: {}
                          strengths: {}
                        required:
                          - verdict
                      - type: 'null'
                required:
                  - summary
                  - jdAlignment
        '400':
          description: '400'
          content:
            application/json:
              schema:
                oneOf:
                  - type: object
                    properties:
                      defined:
                        const: true
                      code:
                        const: BAD_REQUEST
                      status:
                        const: 400
                      message:
                        type: string
                        default: The AI returned an improperly formatted structure.
                      data: {}
                    required:
                      - defined
                      - code
                      - status
                      - message
                  - type: object
                    properties:
                      defined:
                        const: false
                      code:
                        type: string
                      status:
                        type: number
                      message:
                        type: string
                      data: {}
                    required:
                      - defined
                      - code
                      - status
                      - message
        '502':
          description: '502'
          content:
            application/json:
              schema:
                oneOf:
                  - type: object
                    properties:
                      defined:
                        const: true
                      code:
                        const: BAD_GATEWAY
                      status:
                        const: 502
                      message:
                        type: string
                        default: The AI provider returned an error or is unreachable.
                      data: {}
                    required:
                      - defined
                      - code
                      - status
                      - message
                  - type: object
                    properties:
                      defined:
                        const: false
                      code:
                        type: string
                      status:
                        type: number
                      message:
                        type: string
                      data: {}
                    required:
                      - defined
                      - code
                      - status
                      - message
components:
  securitySchemes:
    apiKey:
      type: apiKey
      name: x-api-key
      in: header
      description: The API key to authenticate requests.

````