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

# Draft a cover letter's body

> Streams a draft of the letter's body, as text, from its linked resume and its application's posting, using only facts from them. Nothing is saved. `shorter` and `personal` revise a previous draft.



## OpenAPI

````yaml /spec.json post /cover-letters/{id}/draft
openapi: 3.1.1
info:
  title: Reactive Resume
  version: 6.0.0
  description: >-
    Reactive Resume API. Mutations do not support Idempotency-Key. Do not
    automatically retry POST, PUT, PATCH or DELETE requests after a timeout:
    first read the resource to determine whether the operation succeeded.
    Existing enum values and response shapes are retained for compatibility.
  license:
    name: MIT
    url: https://github.com/reactive-resume/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: []
  - bearerAuth: []
  - cookieAuth: []
externalDocs:
  url: https://docs.rxresu.me
  description: Reactive Resume Documentation
paths:
  /cover-letters/{id}/draft:
    post:
      tags:
        - Cover Letters
        - AI
      summary: Draft a cover letter's body
      description: >-
        Streams a draft of the letter's body, as text, from its linked resume
        and its application's posting, using only facts from them. Nothing is
        saved. `shorter` and `personal` revise a previous draft.
      operationId: draftCoverLetter
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: string
            minLength: 1
      requestBody:
        required: false
        content:
          application/json:
            schema:
              type: object
              properties:
                variant:
                  enum:
                    - draft
                    - shorter
                    - personal
                  type: string
                  default: draft
                  description: >-
                    draft writes the body; shorter and personal revise
                    `previous`.
                previous:
                  type: string
                  maxLength: 20000
                  description: The draft being revised.
      responses:
        '200':
          description: The draft, streamed as text.
          content:
            text/event-stream:
              schema:
                oneOf:
                  - type: object
                    properties:
                      event:
                        const: message
                      data:
                        type: string
                      id:
                        type: string
                      retry:
                        type: number
                    required:
                      - event
                      - data
                  - type: object
                    properties:
                      event:
                        const: done
                      data: {}
                      id:
                        type: string
                      retry:
                        type: number
                    required:
                      - event
                  - type: object
                    properties:
                      event:
                        const: error
                      data: {}
                      id:
                        type: string
                      retry:
                        type: number
                    required:
                      - event
        default:
          description: >-
            Structured API error. See status and code; do not branch on message
            text.
          content:
            application/json:
              schema:
                type: object
                required:
                  - defined
                  - code
                  - status
                  - message
                properties:
                  defined:
                    type: boolean
                  code:
                    type: string
                  status:
                    type: integer
                  message:
                    type: string
                  data: {}
      security:
        - apiKey: []
        - bearerAuth: []
        - cookieAuth: []
components:
  securitySchemes:
    apiKey:
      type: apiKey
      name: x-api-key
      in: header
      description: The API key to authenticate requests.
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: An OAuth access token issued by this instance for its API/MCP resource.
    cookieAuth:
      type: apiKey
      in: cookie
      name: better-auth.session_token
      description: >-
        Browser session (secure deployments use the __Secure- prefix). Cookie
        requests must originate from this instance.

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.