Bindbee Candidates API

Job candidates from connected ATS systems, normalized across Greenhouse, Lever, Workable, Ashby and every other connected ATS.

Operations 5

GET /api/ats/v1/candidates Get Candidates #
POST /api/ats/v1/candidates Create Candidate #
GET /api/ats/v1/candidates/create/meta Get Create Candidate Request Body #
GET /api/ats/v1/candidates/{id} Get Candidate By Id #
POST /api/ats/v1/candidates/{candidate_id}/attachments Create Candidate Attachment #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/bindbee-candidates-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

bindbee-candidates-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Bindbee Candidates API
  description: Job candidates from connected ATS systems Operations copied verbatim from the Bindbee unified API contract
    published at https://api.bindbee.dev/openapi.json.
  version: 0.1.0
  contact:
    name: Bindbee Support
    email: support@bindbee.dev
    url: https://docs.bindbee.dev/
servers:
- url: https://api.bindbee.dev
  description: Bindbee global API
- url: https://api-eu.bindbee.dev
  description: Bindbee EU API
tags:
- name: Candidate
  description: Job candidates from connected ATS systems
paths:
  /api/ats/v1/candidates:
    get:
      tags:
      - Candidate
      summary: Get Candidates
      description: Returns a list of Candidate objects.
      operationId: get_candidates_api_ats_v1_candidates_get
      security:
      - HTTPBearer: []
      parameters:
      - name: ids
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          description: The ID of the candidates to fetch
          examples:
          - 01931edf-04b6-7391-8a5c-93ac4b395316,01931edf-04c8-7649-a470-d85f6161bd1a
          title: Ids
        description: The ID of the candidates to fetch
      - name: remote_id
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          description: The third-party API ID of the matching object.
          examples:
          - '3235005483341316245'
          title: Remote Id
        description: The third-party API ID of the matching object.
      - name: company
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          description: If provided, will only return candidate for these companies
          examples:
          - 01931edf-04b6-7391-8a5c-93ac4b395316,01931edf-04c8-7649-a470-d85f6161bd1a
          title: Company
        description: If provided, will only return candidate for these companies
      - name: first_name
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          description: If provided, will return candidates with this first name
          examples:
          - John
          title: First Name
        description: If provided, will return candidates with this first name
      - name: last_name
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          description: If provided, will return candidates with this last name
          examples:
          - Kremlin
          title: Last Name
        description: If provided, will return candidates with this last name
      - name: tag
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          description: If provided, will return candidates with this tag
          examples:
          - Tech Experience
          title: Tag
        description: If provided, will return candidates with this tag
      - name: email_addresses
        in: query
        required: false
        schema:
          anyOf:
          - type: array
            items:
              type: string
          - type: 'null'
          description: If provided, will return candidates with these email addresses
          examples:
          - john@doe.com
          - jane@doe.com
          title: Email Addresses
        description: If provided, will return candidates with these email addresses
      - name: include_raw_data
        in: query
        required: false
        schema:
          type: boolean
          description: Include raw data in the response
          examples:
          - false
          default: false
          title: Include Raw Data
        description: Include raw data in the response
      - name: include_custom_fields
        in: query
        required: false
        schema:
          type: boolean
          description: Whether to include custom fields in the response.
          examples:
          - false
          default: false
          title: Include Custom Fields
        description: Whether to include custom fields in the response.
      - name: page_size
        in: query
        required: false
        schema:
          type: integer
          maximum: 200
          minimum: 1
          description: Number of results to return per page. Maximum size is 200.
          default: 50
          title: Page Size
        description: Number of results to return per page. Maximum size is 200.
      - name: cursor
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          description: The pagination cursor value.
          title: Cursor
        description: The pagination cursor value.
      - name: expand
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          description: Which relations should be returned in expanded form. Multiple relation names should be comma separated
            without spaces. You can also specify required fields in [] for each relation name.
          examples:
          - manager[first_name,last_name]
          title: Expand
        description: Which relations should be returned in expanded form. Multiple relation names should be comma separated
          without spaces. You can also specify required fields in [] for each relation name.
      - name: modified_after
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          description: 'If provided, only objects synced by Bindbee after this date time will be returned. Format: DateTime
            (ISO 8601). If no timezone offset is supplied, the value is interpreted as UTC.'
          examples:
          - '2024-02-21T21:22:12.993Z'
          title: Modified After
        description: 'If provided, only objects synced by Bindbee after this date time will be returned. Format: DateTime
          (ISO 8601). If no timezone offset is supplied, the value is interpreted as UTC.'
      - name: x-connector-token
        in: header
        required: true
        schema:
          type: string
          title: X-Connector-Token
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedResponse_AtsCandidate_'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
        '401':
          description: Missing or invalid bearer authentication credentials.
          headers:
            WWW-Authenticate:
              description: Bearer authentication challenge.
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '403':
          description: The credentials are valid but do not permit access to this resource, e.g. a connector token used on
            a different API category or a model whose writes are disabled.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '429':
          description: Rate limit exceeded.
          headers:
            X-RateLimit-Limit:
              description: Maximum requests allowed in the current window.
              schema:
                type: integer
            X-RateLimit-Remaining:
              description: Requests remaining in the current window.
              schema:
                type: integer
            X-RateLimit-Reset:
              description: Unix timestamp (seconds since epoch) at which the current rate-limit window resets.
              schema:
                type: integer
            Retry-After:
              description: Seconds to wait before retrying the request.
              schema:
                type: integer
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
    post:
      tags:
      - Candidate
      summary: Create Candidate
      description: Creates a Candidate object with the given values.
      operationId: create_candidate_api_ats_v1_candidates_post
      security:
      - HTTPBearer: []
      parameters:
      - name: x-connector-token
        in: header
        required: true
        schema:
          type: string
          title: X-Connector-Token
      requestBody:
        required: true
        content:
          application/json:
            schema:
              anyOf:
              - $ref: '#/components/schemas/CreateCandidate'
              - $ref: '#/components/schemas/AtsCandidateWrite'
              title: Candidate
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
        '401':
          description: Missing or invalid bearer authentication credentials.
          headers:
            WWW-Authenticate:
              description: Bearer authentication challenge.
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '403':
          description: The credentials are valid but do not permit access to this resource, e.g. a connector token used on
            a different API category or a model whose writes are disabled.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '429':
          description: Rate limit exceeded.
          headers:
            X-RateLimit-Limit:
              description: Maximum requests allowed in the current window.
              schema:
                type: integer
            X-RateLimit-Remaining:
              description: Requests remaining in the current window.
              schema:
                type: integer
            X-RateLimit-Reset:
              description: Unix timestamp (seconds since epoch) at which the current rate-limit window resets.
              schema:
                type: integer
            Retry-After:
              description: Seconds to wait before retrying the request.
              schema:
                type: integer
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
  /api/ats/v1/candidates/create/meta:
    get:
      tags:
      - Candidate
      summary: Get Create Candidate Request Body
      description: Returns the data points required to add new employee in HRIS
      operationId: get_create_candidate_request_body_api_ats_v1_candidates_create_meta_get
      security:
      - HTTPBearer: []
      parameters:
      - name: x-connector-token
        in: header
        required: true
        schema:
          type: string
          title: X-Connector-Token
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MetaApiResponseModel'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
        '401':
          description: Missing or invalid bearer authentication credentials.
          headers:
            WWW-Authenticate:
              description: Bearer authentication challenge.
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '403':
          description: The credentials are valid but do not permit access to this resource, e.g. a connector token used on
            a different API category or a model whose writes are disabled.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '429':
          description: Rate limit exceeded.
          headers:
            X-RateLimit-Limit:
              description: Maximum requests allowed in the current window.
              schema:
                type: integer
            X-RateLimit-Remaining:
              description: Requests remaining in the current window.
              schema:
                type: integer
            X-RateLimit-Reset:
              description: Unix timestamp (seconds since epoch) at which the current rate-limit window resets.
              schema:
                type: integer
            Retry-After:
              description: Seconds to wait before retrying the request.
              schema:
                type: integer
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
  /api/ats/v1/candidates/{id}:
    get:
      tags:
      - Candidate
      summary: Get Candidate By Id
      description: Returns a Candidate object with the given id.
      operationId: get_candidate_by_id_api_ats_v1_candidates__id__get
      security:
      - HTTPBearer: []
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
          format: uuid
          title: Id
      - name: include_raw_data
        in: query
        required: false
        schema:
          type: boolean
          description: Include raw data in the response
          examples:
          - false
          default: false
          title: Include Raw Data
        description: Include raw data in the response
      - name: include_custom_fields
        in: query
        required: false
        schema:
          type: boolean
          description: Whether to include custom fields in the response.
          examples:
          - false
          default: false
          title: Include Custom Fields
        description: Whether to include custom fields in the response.
      - name: expand
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          description: Which relations should be returned in expanded form. Multiple relation names should be comma separated
            without spaces. You can also specify required fields in [] for each relation name.
          examples:
          - manager[first_name,last_name]
          title: Expand
        description: Which relations should be returned in expanded form. Multiple relation names should be comma separated
          without spaces. You can also specify required fields in [] for each relation name.
      - name: x-connector-token
        in: header
        required: true
        schema:
          type: string
          title: X-Connector-Token
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AtsCandidate'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
        '401':
          description: Missing or invalid bearer authentication credentials.
          headers:
            WWW-Authenticate:
              description: Bearer authentication challenge.
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '403':
          description: The credentials are valid but do not permit access to this resource, e.g. a connector token used on
            a different API category or a model whose writes are disabled.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '429':
          description: Rate limit exceeded.
          headers:
            X-RateLimit-Limit:
              description: Maximum requests allowed in the current window.
              schema:
                type: integer
            X-RateLimit-Remaining:
              description: Requests remaining in the current window.
              schema:
                type: integer
            X-RateLimit-Reset:
              description: Unix timestamp (seconds since epoch) at which the current rate-limit window resets.
              schema:
                type: integer
            Retry-After:
              description: Seconds to wait before retrying the request.
              schema:
                type: integer
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '404':
          description: The requested resource was not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
  /api/ats/v1/candidates/{candidate_id}/attachments:
    post:
      tags:
      - Candidate
      summary: Create Candidate Attachment
      description: Uploads an attachment for a given candidate.
      operationId: create_candidate_attachment_api_ats_v1_candidates__candidate_id__attachments_post
      security:
      - HTTPBearer: []
      parameters:
      - name: candidate_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
          title: Candidate Id
      - name: x-connector-token
        in: header
        required: true
        schema:
          type: string
          title: X-Connector-Token
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AtsAttachmentWrite'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
        '401':
          description: Missing or invalid bearer authentication credentials.
          headers:
            WWW-Authenticate:
              description: Bearer authentication challenge.
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '403':
          description: The credentials are valid but do not permit access to this resource, e.g. a connector token used on
            a different API category or a model whose writes are disabled.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '429':
          description: Rate limit exceeded.
          headers:
            X-RateLimit-Limit:
              description: Maximum requests allowed in the current window.
              schema:
                type: integer
            X-RateLimit-Remaining:
              description: Requests remaining in the current window.
              schema:
                type: integer
            X-RateLimit-Reset:
              description: Unix timestamp (seconds since epoch) at which the current rate-limit window resets.
              schema:
                type: integer
            Retry-After:
              description: Seconds to wait before retrying the request.
              schema:
                type: integer
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '404':
          description: The requested resource was not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
