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

# Upserts candidate

> Upserts candidate based on email, and optionally applies to a job



## OpenAPI

````yaml api-reference/openapi.yaml post /zapier/create-candidate
openapi: 3.0.0
info:
  version: 1.0.0
  title: Hire.inc Integration API
  description: API for Hire.inc Integrations
servers:
  - url: https://mgnmzef4kd.us-east-1.awsapprunner.com/api/v1/
    description: Production Server
security: []
tags:
  - name: zapier
    description: Endpoints for Zapier operations
paths:
  /zapier/create-candidate:
    post:
      tags:
        - zapier
      summary: Upserts candidate
      description: Upserts candidate based on email, and optionally applies to a job
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                primaryEmail:
                  type: string
                  nullable: true
                  format: email
                name:
                  type: string
                  nullable: true
                title:
                  type: string
                  nullable: true
                emails:
                  type: array
                  items:
                    type: string
                    format: email
                phone:
                  type: string
                  nullable: true
                links:
                  type: object
                  properties:
                    linkedinUrl:
                      type: string
                      nullable: true
                      format: uri
                    githubUrl:
                      type: string
                      nullable: true
                      format: uri
                    twitterUrl:
                      type: string
                      nullable: true
                      format: uri
                    blogUrl:
                      type: string
                      nullable: true
                      format: uri
                    portfolioUrl:
                      type: string
                      nullable: true
                      format: uri
                  default: {}
                education:
                  type: string
                  nullable: true
                experienceYears:
                  type: number
                  nullable: true
                  minimum: 0
                  maximum: 2147483647
                resumeUrl:
                  type: string
                  format: uri
                noticeWeeks:
                  type: number
                  nullable: true
                  minimum: 0
                  maximum: 2147483647
                earliestStartDate:
                  type: string
                  nullable: true
                currentSalary:
                  type: number
                  nullable: true
                  minimum: 0
                  maximum: 2147483647
                currentSalaryCurrency:
                  type: string
                  nullable: true
                  enum:
                    - USD
                    - EUR
                    - GBP
                    - EGP
                    - AED
                    - SAR
                expectedSalary:
                  type: number
                  nullable: true
                  minimum: 0
                  maximum: 2147483647
                expectedSalaryMax:
                  type: number
                  nullable: true
                  minimum: 0
                  maximum: 2147483647
                expectedSalaryCurrency:
                  type: string
                  nullable: true
                  enum:
                    - USD
                    - EUR
                    - GBP
                    - EGP
                    - AED
                    - SAR
                isVeteran:
                  type: boolean
                  nullable: true
                creatorId:
                  type: string
                  nullable: true
                workspaceId:
                  type: string
                countryIso3:
                  type: string
                  nullable: true
                zipCode:
                  type: string
                  nullable: true
                address:
                  type: string
                  nullable: true
                city:
                  type: string
                  nullable: true
                notes:
                  type: string
                  nullable: true
                jobId:
                  type: string
              required:
                - workspaceId
              additionalProperties: false
      responses:
        '200':
          description: Successfully upserted the candidate
          content:
            application/json:
              schema:
                type: object
                properties:
                  id:
                    type: string
                required:
                  - id
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '404':
          description: Job not found
      security:
        - apiKey: []
components:
  securitySchemes:
    apiKey:
      type: apiKey
      in: header
      name: x-api-key
      description: API key for authentication

````