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

# Create a new application for a job opportunity

> This route allows creating a new application for a job opportunity,
given candidate information.

Usable only with an API key. It is designed for custom career sites 
that need to push candidate data directly into Lucca Recruitment.

<Warning>
  Every successful creation triggers an automated email to the candidate, consistent with the standard Lucca form application workflow.
</Warning>


## OpenAPI

````yaml /openapi-specs/recruitment.yaml post /recruitment/api/public/applications
openapi: 3.1.0
info:
  title: Lucca Recruitment public APIs
  version: '1.0'
  description: |
    Welcome on the documentation for the Lucca Recruitment API.
  contact:
    name: API Support
    url: https://support.lucca.fr
    email: contact@luccasoftware.com
  license:
    name: Unlicensed
    url: https://www.luccasoftware.com
servers:
  - url: https://{host}
    description: Your Lucca account URL.
    variables:
      host:
        default: example.ilucca.net
        description: >-
          The URL of your dedicated Lucca account: `{account}.{env}.{region}`.


          Account reflects your company name. Env indicates the environment.
          Region depends on your server location.


          **Please, use your test or sandbox environments (and not your
          production env.) for testing purposes.**


          Environments:

          - `ilucca`: production environment for customers.

          - `ilucca-test`: test environment for customers.

          - `ilucca-demo`: demo environment for prospects.


          Regions:

          - `.ch` for Swiss located accounts.

          - `.net` for the others.


          Regarding sandboxes, the pattern differs:
          `https://{account}-{sandboxName}.sandbox.{server}.luccasoftware.com`,
          where:

          - `{sandboxName}` is automatically generated upon creation.

          - `{server}` may be "eu1", "eu2" or "ch1".
security: []
tags:
  - name: Applications
    description: >-
      Operations related to job applications, allowing the creation of new
      applications for job opportunities.
paths:
  /recruitment/api/public/applications:
    post:
      tags:
        - Applications
      summary: Create a new application for a job opportunity
      description: |-
        This route allows creating a new application for a job opportunity,
        given candidate information.

        Usable only with an API key. It is designed for custom career sites 
        that need to push candidate data directly into Lucca Recruitment.
      operationId: post-application
      requestBody:
        description: >-
          Application payload containing candidate details, files, and Job
          opportunity Id.
        content:
          application/json:
            schema:
              allOf:
                - $ref: '#/components/schemas/PublicApplicationPayload'
              description: Payload for creating a new application for a job opportunity.
      responses:
        '202':
          description: Application accepted. It will be processed shortly.
components:
  schemas:
    PublicApplicationPayload:
      required:
        - additionalFiles
        - emailAddress
        - firstName
        - jobOpportunityId
        - lastName
        - phoneNumber
        - resume
      type: object
      properties:
        jobOpportunityId:
          type: integer
          description: >-
            Job opportunity Id, used to know which job opportunity the
            application is for.
          format: int32
        lastName:
          type: string
          description: Last name of the candidate.
        firstName:
          type: string
          description: First name of the candidate.
        phoneNumber:
          type: string
          description: Phone number of the candidate, used for contact purposes.
        emailAddress:
          type: string
          description: >-
            Email address of the applicant, used for communication regarding the
            job application.
        resume:
          oneOf:
            - $ref: '#/components/schemas/ExternalFilePayload'
            - type: 'null'
          description: >-
            Resume file associated with the application, containing details

            such as filename and base64-encoded data.

            This file will be parsed to extract more informations such as
            profile photo, current company and

            job...
        additionalFiles:
          type: array
          items:
            $ref: '#/components/schemas/ExternalFilePayload'
          description: |-
            Collection of additional files provided in the application
            payload, such as certifications or supporting documents.
            Only used to add as attachments.
        comments:
          type: array
          items:
            type: string
          description: |-
            Comments provided by the applicant, typically used for additional
            details or notes regarding the application.
        consentToGoInTalentPool:
          type: boolean
          description: |-
            Indicates whether the applicant consents to being included
            in the talent pool.
      additionalProperties: false
      description: Payload for creating a new application for a job opportunity.
    ExternalFilePayload:
      type: object
      properties:
        fileName:
          type: string
          description: |-
            The name of the file, including its extension. Used to identify
            or label the uploaded file for reference purposes.
        base64Data:
          type: string
          description: >-
            Base64-encoded string representing the content of a file.


            Commonly used to transfer file data in a text-based format, ensuring
            compatibility

            with various systems and APIs. The maximum file size is 5 MB, and
            the

            file should be in one of the following formats: .doc, .docx, .pdf,
            .png,

            or .pages.
      additionalProperties: false
      description: >-
        Represents a file payload with metadata and content in a base64-encoded

        format.


        Useful for handling externally uploaded files such as resumes or

        additional documents. The maximum file size is 5 MB, and the file should
        be

        in one of the following formats: .doc, .docx, .pdf, .png, or .pages.

````