Ashby Interviewer Pool API

The Interviewer Pool API from Ashby — 8 operation(s) for interviewer pool.

OpenAPI Specification

ashby-interviewer-pool-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  version: 1.0.0
  title: Ashby API Key Interviewer Pool API
  description: The public API for accessing resources in your Ashby instance.
  contact:
    name: Ashby Support
    url: https://app.ashbyhq.com/support
    email: support@ashbyhq.com
servers:
- url: https://api.ashbyhq.com
security:
- BasicAuth: []
tags:
- name: Interviewer Pool
paths:
  /interviewerPool.list:
    post:
      summary: interviewerPool.list
      operationId: interviewerPoolList
      description: 'List all interviewer pools.


        See the [Pagination and Incremental Synchronization](/docs/pagination-and-incremental-sync) guide for detailed usage examples.


        **Requires the [`hiringProcessMetadataRead`](authentication#permissions-interviewerpoollist) permission.**

        '
      tags:
      - Interviewer Pool
      requestBody:
        content:
          application/json:
            schema:
              allOf:
              - $ref: '#/paths/~1surveyFormDefinition.list/post/requestBody/content/application~1json/schema'
              - type: object
                properties:
                  includeArchivedPools:
                    type: boolean
                    description: When true, includes archived pools
                    default: false
                  includeArchivedTrainingStages:
                    type: boolean
                    description: When true, includes archived training stages
                    default: false
      responses:
        '200':
          description: Responses from the interviewerPool.list endpoint
          content:
            application/json:
              schema:
                oneOf:
                - title: Success response
                  allOf:
                  - $ref: '#/paths/~1job.list/post/responses/200/content/application~1json/schema/oneOf/0/allOf/0'
                  - type: object
                    properties:
                      results:
                        type: array
                        items:
                          type: object
                          properties:
                            id:
                              allOf:
                              - description: The pool's id
                              - example: 3ae2b801-19f6-41ef-ad28-214bd731948f
                              - $ref: '#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId'
                            title:
                              type: string
                              example: Backend Technical Screeners
                              description: The pool's title
                            isArchived:
                              allOf:
                              - $ref: '#/webhooks/openingCreate/post/requestBody/content/application~1json/schema/properties/data/properties/opening/properties/isArchived'
                              - description: Whether or not the pool is archived
                            trainingPath:
                              type: object
                              properties:
                                id:
                                  allOf:
                                  - description: The training path's id
                                  - example: 3ae2b801-19f6-41ef-ad28-214bd731948f
                                  - $ref: '#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId'
                                enabled:
                                  type: boolean
                                  description: Whether or not the training path is enabled
                                  example: true
                                trainingStages:
                                  type: array
                                  items:
                                    type: object
                                    properties:
                                      id:
                                        allOf:
                                        - description: The training stage's id
                                        - example: 3ae2b801-19f6-41ef-ad28-214bd731948f
                                        - $ref: '#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId'
                                      interviewerRole:
                                        type: string
                                        enum:
                                        - Shadow
                                        - ReverseShadow
                                        description: The role of the interviewer for this stage
                                        example: Shadow
                                      interviewsRequired:
                                        type: integer
                                        description: The number of interviews required for this stage
                                        example: 2
                                      isArchived:
                                        type: boolean
                                        description: Whether or not the training stage is archived
                                        example: false
                                      approvalRequired:
                                        type: boolean
                                        description: Whether or not approval is required for this stage
                                        example: true
                                      approvers:
                                        type: array
                                        items:
                                          $ref: '#/paths/~1user.info/post/responses/200/content/application~1json/schema/oneOf/0/allOf/1/properties/results'
                                    required:
                                    - id
                                    - interviewerRole
                                    - interviewsRequired
                                    - isArchived
                                    - approvalRequired
                              required:
                              - id
                              - enabled
                              - trainingStages
                          required:
                          - id
                          - title
                          - isArchived
                    required:
                    - results
                - title: Error response
                  $ref: '#/paths/~1report.generate/post/responses/429/content/application~1json/schema'
  /interviewerPool.info:
    post:
      summary: interviewerPool.info
      operationId: interviewerPoolInfo
      description: 'Get information about an interviewer pool.


        **Requires the [`hiringProcessMetadataRead`](authentication#permissions-interviewerpoolinfo) permission.**

        '
      tags:
      - Interviewer Pool
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                interviewerPoolId:
                  $ref: '#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId'
              required:
              - interviewerPoolId
      responses:
        '200':
          description: Responses from the interviewerPool.info endpoint
          content:
            application/json:
              schema:
                oneOf:
                - title: Success response
                  allOf:
                  - $ref: '#/paths/~1job.info/post/responses/200/content/application~1json/schema/oneOf/0/allOf/0'
                  - type: object
                    properties:
                      results:
                        allOf:
                        - $ref: '#/paths/~1interviewerPool.list/post/responses/200/content/application~1json/schema/oneOf/0/allOf/1/properties/results/items'
                        - type: object
                          properties:
                            qualifiedMembers:
                              type: array
                              items:
                                allOf:
                                - $ref: '#/paths/~1user.info/post/responses/200/content/application~1json/schema/oneOf/0/allOf/1/properties/results'
                                - type: object
                                  description: A user who is a qualified member of an interviewer pool.
                                  properties:
                                    isPaused:
                                      type: boolean
                                      description: Whether the user is currently paused from interviewing in this pool.
                                      example: false
                                  required:
                                  - isPaused
                            trainees:
                              type: array
                              items:
                                allOf:
                                - $ref: '#/paths/~1interviewerPool.info/post/responses/200/content/application~1json/schema/oneOf/0/allOf/1/properties/results/allOf/1/properties/qualifiedMembers/items'
                                - properties:
                                    currentProgress:
                                      type: object
                                      properties:
                                        trainingPathId:
                                          $ref: '#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId'
                                          description: The id of the training path the user is currently on
                                        trainingPathStageId:
                                          $ref: '#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId'
                                          description: The id of the training stage the user is currently in
                                        interviewsCompleted:
                                          type: integer
                                          description: The number of interviews the user has completed in the current stage
                                          example: 1
                                      required:
                                      - trainingPathId
                                      - trainingPathStageId
                                      - interviewsCompleted
                                required:
                                - currentProgress
                    required:
                    - results
                - $ref: '#/paths/~1report.generate/post/responses/429/content/application~1json/schema'
  /interviewerPool.create:
    post:
      summary: interviewerPool.create
      operationId: interviewerPoolCreate
      description: 'Create an interviewer pool.


        **Requires the [`hiringProcessMetadataWrite`](authentication#permissions-interviewerpoolcreate) permission.**

        '
      tags:
      - Interviewer Pool
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                title:
                  type: string
                  description: The title of the interviewer pool
                  example: Engineering
                requiresTraining:
                  type: boolean
                  description: Whether the interviewer pool requires training
                  example: true
              required:
              - title
      responses:
        '200':
          description: Responses from the interviewerPool.create endpoint
          content:
            application/json:
              schema:
                oneOf:
                - title: Success response
                  allOf:
                  - $ref: '#/paths/~1job.info/post/responses/200/content/application~1json/schema/oneOf/0/allOf/0'
                  - type: object
                    properties:
                      results:
                        $ref: '#/paths/~1interviewerPool.info/post/responses/200/content/application~1json/schema/oneOf/0/allOf/1/properties/results'
                    required:
                    - results
                - $ref: '#/paths/~1report.generate/post/responses/429/content/application~1json/schema'
  /interviewerPool.update:
    post:
      summary: interviewerPool.update
      operationId: interviewerPoolUpdate
      description: 'Update an interviewer pool.


        **Requires the [`hiringProcessMetadataWrite`](authentication#permissions-interviewerpoolupdate) permission.**

        '
      tags:
      - Interviewer Pool
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                interviewerPoolId:
                  $ref: '#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId'
                title:
                  type: string
                  description: The title of the interviewer pool
                  example: Engineering
                requiresTraining:
                  type: boolean
                  description: Whether the interviewer pool requires training
                  example: true
              required:
              - interviewerPoolId
      responses:
        '200':
          description: Responses from the interviewerPool.update endpoint
          content:
            application/json:
              schema:
                oneOf:
                - title: Success response
                  allOf:
                  - $ref: '#/paths/~1job.info/post/responses/200/content/application~1json/schema/oneOf/0/allOf/0'
                  - type: object
                    properties:
                      results:
                        $ref: '#/paths/~1interviewerPool.info/post/responses/200/content/application~1json/schema/oneOf/0/allOf/1/properties/results'
                    required:
                    - results
                - $ref: '#/paths/~1report.generate/post/responses/429/content/application~1json/schema'
  /interviewerPool.archive:
    post:
      summary: interviewerPool.archive
      operationId: interviewerPoolArchive
      description: 'Archives an interviewer pool.


        **Requires the [`hiringProcessMetadataWrite`](authentication#permissions-interviewerpoolarchive) permission.**

        '
      tags:
      - Interviewer Pool
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                interviewerPoolId:
                  $ref: '#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId'
              required:
              - interviewerPoolId
      responses:
        '200':
          description: Responses from the interviewerPool.archive endpoint
          content:
            application/json:
              schema:
                oneOf:
                - title: Success response
                  allOf:
                  - $ref: '#/paths/~1job.info/post/responses/200/content/application~1json/schema/oneOf/0/allOf/0'
                  - type: object
                    properties:
                      results:
                        $ref: '#/paths/~1interviewerPool.info/post/responses/200/content/application~1json/schema/oneOf/0/allOf/1/properties/results'
                    required:
                    - results
                - $ref: '#/paths/~1report.generate/post/responses/429/content/application~1json/schema'
  /interviewerPool.restore:
    post:
      summary: interviewerPool.restore
      operationId: interviewerPool.restore
      description: 'Restores an archived interviewer pool.


        **Requires the [`hiringProcessMetadataWrite`](authentication#permissions-interviewerpoolrestore) permission.**

        '
      tags:
      - Interviewer Pool
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                interviewerPoolId:
                  $ref: '#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId'
              required:
              - interviewerPoolId
      responses:
        '200':
          description: Responses from the interviewerPool.restore endpoint
          content:
            application/json:
              schema:
                oneOf:
                - title: Success response
                  allOf:
                  - $ref: '#/paths/~1job.info/post/responses/200/content/application~1json/schema/oneOf/0/allOf/0'
                  - type: object
                    properties:
                      results:
                        $ref: '#/paths/~1interviewerPool.info/post/responses/200/content/application~1json/schema/oneOf/0/allOf/1/properties/results'
                    required:
                    - results
                - $ref: '#/paths/~1report.generate/post/responses/429/content/application~1json/schema'
  /interviewerPool.addUser:
    post:
      summary: interviewerPool.addUser
      operationId: interviewerPoolAddUser
      description: 'Add a user to an interviewer pool.


        **Requires the [`hiringProcessMetadataWrite`](authentication#permissions-interviewerpooladduser) permission.**

        '
      tags:
      - Interviewer Pool
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                interviewerPoolId:
                  $ref: '#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId'
                userId:
                  type: string
                  format: uuid
                  example: e9ed20fd-d45f-4aad-8a00-a19bfba0083e
                interviewerPoolTrainingPathStageId:
                  $ref: '#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId'
                  description: The ID of the training path stage to add the user to. If this is not provided, the user will be added as a fully qualified member of the pool.
              required:
              - interviewerPoolId
              - userId
      responses:
        '200':
          description: Responses from the interviewerPool.removeUser endpoint
          content:
            application/json:
              schema:
                oneOf:
                - title: Success response
                  allOf:
                  - $ref: '#/paths/~1job.info/post/responses/200/content/application~1json/schema/oneOf/0/allOf/0'
                  - type: object
                    properties:
                      results:
                        $ref: '#/paths/~1interviewerPool.info/post/responses/200/content/application~1json/schema/oneOf/0/allOf/1/properties/results'
                    required:
                    - results
                - $ref: '#/paths/~1report.generate/post/responses/429/content/application~1json/schema'
  /interviewerPool.removeUser:
    post:
      summary: interviewerPool.removeUser
      operationId: interviewerPoolRemoveUser
      description: 'Remove a user from an interviewer pool.


        **Requires the [`hiringProcessMetadataWrite`](authentication#permissions-interviewerpoolremoveuser) permission.**

        '
      tags:
      - Interviewer Pool
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                interviewerPoolId:
                  $ref: '#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId'
                userId:
                  $ref: '#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId'
              required:
              - interviewerPoolId
              - userId
      responses:
        '200':
          description: Responses from the interviewerPool.removeUser endpoint
          content:
            application/json:
              schema:
                oneOf:
                - title: Success response
                  allOf:
                  - $ref: '#/paths/~1job.info/post/responses/200/content/application~1json/schema/oneOf/0/allOf/0'
                  - type: object
                    properties:
                      results:
                        $ref: '#/paths/~1interviewerPool.info/post/responses/200/content/application~1json/schema/oneOf/0/allOf/1/properties/results'
                    required:
                    - results
                - $ref: '#/paths/~1report.generate/post/responses/429/content/application~1json/schema'
components:
  securitySchemes:
    BasicAuth:
      type: http
      scheme: basic
      description: "Use HTTP Basic Auth to authenticate with our API. You must send your API key with every request. \nPut your API key as the basic auth username and leave the password blank.\n"
    WebhookSignature:
      type: apiKey
      in: header
      name: Ashby-Signature
      description: '[Optional] If you provide a secret token when configuring your webhook, this will be used to create a digest of the JSON payload sent with each webhook request.

        The digest will be included in the request under the `Ashby-Signature` http header.


        It will look like this:

        `Ashby-Signature: sha256=f3124911d2956f10aa3a49c43a88bdf13bba846e94f0ae2bd7c034f90239bd04`


        The part before the = indicates the algorithm that was used to compute the hash digest.

        '