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

# Create a job application

> Creates a new job application in the pipeline. Company and role are required; all other fields (stage, location, salary, source, linked resume, follow-up, notes, contacts) are optional. Requires authentication.



## OpenAPI

````yaml /spec.json post /applications
openapi: 3.1.1
info:
  title: Reactive Resume
  version: 6.0.3
  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: amruth@rxresu.me
    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:
  /applications:
    post:
      tags:
        - Applications
      summary: Create a job application
      description: >-
        Creates a new job application in the pipeline. Company and role are
        required; all other fields (stage, location, salary, source, linked
        resume, follow-up, notes, contacts) are optional. Requires
        authentication.
      operationId: createApplication
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                company:
                  type: string
                  minLength: 1
                  description: The company applied to.
                role:
                  type: string
                  minLength: 1
                  description: The role / job title.
                location:
                  anyOf:
                    - type: string
                    - type: 'null'
                salary:
                  anyOf:
                    - type: string
                    - type: 'null'
                source:
                  anyOf:
                    - type: string
                    - type: 'null'
                sourceUrl:
                  anyOf:
                    - type: string
                    - type: 'null'
                jobDescription:
                  anyOf:
                    - type: string
                      maxLength: 20000
                    - type: 'null'
                postingSource:
                  anyOf:
                    - type: object
                      properties:
                        method:
                          enum:
                            - paste
                            - builtin
                            - firecrawl
                            - tavily
                            - exa
                          type: string
                        format:
                          enum:
                            - text
                            - markdown
                          type: string
                        requestedUrl:
                          type: string
                          format: uri
                        resolvedUrl:
                          type: string
                          format: uri
                        retrievedAt:
                          type: string
                          format: date-time
                        providerFetchedAt:
                          type: string
                          format: date-time
                        truncated:
                          type: boolean
                        completeness:
                          enum:
                            - unknown
                            - incomplete
                          type: string
                        fallbackReason:
                          enum:
                            - unsafe-url
                            - unreachable
                            - not-a-page
                            - too-large
                            - auth
                            - quota
                            - malformed
                            - empty
                            - challenge
                            - timeout
                            - unavailable
                            - rate-limit
                          type: string
                      required:
                        - method
                        - format
                        - truncated
                        - completeness
                    - type: 'null'
                notes:
                  anyOf:
                    - type: string
                    - type: 'null'
                resumeFileUrl:
                  anyOf:
                    - type: string
                    - type: 'null'
                resumeFileName:
                  anyOf:
                    - type: string
                    - type: 'null'
                coverLetterUrl:
                  anyOf:
                    - type: string
                    - type: 'null'
                coverLetterName:
                  anyOf:
                    - type: string
                    - type: 'null'
                followUpAt:
                  anyOf:
                    - type: string
                      format: date-time
                      x-native-type: date
                    - type: 'null'
                followUpNote:
                  anyOf:
                    - type: string
                    - type: 'null'
                contacts:
                  type: array
                  items:
                    type: object
                    properties:
                      name:
                        type: string
                        minLength: 1
                      role:
                        type: string
                        default: ''
                      type:
                        type: string
                        default: ''
                      email:
                        type: string
                        default: ''
                      phone:
                        type: string
                        default: ''
                    required:
                      - name
                resumeId:
                  anyOf:
                    - type: string
                    - type: 'null'
                  description: The linked Reactive Resume, if any.
                coverLetterId:
                  anyOf:
                    - type: string
                    - type: 'null'
                  description: The linked saved cover letter, if any.
                requirements:
                  type: array
                  items:
                    type: string
                  description: >-
                    What the posting asks for, as read when the application was
                    added.
                tags:
                  type: array
                  items:
                    type: string
                status:
                  enum:
                    - saved
                    - applied
                    - screening
                    - interview
                    - offer
                    - closed
                  type: string
                closedReason:
                  anyOf:
                    - enum:
                        - accepted
                        - not-selected
                        - withdrew
                        - accepted-other
                        - no-response
                      type: string
                    - type: 'null'
                stageEnteredAt:
                  type: string
                  pattern: ^\d{4}-\d{2}-\d{2}$
              required:
                - company
                - role
          multipart/form-data:
            schema:
              type: object
              properties:
                company:
                  type: string
                  minLength: 1
                  description: The company applied to.
                role:
                  type: string
                  minLength: 1
                  description: The role / job title.
                location:
                  anyOf:
                    - type: string
                    - type: 'null'
                salary:
                  anyOf:
                    - type: string
                    - type: 'null'
                source:
                  anyOf:
                    - type: string
                    - type: 'null'
                sourceUrl:
                  anyOf:
                    - type: string
                    - type: 'null'
                jobDescription:
                  anyOf:
                    - type: string
                      maxLength: 20000
                    - type: 'null'
                postingSource:
                  anyOf:
                    - type: object
                      properties:
                        method:
                          enum:
                            - paste
                            - builtin
                            - firecrawl
                            - tavily
                            - exa
                          type: string
                        format:
                          enum:
                            - text
                            - markdown
                          type: string
                        requestedUrl:
                          type: string
                          format: uri
                        resolvedUrl:
                          type: string
                          format: uri
                        retrievedAt:
                          type: string
                          format: date-time
                        providerFetchedAt:
                          type: string
                          format: date-time
                        truncated:
                          type: boolean
                        completeness:
                          enum:
                            - unknown
                            - incomplete
                          type: string
                        fallbackReason:
                          enum:
                            - unsafe-url
                            - unreachable
                            - not-a-page
                            - too-large
                            - auth
                            - quota
                            - malformed
                            - empty
                            - challenge
                            - timeout
                            - unavailable
                            - rate-limit
                          type: string
                      required:
                        - method
                        - format
                        - truncated
                        - completeness
                    - type: 'null'
                notes:
                  anyOf:
                    - type: string
                    - type: 'null'
                resumeFileUrl:
                  anyOf:
                    - type: string
                    - type: 'null'
                resumeFileName:
                  anyOf:
                    - type: string
                    - type: 'null'
                coverLetterUrl:
                  anyOf:
                    - type: string
                    - type: 'null'
                coverLetterName:
                  anyOf:
                    - type: string
                    - type: 'null'
                followUpAt:
                  anyOf:
                    - type: string
                      format: date-time
                      x-native-type: date
                    - type: 'null'
                followUpNote:
                  anyOf:
                    - type: string
                    - type: 'null'
                contacts:
                  type: array
                  items:
                    type: object
                    properties:
                      name:
                        type: string
                        minLength: 1
                      role:
                        type: string
                        default: ''
                      type:
                        type: string
                        default: ''
                      email:
                        type: string
                        default: ''
                      phone:
                        type: string
                        default: ''
                    required:
                      - name
                resumeId:
                  anyOf:
                    - type: string
                    - type: 'null'
                  description: The linked Reactive Resume, if any.
                coverLetterId:
                  anyOf:
                    - type: string
                    - type: 'null'
                  description: The linked saved cover letter, if any.
                requirements:
                  type: array
                  items:
                    type: string
                  description: >-
                    What the posting asks for, as read when the application was
                    added.
                tags:
                  type: array
                  items:
                    type: string
                status:
                  enum:
                    - saved
                    - applied
                    - screening
                    - interview
                    - offer
                    - closed
                  type: string
                closedReason:
                  anyOf:
                    - enum:
                        - accepted
                        - not-selected
                        - withdrew
                        - accepted-other
                        - no-response
                      type: string
                    - type: 'null'
                stageEnteredAt:
                  type: string
                  pattern: ^\d{4}-\d{2}-\d{2}$
                resumeFile:
                  type: string
                  contentMediaType: application/pdf
                coverLetterFile:
                  type: string
                  contentMediaType: application/pdf
              required:
                - company
                - role
      responses:
        '200':
          description: The ID of the newly created application.
          content:
            application/json:
              schema:
                type: string
                description: The ID of the created application.
        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: []
      x-codeSamples:
        - lang: bash
          label: cURL
          source: >-
            curl --request POST "https://rxresu.me/api/openapi/applications"
            --header "x-api-key: <api-key>" --header "Content-Type:
            application/json" --data '{
              "company": "<string>",
              "role": "<string>"
            }'
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.