components:
  securitySchemes:
    HTTPBearer:
      type: http
      scheme: bearer
  schemas:
    AtsAttachmentWrite:
      properties:
        file_name:
          anyOf:
          - type: string
          - type: 'null'
          title: File Name
          description: The name of the file attached.
          examples:
          - resume.pdf
        file_url:
          anyOf:
          - type: string
            maxLength: 2083
            minLength: 1
            format: uri
          - type: 'null'
          title: File Url
          description: The URL where the file is stored and can be retrieved.
          examples:
          - https://example.com/path/to/resume.pdf
        attachment_type:
          anyOf:
          - type: string
          - type: 'null'
          enum:
          - RESUME
          - COVER_LETTER
          - OFFER_LETTER
          - OTHER
          - '-'
          title: Attachment Type
          description: The type of attachment. If the value is not one of the defined enum values, the original value passed
            through will be returned.
          examples:
          - RESUME
        file_content:
          anyOf:
          - type: string
          - type: 'null'
          title: File Content
          description: File in base64 format
          examples:
          - SGVsbG8sIFdvcmxkIQ==
        content_type:
          anyOf:
          - type: string
          - type: 'null'
          title: Content Type
          description: The MIME type of the file (e.g., 'application/pdf', 'image/png').
          examples:
          - application/pdf
        candidate:
          anyOf:
          - type: string
            format: uuid
          - type: 'null'
          title: Candidate
          description: The candidate to whom the attachment belongs.
          examples:
          - 018b4bfb-5ece-70b1-ad5e-862a9433aa65
        remote_user_id:
          anyOf:
          - type: string
            format: uuid
          - type: 'null'
          title: Remote User Id
          description: The id of user using the integration
          examples:
          - 018b4bfb-5ece-70b1-ad5e-862a9433aa65
      type: object
      title: AtsAttachmentWrite
      description: The AtsAttachmentWriteForCandidate object is used to represent a file attachment linked to a candidate's
        application within the ATS.
    AtsCandidate:
      properties:
        id:
          type: string
          format: uuid
          title: Id
          examples:
          - 018b18ef-c487-703c-afd9-0ca478ccd9d6
        remote_id:
          anyOf:
          - type: string
          - type: 'null'
          title: Remote Id
          description: The third-party API ID of the matching object.
          examples:
          - '123321'
        modified_at:
          type: string
          format: date-time
          title: Modified At
          description: This is the datetime that this object was last updated by Bindbee
          examples:
          - '2021-10-16T00:00:00Z'
        raw_data:
          anyOf:
          - additionalProperties: true
            type: object
          - type: 'null'
          title: Raw Data
          description: This is the Raw data
          examples:
          - key_1: Platform dependent data 1
            key_2: Platform dependent data 2
        custom_fields:
          anyOf:
          - additionalProperties: true
            type: object
          - type: 'null'
          title: Custom Fields
          description: The custom fields related to the model
          examples:
          - category_group: REG
            disability_type: ASBERG
            hire_date: '1991-03-16T00:00:00'
            hire_source: REFER
            nationality: USA
            original_hire_date: '1991-03-16T00:00:00'
        first_name:
          anyOf:
          - type: string
          - type: 'null'
          title: First Name
          description: The candidate's first name.
          examples:
          - John
        last_name:
          anyOf:
          - type: string
          - type: 'null'
          title: Last Name
          description: The candidate's last name.
          examples:
          - Doe
        company:
          anyOf:
          - type: string
          - type: 'null'
          title: Company
          description: The name of the company where candidate has applied.
          examples:
          - Google
        title:
          anyOf:
          - type: string
          - type: 'null'
          title: Title
          description: The position for which the candidate has applied
          examples:
          - SOFTWARE ENGINEER
        last_interaction_at:
          anyOf:
          - type: string
          - type: 'null'
          title: Last Interaction At
          description: The date of the last interaction with the candidate.
          examples:
          - '2021-07-01T00:00:00Z'
        is_private:
          anyOf:
          - type: boolean
          - type: 'null'
          title: Is Private
          description: Whether the candidate's information is private.
          examples:
          - true
        can_email:
          anyOf:
          - type: boolean
          - type: 'null'
          title: Can Email
          description: Whether the candidate can be emailed.
          examples:
          - true
        locations:
          anyOf:
          - items:
              type: string
            type: array
          - type: 'null'
          title: Locations
          description: The location of the candidate.
          examples:
          - San Francisco
          - New York
        phone_numbers:
          anyOf:
          - items:
              type: string
            type: array
          - type: 'null'
          title: Phone Numbers
          description: The candidate's phone numbers.
          examples:
          - 123-456-7890
        email_addresses:
          anyOf:
          - items:
              type: string
            type: array
          - type: 'null'
          title: Email Addresses
          description: The candidate's email addresses.
          examples:
          - john@doe.com
        urls:
          anyOf:
          - items:
              $ref: '#/components/schemas/AtsUrl'
            type: array
          - type: 'null'
          title: Urls
          description: The candidate's URLs. This can include a personal website, LinkedIn profile, or other relevant URLs.
          examples:
          - type: LINKEDIN
            value: https://www.linkedin.com/in/johndoe
        tags:
          anyOf:
          - items:
              type: string
            type: array
          - type: 'null'
          title: Tags
          description: The candidate's tags. Tags are used to categorize candidates and can be used to filter candidates in
            the UI.
          examples:
          - JUNIOR
          - INTERMEDIATE
        applications:
          anyOf:
          - items: {}
            type: array
          - type: 'null'
          title: Applications
          description: The candidate's applications.
          examples:
          - 018b4bfb-5ece-70b1-ad5e-862a9433aa65
        attachments:
          anyOf:
          - items: {}
            type: array
          - type: 'null'
          title: Attachments
          description: The candidate's attachments.
          examples:
          - 018b4bfb-5ece-70b1-ad5e-862a9433aa65
        remote_created_at:
          anyOf:
          - type: string
          - type: 'null'
          title: Remote Created At
          description: When the third party's candidate was created.
          examples:
          - '2021-07-01T00:00:00Z'
        remote_updated_at:
          anyOf:
          - type: string
          - type: 'null'
          title: Remote Updated At
          description: When the third party's candidate was last updated.
          examples:
          - '2021-07-01T00:00:00Z'
        avatar:
          anyOf:
          - type: string
          - type: 'null'
          title: Avatar
          description: The candidate's avatar.
          examples:
          - https://www.example.com/avatar.jpg
      type: object
      required:
      - id
      - remote_id
      - modified_at
      - custom_fields
      title: AtsCandidate
    AtsCandidateWrite:
      properties:
        additional_attributes:
          anyOf:
          - additionalProperties: true
            type: object
          - type: 'null'
          title: Additional Attributes
          description: Specific fields required by the chosen HRIS
          examples:
          - contract_end_date: '2025-12-31T00:00:00'
            previous_employer: TechCorp
        custom_fields:
          anyOf:
          - additionalProperties: true
            type: object
          - type: 'null'
          title: Custom Fields
          description: The custom fields related to the model
          examples:
          - customTshirtSize: XXL
        first_name:
          anyOf:
          - type: string
          - type: 'null'
          title: First Name
          description: The candidate's first name.
          examples:
          - John
        last_name:
          anyOf:
          - type: string
          - type: 'null'
          title: Last Name
          description: The candidate's last name.
          examples:
          - Doe
        company:
          anyOf:
          - type: string
          - type: 'null'
          title: Company
          description: The name of the company where candidate has applied.
          examples:
          - Google
        title:
          anyOf:
          - type: string
          - type: 'null'
          title: Title
          description: The position for which the candidate has applied
          examples:
          - SOFTWARE ENGINEER
        last_interaction_at:
          anyOf:
          - type: string
          - type: 'null'
          title: Last Interaction At
          description: The date of the last interaction with the candidate.
          examples:
          - '2021-07-01T00:00:00Z'
        is_private:
          anyOf:
          - type: boolean
          - type: 'null'
          title: Is Private
          description: Whether the candidate's information is private.
          examples:
          - true
        can_email:
          anyOf:
          - type: boolean
          - type: 'null'
          title: Can Email
          description: Whether the candidate can be emailed.
          examples:
          - true
        locations:
          anyOf:
          - items:
              type: string
            type: array
          - type: 'null'
          title: Locations
          description: The location of the candidate.
          examples:
          - San Francisco
          - New York
        phone_numbers:
          anyOf:
          - items:
              type: string
            type: array
          - type: 'null'
          title: Phone Numbers
          description: The candidate's phone numbers.
          examples:
          - 123-456-7890
        email_addresses:
          anyOf:
          - items:
              type: string
            type: array
          - type: 'null'
          title: Email Addresses
          description: The candidate's email addresses.
          examples:
          - john@doe.com
        urls:
          anyOf:
          - items:
              $ref: '#/components/schemas/AtsUrl'
            type: array
          - type: 'null'
          title: Urls
          description: The candidate's URLs. This can include a personal website, LinkedIn profile, or other relevant URLs.
          examples:
          - type: LINKEDIN
            value: https://www.linkedin.com/in/johndoe
        tags:
          anyOf:
          - items:
              type: string
            type: array
          - type: 'null'
          title: Tags
          description: The candidate's tags. Tags are used to categorize candidates and can be used to filter candidates in
            the UI.
          examples:
          - JUNIOR
          - INTERMEDIATE
        applications:
          any

# --- truncated at 32 KB (41 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/bindbee/refs/heads/main/openapi/bindbee-candidates-api-openapi.yml