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

# Submit job posting application

> Submit an application for a publicly posted job through the vacancy portal.



## OpenAPI

````yaml /api-reference/openapi.json post /vacancy-portal/jobs/{jobBoardPostingId}
openapi: 3.1.0
info:
  title: Spott API Reference
  version: '0.1'
servers:
  - url: https://api.gospott.com
security: []
tags: []
paths:
  /vacancy-portal/jobs/{jobBoardPostingId}:
    post:
      tags:
        - Job Portal
      summary: Submit job posting application
      description: >-
        Submit an application for a publicly posted job through the vacancy
        portal.
      operationId: handleApplicationForPublicJobBoardPosting
      parameters:
        - name: jobBoardPostingId
          required: true
          in: path
          schema:
            type: string
        - name: broadbeanId
          required: false
          in: query
          description: The channel from which Broadbean redirected.
          schema:
            anyOf:
              - type: string
              - type: 'null'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/JobBoardPostingApplicationDto'
      responses:
        '200':
          description: Application submitted successfully.
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/ValidationExceptionDto'
                  - $ref: '#/components/schemas/ExceptionBaseDto'
        '401':
          description: Unauthorized - invalid or missing API key
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ExceptionBaseDto'
        '404':
          description: Job board posting not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ExceptionBaseDto'
        '500':
          description: Error response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ExceptionBaseDto'
      security:
        - x-api-key: []
