---
updatedAt: 2026-05-27T00:31:36.000Z
---

# application.listCriteriaEvaluations

Fetch a paginated list of AI criteria evaluations for an application.

This endpoint returns the AI-generated criteria evaluations that assess how well a candidate meets specific job requirements. Each evaluation contains the outcome, reasoning, and other assessment details.

This endpoint supports pagination only (not incremental sync). See the [Pagination and Incremental Synchronization](/docs/pagination-and-incremental-sync) guide for usage examples.

**Note:** This endpoint requires the AI Application Review feature to be enabled for your organization.

**Requires the [`candidatesRead`](authentication#permissions-applicationlistcriteriaevaluations) permission.**

# OpenAPI definition

```json
{
  "openapi": "3.1.0",
  "info": {
    "version": "1.0.0",
    "title": "Ashby 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": "Application",
      "description": "Operations for managing applications"
    }
  ],
  "paths": {
    "/application.listCriteriaEvaluations": {
      "post": {
        "summary": "application.listCriteriaEvaluations",
        "description": "Fetch a paginated list of AI criteria evaluations for an application.\n\nThis endpoint returns the AI-generated criteria evaluations that assess how well a candidate meets specific job requirements. Each evaluation contains the outcome, reasoning, and other assessment details.\n\nThis endpoint supports pagination only (not incremental sync). See the [Pagination and Incremental Synchronization](/docs/pagination-and-incremental-sync) guide for usage examples.\n\n**Note:** This endpoint requires the AI Application Review feature to be enabled for your organization.\n\n**Requires the [`candidatesRead`](authentication#permissions-applicationlistcriteriaevaluations) permission.**",
        "operationId": "applicationListCriteriaEvaluations",
        "tags": [
          "Application"
        ],
        "x-added-in-version": "2026-01-01",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ApplicationListCriteriaEvaluationsRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Responses from the application.listCriteriaEvaluations endpoint",
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "$ref": "#/components/schemas/ApplicationListCriteriaEvaluationsSuccessResponse"
                    },
                    {
                      "$ref": "#/components/schemas/ErrorResponse"
                    }
                  ]
                },
                "examples": {
                  "success": {
                    "summary": "Success response",
                    "value": {
                      "success": true,
                      "results": [
                        {
                          "id": "a4d6d2f0-9b8f-4f0a-8b1a-1f6f7d3c2d1e",
                          "criterion": {
                            "id": "9b2cb8d9-1a6b-4d4f-9c5d-69ef7b9a9f12",
                            "title": "Location",
                            "type": "ResumePrompt",
                            "prompt": "Evaluate if the candidate's location aligns with the job requirements.",
                            "applicationFormDefinitionId": null,
                            "applicationFormFieldPath": null
                          },
                          "status": "Completed",
                          "outcome": "Meets",
                          "reasoning": "The candidate's location in San Francisco aligns well with the job's requirement for Bay Area presence.",
                          "skipReason": null,
                          "outcomeNumber": 0.85,
                          "evaluatedAt": "2024-01-15T10:30:00.000Z"
                        }
                      ],
                      "moreDataAvailable": false,
                      "syncToken": "sync-token-example"
                    }
                  },
                  "error": {
                    "summary": "Error response",
                    "value": {
                      "success": false,
                      "errors": [
                        {
                          "message": "Example error message"
                        }
                      ]
                    }
                  }
                }
              }
            }
          }
        }
      }
    }
  },
  "webhooks": {
    "applicationSubmit": {
      "post": {
        "summary": "applicationSubmit",
        "description": "Triggered when a candidate submits an application or when a candidate is manually added to Ashby. This webhook is not triggered for bulk imports or integration syncs.",
        "operationId": "applicationSubmitWebhook",
        "tags": [
          "Webhook Payloads"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "action",
                  "data"
                ],
                "properties": {
                  "action": {
                    "type": "string",
                    "enum": [
                      "applicationSubmit"
                    ]
                  },
                  "data": {
                    "type": "object",
                    "properties": {
                      "application": {
                        "$ref": "#/components/schemas/OverlayApplication"
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Return a 200 status to indicate that the data was received successfully"
          }
        },
        "security": [
          {
            "WebhookSignature": []
          }
        ]
      }
    },
    "applicationUpdate": {
      "post": {
        "summary": "applicationUpdate",
        "description": "Triggered when there's an update to an application. This includes:\n- Changes to application fields (source, custom fields, etc.)\n- Job transfers (when an application is moved to a different job)\n- Also triggered by [candidateHire](https://developers.ashbyhq.com/reference/candidatehirewebhook) and [candidateStageChange](https://developers.ashbyhq.com/reference/candidatestagechangewebhook)\n",
        "operationId": "applicationUpdateWebhook",
        "tags": [
          "Webhook Payloads"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "action",
                  "data"
                ],
                "properties": {
                  "action": {
                    "type": "string",
                    "enum": [
                      "applicationUpdate"
                    ]
                  },
                  "data": {
                    "type": "object",
                    "properties": {
                      "application": {
                        "$ref": "#/components/schemas/OverlayApplication"
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Return a 200 status to indicate that the data was received successfully"
          }
        },
        "security": [
          {
            "WebhookSignature": []
          }
        ]
      }
    },
    "candidateHire": {
      "post": {
        "summary": "candidateHire",
        "description": "Triggered when a candidate is hired (including candidates that are hired on confidential jobs).\nIncludes the application and most recent accepted offer (if one exists).\nAlso triggers [applicationUpdate](https://developers.ashbyhq.com/reference/applicationupdatewebhook) and [candidateStageChange](https://developers.ashbyhq.com/reference/candidatestagechangewebhook)\n",
        "operationId": "candidateHireWebhook",
        "tags": [
          "Webhook Payloads"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "action",
                  "data"
                ],
                "properties": {
                  "action": {
                    "type": "string",
                    "enum": [
                      "candidateHire"
                    ]
                  },
                  "data": {
                    "type": "object",
                    "properties": {
                      "application": {
                        "$ref": "#/components/schemas/OverlayApplication"
                      },
                      "offer": {
                        "$ref": "#/components/schemas/OverlayOffer"
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Return a 200 status to indicate that the data was received successfully"
          }
        },
        "security": [
          {
            "WebhookSignature": []
          }
        ]
      }
    },
    "candidateStageChange": {
      "post": {
        "summary": "candidateStageChange",
        "description": "Triggered when a candidate changes stages in an application. Also triggered by [candidateHire](https://developers.ashbyhq.com/reference/candidatehirewebhook)",
        "operationId": "candidateStageChangeWebhook",
        "tags": [
          "Webhook Payloads"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "action",
                  "data"
                ],
                "properties": {
                  "action": {
                    "type": "string",
                    "enum": [
                      "candidateStageChange"
                    ]
                  },
                  "data": {
                    "type": "object",
                    "properties": {
                      "application": {
                        "$ref": "#/components/schemas/OverlayApplication"
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Return a 200 status to indicate that the data was received successfully"
          }
        },
        "security": [
          {
            "WebhookSignature": []
          }
        ]
      }
    },
    "candidateDelete": {
      "post": {
        "summary": "candidateDelete",
        "description": "Triggered when a candidate is deleted. \nIncludes the deleted candidate id.\n",
        "operationId": "candidateDeleteWebhook",
        "tags": [
          "Webhook Payloads"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "action",
                  "data"
                ],
                "properties": {
                  "action": {
                    "type": "string",
                    "enum": [
                      "candidateDelete"
                    ]
                  },
                  "data": {
                    "type": "object",
                    "properties": {
                      "candidate": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "$ref": "#/components/schemas/id",
                            "description": "The unique id of the deleted candidate"
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Return a 200 status to indicate that the data was received successfully"
          }
        },
        "security": [
          {
            "WebhookSignature": []
          }
        ]
      }
    },
    "candidateMerge": {
      "post": {
        "summary": "candidateMerge",
        "description": "Triggered when a candidate is merged. \nIncludes the deleted candidate's id and merged candidate data.\n",
        "operationId": "candidateMergeWebhook",
        "tags": [
          "Webhook Payloads"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "action",
                  "data"
                ],
                "properties": {
                  "action": {
                    "type": "string",
                    "enum": [
                      "candidateMerge"
                    ]
                  },
                  "data": {
                    "type": "object",
                    "properties": {
                      "deletedCandidate": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "$ref": "#/components/schemas/id",
                            "description": "The unique id of the deleted candidate"
                          }
                        }
                      },
                      "mergedCandidate": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "$ref": "#/components/schemas/id",
                            "description": "The unique id of the final merged candidate"
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Return a 200 status to indicate that the data was received successfully"
          }
        },
        "security": [
          {
            "WebhookSignature": []
          }
        ]
      }
    },
    "interviewPlanTransition": {
      "post": {
        "summary": "interviewPlanTransition",
        "description": "Triggered when a job's interview plan is switched to a different plan. Sends interview plan data and ids for the interview stage mappings. Also triggers [jobUpdate](https://developers.ashbyhq.com/reference/jobupdatewebhook)",
        "operationId": "interviewPlanTransitionWebhook",
        "tags": [
          "Webhook Payloads"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "action",
                  "data"
                ],
                "properties": {
                  "action": {
                    "type": "string",
                    "enum": [
                      "interviewPlanTransition"
                    ]
                  },
                  "data": {
                    "type": "object",
                    "properties": {
                      "jobId": {
                        "description": "The id of the job for which the interview plan has been switched",
                        "allOf": [
                          {
                            "$ref": "#/components/schemas/id"
                          }
                        ]
                      },
                      "fromInterviewPlan": {
                        "description": "The interview plan the job was previously referencing",
                        "type": "object",
                        "properties": {
                          "id": {
                            "$ref": "#/components/schemas/id"
                          },
                          "title": {
                            "type": "string",
                            "example": "Custom Interview Plan"
                          }
                        },
                        "required": [
                          "id",
                          "title"
                        ]
                      },
                      "toInterviewPlan": {
                        "description": "The interview plan the job is now referencing",
                        "type": "object",
                        "properties": {
                          "id": {
                            "$ref": "#/components/schemas/id"
                          },
                          "title": {
                            "type": "string",
                            "example": "Engineering Interview Plan"
                          }
                        },
                        "required": [
                          "id",
                          "title"
                        ]
                      },
                      "interviewStageMappings": {
                        "description": "The mapping of a stage from the previous interview plan to a stage on the new interview plan",
                        "type": "array",
                        "items": {
                          "type": "object",
                          "properties": {
                            "fromInterviewStageId": {
                              "$ref": "#/components/schemas/id"
                            },
                            "toInterviewStageId": {
                              "$ref": "#/components/schemas/id"
                            }
                          },
                          "required": [
                            "fromInterviewStageId",
                            "toInterviewStageId"
                          ]
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Return a 200 status to indicate that the data was received successfully"
          }
        },
        "security": [
          {
            "WebhookSignature": []
          }
        ]
      }
    },
    "interviewScheduleCreate": {
      "post": {
        "summary": "interviewScheduleCreate",
        "description": "The webhook is called when an interview schedule is created. Also triggers [interviewScheduleUpdate](https://developers.ashbyhq.com/reference/interviewscheduleupdatewebhook)",
        "operationId": "interviewScheduleCreateWebhook",
        "tags": [
          "Webhook Payloads"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "action",
                  "data"
                ],
                "properties": {
                  "action": {
                    "type": "string",
                    "enum": [
                      "interviewScheduleCreate"
                    ]
                  },
                  "data": {
                    "type": "object",
                    "properties": {
                      "interviewSchedule": {
                        "$ref": "#/components/schemas/OverlayInterviewSchedule"
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Return a 200 status to indicate that the data was received successfully"
          }
        },
        "security": [
          {
            "WebhookSignature": []
          }
        ]
      }
    },
    "interviewScheduleUpdate": {
      "post": {
        "summary": "interviewScheduleUpdate",
        "description": "The webhook is called when an interview schedule is updated, including when interviews that are part of the schedule are scheduled, updated, or cancelled. Also triggered by [interviewScheduleCreate](https://developers.ashbyhq.com/reference/interviewschedulecreatewebhook)",
        "operationId": "interviewScheduleUpdateWebhook",
        "tags": [
          "Webhook Payloads"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "action",
                  "data"
                ],
                "properties": {
                  "action": {
                    "type": "string",
                    "enum": [
                      "interviewScheduleUpdate"
                    ]
                  },
                  "data": {
                    "type": "object",
                    "properties": {
                      "interviewSchedule": {
                        "allOf": [
                          {
                            "$ref": "#/components/schemas/OverlayInterviewSchedule"
                          },
                          {
                            "type": "object",
                            "properties": {
                              "candidateId": {
                                "type": "string",
                                "description": "The ID of the candidate associated with this interview schedule"
                              }
                            }
                          }
                        ]
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Return a 200 status to indicate that the data was received successfully"
          }
        },
        "security": [
          {
            "WebhookSignature": []
          }
        ]
      }
    },
    "jobCreate": {
      "post": {
        "summary": "jobCreate",
        "description": "Triggered when a job is created",
        "operationId": "jobCreateWebhook",
        "tags": [
          "Webhook Payloads"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "action",
                  "data"
                ],
                "properties": {
                  "action": {
                    "type": "string",
                    "enum": [
                      "jobCreate"
                    ]
                  },
                  "data": {
                    "type": "object",
                    "properties": {
                      "job": {
                        "$ref": "#/components/schemas/OverlayJob"
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Return a 200 status to indicate that the data was received successfully"
          }
        },
        "security": [
          {
            "WebhookSignature": []
          }
        ]
      }
    },
    "jobUpdate": {
      "post": {
        "summary": "jobUpdate",
        "description": "Triggered when a job is updated. Also triggered by [interviewPlanTransition](https://developers.ashbyhq.com/reference/interviewplantransitionwebhook)",
        "operationId": "jobUpdateWebhook",
        "tags": [
          "Webhook Payloads"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "action",
                  "data"
                ],
                "properties": {
                  "action": {
                    "type": "string",
                    "enum": [
                      "jobUpdate"
                    ]
                  },
                  "data": {
                    "type": "object",
                    "properties": {
                      "job": {
                        "$ref": "#/components/schemas/OverlayJob"
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Return a 200 status to indicate that the data was received successfully"
          }
        },
        "security": [
          {
            "WebhookSignature": []
          }
        ]
      }
    },
    "jobPostingDelete": {
      "post": {
        "summary": "jobPostingDelete",
        "description": "Triggered when a job posting is deleted.\nIncludes the deleted job posting id and its associated job id.\n",
        "operationId": "jobPostingDeleteWebhook",
        "tags": [
          "Webhook Payloads"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "action",
                  "data"
                ],
                "properties": {
                  "action": {
                    "type": "string",
                    "enum": [
                      "jobPostingDelete"
                    ]
                  },
                  "data": {
                    "type": "object",
                    "properties": {
                      "jobPosting": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "$ref": "#/components/schemas/id",
                            "description": "The unique id of the deleted job posting"
                          },
                          "jobId": {
                            "$ref": "#/components/schemas/id",
                            "description": "The unique id of the job associated with the deleted job posting"
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Return a 200 status to indicate that the data was received successfully"
          }
        },
        "security": [
          {
            "WebhookSignature": []
          }
        ]
      }
    },
    "jobPostingUpdate": {
      "post": {
        "summary": "jobPostingUpdate",
        "description": "Triggered when a job posting is updated. Also triggered by [jobPostingPublish](https://developers.ashbyhq.com/reference/jobpostingpublishwebhook) and [jobPostingUnpublish](https://developers.ashbyhq.com/reference/jobpostingunpublishwebhook)",
        "operationId": "jobPostingUpdateWebhook",
        "tags": [
          "Webhook Payloads"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "action",
                  "data"
                ],
                "properties": {
                  "action": {
                    "type": "string",
                    "enum": [
                      "jobPostingUpdate"
                    ]
                  },
                  "data": {
                    "type": "object",
                    "properties": {
                      "jobPosting": {
                        "$ref": "#/components/schemas/OverlayJobPostingBrief"
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Return a 200 status to indicate that the data was received successfully"
          }
        },
        "security": [
          {
            "WebhookSignature": []
          }
        ]
      }
    },
    "jobPostingPublish": {
      "post": {
        "summary": "jobPostingPublish",
        "description": "Triggered when a job posting is published. Also triggers [jobPostingUpdate](https://developers.ashbyhq.com/reference/jobpostingupdatewebhook)",
        "operationId": "jobPostingPublishWebhook",
        "tags": [
          "Webhook Payloads"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "action",
                  "data"
                ],
                "properties": {
                  "action": {
                    "type": "string",
                    "enum": [
                      "jobPostingPublish"
                    ]
                  },
                  "data": {
                    "type": "object",
                    "properties": {
                      "jobPosting": {
                        "$ref": "#/components/schemas/OverlayJobPostingBrief"
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Return a 200 status to indicate that the data was received successfully"
          }
        },
        "security": [
          {
            "WebhookSignature": []
          }
        ]
      }
    },
    "jobPostingUnpublish": {
      "post": {
        "summary": "jobPostingUnpublish",
        "description": "Triggered when a job posting is unpublished. Also triggers [jobPostingUpdate](https://developers.ashbyhq.com/reference/jobpostingupdatewebhook)",
        "operationId": "jobPostingUnpublishWebhook",
        "tags": [
          "Webhook Payloads"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "action",
                  "data"
                ],
                "properties": {
                  "action": {
                    "type": "string",
                    "enum": [
                      "jobPostingUnpublish"
                    ]
                  },
                  "data": {
                    "type": "object",
                    "properties": {
                      "jobPosting": {
                        "$ref": "#/components/schemas/OverlayJobPostingBrief"
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Return a 200 status to indicate that the data was received successfully"
          }
        },
        "security": [
          {
            "WebhookSignature": []
          }
        ]
      }
    },
    "offerCreate": {
      "post": {
        "summary": "offerCreate",
        "description": "Triggered when a new offer process is created for a candidate",
        "operationId": "offerCreateWebhook",
        "tags": [
          "Webhook Payloads"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "action",
                  "data"
                ],
                "properties": {
                  "action": {
                    "type": "string",
                    "enum": [
                      "offerCreate"
                    ]
                  },
                  "data": {
                    "type": "object",
                    "properties": {
                      "offer": {
                        "$ref": "#/components/schemas/OverlayOffer"
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Return a 200 status to indicate that the data was received successfully"
          }
        },
        "security": [
          {
            "WebhookSignature": []
          }
        ]
      }
    },
    "offerDelete": {
      "post": {
        "summary": "offerDelete",
        "description": "Triggered when an offer process is deleted",
        "operationId": "offerDeleteWebhook",
        "tags": [
          "Webhook Payloads"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "action",
                  "data"
                ],
                "properties": {
                  "action": {
                    "type": "string",
                    "enum": [
                      "offerDelete"
                    ]
                  },
                  "data": {
                    "type": "object",
                    "properties": {
                      "offer": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "$ref": "#/components/schemas/id"
                          },
                          "applicationId": {
                            "allOf": [
                              {
                                "$ref": "#/components/schemas/id"
                              },
                              {
                                "description": "The id of the application the offer was associated with."
                              }
                            ]
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Return a 200 status to indicate that the data was received successfully"
          }
        },
        "security": [
          {
            "WebhookSignature": []
          }
        ]
      }
    },
    "offerUpdate": {
      "post": {
        "summary": "offerUpdate",
        "description": "Triggered when an offer is updated",
        "operationId": "offerUpdateWebhook",
        "tags": [
          "Webhook Payloads"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "action",
                  "data"
                ],
                "properties": {
                  "action": {
                    "type": "string",
                    "enum": [
                      "offerUpdate"
                    ]
                  },
                  "data": {
                    "type": "object",
                    "properties": {
                      "offer": {
                        "$ref": "#/components/schemas/OverlayOffer"
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Return a 200 status to indicate that the data was received successfully"
          }
        },
        "security": [
          {
            "WebhookSignature": []
          }
        ]
      }
    },
    "openingCreate": {
      "post": {
        "summary": "openingCreate",
        "description": "Triggered when a opening is created",
        "operationId": "openingCreateWebhook",
        "tags": [
          "Webhook Payloads"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "action",
                  "data"
                ],
                "properties": {
                  "action": {
                    "type": "string",
                    "enum": [
                      "openingCreate"
                    ]
                  },
                  "data": {
                    "type": "object",
                    "properties": {
                      "opening": {
                        "$ref": "#/components/schemas/OverlayOpening"
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Return a 200 status to indicate that the data was received successfully"
          }
        },
        "security": [
          {
            "WebhookSignature": []
          }
        ]
      }
    },
    "pushToHRIS": {
      "post": {
        "summary": "pushToHRIS",
        "description": "Triggered when a candidate is pushed to an HRIS system",
        "operationId": "pushToHRISWebhook",
        "tags": [
          "Webhook Payloads"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "action",
                  "data"
                ],
                "properties": {
                  "action": {
                    "type": "string",
                    "enum": [
                      "pushToHRIS"
                    ]
                  },
                  "data": {
                    "type": "object",
                    "properties": {
                      "application": {
                        "$ref": "#/components/schemas/OverlayApplication"
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Return a 200 status to indicate that the data was received successfully"
          }
        },
        "security": [
          {
            "WebhookSignature": []
          }
        ]
      }
    },
    "ping": {
      "post": {
        "summary": "ping",
        "operationId": "pingWebhook",
        "description": "Called to check that the webhook URL is live",
        "tags": [
          "Webhook Payloads"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "properties": {
                  "action": {
                    "type": "string",
                    "enum": [
                      "ping"
                    ]
                  },
                  "data": {
                    "type": "object",
                    "properties": {
                      "webhookActionType": {
                        "description": "The type of action that triggered the webhook—in this case, a ping",
                        "type": "string",
                        "enum": [
                          "ping"
                        ]
                      }
                    },
                    "required": [
                      "webhookActionType"
                    ]
                  }
                },
                "required": [
                  "action",
                  "data"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Return a 200 status to indicate that the data was received successfully"
          }
        },
        "security": [
          {
            "WebhookSignature": []
          }
        ]
      }
    },
    "signatureRequestUpdate": {
      "post": {
        "summary": "signatureRequestUpdate",
        "description": "Triggered on updates to requests for e-signatures: when requests are sent, cancelled, completed, or deleted.\n\nDepending on the type of request, additional context will be included in the webhook payload:\n  - **Offers** - `\"relatedEntityType\"` is `\"offer\"` and `\"offerId\"` is included.\n  - **Applications** - `\"relatedEntityType\"` is `\"application\"` and `\"applicationId\"` is included.\n",
        "operationId": "signatureRequestUpdateWebhook",
        "tags": [
          "Webhook Payloads"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "action",
                  "data"
                ],
                "properties": {
                  "action": {
                    "type": "string",
                    "enum": [
                      "signatureRequestUpdate"
                    ]
                  },
                  "data": {
                    "type": "object",
                    "oneOf": [
                      {
                        "title": "Application Payload",
                        "properties": {
                          "relatedEntityType": {
                            "type": "string",
                            "enum": [
                              "application"
                            ]
                          },
                          "applicationId": {
                            "type": "string",
                            "format": "uuid"
                          },
                          "eventType": {
                            "type": "string",
                            "enum": [
                              "sent",
                              "cancelled",
                              "completed",
                              "deleted"
                            ]
                          }
                        }
                      },
                      {
                        "title": "Offer Payload",
                        "properties": {
                          "relatedEntityType": {
                            "type": "string",
                            "enum": [
                              "offer"
                            ]
                          },
                          "offerId": {
                            "type": "string",
                            "format": "uuid"
                          },
                          "offerVersionId": {
                            "type": "string",
                            "format": "uuid"
                          },
                          "eventType": {
                            "type": "string",
                            "enum": [
                              "sent",
                              "cancelled",
                              "completed",
                              "deleted"
                            ]
                          }
                        }
                      }
                    ]
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Return a 200 status to indicate that the data was received successfully"
          }
        },
        "security": [
          {
            "WebhookSignature": []
          }
        ]
      }
    },
    "surveySubmit": {
      "post": {
        "summary": "surveySubmit",
        "description": "The webhook is triggered when a candidate submits a non-anonymous survey. It will not fire for anonymous survey submissions.\n\nDepending on the type of survey that was submitted, survey responses may be included in the webhook payload:\n  - **Questionnaires**, **Candidate Data Consent** - Survey responses will be included in the payload.\n  - **Candidate Experience** - If the submission is not anonymous, survey responses will be included in the payload. If the submission is anonymous, the webhook will not trigger.\n  - **Diversity Surveys**, **EEOC Surveys** - Survey responses will never be included in the payload.\n\nIf survey responses are included in the payload, the `submittedValues` field will contain the submitted answers in an object where each key is the path of the field and the value is the value submitted for that field.\n",
        "operationId": "surveySubmitWebhook",
        "tags": [
          "Webhook Payloads"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "action",
                  "data"
                ],
                "properties": {
                  "action": {
                    "type": "string",
                    "enum": [
                      "surveySubmit"
                    ]
                  },
                  "data": {
                    "type": "object",
                    "properties": {
                      "surveySubmission": {
                        "$ref": "#/components/schemas/OverlaySurveySubmission"
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Return a 200 status to indicate that the data was received successfully"
          }
        },
        "security": [
          {
            "WebhookSignature": []
          }
        ]
      }
    },
    "takeHomeAssignmentAssigned": {
      "post": {
        "summary": "takeHomeAssignmentAssigned",
        "description": "> Beta: This webhook may not be available for all organizations.\n\nThe webhook is called when a take-home assignment enters Waiting On Submission.",
        "operationId": "takeHomeAssignmentAssignedWebhook",
        "tags": [
          "Webhook Payloads"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "action",
                  "data"
                ],
                "properties": {
                  "action": {
                    "type": "string",
                    "enum": [
                      "takeHomeAssignmentAssigned"
                    ]
                  },
                  "data": {
                    "type": "object",
                    "properties": {
                      "takeHomeAssignment": {
                        "$ref": "#/components/schemas/OverlayTakeHomeAssignment"
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Return a 200 status to indicate that the data was received successfully"
          }
        },
        "security": [
          {
            "WebhookSignature": []
          }
        ]
      }
    },
    "takeHomeAssignmentCancelled": {
      "post": {
        "summary": "takeHomeAssignmentCancelled",
        "description": "> Beta: This webhook may not be available for all organizations.\n\nThe webhook is called when a take-home assignment is cancelled.",
        "operationId": "takeHomeAssignmentCancelledWebhook",
        "tags": [
          "Webhook Payloads"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "action",
                  "data"
                ],
                "properties": {
                  "action": {
                    "type": "string",
                    "enum": [
                      "takeHomeAssignmentCancelled"
                    ]
                  },
                  "data": {
                    "type": "object",
                    "properties": {
                      "takeHomeAssignment": {
                        "$ref": "#/components/schemas/OverlayTakeHomeAssignment"
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Return a 200 status to indicate that the data was received successfully"
          }
        },
        "security": [
          {
            "WebhookSignature": []
          }
        ]
      }
    },
    "takeHomeAssignmentCompleted": {
      "post": {
        "summary": "takeHomeAssignmentCompleted",
        "description": "> Beta: This webhook may not be available for all organizations.\n\nThe webhook is called when a take-home assignment is completed.",
        "operationId": "takeHomeAssignmentCompletedWebhook",
        "tags": [
          "Webhook Payloads"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "action",
                  "data"
                ],
                "properties": {
                  "action": {
                    "type": "string",
                    "enum": [
                      "takeHomeAssignmentCompleted"
                    ]
                  },
                  "data": {
                    "type": "object",
                    "properties": {
                      "takeHomeAssignment": {
                        "$ref": "#/components/schemas/OverlayTakeHomeAssignment"
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Return a 200 status to indicate that the data was received successfully"
          }
        },
        "security": [
          {
            "WebhookSignature": []
          }
        ]
      }
    },
    "takeHomeAssignmentSubmitted": {
      "post": {
        "summary": "takeHomeAssignmentSubmitted",
        "description": "> Beta: This webhook may not be available for all organizations.\n\nThe webhook is called when a candidate submits a take-home assignment and it enters Waiting On Feedback.",
        "operationId": "takeHomeAssignmentSubmittedWebhook",
        "tags": [
          "Webhook Payloads"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "action",
                  "data"
                ],
                "properties": {
                  "action": {
                    "type": "string",
                    "enum": [
                      "takeHomeAssignmentSubmitted"
                    ]
                  },
                  "data": {
                    "type": "object",
                    "properties": {
                      "takeHomeAssignment": {
                        "$ref": "#/components/schemas/OverlayTakeHomeAssignment"
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Return a 200 status to indicate that the data was received successfully"
          }
        },
        "security": [
          {
            "WebhookSignature": []
          }
        ]
      }
    }
  },
  "components": {
    "schemas": {
      "id": {
        "type": "string",
        "format": "uuid",
        "example": "e9ed20fd-d45f-4aad-8a00-a19bfba0083e"
      },
      "email": {
        "type": "string",
        "example": "test@ashbyhq.com"
      },
      "OverlayHiringTeamRole": {
        "type": "object",
        "properties": {
          "email": {
            "$ref": "#/components/schemas/email"
          },
          "firstName": {
            "type": "string",
            "example": "Joey"
          },
          "lastName": {
            "type": "string",
            "example": "Joe"
          },
          "role": {
            "type": "string",
            "example": "Hiring Manager"
          },
          "userId": {
            "$ref": "#/components/schemas/id"
          }
        },
        "required": [
          "userId",
          "firstName",
          "lastName",
          "email",
          "role"
        ]
      },
      "createdAt": {
        "type": "string",
        "example": "2022-08-12T20:29:56.964Z",
        "format": "date-time"
      },
      "OverlayCustomField": {
        "type": "object",
        "properties": {
          "id": {
            "$ref": "#/components/schemas/id"
          },
          "isPrivate": {
            "type": "boolean",
            "example": false
          },
          "title": {
            "type": "string"
          },
          "valueLabel": {
            "description": "The label of the custom field value. This is only present for value select custom fields.",
            "oneOf": [
              {
                "type": "string",
                "title": "String"
              },
              {
                "type": "array",
                "title": "MultiValueSelect",
                "items": {
                  "type": "string"
                }
              }
            ]
          },
          "value": {
            "oneOf": [
              {
                "type": "boolean",
                "title": "Boolean"
              },
              {
                "type": "object",
                "title": "Currency",
                "properties": {
                  "value": {
                    "type": "number",
                    "example": 1000000,
                    "format": "currency"
                  },
                  "currencyCode": {
                    "type": "string",
                    "example": "USD"
                  }
                }
              },
              {
                "type": "string",
                "title": "Date",
                "format": "date-time"
              },
              {
                "type": "string",
                "title": "String"
              },
              {
                "type": "string",
                "title": "LongText"
              },
              {
                "type": "array",
                "title": "MultiValueSelect",
                "items": {
                  "type": "string"
                }
              },
              {
                "type": "number",
                "title": "Number"
              },
              {
                "type": "object",
                "title": "NumberRange",
                "properties": {
                  "type": {
                    "type": "string",
                    "example": "number-range"
                  },
                  "minValue": {
                    "type": "number",
                    "example": 10000
                  },
                  "maxValue": {
                    "type": "number",
                    "example": 100000
                  }
                },
                "required": [
                  "type",
                  "minValue",
                  "maxValue"
                ]
              },
              {
                "type": "object",
                "title": "CompensationRange",
                "properties": {
                  "type": {
                    "type": "string",
                    "example": "compensation-range"
                  },
                  "minValue": {
                    "type": "number",
                    "example": 40000
                  },
                  "maxValue": {
                    "type": "number",
                    "example": 50000
                  },
                  "currencyCode": {
                    "type": "string",
                    "example": "USD"
                  },
                  "interval": {
                    "type": "string",
                    "enum": [
                      "NONE",
                      "1 TIME",
                      "1 HOUR",
                      "1 DAY",
                      "1 WEEK",
                      "2 WEEK",
                      "1 MONTH",
                      "2 MONTH",
                      "1 YEAR",
                      "6 MONTH",
                      "0.5 MONTH",
                      "3 MONTH"
                    ],
                    "example": "1 YEAR"
                  }
                },
                "required": [
                  "type",
                  "minValue",
                  "maxValue",
                  "currencyCode",
                  "interval"
                ]
              },
              {
                "type": "string",
                "title": "ValueSelect"
              }
            ]
          }
        },
        "required": [
          "id",
          "title",
          "value"
        ],
        "examples": [
          {
            "id": "650e5f74-32db-4a0a-b61b-b9afece05023",
            "title": "Is actively looking",
            "value": true
          },
          {
            "id": "650e5f74-32db-4a0a-b61b-b9afece05024",
            "title": "Years of experience",
            "value": 5
          },
          {
            "id": "650e5f74-32db-4a0a-b61b-b9afece05025",
            "title": "Salary expectation",
            "value": {
              "value": 100000,
              "currencyCode": "USD"
            }
          },
          {
            "id": "650e5f74-32db-4a0a-b61b-b9afece05026",
            "title": "Expected start date",
            "value": "2022-11-10T19:47:56.795Z"
          }
        ]
      },
      "OverlayContactInfo": {
        "type": "object",
        "properties": {
          "value": {
            "type": "string",
            "description": "The email address or phone number of the candidate"
          },
          "type": {
            "enum": [
              "Personal",
              "Work",
              "Other"
            ],
            "description": "The type of the contact info"
          },
          "isPrimary": {
            "type": "boolean",
            "description": "Whether the contact info is the primary email or phone number"
          }
        },
        "required": [
          "value",
          "type",
          "isPrimary"
        ],
        "example": {
          "value": "test@ashbyhq.com",
          "type": "Work",
          "isPrimary": true
        }
      },
      "OverlayBaseInterviewStage": {
        "type": "object",
        "properties": {
          "id": {
            "$ref": "#/components/schemas/id"
          },
          "title": {
            "type": "string",
            "example": "Offer"
          },
          "type": {
            "type": "string",
            "example": "Offer"
          },
          "orderInInterviewPlan": {
            "type": "integer",
            "example": 1006,
            "default": 0
          },
          "interviewStageGroupId": {
            "type": "string",
            "example": "5f7b3b3b-7b1b-4b1b-8b3b-7b1b4b1b8b3b"
          }
        },
        "required": [
          "id",
          "title",
          "type",
          "orderInInterviewPlan"
        ]
      },
      "OverlayInterviewStage": {
        "allOf": [
          {
            "$ref": "#/components/schemas/OverlayBaseInterviewStage"
          },
          {
            "type": "object",
            "properties": {
              "interviewPlanId": {
                "$ref": "#/components/schemas/id"
              }
            },
            "required": [
              "interviewPlanId"
            ]
          }
        ]
      },
      "isArchived": {
        "type": "boolean",
        "example": false
      },
      "OverlaySourceType": {
        "type": "object",
        "properties": {
          "id": {
            "$ref": "#/components/schemas/id"
          },
          "title": {
            "type": "string",
            "example": "Inbound"
          },
          "isArchived": {
            "$ref": "#/components/schemas/isArchived"
          }
        },
        "required": [
          "id",
          "title",
          "isArchived"
        ]
      },
      "OverlaySource": {
        "type": "object",
        "properties": {
          "id": {
            "$ref": "#/components/schemas/id"
          },
          "title": {
            "type": "string",
            "example": "Applied"
          },
          "isArchived": {
            "$ref": "#/components/schemas/isArchived"
          },
          "sourceType": {
            "$ref": "#/components/schemas/OverlaySourceType"
          }
        },
        "required": [
          "id",
          "title",
          "isArchived"
        ]
      },
      "OverlayArchiveReason": {
        "type": "object",
        "properties": {
          "id": {
            "$ref": "#/components/schemas/id"
          },
          "text": {
            "type": "string",
            "example": "Too inexperienced"
          },
          "reasonType": {
            "enum": [
              "RejectedByCandidate",
              "RejectedByOrg",
              "Other"
            ],
            "example": "RejectedByOrg"
          },
          "isArchived": {
            "$ref": "#/components/schemas/isArchived"
          }
        },
        "required": [
          "id",
          "text",
          "reasonType",
          "isArchived"
        ]
      },
      "ArchiveDetails": {
        "allOf": [
          {
            "$ref": "#/components/schemas/OverlayArchiveReason"
          },
          {
            "type": "object",
            "properties": {
              "customFields": {
                "type": "array",
                "description": "Archive detail custom field values",
                "items": {
                  "$ref": "#/components/schemas/OverlayCustomField"
                }
              }
            },
            "required": [
              "customFields"
            ]
          }
        ]
      },
      "OverlayUser": {
        "type": "object",
        "properties": {
          "id": {
            "$ref": "#/components/schemas/id"
          },
          "firstName": {
            "type": "string",
            "example": "Test"
          },
          "lastName": {
            "type": "string",
            "example": "User"
          },
          "email": {
            "$ref": "#/components/schemas/email"
          },
          "globalRole": {
            "type": "string",
            "enum": [
              "Organization Admin",
              "Elevated Access",
              "Limited Access",
              "External Recruiter"
            ]
          },
          "isEnabled": {
            "type": "boolean"
          },
          "updatedAt": {
            "$ref": "#/components/schemas/createdAt"
          },
          "managerId": {
            "description": "The user id of the user's manager",
            "$ref": "#/components/schemas/id"
          },
          "customFields": {
            "type": "array",
            "description": "Custom field values associated with the user. **Note:** This field requires a feature to be enabled for your organization. If it is not present in the response, please contact Ashby support to have it enabled.",
            "items": {
              "$ref": "#/components/schemas/OverlayCustomField"
            }
          }
        },
        "required": [
          "id",
          "firstName",
          "lastName",
          "globalRole",
          "isEnabled",
          "updatedAt"
        ]
      },
      "OverlayApplication": {
        "type": "object",
        "properties": {
          "id": {
            "$ref": "#/components/schemas/id"
          },
          "createdAt": {
            "$ref": "#/components/schemas/createdAt"
          },
          "updatedAt": {
            "$ref": "#/components/schemas/createdAt"
          },
          "status": {
            "type": "string",
            "enum": [
              "Hired",
              "Archived",
              "Active",
              "Lead"
            ],
            "description": "The status of the application"
          },
          "customFields": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/OverlayCustomField"
            }
          },
          "candidate": {
            "type": "object",
            "description": "The candidate associated with the application",
            "properties": {
              "id": {
                "$ref": "#/components/schemas/id"
              },
              "name": {
                "type": "string",
                "example": "James"
              },
              "primaryEmailAddress": {
                "$ref": "#/components/schemas/OverlayContactInfo"
              },
              "primaryPhoneNumber": {
                "allOf": [
                  {
                    "$ref": "#/components/schemas/OverlayContactInfo"
                  },
                  {
                    "example": {
                      "value": "222-222-3344",
                      "type": "Work",
                      "isPrimary": true
                    }
                  }
                ]
              }
            },
            "required": [
              "id",
              "name"
            ]
          },
          "currentInterviewStage": {
            "$ref": "#/components/schemas/OverlayInterviewStage"
          },
          "source": {
            "$ref": "#/components/schemas/OverlaySource"
          },
          "archiveReason": {
            "$ref": "#/components/schemas/ArchiveDetails"
          },
          "archivedAt": {
            "allOf": [
              {
                "$ref": "#/components/schemas/createdAt"
              },
              {
                "description": "The timestamp an application was archived"
              }
            ]
          },
          "job": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "example": "4071538b-3cac-4fbf-ac76-f78ed250ffdd"
              },
              "title": {
                "type": "string",
                "example": "First Designer"
              },
              "locationId": {
                "$ref": "#/components/schemas/id"
              },
              "departmentId": {
                "$ref": "#/components/schemas/id"
              }
            },
            "required": [
              "id",
              "title"
            ]
          },
          "creditedToUser": {
            "$ref": "#/components/schemas/OverlayUser"
          },
          "hiringTeam": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/OverlayHiringTeamRole"
            }
          },
          "appliedViaJobPostingId": {
            "allOf": [
              {
                "$ref": "#/components/schemas/id"
              },
              {
                "description": "The id of the first job posting the candidate applied through. If the candidate submitted applications via multiple job postings for the same job, this will be the earliest one."
              }
            ]
          },
          "submitterClientIp": {
            "type": "string",
            "example": "79.255.55.222",
            "description": "The IP address (can be v4 or v6) of the client that submitted the application, if it was submitted through the external job board."
          },
          "submitterUserAgent": {
            "type": "string",
            "example": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/132.0.0.0 Safari/537.36",
            "description": "The user agent of the client that submitted the application, if it was submitted through the external job board."
          }
        },
        "required": [
          "id",
          "createdAt",
          "updatedAt",
          "candidate",
          "status",
          "currentInterviewStage",
          "job",
          "hiringTeam"
        ]
      },
      "offerAcceptanceStatus": {
        "type": "string",
        "enum": [
          "Accepted",
          "Declined",
          "Pending",
          "Created",
          "Cancelled"
        ]
      },
      "offerProcessStatus": {
        "type": "string",
        "enum": [
          "WaitingOnApprovalStart",
          "WaitingOnOfferApproval",
          "WaitingOnApprovalDefinition",
          "WaitingOnCandidateResponse",
          "CandidateRejected",
          "CandidateAccepted",
          "OfferCancelled"
        ]
      },
      "OverlayFileHandle": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "handle": {
            "type": "string",
            "description": "You can use the file handle to retrieve the file's URL by using the file.info endpoint."
          }
        },
        "required": [
          "id",
          "name",
          "handle"
        ],
        "example": {
          "id": "15d2624d-0a81-4f94-a2ed-94980f430b3f",
          "name": "resume.pdf",
          "handle": "eyJoYW5kbGUiOnsidHlwZSI6IkNhbmRpZGF0ZUZpbGUiLCJm"
        }
      },
      "offerApprovalStatus": {
        "type": [
          "string",
          "null"
        ],
        "enum": [
          "Approved",
          "WaitingOnApprovals",
          "Declined",
          null
        ]
      },
      "OverlayOfferVersion": {
        "type": "object",
        "properties": {
          "id": {
            "$ref": "#/components/schemas/id"
          },
          "startDate": {
            "allOf": [
              {
                "$ref": "#/components/schemas/createdAt"
              },
              {
                "description": "The start date of the offer"
              }
            ]
          },
          "salary": {
            "type": "object",
            "properties": {
              "currencyCode": {
                "type": "string",
                "description": "A valid ISO 4217 currency code"
              },
              "value": {
                "type": "number",
                "description": "An integer. The salary specified by the offer."
              }
            }
          },
          "createdAt": {
            "allOf": [
              {
                "$ref": "#/components/schemas/createdAt"
              },
              {
                "description": "The time the offer was created"
              }
            ]
          },
          "openingId": {
            "type": "string",
            "description": "The id of the opening associated with the offer."
          },
          "customFields": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/OverlayCustomField"
            }
          },
          "fileHandles": {
            "type": "array",
            "description": "An array of file handles associated with the offer. If an offer letter has been generated, this array includes the file handles for the unsigned .pdf and .docx versions of the letter, as well as for the signed .pdf if it exists.",
            "items": {
              "$ref": "#/components/schemas/OverlayFileHandle"
            }
          },
          "author": {
            "$ref": "#/components/schemas/OverlayUser"
          },
          "approvalStatus": {
            "allOf": [
              {
                "$ref": "#/components/schemas/offerApprovalStatus"
              },
              {
                "description": "The approval status of this offer version. Approved indicates this version has been approved. WaitingOnApprovals indicates approval is pending. Declined indicates this version was declined. This field is null when no approval process has been configured for the offer version."
              }
            ]
          }
        },
        "required": [
          "id",
          "createdAt"
        ]
      },
      "OfferBrief": {
        "type": "object",
        "properties": {
          "id": {
            "$ref": "#/components/schemas/id"
          },
          "decidedAt": {
            "type": "string"
          },
          "applicationId": {
            "allOf": [
              {
                "$ref": "#/components/schemas/id"
              },
              {
                "description": "The id of the application associated with the offer"
              }
            ]
          },
          "acceptanceStatus": {
            "allOf": [
              {
                "$ref": "#/components/schemas/offerAcceptanceStatus"
              },
              {
                "title": "AcceptanceStatus"
              }
            ]
          },
          "offerStatus": {
            "allOf": [
              {
                "title": "OfferStatus"
              },
              {
                "$ref": "#/components/schemas/offerProcessStatus"
              }
            ]
          },
          "latestVersion": {
            "$ref": "#/components/schemas/OverlayOfferVersion"
          }
        },
        "required": [
          "id",
          "applicationId",
          "acceptanceStatus"
        ]
      },
      "OverlayFormDefinition": {
        "type": "object",
        "properties": {
          "sections": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "title": {
                  "type": "string"
                },
                "descriptionHtml": {
                  "type": "string"
                },
                "descriptionPlain": {
                  "type": "string"
                },
                "fields": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "isRequired": {
                        "type": "boolean",
                        "example": true,
                        "default": true
                      },
                      "descriptionHtml": {
                        "type": "string"
                      },
                      "descriptionPlain": {
                        "type": "string"
                      },
                      "field": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "$ref": "#/components/schemas/id"
                          },
                          "type": {
                            "type": "string",
                            "example": "String",
                            "description": "The type of the form definition field."
                          },
                          "path": {
                            "type": "string",
                            "example": "_systemfield_name"
                          },
                          "humanReadablePath": {
                            "type": "string",
                            "example": "Name"
                          },
                          "title": {
                            "type": "string",
                            "example": "Name"
                          },
                          "isNullable": {
                            "type": "boolean",
                            "example": false,
                            "default": true
                          },
                          "selectableValues": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "label": {
                                  "type": "string"
                                },
                                "value": {
                                  "type": "string"
                                }
                              },
                              "required": [
                                "label",
                                "value"
                              ]
                            }
                          }
                        },
                        "required": [
                          "id",
                          "type",
                          "path",
                          "humanReadablePath",
                          "title",
                          "isNullable"
                        ]
                      }
                    },
                    "required": [
                      "isRequired",
                      "field"
                    ]
                  }
                }
              },
              "required": [
                "fields"
              ]
            }
          }
        }
      },
      "OverlayOffer": {
        "allOf": [
          {
            "$ref": "#/components/schemas/OfferBrief"
          },
          {
            "type": "object",
            "properties": {
              "versions": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/OverlayOfferVersion"
                }
              },
              "formDefinition": {
                "$ref": "#/components/schemas/OverlayFormDefinition"
              }
            }
          }
        ]
      },
      "OverlayInterviewerPoolTrainingPathStage": {
        "type": "object",
        "properties": {
          "id": {
            "allOf": [
              {
                "description": "The training stage's id"
              },
              {
                "example": "3ae2b801-19f6-41ef-ad28-214bd731948f"
              },
              {
                "$ref": "#/components/schemas/id"
              }
            ]
          },
          "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": "#/components/schemas/OverlayUser"
            }
          }
        },
        "required": [
          "id",
          "interviewerRole",
          "interviewsRequired",
          "isArchived",
          "approvalRequired"
        ]
      },
      "OverlayInterviewerPoolTrainingPath": {
        "type": "object",
        "properties": {
          "id": {
            "allOf": [
              {
                "description": "The training path's id"
              },
              {
                "example": "3ae2b801-19f6-41ef-ad28-214bd731948f"
              },
              {
                "$ref": "#/components/schemas/id"
              }
            ]
          },
          "enabled": {
            "type": "boolean",
            "description": "Whether or not the training path is enabled",
            "example": true
          },
          "trainingStages": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/OverlayInterviewerPoolTrainingPathStage"
            }
          }
        },
        "required": [
          "id",
          "enabled",
          "trainingStages"
        ]
      },
      "OverlayInterviewerPoolBrief": {
        "type": "object",
        "properties": {
          "id": {
            "allOf": [
              {
                "description": "The pool's id"
              },
              {
                "example": "3ae2b801-19f6-41ef-ad28-214bd731948f"
              },
              {
                "$ref": "#/components/schemas/id"
              }
            ]
          },
          "title": {
            "type": "string",
            "example": "Backend Technical Screeners",
            "description": "The pool's title"
          },
          "isArchived": {
            "allOf": [
              {
                "$ref": "#/components/schemas/isArchived"
              },
              {
                "description": "Whether or not the pool is archived"
              }
            ]
          },
          "trainingPath": {
            "$ref": "#/components/schemas/OverlayInterviewerPoolTrainingPath"
          }
        },
        "required": [
          "id",
          "title",
          "isArchived"
        ]
      },
      "OverlayInterviewerWithPoolUser": {
        "allOf": [
          {
            "$ref": "#/components/schemas/OverlayUser"
          },
          {
            "type": "object",
            "description": "Represents an interviewer assigned to an InterviewEvent with their training role and pool information.",
            "properties": {
              "trainingRole": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "The training-related role of the interviewer for this specific event. \nReturns null when the interviewer is qualified for interviewing (or Interviewer Training is not enabled). \nSee [Ashby Knowledge Base](https://docs.ashbyhq.com/interviewer-training) for more information.\n",
                "enum": [
                  "Shadow",
                  "Reverse-Shadow"
                ],
                "example": "Shadow"
              },
              "interviewerPool": {
                "anyOf": [
                  {
                    "$ref": "#/components/schemas/OverlayInterviewerPoolBrief"
                  },
                  {
                    "type": "null"
                  }
                ],
                "description": "The interviewer pool this interviewer belongs to, if applicable."
              },
              "isFeedbackRequired": {
                "type": "boolean",
                "description": "Whether feedback is required from this interviewer for this specific event."
              }
            }
          }
        ],
        "required": [
          "trainingRole",
          "interviewerPool",
          "isFeedbackRequired"
        ]
      },
      "dateTime": {
        "type": "string",
        "format": "date-time",
        "example": "2022-07-21T17:32:28Z"
      },
      "OverlayInterview": {
        "type": "object",
        "properties": {
          "id": {
            "allOf": [
              {
                "description": "The interview's id"
              },
              {
                "example": "3ae2b801-19f6-41ef-ad28-214bd731948f"
              },
              {
                "$ref": "#/components/schemas/id"
              }
            ]
          },
          "title": {
            "type": "string",
            "example": "Technical Phone Interview",
            "description": "The interview's title"
          },
          "externalTitle": {
            "type": "string",
            "example": "Technical Interview",
            "description": "Alternate candidate-facing interview title displayed in email/interview communications.  If not specified, the primary title will be returned."
          },
          "isArchived": {
            "allOf": [
              {
                "$ref": "#/components/schemas/isArchived"
              },
              {
                "description": "Whether or not the interview is archived"
              }
            ]
          },
          "isDebrief": {
            "type": "boolean",
            "example": false,
            "description": "Whether the interview is a debrief"
          },
          "isFeedbackRequired": {
            "type": "boolean",
            "example": true,
            "description": "Whether feedback is required by default for interviewers assigned to this interview"
          },
          "isFeedbackRequested": {
            "type": "boolean",
            "example": true,
            "description": "Whether feedback is requested by default for interviewers assigned to this interview"
          },
          "instructionsHtml": {
            "type": "string",
            "description": "An HTML version of the interview's description",
            "example": "<p>The technical phone interview consists of a 60-minute series of technical questions</p>\n"
          },
          "instructionsPlain": {
            "type": "string",
            "description": "A plaintext version of the interview's description",
            "example": "The technical phone interview consists of a 60-minute series of technical questions"
          },
          "jobId": {
            "allOf": [
              {
                "description": "The id of the job the interview is associated with. If null, the interview is not associated with a specific job\nand is a shared interview. Interviews that are associated with particular jobs can only be scheduled for applications\nto those jobs.\n"
              },
              {
                "$ref": "#/components/schemas/id"
              }
            ]
          },
          "feedbackFormDefinitionId": {
            "allOf": [
              {
                "description": "The id of the feedback form definition associated with the interview. \n"
              },
              {
                "$ref": "#/components/schemas/id"
              }
            ]
          }
        },
        "required": [
          "id",
          "title",
          "isArchived",
          "isFeedbackRequired",
          "isFeedbackRequested",
          "feedbackFormDefinitionId"
        ]
      },
      "extraData": {
        "type": "object",
        "description": "This field stores information, structured as key-value pairs, for your own use and reference, for example a unique identifier for your own system.\nDo not store personally identifiable information (PII) in this field. In addition, the following constraints apply:\n- Keys must be strings of at most 100 characters.\n- Values must be strings of at most 512 characters.\n- The total size of the extra data must be less than 1kb.\n\nWe recommend using a prefix for your keys to avoid collisions with other systems, as data stored in this field is available to all API users with permission to access the underlying object.\n",
        "additionalProperties": {
          "type": "string"
        },
        "example": {
          "partner_external_object_id": "12345",
          "partner_additional_data": "f763ba0e4"
        }
      },
      "OverlayInterviewEvent": {
        "type": "object",
        "properties": {
          "id": {
            "allOf": [
              {
                "$ref": "#/components/schemas/id"
              },
              {
                "description": "The interview event's id"
              },
              {
                "example": "3ae2b801-19f6-41ef-ad28-214bd731948f"
              }
            ]
          },
          "interviewId": {
            "allOf": [
              {
                "$ref": "#/components/schemas/id"
              },
              {
                "description": "The interview's id"
              },
              {
                "example": "ff6c7d9d-71e3-4c9c-88b1-28824980c276"
              }
            ]
          },
          "interviewScheduleId": {
            "allOf": [
              {
                "$ref": "#/components/schemas/id"
              },
              {
                "description": "The interview schedule's id"
              },
              {
                "example": "9d34f544-c150-4d70-91c4-e8b0b4a72846"
              }
            ]
          },
          "interviewerUserIds": {
            "type": "array",
            "deprecated": true,
            "description": "An array of the ids of all interviewers. Use the `interviewers` field instead for more detailed information.",
            "items": {
              "allOf": [
                {
                  "$ref": "#/components/schemas/id"
                },
                {
                  "description": "An array of the ids of all interviewers"
                },
                {
                  "example": "caea4d97-331d-46b1-a8e3-6b821c2214ef"
                }
              ]
            }
          },
          "interviewers": {
            "type": "array",
            "description": "An array of user objects representing the interviewers on this event, including their training role and pool information.",
            "items": {
              "$ref": "#/components/schemas/OverlayInterviewerWithPoolUser"
            }
          },
          "createdAt": {
            "allOf": [
              {
                "description": "The time the interview event was created"
              },
              {
                "$ref": "#/components/schemas/dateTime"
              }
            ],
            "type": "string"
          },
          "updatedAt": {
            "allOf": [
              {
                "description": "The time the interview event was last updated"
              },
              {
                "$ref": "#/components/schemas/dateTime"
              }
            ],
            "type": "string"
          },
          "startTime": {
            "allOf": [
              {
                "description": "The time the interview event is scheduled to start"
              },
              {
                "$ref": "#/components/schemas/dateTime"
              }
            ],
            "type": "string"
          },
          "endTime": {
            "allOf": [
              {
                "description": "The time the interview event is scheduled to end"
              },
              {
                "$ref": "#/components/schemas/dateTime"
              }
            ],
            "type": "string"
          },
          "feedbackLink": {
            "type": "string",
            "format": "uri",
            "example": "https://app.ashbyhq.com/interview-briefings/4736b6d2-5c97-43a6-a7c6-0228bf079411/feedback",
            "description": "The link to submit feedback for the interview event"
          },
          "location": {
            "type": [
              "string",
              "null"
            ],
            "description": "The location of the interview",
            "example": "Google Meet"
          },
          "meetingLink": {
            "type": [
              "string",
              "null"
            ],
            "format": "uri",
            "description": "A link to the virtual meeting (if the interview is being hosted virtually)"
          },
          "interviewerCalendarEventId": {
            "type": [
              "string",
              "null"
            ],
            "description": "The external calendar event id for the interviewer's calendar event"
          },
          "hasSubmittedFeedback": {
            "type": "boolean",
            "description": "Whether or not this interview has any feedback submitted"
          },
          "interview": {
            "description": "The interview associated with this event (only included if the expand parameter includes \"interview\")",
            "$ref": "#/components/schemas/OverlayInterview"
          },
          "notetakerTranscriptId": {
            "allOf": [
              {
                "$ref": "#/components/schemas/id"
              },
              {
                "description": "The id of the AI notetaker transcript recording for this interview event, if one exists. Use with the notetakerTranscript.info endpoint to fetch transcript metadata and a download URL. This feature is in Beta.  Contact us to enable transcript API access for your organization."
              }
            ],
            "type": [
              "string",
              "null"
            ]
          },
          "extraData": {
            "$ref": "#/components/schemas/extraData"
          }
        },
        "required": [
          "id",
          "interviewId",
          "interviewScheduleId",
          "interviewers",
          "createdAt",
          "updatedAt",
          "startTime",
          "endTime",
          "feedbackLink",
          "hasSubmittedFeedback"
        ]
      },
      "OverlayInterviewSchedule": {
        "type": "object",
        "required": [
          "id",
          "status",
          "applicationId",
          "interviewStageId"
        ],
        "properties": {
          "id": {
            "type": "string",
            "description": "The id of the interview schedule"
          },
          "status": {
            "type": "string",
            "enum": [
              "NeedsScheduling",
              "WaitingOnCandidateBooking",
              "WaitingOnCandidateAvailability",
              "CandidateAvailabilitySubmitted",
              "Scheduled",
              "WaitingOnFeedback",
              "Complete",
              "Cancelled",
              "OnHold",
              "Unknown"
            ],
            "description": "The status of the interview schedule"
          },
          "applicationId": {
            "type": "string",
            "description": "The id of the application associated with the interview schedule"
          },
          "interviewStageId": {
            "type": "string",
            "description": "The id of the interview stage associated with the interview schedule"
          },
          "scheduledBy": {
            "description": "The user who scheduled this interview schedule. Null if the schedule has not been scheduled.",
            "$ref": "#/components/schemas/OverlayUser"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time",
            "description": "The time the interview schedule was created"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time",
            "description": "The time the interview schedule was last updated"
          },
          "interviewEvents": {
            "type": "array",
            "description": "All scheduled interview events associated with the interview schedule",
            "items": {
              "$ref": "#/components/schemas/OverlayInterviewEvent"
            }
          }
        }
      },
      "jobStatus": {
        "type": "string",
        "enum": [
          "Draft",
          "Open",
          "Closed",
          "Archived"
        ]
      },
      "employmentType": {
        "type": "string",
        "enum": [
          "FullTime",
          "PartTime",
          "Intern",
          "Contract",
          "Temporary"
        ]
      },
      "OverlayJob": {
        "type": "object",
        "properties": {
          "id": {
            "$ref": "#/components/schemas/id"
          },
          "title": {
            "type": "string"
          },
          "confidential": {
            "type": "boolean"
          },
          "status": {
            "$ref": "#/components/schemas/jobStatus"
          },
          "employmentType": {
            "$ref": "#/components/schemas/employmentType"
          },
          "locationId": {
            "allOf": [
              {
                "description": "The id of the location of the job"
              },
              {
                "$ref": "#/components/schemas/id"
              }
            ]
          },
          "departmentId": {
            "allOf": [
              {
                "description": "The id of the department or team associated with the job"
              },
              {
                "$ref": "#/components/schemas/id"
              }
            ]
          },
          "defaultInterviewPlanId": {
            "allOf": [
              {
                "description": "The id of the default interview plan for this job posting. \nA job cannot be opened without a default interview plan.\n"
              },
              {
                "$ref": "#/components/schemas/id"
              }
            ]
          },
          "interviewPlanIds": {
            "type": "array",
            "items": {
              "allOf": [
                {
                  "$ref": "#/components/schemas/id"
                },
                {
                  "description": "The ids of all interview plans associated with a job"
                }
              ]
            }
          },
          "customFields": {
            "type": "array",
            "description": "An array of custom fields associated with the job",
            "items": {
              "$ref": "#/components/schemas/OverlayCustomField"
            }
          },
          "jobPostingIds": {
            "type": "array",
            "items": {
              "allOf": [
                {
                  "$ref": "#/components/schemas/id"
                },
                {
                  "description": "The ids of all job postings associated with the job"
                }
              ]
            }
          },
          "customRequisitionId": {
            "allOf": [
              {
                "$ref": "#/components/schemas/id"
              },
              {
                "description": "The custom requisition id for a job"
              }
            ]
          },
          "brandId": {
            "allOf": [
              {
                "description": "The id of the brand to use for this job"
              },
              {
                "$ref": "#/components/schemas/id"
              }
            ]
          },
          "hiringTeam": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/OverlayHiringTeamRole"
            }
          },
          "author": {
            "$ref": "#/components/schemas/OverlayUser"
          },
          "createdAt": {
            "$ref": "#/components/schemas/createdAt"
          },
          "updatedAt": {
            "$ref": "#/components/schemas/createdAt"
          },
          "openedAt": {
            "$ref": "#/components/schemas/createdAt"
          },
          "closedAt": {
            "$ref": "#/components/schemas/createdAt"
          }
        },
        "required": [
          "id",
          "title",
          "confidential",
          "status",
          "employmentType",
          "updatedAt"
        ]
      },
      "OverlayJobPostingLocationIds": {
        "type": "object",
        "description": "An object containing the ids of all locations associated with the job posting",
        "properties": {
          "primaryLocationId": {
            "$ref": "#/components/schemas/id"
          },
          "secondaryLocationIds": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/id"
            }
          }
        },
        "required": [
          "primaryLocationId",
          "secondaryLocationIds"
        ]
      },
      "workplaceType": {
        "type": "string",
        "enum": [
          "OnSite",
          "Hybrid",
          "Remote"
        ]
      },
      "OverlayJobPostingBrief": {
        "type": "object",
        "properties": {
          "id": {
            "allOf": [
              {
                "$ref": "#/components/schemas/id"
              },
              {
                "description": "The job posting's id"
              }
            ]
          },
          "title": {
            "type": "string",
            "example": "Posting Title",
            "description": "The job posting's title"
          },
          "jobId": {
            "allOf": [
              {
                "$ref": "#/components/schemas/id"
              },
              {
                "description": "The id of the job associated with the job posting"
              }
            ]
          },
          "departmentName": {
            "type": "string",
            "example": "Engineering department",
            "description": "The name of the department associated with the job posting"
          },
          "teamName": {
            "type": "string",
            "example": "Data engineering team",
            "description": "The name of the team associated with the job posting. `teamName` and `departmentName` will\nbe the same if the team does not have a parent team specified.\n"
          },
          "locationName": {
            "type": "string",
            "example": "Springfield",
            "description": "The name of the primary location associated with the job posting"
          },
          "locationIds": {
            "$ref": "#/components/schemas/OverlayJobPostingLocationIds"
          },
          "workplaceType": {
            "$ref": "#/components/schemas/workplaceType"
          },
          "employmentType": {
            "$ref": "#/components/schemas/employmentType"
          },
          "isListed": {
            "type": "boolean",
            "example": true,
            "description": "Whether or not the job posting is listed"
          },
          "publishedDate": {
            "type": [
              "string",
              "null"
            ],
            "example": "2021-11-19",
            "description": "The date the job posting was published. Null for unpublished (draft) job postings."
          },
          "applicationDeadline": {
            "type": "string",
            "example": "2024-08-12T20:00:00.000Z",
            "format": "date-time",
            "description": "The date and time when applications will no longer be accepted"
          },
          "externalLink": {
            "type": "string",
            "example": "https://jobs.ashbyhq.com/6eec82ac-9713-512d-ac2e-405618935375/d5a6bc97-4259-4bc5-b3fe-6d3edfd538e3",
            "description": "The external link to the job posting. Will be null if the job posting is on an internal job board."
          },
          "applyLink": {
            "type": "string",
            "example": "https://jobs.ashbyhq.com/6eec82ac-9713-512d-ac2e-405618935375/d5a6bc97-4259-4bc5-b3fe-6d3edfd538e3",
            "description": "The link to apply to the job posting. Will be to the public job board if the job posting is on an external job board, or to the internal job board if the job posting is on an internal job board."
          },
          "compensationTierSummary": {
            "type": "string",
            "example": "$120K – $270K • 0% – 2.25% • Offers Bonus • Multiple Ranges",
            "description": "A summary of *all* the job posting's valid compensation tiers in the same format shown on\nAshby-hosted Job Boards\n"
          },
          "shouldDisplayCompensationOnJobBoard": {
            "type": "boolean",
            "example": true,
            "description": "Whether the job posting's settings specify that compensation should be shown to applicants\nwhen the posting is listed among other job postings\n"
          },
          "updatedAt": {
            "$ref": "#/components/schemas/createdAt"
          }
        },
        "required": [
          "id",
          "title",
          "jobId",
          "departmentName",
          "teamName",
          "locationName",
          "locationIds",
          "employmentType",
          "isListed",
          "publishedDate",
          "applyLink",
          "shouldDisplayCompensationOnJobBoard",
          "updatedAt"
        ]
      },
      "OverlayOpeningVersion": {
        "type": "object",
        "properties": {
          "id": {
            "$ref": "#/components/schemas/id"
          },
          "identifier": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "authorId": {
            "$ref": "#/components/schemas/id"
          },
          "createdAt": {
            "$ref": "#/components/schemas/createdAt"
          },
          "teamId": {
            "$ref": "#/components/schemas/id"
          },
          "jobIds": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/id"
            }
          },
          "targetHireDate": {
            "type": "string"
          },
          "targetStartDate": {
            "type": "string"
          },
          "isBackfill": {
            "type": "boolean"
          },
          "employmentType": {
            "$ref": "#/components/schemas/employmentType"
          },
          "locationIds": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/id"
            }
          },
          "hiringTeam": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/OverlayHiringTeamRole"
            }
          },
          "customFields": {
            "type": "array",
            "description": "An array of custom fields associated with the opening",
            "items": {
              "$ref": "#/components/schemas/OverlayCustomField"
            }
          }
        },
        "required": [
          "id",
          "identifier",
          "description",
          "authorId",
          "createdAt",
          "jobIds",
          "isBackfill",
          "employmentType",
          "locationIds",
          "hiringTeam",
          "customFields"
        ]
      },
      "OverlayOpening": {
        "type": "object",
        "properties": {
          "id": {
            "$ref": "#/components/schemas/id"
          },
          "openedAt": {
            "$ref": "#/components/schemas/createdAt"
          },
          "closedAt": {
            "$ref": "#/components/schemas/createdAt"
          },
          "isArchived": {
            "$ref": "#/components/schemas/isArchived"
          },
          "archivedAt": {
            "$ref": "#/components/schemas/createdAt"
          },
          "closeReasonId": {
            "$ref": "#/components/schemas/id"
          },
          "openingState": {
            "type": "string",
            "enum": [
              "Approved",
              "Closed",
              "Draft",
              "Filled",
              "Open"
            ]
          },
          "latestVersion": {
            "$ref": "#/components/schemas/OverlayOpeningVersion"
          }
        },
        "required": [
          "id",
          "isArchived",
          "openingState"
        ]
      },
      "surveyType": {
        "type": "string",
        "enum": [
          "CandidateDataConsent",
          "CandidateExperience",
          "Diversity",
          "EEOC",
          "Questionnaire"
        ]
      },
      "OverlaySurveySubmission": {
        "type": "object",
        "properties": {
          "id": {
            "$ref": "#/components/schemas/id"
          },
          "surveyFormDefinitionId": {
            "description": "The id of the survey form definition that this submission is associated with. May be null if the survey form definition has been deleted.",
            "oneOf": [
              {
                "$ref": "#/components/schemas/id"
              },
              {
                "type": "null"
              }
            ]
          },
          "submittedAt": {
            "$ref": "#/components/schemas/createdAt"
          },
          "candidateId": {
            "allOf": [
              {
                "description": "The id of the candidate who submitted the survey"
              },
              {
                "$ref": "#/components/schemas/id"
              }
            ]
          },
          "applicationId": {
            "allOf": [
              {
                "description": "The id of the application that the survey submission is associated with"
              },
              {
                "$ref": "#/components/schemas/id"
              }
            ]
          },
          "surveyType": {
            "$ref": "#/components/schemas/surveyType"
          },
          "formDefinition": {
            "$ref": "#/components/schemas/OverlayFormDefinition"
          },
          "submittedValues": {
            "type": "object",
            "example": {
              "_systemfield_name": "Gob Bluth"
            }
          }
        },
        "required": [
          "id",
          "submittedAt",
          "candidateId",
          "surveyType"
        ]
      },
      "OverlayTakeHomeAssignment": {
        "type": "object",
        "required": [
          "id",
          "applicationId",
          "candidateId",
          "status",
          "createdAt",
          "updatedAt",
          "feedbackFormDefinitionId",
          "reviewers"
        ],
        "properties": {
          "id": {
            "type": "string",
            "description": "The unique identifier for the take-home assignment"
          },
          "applicationId": {
            "type": "string",
            "description": "The id of the associated application"
          },
          "candidateId": {
            "type": "string",
            "description": "The id of the associated candidate"
          },
          "interviewStageId": {
            "type": "string",
            "description": "The interview stage associated with the take-home assignment, if any. Null if none is associated."
          },
          "status": {
            "type": "string",
            "enum": [
              "WaitingOnSubmission",
              "WaitingOnFeedback",
              "Complete",
              "Cancelled"
            ],
            "description": "The current lifecycle status of the take-home assignment"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time",
            "description": "The timestamp when the take-home was created"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time",
            "description": "The timestamp when the take-home was last updated"
          },
          "submission": {
            "description": "The candidate submission, or null until the candidate submits",
            "type": "object",
            "required": [
              "id",
              "submittedAt",
              "fileHandles"
            ],
            "properties": {
              "id": {
                "type": "string",
                "description": "The unique identifier for the take-home submission"
              },
              "submittedAt": {
                "type": "string",
                "format": "date-time",
                "description": "The timestamp when the candidate submitted"
              },
              "notesHtml": {
                "type": "string",
                "description": "The candidate's submission notes rendered as HTML, if provided"
              },
              "notesPlain": {
                "type": "string",
                "description": "The candidate's submission notes rendered as plain text, if provided"
              },
              "fileHandles": {
                "type": "array",
                "description": "File handles for submitted files. Resolve each handle with file.info.",
                "items": {
                  "$ref": "#/components/schemas/OverlayFileHandle"
                }
              }
            }
          },
          "feedbackFormDefinitionId": {
            "type": "string",
            "description": "The feedback form definition reviewers use for this take-home"
          },
          "reviewers": {
            "type": "array",
            "description": "The assigned take-home reviewers",
            "items": {
              "type": "object",
              "required": [
                "userId",
                "interviewEventId",
                "feedbackLink",
                "hasSubmittedFeedback"
              ],
              "properties": {
                "userId": {
                  "type": "string",
                  "description": "The id of the assigned reviewer"
                },
                "interviewEventId": {
                  "type": "string",
                  "description": "The interview event id used for interview briefings and feedback submission"
                },
                "feedbackLink": {
                  "type": "string",
                  "description": "The Ashby app link for submitting reviewer feedback"
                },
                "hasSubmittedFeedback": {
                  "type": "boolean",
                  "description": "Whether this reviewer has submitted take-home feedback"
                },
                "feedbackSubmittedAt": {
                  "type": "string",
                  "format": "date-time",
                  "description": "The timestamp when feedback was submitted, if it has been submitted. Null if not yet submitted."
                }
              }
            }
          }
        }
      },
      "ErrorDetail": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          },
          "parameter": {
            "type": "string"
          }
        },
        "required": [
          "message"
        ],
        "additionalProperties": false
      },
      "ErrorResponse": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "const": false
          },
          "errors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ErrorDetail"
            }
          }
        },
        "required": [
          "success",
          "errors"
        ],
        "additionalProperties": false
      },
      "ApplicationCriteriaEvaluation": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid",
            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
            "description": "The id of the criteria evaluation."
          },
          "criterion": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "format": "uuid",
                "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
                "description": "The id of the criterion version."
              },
              "title": {
                "type": "string",
                "description": "The title of the criterion."
              },
              "type": {
                "type": "string",
                "enum": [
                  "ResumePrompt",
                  "DidAnswerApplicationFormQuestion",
                  "SimilarityToAiGeneratedAnswer"
                ],
                "description": "The type of criterion evaluation."
              },
              "prompt": {
                "description": "The prompt text used for AI evaluation.",
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "applicationFormDefinitionId": {
                "description": "The id of the application form definition (if applicable).",
                "anyOf": [
                  {
                    "type": "string",
                    "format": "uuid",
                    "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "applicationFormFieldPath": {
                "description": "The path to the specific application form field (if applicable).",
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ]
              }
            },
            "required": [
              "id",
              "title",
              "type"
            ],
            "additionalProperties": false,
            "description": "The criterion that was evaluated."
          },
          "status": {
            "type": "string",
            "enum": [
              "Pending",
              "Completed",
              "Failed",
              "Skipped"
            ],
            "description": "The status of the evaluation."
          },
          "outcome": {
            "description": "The evaluation outcome (e.g., \"Meets\", \"Does Not Meet\").",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "reasoning": {
            "description": "The AI's reasoning for the evaluation outcome.",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "skipReason": {
            "description": "The reason why the evaluation was skipped (if status is \"Skipped\").",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "outcomeNumber": {
            "description": "A numerical score representing the evaluation outcome (0.0 to 1.0).",
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ]
          },
          "evaluatedAt": {
            "description": "The date and time when the evaluation was completed.",
            "anyOf": [
              {
                "type": "string",
                "format": "date-time",
                "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "required": [
          "id",
          "criterion",
          "status"
        ],
        "additionalProperties": false
      },
      "ApplicationListCriteriaEvaluationsRequest": {
        "type": "object",
        "properties": {
          "applicationId": {
            "type": "string",
            "format": "uuid",
            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
            "description": "The id of the application to fetch criteria evaluations for.",
            "example": "e9ed20fd-d45f-4aad-8a00-a19bfba0083e"
          },
          "cursor": {
            "description": "The pagination cursor. Use 'start' for the first page or the nextCursor value from a previous response.",
            "example": "G8",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "limit": {
            "description": "The maximum number of criteria evaluations to return per page.",
            "example": 25,
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "required": [
          "applicationId"
        ],
        "additionalProperties": false
      },
      "ApplicationListCriteriaEvaluationsSuccessResponse": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean",
            "const": true
          },
          "results": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ApplicationCriteriaEvaluation"
            }
          },
          "nextCursor": {
            "description": "Cursor for the next page of results, if available",
            "type": "string"
          },
          "moreDataAvailable": {
            "description": "Whether more data is available beyond this page",
            "type": "boolean"
          },
          "syncToken": {
            "description": "Sync token to use for future incremental syncs. Only present on the last page.",
            "type": "string"
          }
        },
        "required": [
          "success",
          "results"
        ],
        "additionalProperties": false,
        "example": {
          "success": true,
          "results": [
            {
              "id": "a4d6d2f0-9b8f-4f0a-8b1a-1f6f7d3c2d1e",
              "criterion": {
                "id": "9b2cb8d9-1a6b-4d4f-9c5d-69ef7b9a9f12",
                "title": "Location",
                "type": "ResumePrompt",
                "prompt": "Evaluate if the candidate's location aligns with the job requirements.",
                "applicationFormDefinitionId": null,
                "applicationFormFieldPath": null
              },
              "status": "Completed",
              "outcome": "Meets",
              "reasoning": "The candidate's location in San Francisco aligns well with the job's requirement for Bay Area presence.",
              "skipReason": null,
              "outcomeNumber": 0.85,
              "evaluatedAt": "2024-01-15T10:30:00.000Z"
            }
          ],
          "moreDataAvailable": false,
          "syncToken": "sync-token-example"
        }
      }
    },
    "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.\nThe digest will be included in the request under the `Ashby-Signature` http header.\n\nIt will look like this:\n`Ashby-Signature: sha256=f3124911d2956f10aa3a49c43a88bdf13bba846e94f0ae2bd7c034f90239bd04`\n\nThe part before the = indicates the algorithm that was used to compute the hash digest.\n"
      }
    }
  }
}
```