components:
  schemas:
    JobBoardPostingApplicationDto:
      type: object
      properties:
        firstName:
          type: string
          minLength: 1
          maxLength: 100
          pattern: ^(?=.*\p{L})[\p{L}\p{M} '’.-]+$
        lastName:
          type: string
          minLength: 1
          maxLength: 100
          pattern: ^(?=.*\p{L})[\p{L}\p{M} '’.-]+$
        cvAttachmentId:
          type: string
          minLength: 1
          maxLength: 100
        coverLetterAttachmentId:
          anyOf:
            - type: string
              minLength: 1
              maxLength: 100
            - type: 'null'
        email:
          type: string
          minLength: 3
          maxLength: 254
          format: email
          pattern: >-
            ^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$
        phoneNumber:
          type: string
        linkedinUrl:
          anyOf:
            - type: string
              maxLength: 2048
            - type: 'null'
        location:
          anyOf:
            - $ref: '#/components/schemas/JobBoardPostingApplicationLocationDto'
            - type: 'null'
      required:
        - firstName
        - lastName
        - cvAttachmentId
        - coverLetterAttachmentId
        - email
        - phoneNumber
        - linkedinUrl
        - location
      id: PrivateJobBoardPostingApplicationDto
    ValidationExceptionDto:
      type: object
      properties:
        status:
          type: integer
          minimum: -9007199254740991
          maximum: 9007199254740991
        message:
          type: string
        requestId:
          type: string
        errors:
          type: array
          items:
            $ref: '#/components/schemas/ValidationIssueDto'
      required:
        - status
        - message
        - requestId
        - errors
      id: ValidationExceptionDto
    ExceptionBaseDto:
      type: object
      properties:
        status:
          type: integer
          minimum: -9007199254740991
          maximum: 9007199254740991
        message:
          type: string
        requestId:
          type: string
      required:
        - status
        - message
        - requestId
      id: ExceptionBaseDto
    JobBoardPostingApplicationLocationDto:
      type: object
      properties:
        street1:
          anyOf:
            - type: string
            - type: 'null'
        street2:
          anyOf:
            - type: string
            - type: 'null'
        postalCode:
          anyOf:
            - type: string
            - type: 'null'
        city:
          anyOf:
            - type: string
            - type: 'null'
        region:
          anyOf:
            - type: string
            - type: 'null'
        state:
          anyOf:
            - type: string
            - type: 'null'
        country:
          anyOf:
            - type: string
            - type: 'null'
        countryCode:
          anyOf:
            - $ref: '#/components/schemas/CountryCode'
            - type: 'null'
        rawCityCountry:
          anyOf:
            - type: string
            - type: 'null'
        latitude:
          anyOf:
            - type: number
            - type: 'null'
        longitude:
          anyOf:
            - type: number
            - type: 'null'
        formattedAddress:
          anyOf:
            - type: string
            - type: 'null'
        type:
          anyOf:
            - $ref: '#/components/schemas/LocationType'
            - type: 'null'
        id:
          type: string
          minLength: 1
      required:
        - street1
        - street2
        - postalCode
        - city
        - region
        - state
        - country
        - countryCode
        - rawCityCountry
        - latitude
        - longitude
        - formattedAddress
        - type
      id: PrivateJobBoardPostingApplicationLocationDto
    ValidationIssueDto:
      oneOf:
        - $ref: '#/components/schemas/ValidationRequiredDto'
        - $ref: '#/components/schemas/ValidationInvalidEmptyStringDto'
        - $ref: '#/components/schemas/ValidationUnknownFieldDto'
        - $ref: '#/components/schemas/ValidationTooSmallDto'
        - $ref: '#/components/schemas/ValidationTooBigDto'
        - $ref: '#/components/schemas/ValidationInvalidTypeDto'
        - $ref: '#/components/schemas/ValidationInvalidValueDto'
        - $ref: '#/components/schemas/ValidationInvalidEmailDto'
        - $ref: '#/components/schemas/ValidationInvalidUuidDto'
        - $ref: '#/components/schemas/ValidationInvalidUrlDto'
        - $ref: '#/components/schemas/ValidationInvalidDatetimeDto'
        - $ref: '#/components/schemas/ValidationInvalidDateDto'
        - $ref: '#/components/schemas/ValidationInvalidTimeDto'
        - $ref: '#/components/schemas/ValidationInvalidDurationDto'
        - $ref: '#/components/schemas/ValidationInvalidIpv4Dto'
        - $ref: '#/components/schemas/ValidationInvalidIpv6Dto'
        - $ref: '#/components/schemas/ValidationInvalidJsonStringDto'
        - $ref: '#/components/schemas/ValidationInvalidJwtDto'
        - $ref: '#/components/schemas/ValidationInvalidRegexDto'
        - $ref: '#/components/schemas/ValidationInvalidPhoneNumberDto'
        - $ref: '#/components/schemas/ValidationInvalidDomainDto'
        - $ref: '#/components/schemas/ValidationInvalidHttpsUrlDto'
        - $ref: '#/components/schemas/ValidationInvalidTimezoneDto'
        - $ref: '#/components/schemas/ValidationPaginationOffsetExceededDto'
      id: ValidationIssueDto
    CountryCode:
      type: string
      enum:
        - AF
        - AX
        - AL
        - DZ
        - AS
        - AD
        - AO
        - AI
        - AQ
        - AG
        - AR
        - AM
        - AW
        - AU
        - AT
        - AZ
        - BS
        - BH
        - BD
        - BB
        - BY
        - BE
        - BZ
        - BJ
        - BM
        - BT
        - BO
        - BQ
        - BA
        - BW
        - BV
        - BR
        - IO
        - BN
        - BG
        - BF
        - BI
        - KH
        - CM
        - CA
        - CV
        - KY
        - CF
        - TD
        - CL
        - CN
        - CX
        - CC
        - CO
        - KM
        - CG
        - CD
        - CK
        - CR
        - CI
        - HR
        - CU
        - CW
        - CY
        - CZ
        - DK
        - DJ
        - DM
        - DO
        - EC
        - EG
        - SV
        - GQ
        - ER
        - EE
        - ET
        - FK
        - FO
        - FJ
        - FI
        - FR
        - GF
        - PF
        - TF
        - GA
        - GM
        - GE
        - DE
        - GH
        - GI
        - GR
        - GL
        - GD
        - GP
        - GU
        - GT
        - GG
        - GN
        - GW
        - GY
        - HT
        - HM
        - VA
        - HN
        - HK
        - HU
        - IS
        - IN
        - ID
        - IR
        - IQ
        - IE
        - IM
        - IL
        - IT
        - JM
        - JP
        - JE
        - JO
        - KZ
        - KE
        - KI
        - KP
        - KR
        - KW
        - KG
        - LA
        - LV
        - LB
        - LS
        - LR
        - LY
        - LI
        - LT
        - LU
        - MO
        - MK
        - MG
        - MW
        - MY
        - MV
        - ML
        - MT
        - MH
        - MQ
        - MR
        - MU
        - YT
        - MX
        - FM
        - MD
        - MC
        - MN
        - ME
        - MS
        - MA
        - MZ
        - MM
        - NA
        - NR
        - NP
        - NL
        - NC
        - NZ
        - NI
        - NE
        - NG
        - NU
        - NF
        - MP
        - 'NO'
        - OM
        - PK
        - PW
        - PS
        - PA
        - PG
        - PY
        - PE
        - PH
        - PN
        - PL
        - PT
        - PR
        - QA
        - RE
        - RO
        - RU
        - RW
        - BL
        - SH
        - KN
        - LC
        - MF
        - PM
        - VC
        - WS
        - SM
        - ST
        - SA
        - SN
        - RS
        - SC
        - SL
        - SG
        - SX
        - SK
        - SI
        - SB
        - SO
        - ZA
        - GS
        - SS
        - ES
        - LK
        - SD
        - SR
        - SJ
        - SZ
        - SE
        - CH
        - SY
        - TW
        - TJ
        - TZ
        - TH
        - TL
        - TG
        - TK
        - TO
        - TT
        - TN
        - TR
        - TM
        - TC
        - TV
        - UG
        - UA
        - AE
        - GB
        - US
        - UM
        - UY
        - UZ
        - VU
        - VE
        - VN
        - VG
        - VI
        - WF
        - EH
        - XK
        - YE
        - ZM
        - ZW
      id: CountryCode
    LocationType:
      type: string
      enum:
        - primary_home
        - secondary_home
        - primary_work
        - headquarters
        - regional_office
      id: LocationType
    ValidationRequiredDto:
      type: object
      properties:
        code:
          type: string
          enum:
            - REQUIRED
        path:
          type: string
        message:
          type: string
        received: {}
      required:
        - code
        - path
        - message
      id: ValidationRequiredDto
    ValidationInvalidEmptyStringDto:
      type: object
      properties:
        code:
          type: string
          enum:
            - INVALID_EMPTY_STRING
        path:
          type: string
        message:
          type: string
        received: {}
      required:
        - code
        - path
        - message
      id: ValidationInvalidEmptyStringDto
    ValidationUnknownFieldDto:
      type: object
      properties:
        code:
          type: string
          enum:
            - UNKNOWN_FIELD
        path:
          type: string
        message:
          type: string
        received: {}
        keys:
          type: array
          items:
            type: string
      required:
        - code
        - path
        - message
        - keys
      id: ValidationUnknownFieldDto
    ValidationTooSmallDto:
      type: object
      properties:
        code:
          type: string
          enum:
            - TOO_SMALL
        path:
          type: string
        message:
          type: string
        received: {}
        minimum:
          type: number
        inclusive:
          type: boolean
        origin:
          type: string
      required:
        - code
        - path
        - message
        - minimum
        - inclusive
        - origin
      id: ValidationTooSmallDto
    ValidationTooBigDto:
      type: object
      properties:
        code:
          type: string
          enum:
            - TOO_BIG
        path:
          type: string
        message:
          type: string
        received: {}
        maximum:
          type: number
        inclusive:
          type: boolean
        origin:
          type: string
      required:
        - code
        - path
        - message
        - maximum
        - inclusive
        - origin
      id: ValidationTooBigDto
    ValidationInvalidTypeDto:
      type: object
      properties:
        code:
          type: string
          enum:
            - INVALID_TYPE
        path:
          type: string
        message:
          type: string
        received: {}
        expected:
          type: string
      required:
        - code
        - path
        - message
        - expected
      id: ValidationInvalidTypeDto
    ValidationInvalidValueDto:
      type: object
      properties:
        code:
          type: string
          enum:
            - INVALID_VALUE
        path:
          type: string
        message:
          type: string
        received: {}
        expected: {}
      required:
        - code
        - path
        - message
      id: ValidationInvalidValueDto
    ValidationInvalidEmailDto:
      type: object
      properties:
        code:
          type: string
          enum:
            - INVALID_EMAIL
        path:
          type: string
        message:
          type: string
        received: {}
      required:
        - code
        - path
        - message
      id: ValidationInvalidEmailDto
    ValidationInvalidUuidDto:
      type: object
      properties:
        code:
          type: string
          enum:
            - INVALID_UUID
        path:
          type: string
        message:
          type: string
        received: {}
      required:
        - code
        - path
        - message
      id: ValidationInvalidUuidDto
    ValidationInvalidUrlDto:
      type: object
      properties:
        code:
          type: string
          enum:
            - INVALID_URL
        path:
          type: string
        message:
          type: string
        received: {}
      required:
        - code
        - path
        - message
      id: ValidationInvalidUrlDto
    ValidationInvalidDatetimeDto:
      type: object
      properties:
        code:
          type: string
          enum:
            - INVALID_DATETIME
        path:
          type: string
        message:
          type: string
        received: {}
      required:
        - code
        - path
        - message
      id: ValidationInvalidDatetimeDto
    ValidationInvalidDateDto:
      type: object
      properties:
        code:
          type: string
          enum:
            - INVALID_DATE
        path:
          type: string
        message:
          type: string
        received: {}
      required:
        - code
        - path
        - message
      id: ValidationInvalidDateDto
    ValidationInvalidTimeDto:
      type: object
      properties:
        code:
          type: string
          enum:
            - INVALID_TIME
        path:
          type: string
        message:
          type: string
        received: {}
      required:
        - code
        - path
        - message
      id: ValidationInvalidTimeDto
    ValidationInvalidDurationDto:
      type: object
      properties:
        code:
          type: string
          enum:
            - INVALID_DURATION
        path:
          type: string
        message:
          type: string
        received: {}
      required:
        - code
        - path
        - message
      id: ValidationInvalidDurationDto
    ValidationInvalidIpv4Dto:
      type: object
      properties:
        code:
          type: string
          enum:
            - INVALID_IPV4
        path:
          type: string
        message:
          type: string
        received: {}
      required:
        - code
        - path
        - message
      id: ValidationInvalidIpv4Dto
    ValidationInvalidIpv6Dto:
      type: object
      properties:
        code:
          type: string
          enum:
            - INVALID_IPV6
        path:
          type: string
        message:
          type: string
        received: {}
      required:
        - code
        - path
        - message
      id: ValidationInvalidIpv6Dto
    ValidationInvalidJsonStringDto:
      type: object
      properties:
        code:
          type: string
          enum:
            - INVALID_JSON_STRING
        path:
          type: string
        message:
          type: string
        received: {}
      required:
        - code
        - path
        - message
      id: ValidationInvalidJsonStringDto
    ValidationInvalidJwtDto:
      type: object
      properties:
        code:
          type: string
          enum:
            - INVALID_JWT
        path:
          type: string
        message:
          type: string
        received: {}
      required:
        - code
        - path
        - message
      id: ValidationInvalidJwtDto
    ValidationInvalidRegexDto:
      type: object
      properties:
        code:
          type: string
          enum:
            - INVALID_REGEX
        path:
          type: string
        message:
          type: string
        received: {}
      required:
        - code
        - path
        - message
      id: ValidationInvalidRegexDto
    ValidationInvalidPhoneNumberDto:
      type: object
      properties:
        code:
          type: string
          enum:
            - INVALID_PHONE_NUMBER
        path:
          type: string
        message:
          type: string
        received: {}
      required:
        - code
        - path
        - message
      id: ValidationInvalidPhoneNumberDto
    ValidationInvalidDomainDto:
      type: object
      properties:
        code:
          type: string
          enum:
            - INVALID_DOMAIN
        path:
          type: string
        message:
          type: string
        received: {}
      required:
        - code
        - path
        - message
      id: ValidationInvalidDomainDto
    ValidationInvalidHttpsUrlDto:
      type: object
      properties:
        code:
          type: string
          enum:
            - INVALID_HTTPS_URL
        path:
          type: string
        message:
          type: string
        received: {}
      required:
        - code
        - path
        - message
      id: ValidationInvalidHttpsUrlDto
    ValidationInvalidTimezoneDto:
      type: object
      properties:
        code:
          type: string
          enum:
            - INVALID_TIMEZONE
        path:
          type: string
        message:
          type: string
        received: {}
      required:
        - code
        - path
        - message
      id: ValidationInvalidTimezoneDto
    ValidationPaginationOffsetExceededDto:
      type: object
      properties:
        code:
          type: string
          enum:
            - PAGINATION_OFFSET_EXCEEDED
        path:
          type: string
        message:
          type: string
        received: {}
        maximum:
          type: number
      required:
        - code
        - path
        - message
        - maximum
      id: ValidationPaginationOffsetExceededDto
  securitySchemes:
    x-api-key:
      type: apiKey
      name: x-api-key
      in: header
      description: >-
        API key for authentication. Get your API key from Settings → API Keys in
        your Spott dashboard.

````