{"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"}],"tags":[{"name":"ashby","description":"The Ashby API"}],"paths":{"/apiKey.info":{"post":{"summary":"apiKey.info","description":"Retrieve information about the API key being used to make the request.\n\n**Requires the [`apiKeysRead`](authentication#permissions-apikeyinfo) permission.**\n","operationId":"apiKeyInfo","tags":["API Key"],"requestBody":{"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Responses for the apiKey.info endpoint","content":{"application/json":{"schema":{"oneOf":[{"title":"Success response","allOf":[{"$ref":"#/paths/~1job.info/post/responses/200/content/application~1json/schema/oneOf/0/allOf/0"},{"type":"object","properties":{"results":{"type":"object","properties":{"title":{"type":"string","description":"The name of the API key.","example":"Custom Job Board API key"},"createdAt":{"$ref":"#/paths/~1candidate.createNote/post/requestBody/content/application~1json/schema/properties/createdAt"},"scopes":{"type":"array","description":"List of permission scopes that this API key is authorized for.","items":{"type":"string"},"example":["jobs:read","candidates:read"]}}}},"required":["results"]}]},{"title":"Error response","$ref":"#/paths/~1report.generate/post/responses/429/content/application~1json/schema"}]}}}}},"security":[{"BasicAuth":[]}]}},"/application.changeSource":{"post":{"summary":"application.changeSource","operationId":"applicationChangeSource","description":"Change the source of an application.\n\n**Requires the [`candidatesWrite`](authentication#permissions-applicationchangesource) permission.**\n","tags":["Application"],"requestBody":{"content":{"application/json":{"schema":{"properties":{"applicationId":{"allOf":[{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"},{"description":"The id of the application to update the source of"}]},"sourceId":{"allOf":[{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"},{"description":"The source to set on the application. Pass null to unset an application's source."}]}},"required":["applicationId","sourceId"],"example":{"applicationId":"3ae2b801-19f6-41ef-ad28-214bd731948f","sourceId":"2c6991c5-c9e2-4af8-879e-29c5a9d26509"}}}}},"responses":{"200":{"description":"Responses from the application.changeSource endpoint","content":{"application/json":{"schema":{"oneOf":[{"title":"Success response","allOf":[{"$ref":"#/paths/~1job.info/post/responses/200/content/application~1json/schema/oneOf/0/allOf/0"},{"type":"object","properties":{"results":{"$ref":"#/webhooks/pushToHRIS/post/requestBody/content/application~1json/schema/properties/data/properties/application"}},"required":["results"]}]},{"$ref":"#/paths/~1report.generate/post/responses/429/content/application~1json/schema"}]}}}}}}},"/application.changeStage":{"post":{"summary":"application.changeStage","operationId":"applicationChangeStage","description":"Change the stage of an application\n\n**Requires the [`candidatesWrite`](authentication#permissions-applicationchangestage) permission.**\n","tags":["Application"],"requestBody":{"content":{"application/json":{"schema":{"properties":{"applicationId":{"allOf":[{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"},{"description":"The id of the application to update the stage of"}]},"interviewStageId":{"allOf":[{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"},{"description":"The interview stage to move the application to."}]},"archiveReasonId":{"allOf":[{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"},{"description":"Archive Reason to set when moving to an Interview Stage with type: `Archived`. \nNote: You must pass this parameter when moving to an Interview Stage with type: `Archived`\n"}]},"archiveEmail":{"type":"object","properties":{"communicationTemplateId":{"allOf":[{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"},{"description":"The id of the communication template to use for the email.\nNote: This communication template's intendedTypes must include: `email`.\n"}]},"sendAt":{"type":"string","format":"date-time","description":"The date and time to send the email as an ISO 8601 date and time string, e.g. `2025-02-24T08:27:01Z`.\nIf omitted, the email will be scheduled for the following morning at 9:32am in your default timezone.\nIf the time is in the past, the email will be sent immediately.\nNote: If a timezone is not specified, timestamps will be interpreted in UTC, regardless of your timezone setting.\n"}},"description":"Email to send to the candidate when moving to an Interview Stage with type: `Archived`.\nNote: If application is already archived, the email will not be sent.\nNote: If email send fails, the application stage will not be updated. If this is the case, you can retry the request without this parameter.\nNote: You may only pass this parameter if the application is moving to an Interview Stage with type: `Archived`.\n","required":["communicationTemplateId"]}},"required":["applicationId","interviewStageId"],"example":{"applicationId":"3ae2b801-19f6-41ef-ad28-214bd731948f","interviewStageId":"2c6991c5-c9e2-4af8-879e-29c5a9d26509"}}}}},"responses":{"200":{"description":"Responses from the application.changeStage endpoint","content":{"application/json":{"schema":{"oneOf":[{"title":"Success response","allOf":[{"$ref":"#/paths/~1job.info/post/responses/200/content/application~1json/schema/oneOf/0/allOf/0"},{"type":"object","properties":{"results":{"$ref":"#/webhooks/pushToHRIS/post/requestBody/content/application~1json/schema/properties/data/properties/application"}},"required":["results"]}]},{"allOf":[{"$ref":"#/paths/~1report.generate/post/responses/429/content/application~1json/schema"},{"type":"object","properties":{"errors":{"type":"array","items":{"type":"string","enum":["invalid_input","application_not_found","interview_plan_not_found","interview_stage_not_found","archive_reason_not_found","communication_template_not_found","communication_template_not_allowed"]},"description":"| Error Code | Description |\n|------------|-------------|\n| `invalid_input` | A parameter is the wrong type |\n| `invalid_input` | Archive fields are not allowed for non-archive stages |\n| `invalid_input` | Archive reason ID is required for archive stages |\n| `application_not_found` | |\n| `interview_plan_not_found` | |\n| `interview_stage_not_found` | |\n| `archive_reason_not_found` | |\n| `communication_template_not_found` | |\n| `communication_template_not_allowed` | Template contains unresolvable substitution tokens |\n| `communication_template_not_allowed` | Template intended types does not include 'email' |\n| `communication_template_not_allowed` | [Less common] Template is archived |\n| `communication_template_not_allowed` | [Less common] Template is a one-off template |\n"}}}]}]}}}}}}},"/application.create":{"post":{"summary":"application.create","operationId":"applicationCreate","description":"Consider a candidate for a job (eg when sourcing a candidate for a job posting).\n\nIf you're submitting an application as a job board, use the [`applicationForm.submit`](ref:applicationformsubmit) endpoint instead. See [Creating a custom careers page](https://developers.ashbyhq.com/docs/creating-a-custom-careers-page) for details.\n\n**Requires the [`candidatesWrite`](authentication#permissions-applicationcreate) permission.**\n\nTo set values for custom fields on Applications, use the [`customFields.setValue`](ref:customfieldsetvalue) endpoint.\n","tags":["Application"],"requestBody":{"content":{"application/json":{"schema":{"properties":{"candidateId":{"allOf":[{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"},{"description":"The id of the candidate to consider for a job"}]},"jobId":{"allOf":[{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"},{"description":"The id of the job to consider the candidate for"}]},"interviewPlanId":{"allOf":[{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"},{"description":"The id of the interview plan to place the application in. If none is provided, the default interview plan is used.\n"}]},"interviewStageId":{"allOf":[{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"},{"description":"The interview stage of the interview plan (either default or provided) to place the application in. \nIf none is provided, the application is placed in the first \"Lead\" stage. \nYou can also supply the special string \"FirstPreInterviewScreen\", which will choose the first pre-interview-screen stage on the specified job's interview plan.\n"}]},"sourceId":{"allOf":[{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"},{"description":"The source to set on the application being created."}]},"creditedToUserId":{"allOf":[{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"},{"description":"The id of the user the application will be credited to."}]},"createdAt":{"allOf":[{"description":"An ISO date string to set the application's `createdAt` timestamp. When this value isn't provided, the `createdAt` timestamp defaults to the time the call was made.\n"},{"$ref":"#/paths/~1candidate.createNote/post/requestBody/content/application~1json/schema/properties/createdAt"}]},"applicationHistory":{"allOf":[{"type":"array","description":"An array of objects representing the application history.","items":{"type":"object","properties":{"stageId":{"allOf":[{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"},{"description":"The ID of the interview stage for this history event. This stage must belong to the interview plan associated with the application."}]},"stageNumber":{"allOf":[{"type":"integer"},{"description":"The sort order of this event. 0 is the first, the highest number will be the current stage."}]},"enteredStageAt":{"allOf":[{"$ref":"#/paths/~1candidate.addEmailMessage/post/requestBody/content/application~1json/schema/properties/sentAt/allOf/0"},{"description":"An ISO date string representing the time the application entered this stage."}]},"archiveReasonId":{"allOf":[{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"},{"description":"The ID of the archive reason. If the interview stage is an `Archived` stage type, this field is required."}]}},"required":["stageId","stageNumber","enteredStageAt"]}},{"description":"An array of objects representing the application history.\n"}]}},"required":["candidateId","jobId"],"example":{"candidateId":"3ae2b801-19f6-41ef-ad28-214bd731948f","jobId":"2c6991c5-c9e2-4af8-879e-29c5a9d26509"}}}}},"responses":{"200":{"description":"Responses from the application.create endpoint","content":{"application/json":{"schema":{"oneOf":[{"title":"Success response","allOf":[{"$ref":"#/paths/~1job.info/post/responses/200/content/application~1json/schema/oneOf/0/allOf/0"},{"type":"object","properties":{"results":{"$ref":"#/webhooks/pushToHRIS/post/requestBody/content/application~1json/schema/properties/data/properties/application"}},"required":["results"]}]},{"$ref":"#/paths/~1report.generate/post/responses/429/content/application~1json/schema"}]}}}}}}},"/application.info":{"post":{"summary":"application.info","operationId":"applicationInfo","description":"Fetch application details by application id or by submitted form instance id (which is return by the `applicationForm.submit` endpoint). If both applicationId and submittedFormInstanceId are provided, we will lookup by applicationId.\n\n**Requires the [`candidatesRead`](authentication#permissions-applicationinfo) permission.**\n","tags":["Application"],"requestBody":{"content":{"application/json":{"schema":{"oneOf":[{"type":"object","properties":{"applicationId":{"allOf":[{"description":"The id of the application to fetch."},{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"}]},"expand":{"type":"array","description":"Choose to expand the result and include additional data for related objects. \n","items":{"type":"string","enum":["openings","applicationFormSubmissions","referrals"]}}},"required":["applicationId"]},{"type":"object","properties":{"submittedFormInstanceId":{"allOf":[{"description":"The id of the application's submitted form instance to fetch."},{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"}]},"expand":{"type":"array","description":"Choose to expand the result and include additional data for related objects. \n","items":{"type":"string","enum":["openings","applicationFormSubmissions"]}}},"required":["submittedFormInstanceId"]}]}}}},"responses":{"200":{"description":"Responses from the application.info endpoint","content":{"application/json":{"schema":{"oneOf":[{"title":"Success response","allOf":[{"$ref":"#/paths/~1job.info/post/responses/200/content/application~1json/schema/oneOf/0/allOf/0"},{"type":"object","properties":{"results":{"allOf":[{"$ref":"#/webhooks/pushToHRIS/post/requestBody/content/application~1json/schema/properties/data/properties/application"},{"type":"object","properties":{"openings":{"description":"The openings array will only be included if the `openings` expand parameter is included when the request is made.","type":"array","items":{"$ref":"#/webhooks/openingCreate/post/requestBody/content/application~1json/schema/properties/data/properties/opening"}}}},{"type":"object","properties":{"applicationHistory":{"type":"array","items":{"$ref":"#/paths/~1application.listHistory/post/responses/200/content/application~1json/schema/oneOf/0/allOf/1/properties/results/items"}},"applicationFormSubmissions":{"type":"array","description":"Application form submissions. These match the response from the `applicationForm.submit` endpoint. Use of the expand parameter is required to fetch.","items":{"$ref":"#/paths/~1applicationForm.submit/post/responses/200/content/application~1json/schema/oneOf/0/allOf/1/properties/results/properties/submittedFormInstance"}},"referrals":{"type":"array","items":{"type":"object","properties":{"user":{"$ref":"#/paths/~1user.info/post/responses/200/content/application~1json/schema/oneOf/0/allOf/1/properties/results"},"referredAt":{"$ref":"#/paths/~1candidate.createNote/post/requestBody/content/application~1json/schema/properties/createdAt"}}}},"resumeFileHandle":{"description":"The id, name and handle for the application's resume","$ref":"#/paths/~1candidate.info/post/responses/200/content/application~1json/schema/oneOf/0/allOf/1/properties/results/properties/fileHandles/items"}}}]}},"required":["results"]}]},{"$ref":"#/paths/~1report.generate/post/responses/429/content/application~1json/schema"}]}}}}}}},"/application.list":{"post":{"summary":"application.list","operationId":"applicationList","description":"Gets all applications in the organization.\n\nSee the [Pagination and Incremental Synchronization](/docs/pagination-and-incremental-sync) guide for detailed usage examples.\n\n**Requires the [`candidatesRead`](authentication#permissions-applicationlist) permission.**\n","tags":["Application"],"requestBody":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/paths/~1opening.list/post/requestBody/content/application~1json/schema"},{"properties":{"status":{"type":"string","enum":["Hired","Archived","Active","Lead"]},"jobId":{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"},"expand":{"type":"array","description":"Choose to expand the result and include additional data for related objects. \n","items":{"type":"string","enum":["openings"]}}}}]}}}},"responses":{"200":{"description":"Responses from the application.list endpoint","content":{"application/json":{"schema":{"oneOf":[{"allOf":[{"$ref":"#/paths/~1job.list/post/responses/200/content/application~1json/schema/oneOf/0/allOf/0"},{"properties":{"results":{"type":"array","items":{"allOf":[{"$ref":"#/webhooks/pushToHRIS/post/requestBody/content/application~1json/schema/properties/data/properties/application"},{"$ref":"#/paths/~1application.info/post/responses/200/content/application~1json/schema/oneOf/0/allOf/1/properties/results/allOf/1"}]}}}}],"required":["results"]},{"$ref":"#/paths/~1report.generate/post/responses/429/content/application~1json/schema"}]}}}}}}},"/application.transfer":{"post":{"summary":"application.transfer","operationId":"applicationTransfer","description":"Transfer an application to a different job.\n\n**Requires the [`candidatesWrite`](authentication#permissions-applicationtransfer) permission.**\n","tags":["Application"],"requestBody":{"content":{"application/json":{"schema":{"properties":{"applicationId":{"allOf":[{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"},{"description":"The id of the application to transfer."}]},"jobId":{"allOf":[{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"},{"description":"The id of the job to transfer the application to."}]},"interviewPlanId":{"allOf":[{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"},{"description":"The id of the interview plan to transfer the application to. \n"}]},"interviewStageId":{"allOf":[{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"},{"description":"The interview stage of the interview plan to transfer the application to. \n"}]},"startAutomaticActivities":{"allOf":[{"type":"boolean"},{"description":"Whether to start any automatic activities set on the target interview stage. \nIf not provided, the default value is `true`.\n"},{"default":true}]}},"required":["applicationId","jobId","interviewPlanId","interviewStageId"],"example":{"applicationId":"3ae2b801-19f6-41ef-ad28-214bd731948f","jobId":"2c6991c5-c9e2-4af8-879e-29c5a9d26509","interviewPlanId":"af94aedd-b743-462c-ab22-9e7e356c11b4","interviewStageId":"5eb15197-8664-48fd-99cf-fbdc9d25149d"}}}}},"responses":{"200":{"description":"Responses from the application.transfer endpoint","content":{"application/json":{"schema":{"oneOf":[{"title":"Success response","allOf":[{"$ref":"#/paths/~1job.info/post/responses/200/content/application~1json/schema/oneOf/0/allOf/0"},{"type":"object","properties":{"results":{"$ref":"#/webhooks/pushToHRIS/post/requestBody/content/application~1json/schema/properties/data/properties/application"}},"required":["results"]}]},{"$ref":"#/paths/~1report.generate/post/responses/429/content/application~1json/schema"}]}}}}}}},"/application.update":{"post":{"summary":"application.update","operationId":"applicationUpdate","description":"Update an application\n\n**Requires the [`candidatesWrite`](authentication#permissions-applicationupdate) permission.**\n\nTo set values for custom fields on Applications, use the [`customFields.setValue`](ref:customfieldsetvalue) endpoint.\n","tags":["Application"],"requestBody":{"content":{"application/json":{"schema":{"properties":{"applicationId":{"allOf":[{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"},{"description":"The id of the application to update"}]},"sourceId":{"allOf":[{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"},{"description":"The source to set on the application being created."}]},"creditedToUserId":{"allOf":[{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"},{"description":"The id of the user the application will be credited to."}]},"createdAt":{"allOf":[{"description":"An ISO date string to set the application's `createdAt` timestamp. When this value isn't provided, the `createdAt` timestamp defaults to the time the call was made.\n"},{"$ref":"#/paths/~1candidate.createNote/post/requestBody/content/application~1json/schema/properties/createdAt"}]},"sendNotifications":{"type":"boolean","default":true,"description":"Whether or not users who are subscribed to the application should be notified that application was updated. Default is true."}},"required":["applicationId"],"example":{"applicationId":"3ae2b801-19f6-41ef-ad28-214bd731948f","createdAt":"2021-01-01T00:00:00Z","creditedToUserId":"3ae2b801-19f6-41ef-ad28-214bd731948f","sourceId":"3ae2b801-19f6-41ef-ad28-214bd731948f"}}}}},"responses":{"200":{"description":"Responses from the application.update endpoint","content":{"application/json":{"schema":{"oneOf":[{"title":"Success response","allOf":[{"$ref":"#/paths/~1job.info/post/responses/200/content/application~1json/schema/oneOf/0/allOf/0"},{"type":"object","properties":{"results":{"$ref":"#/webhooks/pushToHRIS/post/requestBody/content/application~1json/schema/properties/data/properties/application"}},"required":["results"]}]},{"$ref":"#/paths/~1report.generate/post/responses/429/content/application~1json/schema"}]}}}}}}},"/application.updateHistory":{"post":{"summary":"application.updateHistory","operationId":"applicationUpdateHistory","description":"Update the history of an application. This endpoint is used to update the history of an application, such as setting the entered stage time or deleting a history event.\n\n**Requires the [`candidatesWrite`](authentication#permissions-applicationupdatehistory) permission and the `Allow updating application history?` setting found in your admin API key permissions configuration.**\n","tags":["Application"],"requestBody":{"content":{"application/json":{"schema":{"oneOf":[{"type":"object","properties":{"applicationId":{"allOf":[{"description":"The id of the application to fetch."},{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"}]},"applicationHistory":{"type":"array","description":"The updated array of application history events. This array should contain all history events for the application, not just the events being updated.","items":{"type":"object","properties":{"stageId":{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"},"stageNumber":{"type":"integer","title":"Stage Number","description":"The order of the history event in the application's history. 0 is the first event."},"enteredStageAt":{"description":"The time the application entered the stage.","$ref":"#/paths/~1candidate.createNote/post/requestBody/content/application~1json/schema/properties/createdAt"},"applicationHistoryId":{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId","title":"Application History ID","description":"The id of the application history event to update if you are updating an existing event."},"archiveReasonId":{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId","title":"Archive Reason ID","description":"The id of the archive reason to associate with the history event if the stage type is `archived`."}},"required":["stageId","stageNumber","enteredStageAt"]}}},"required":["applicationId","applicationHistory"]}]}}}},"responses":{"200":{"description":"Responses from the application.updateHistory endpoint","content":{"application/json":{"schema":{"oneOf":[{"title":"Success response","allOf":[{"$ref":"#/paths/~1job.info/post/responses/200/content/application~1json/schema/oneOf/0/allOf/0"},{"type":"object","properties":{"results":{"allOf":[{"$ref":"#/webhooks/pushToHRIS/post/requestBody/content/application~1json/schema/properties/data/properties/application"},{"$ref":"#/paths/~1application.info/post/responses/200/content/application~1json/schema/oneOf/0/allOf/1/properties/results/allOf/1"},{"type":"object","properties":{"applicationHistory":{"type":"array","items":{"$ref":"#/paths/~1application.listHistory/post/responses/200/content/application~1json/schema/oneOf/0/allOf/1/properties/results/items"}},"applicationFormSubmissions":{"type":"array","description":"Application form submissions. These match the response from the `applicationForm.submit` endpoint. Use of the expand parameter is required to fetch.","items":{"$ref":"#/paths/~1applicationForm.submit/post/responses/200/content/application~1json/schema/oneOf/0/allOf/1/properties/results/properties/submittedFormInstance"}},"referrals":{"type":"array","items":{"type":"object","properties":{"user":{"$ref":"#/paths/~1user.info/post/responses/200/content/application~1json/schema/oneOf/0/allOf/1/properties/results"},"referredAt":{"$ref":"#/paths/~1candidate.createNote/post/requestBody/content/application~1json/schema/properties/createdAt"}}}}}}]}},"required":["results"]}]},{"$ref":"#/paths/~1report.generate/post/responses/429/content/application~1json/schema"}]}}}}}}},"/application.listHistory":{"post":{"summary":"application.listHistory","operationId":"applicationListHistory","description":"Fetch a paginated list of application history items for an application.\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**Requires the [`candidatesRead`](authentication#permissions-applicationListHistory) permission.**\n","tags":["Application"],"requestBody":{"content":{"application/json":{"schema":{"allOf":[{"type":"object","properties":{"applicationId":{"allOf":[{"description":"The id of the application to fetch."},{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"}]}}},{"$ref":"#/paths/~1brand.list/post/requestBody/content/application~1json/schema","required":["applicationId"]}]}}}},"responses":{"200":{"description":"Responses for the application.listHistory endpoint","content":{"application/json":{"schema":{"oneOf":[{"allOf":[{"$ref":"#/paths/~1brand.list/post/responses/200/content/application~1json/schema/oneOf/0/allOf/0"},{"properties":{"results":{"type":"array","items":{"type":"object","properties":{"id":{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"},"stageId":{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"},"title":{"type":"string","title":"Title","example":"Offer"},"enteredStageAt":{"$ref":"#/paths/~1candidate.createNote/post/requestBody/content/application~1json/schema/properties/createdAt"},"leftStageAt":{"$ref":"#/paths/~1candidate.createNote/post/requestBody/content/application~1json/schema/properties/createdAt"},"stageNumber":{"type":"integer","title":"Stage Number","description":"The order of the history event in the application's history. 0 is the first event."},"allowedActions":{"type":"array","items":{"type":"string","enum":["none","delete","set_entered_at"]},"title":"Allowed Actions","description":"Actions that can be performed on the application via `application.updateHistory`.","example":["delete","set_entered_at"]},"actorId":{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId","title":"Actor ID","description":"The ID of the user that performed the stage change."}},"required":["id","stageId","title","enteredStageAt","allowedActions","stageNumber"]}}}}],"required":["results"]},{"$ref":"#/paths/~1report.generate/post/responses/429/content/application~1json/schema"}]}}}}}}},"/application.listCriteriaEvaluations":{"post":{"summary":"application.listCriteriaEvaluations","operationId":"applicationListCriteriaEvaluations","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**Requires the [`candidatesRead`](authentication#permissions-applicationListCriteriaEvaluations) permission.**\n\n**Note:** This endpoint requires the AI Application Review feature to be enabled for your organization.\n","tags":["Application"],"requestBody":{"content":{"application/json":{"schema":{"allOf":[{"type":"object","properties":{"applicationId":{"allOf":[{"description":"The id of the application to fetch criteria evaluations for."},{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"}]}}},{"$ref":"#/paths/~1brand.list/post/requestBody/content/application~1json/schema"}],"required":["applicationId"]}}}},"responses":{"200":{"description":"Responses for the application.listCriteriaEvaluations endpoint","content":{"application/json":{"schema":{"oneOf":[{"allOf":[{"$ref":"#/paths/~1brand.list/post/responses/200/content/application~1json/schema/oneOf/0/allOf/0"},{"properties":{"results":{"type":"array","items":{"type":"object","title":"Criteria Evaluation","description":"An AI-generated evaluation of how well a candidate meets a specific job criterion.","properties":{"id":{"allOf":[{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"},{"description":"The id of the criteria evaluation."}]},"criterion":{"allOf":[{"type":"object","title":"Criterion Version","description":"The criterion that was evaluated, including its configuration and prompt details.","properties":{"id":{"allOf":[{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"},{"description":"The id of the criterion version."}]},"title":{"type":"string","description":"The title of the criterion.","example":"Location"},"type":{"type":"string","description":"The type of criterion evaluation.","enum":["ResumePrompt","DidAnswerApplicationFormQuestion","SimilarityToAiGeneratedAnswer"],"example":"ResumePrompt"},"prompt":{"type":"string","description":"The prompt text used for AI evaluation.","example":"Evaluate if the candidate's location aligns with the job requirements."},"applicationFormDefinitionId":{"anyOf":[{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"},{"type":"null"}],"description":"The id of the application form definition (if applicable)."},"applicationFormFieldPath":{"type":["string","null"],"description":"The path to the specific application form field (if applicable)."}},"required":["id","title","type","prompt"]},{"description":"The criterion that was evaluated."}]},"status":{"type":"string","description":"The status of the evaluation.","enum":["Pending","Completed","Failed","Skipped"],"example":"Completed"},"outcome":{"type":["string","null"],"description":"The evaluation outcome (e.g., \"Meets\", \"Does Not Meet\").","example":"Meets"},"reasoning":{"type":["string","null"],"description":"The AI's reasoning for the evaluation outcome.","example":"The candidate's location in San Francisco aligns well with the job's requirement for Bay Area presence."},"skipReason":{"type":["string","null"],"description":"The reason why the evaluation was skipped (if status is \"Skipped\").","example":"NoResume"},"outcomeNumber":{"type":["number","null"],"description":"A numerical score representing the evaluation outcome (0.0 to 1.0).","minimum":0,"maximum":1,"example":0.85},"evaluatedAt":{"type":["string","null"],"format":"date-time","description":"The date and time when the evaluation was completed.","example":"2024-01-15T10:30:00Z"}},"required":["id","criterion","status"]}}}}],"required":["results"]},{"$ref":"#/paths/~1report.generate/post/responses/429/content/application~1json/schema"}]}}}}}}},"/applicationFeedback.list":{"post":{"summary":"applicationFeedback.list","operationId":"applicationFeedbackList","description":"List all interview scorecards and feedback submissions associated with an application.\n\nEach feedback submission contains:\n- **formDefinition**: The structure of the feedback form with all available fields\n- **submittedValues**: Responses to the form fields, which depending on the form configuration can include:\n - Text feedback (e.g., \"Candidate showed strong technical skills...\")\n - Numerical scores (e.g., \"4\" for a 1-4 rating scale)\n - Structured selections (e.g., \"Strong Hire\" for overall recommendation)\n- **Interview context**: Links to associated interviews, events, and the submitting user\n\nSee the [Pagination and Incremental Synchronization](/docs/pagination-and-incremental-sync) guide for detailed usage examples.\n\n**Requires the [`candidatesRead`](authentication#permissions-applicationfeedbacklist) permission.**\n","tags":["Application Feedback"],"requestBody":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/paths/~1opening.list/post/requestBody/content/application~1json/schema"},{"type":"object","properties":{"applicationId":{"allOf":[{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"},{"description":"The id of the application you'd like to fetch feedback for"}]}}}]}}}},"responses":{"200":{"description":"Responses from the applicationFeedback.list endpoint","content":{"application/json":{"schema":{"oneOf":[{"title":"Success response","allOf":[{"$ref":"#/paths/~1job.list/post/responses/200/content/application~1json/schema/oneOf/0/allOf/0"},{"type":"object","properties":{"results":{"type":"array","items":{"allOf":[{"type":"object","allOf":[{"$ref":"#/paths/~1applicationForm.submit/post/responses/200/content/application~1json/schema/oneOf/0/allOf/1/properties/results/properties/submittedFormInstance"},{"type":"object","properties":{"submittedByUser":{"$ref":"#/paths/~1user.info/post/responses/200/content/application~1json/schema/oneOf/0/allOf/1/properties/results"},"interviewId":{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"},"interviewEventId":{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"},"feedbackFormDefinitionId":{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"},"applicationHistoryId":{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"},"applicationId":{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"},"submittedAt":{"$ref":"#/paths/~1candidate.createNote/post/requestBody/content/application~1json/schema/properties/createdAt"}}}],"required":["submittedByUser","applicationId"]}]},"example":[{"id":"f47ac10b-58cc-4372-a567-0e02b2c3d479","applicationId":"550e8400-e29b-41d4-a716-446655440000","feedbackFormDefinitionId":"6ba7b810-9dad-11d1-80b4-00c04fd430c8","interviewId":"6ba7b811-9dad-11d1-80b4-00c04fd430c8","interviewEventId":"6ba7b812-9dad-11d1-80b4-00c04fd430c8","submittedAt":"2023-11-15T14:30:00.000Z","submittedByUser":{"id":"123e4567-e89b-12d3-a456-426614174000","firstName":"Sarah","lastName":"Johnson","email":"sarah.johnson@company.com","globalRole":"Elevated Access","isEnabled":true,"updatedAt":"2023-11-15T14:30:00.000Z"},"formDefinition":{"sections":[{"title":"Technical Assessment","fields":[{"isRequired":true,"field":{"id":"550e8400-e29b-41d4-a716-446655440001","type":"ValueSelect","path":"overall_recommendation","title":"Overall Recommendation","humanReadablePath":"Overall Recommendation","isNullable":false,"selectableValues":[{"label":"Strong Hire","value":"strong_hire"},{"label":"Hire","value":"hire"},{"label":"No Hire","value":"no_hire"}]}},{"isRequired":false,"field":{"id":"550e8400-e29b-41d4-a716-446655440002","type":"Score","path":"technical_skills","title":"Technical Skills","humanReadablePath":"Technical Skills","isNullable":false}},{"isRequired":false,"field":{"id":"550e8400-e29b-41d4-a716-446655440003","type":"RichText","path":"detailed_feedback","title":"Detailed Feedback","humanReadablePath":"Detailed Feedback","isNullable":false}}]}]},"submittedValues":{"overall_recommendation":"hire","technical_skills":"4","detailed_feedback":"Candidate demonstrated strong problem-solving skills and wrote clean, efficient code. Good understanding of algorithms and data structures. Communication was clear throughout the interview."}}]}},"required":["results"]}]},{"$ref":"#/paths/~1report.generate/post/responses/429/content/application~1json/schema"}]}}}}}}},"/application.addHiringTeamMember":{"post":{"summary":"application.addHiringTeamMember","description":"Adds an Ashby user to the hiring team at the application level. \n\n**Requires the [`candidateWrite`](authentication#permissions-applicationaddhiringteammember) permission.**\n","operationId":"applicationaddhiringteammember","tags":["Application"],"requestBody":{"content":{"application/json":{"schema":{"required":["applicationId","teamMemberId","roleId"],"properties":{"applicationId":{"allOf":[{"description":"The application to assign the user a role on."},{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"}]},"teamMemberId":{"allOf":[{"description":"The id of the user to assign the role to."},{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"}]},"roleId":{"allOf":[{"description":"The id of the hiring team role to assign."},{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"}]}}}}}},"responses":{"200":{"description":"Responses for the application.addHiringTeamMember endpoint","content":{"application/json":{"schema":{"oneOf":[{"title":"Success response","allOf":[{"$ref":"#/paths/~1job.info/post/responses/200/content/application~1json/schema/oneOf/0/allOf/0"},{"type":"object","properties":{"results":{"$ref":"#/paths/~1hiringTeam.addMember/post/responses/200/content/application~1json/schema/oneOf/0/allOf/1/properties/results"}},"required":["results"]}]},{"title":"Error response","$ref":"#/paths/~1report.generate/post/responses/429/content/application~1json/schema"}]}}}}}}},"/application.removeHiringTeamMember":{"post":{"summary":"application.removeHiringTeamMember","description":"Removes an Ashby user to the hiring team at the application level. \n\n**Requires the [`candidateWrite`](authentication#permissions-applicationremovehiringteammember) permission.**\n","operationId":"applicationremovehiringteammember","tags":["Application"],"requestBody":{"content":{"application/json":{"schema":{"required":["applicationId","teamMemberId","roleId"],"properties":{"applicationId":{"allOf":[{"description":"The application to unassign the user a role from."},{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"}]},"teamMemberId":{"allOf":[{"description":"The id of the user to unassign the role from."},{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"}]},"roleId":{"allOf":[{"description":"The id of the hiring team role to unassign."},{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"}]}}}}}},"responses":{"200":{"description":"Responses for the application.removeHiringTeamMember endpoint","content":{"application/json":{"schema":{"oneOf":[{"title":"Success response","allOf":[{"$ref":"#/paths/~1job.info/post/responses/200/content/application~1json/schema/oneOf/0/allOf/0"},{"type":"object","properties":{"results":{"$ref":"#/paths/~1hiringTeam.addMember/post/responses/200/content/application~1json/schema/oneOf/0/allOf/1/properties/results"}},"required":["results"]}]},{"title":"Error response","$ref":"#/paths/~1report.generate/post/responses/429/content/application~1json/schema"}]}}}}}}},"/applicationHiringTeamRole.list":{"post":{"summary":"applicationHiringTeamRole.list","operationId":"applicationHiringTeamRoleList","description":"Gets all available hiring team roles for applications in the organization.\n\n**Requires the [`candidatesRead`](authentication#permissions-applicationHiringTeamRoleList) permission.**\n","tags":["Application Hiring Team Role"],"responses":{"200":{"description":"Responses from the applicationHiringTeamRole.list endpoint","content":{"application/json":{"schema":{"oneOf":[{"allOf":[{"properties":{"results":{"type":"array","items":{"allOf":[{"type":"object","properties":{"id":{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"},"title":{"type":"string"}},"required":["id","title"]}]}}}}],"required":["results"]},{"$ref":"#/paths/~1report.generate/post/responses/429/content/application~1json/schema"}]}}}}}}},"/applicationFeedback.submit":{"post":{"summary":"applicationFeedback.submit","description":"Application feedback forms support a variety of field types. \n\n**Requires the [`candidatesWrite`](authentication#permissions-applicationfeedbacksubmit) permission.**\n\nThe values accepted for each field depend on the type of field that's being filled out: |\n- `Boolean` - A boolean value\n- `CompensationRange` - An object in the format `{ type: \"compensation-range\", minValue: 100000, maxValue: 150000, currencyCode: \"USD\", interval: \"1 YEAR\" }`. `currencyCode` must be a valid ISO 4217 code and `interval` must be a valid compensation interval (e.g. `\"1 HOUR\"`, `\"1 YEAR\"`).\n- `Currency` - An object in the format `{ value: 100000, currencyCode: \"USD\" }`. `currencyCode` must be a valid ISO 4217 code.\n- `Date` - A date string in the format YYYY-MM-DD\n- `Email` - A valid email address\n- `LongText`, `Phone`, `String` - A string\n- `MultiValueSelect` - An array of strings that exist in the MultiValueSelect field's selectable options\n- `Number` - An integer\n- `NumberRange` - An object in the format `{ type: \"number-range\", minValue: 1, maxValue: 10 }`\n- `RichText` - We do not support submitting rich text documents via the API but we do support submitting plain text values for these fields. Plain text values must be submitted in the format `{ type: \"PlainText\", value: \"A plain text string\" }`\n- `Score` - An integer between 1 and 4 submitted in the format `{ score: 4 }`\n- `Url` - A valid URL string. The empty string is also accepted.\n- `UUID` - A UUID string, or an object in the format `{ value: \" Please Note: we have set up limits for applications for this role. Candidates may not apply more than 2 times in any 60 day span for any job in the Application Limit Group.
Example org is a leading software company. Example org allows real-time collaboration on important example workflows. Founded in 2012 we have over 10,000 customers worldwide and are backed by fantastic investors such as Sequoia Capital.
This example role will be part of an example team and will report to the example manager. The new hire plays a critical role in various example workflows.
Experience writing good example job descriptions
Other exemplary skills
3-5 years prior experience in this role
Motivation
Great english language skills
Example org is a leading software company. Example org allows real-time collaboration on important example workflows. Founded in 2012 we have over 10,000 customers worldwide and are backed by fantastic investors such as Sequoia Capital.
Please Note: we have set up limits for applications for this role. It is in the Product Limit group. The following limits apply to applications for all jobs within this group:
\nCandidates may not apply more than 1 time in any 60 day span for any job in the Product Limit Group.
\n`\n- Code blocks - ``\n"}},"required":["type","content"]}},"required":["jobPostingId"]}}}},"responses":{"200":{"description":"Responses for the jobPosting.update endpoint","content":{"application/json":{"schema":{"oneOf":[{"title":"Success response","allOf":[{"$ref":"#/paths/~1job.info/post/responses/200/content/application~1json/schema/oneOf/0/allOf/0"},{"type":"object","properties":{"results":{"$ref":"#/paths/~1jobPosting.info/post/responses/200/content/application~1json/schema/oneOf/0/allOf/1/properties/results"}},"required":["results"]}]},{"$ref":"#/paths/~1report.generate/post/responses/429/content/application~1json/schema"}]}}}}}}},"/location.archive":{"post":{"summary":"location.archive","description":"Archives a location or location hierarchy.\n\n**Requires the [`organizationWrite`](authentication#permissions-locationarchive) permission.**\n","operationId":"locationarchive","tags":["Location"],"requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["locationId"],"properties":{"locationId":{"type":"string","description":"The id of the location"}}}}}},"responses":{"200":{"description":"Responses for the location.archive endpoint","content":{"application/json":{"schema":{"oneOf":[{"title":"Success response","allOf":[{"$ref":"#/paths/~1job.info/post/responses/200/content/application~1json/schema/oneOf/0/allOf/0"},{"type":"object","properties":{"results":{"$ref":"#/paths/~1location.info/post/responses/200/content/application~1json/schema/oneOf/0/allOf/1/properties/results"}},"required":["results"]}]},{"title":"Error response","$ref":"#/paths/~1report.generate/post/responses/429/content/application~1json/schema"}]}}}}}}},"/location.create":{"post":{"summary":"location.create","description":"Creates a location or location hierarchy.\n\n**Requires the [`organizationWrite`](authentication#permissions-locationcreate) permission.**\n","operationId":"locationcreate","tags":["Location"],"requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["name","type"],"properties":{"name":{"type":"string","description":"The name of the location."},"type":{"type":"string","description":"A Location represents an actual location that jobs and employees can be associated with. A Location Hierarchy is a grouping of locations or other location hierarchies.","enum":["Location","LocationHierarchy"]},"address":{"type":"object","description":"The address of the location.","properties":{"postalAddress":{"type":"object","properties":{"addressCountry":{"type":"string","description":"The country the location is in. Must be a valid country name or two-letter country code."},"addressRegion":{"type":"string","description":"The region the location is in (for instance, a state or province)."},"addressLocality":{"type":"string","description":"The city or town of the location."},"postalCode":{"type":"string","description":"The postal code of the address."},"streetAddress":{"type":"string","description":"The street address of the location."}}}}},"parentLocationId":{"type":"string","description":"The id of the location's parent."},"isRemote":{"type":"boolean","description":"Whether the location should be labeled as remote. LocationHierarchies cannot be labeled as remote.","default":false},"workplaceType":{"allOf":[{"description":"The type of workplace. LocationHierarchies cannot be labeled with a workplaceType."},{"type":"string","enum":["OnSite","Hybrid","Remote"]}]},"externalName":{"type":"string","description":"An alternate candidate-facing name for this location used on job boards and in the API."},"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"}}}}}}},"responses":{"200":{"description":"Responses for the location.create endpoint","content":{"application/json":{"schema":{"oneOf":[{"title":"Success response","allOf":[{"$ref":"#/paths/~1job.info/post/responses/200/content/application~1json/schema/oneOf/0/allOf/0"},{"type":"object","properties":{"results":{"$ref":"#/paths/~1location.info/post/responses/200/content/application~1json/schema/oneOf/0/allOf/1/properties/results"}},"required":["results"]}]},{"title":"Error response","$ref":"#/paths/~1report.generate/post/responses/429/content/application~1json/schema"}]}}}}}}},"/location.info":{"post":{"summary":"location.info","description":"Gets details for a single location by id.\n\n**Requires the [`organizationRead`](authentication#permissions-locationinfo) permission.**\n","operationId":"locationInfo","tags":["Location"],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"locationId":{"allOf":[{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"},{"description":"The id of the location to fetch"}]}},"required":["locationId"]}}}},"responses":{"200":{"description":"Responses for the location.info endpoint","content":{"application/json":{"schema":{"oneOf":[{"title":"Success response","allOf":[{"$ref":"#/paths/~1job.info/post/responses/200/content/application~1json/schema/oneOf/0/allOf/0"},{"type":"object","properties":{"results":{"type":"object","properties":{"id":{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"},"name":{"type":"string","example":"Bay Area Office"},"externalName":{"type":"string","example":"San Francisco Office","description":"An alternate candidate-facing name for this location used on job boards and in the API"},"isArchived":{"$ref":"#/webhooks/openingCreate/post/requestBody/content/application~1json/schema/properties/data/properties/opening/properties/isArchived"},"address":{"type":"object","properties":{"postalAddress":{"type":"object","properties":{"addressCountry":{"type":"string","example":"United States"},"addressRegion":{"type":"string","example":"California"},"addressLocality":{"type":"string","example":"San Francisco"},"postalCode":{"type":"string","example":"94108"},"streetAddress":{"type":"string","example":"49 Geary St Suite 411"}}}}},"isRemote":{"type":"boolean","example":false,"deprecated":true,"description":"Use `workplaceType` instead"},"workplaceType":{"description":"The type of workplace.","example":"Hybrid","$ref":"#/paths/~1location.create/post/requestBody/content/application~1json/schema/properties/workplaceType/allOf/1"},"parentLocationId":{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"},"type":{"type":"string","enum":["Location","LocationHierarchy"],"description":"The type of the location component.","example":"Location"},"extraData":{"$ref":"#/paths/~1location.create/post/requestBody/content/application~1json/schema/properties/extraData"}},"required":["id","name","isArchived"]}},"required":["results"]}]},{"title":"Error response","$ref":"#/paths/~1report.generate/post/responses/429/content/application~1json/schema"}]}}}}}}},"/location.list":{"post":{"summary":"location.list","description":"List all locations. Regions are not returned.\n\nSee the [Pagination and Incremental Synchronization](/docs/pagination-and-incremental-sync) guide for detailed usage examples.\n\n**Requires the [`organizationRead`](authentication#permissions-locationlist) permission.**\n","operationId":"locationlist","tags":["Location"],"requestBody":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/paths/~1surveyFormDefinition.list/post/requestBody/content/application~1json/schema"},{"type":"object","additionalProperties":false,"properties":{"includeArchived":{"$ref":"#/paths/~1source.list/post/requestBody/content/application~1json/schema/properties/includeArchived"},"includeLocationHierarchy":{"type":"boolean","description":"If true, the response will include the location hierarchy (regions).\n","default":false,"example":false}}}]}}}},"responses":{"200":{"description":"Responses for the location.list endpoint","content":{"application/json":{"schema":{"oneOf":[{"title":"Success response","allOf":[{"$ref":"#/paths/~1job.list/post/responses/200/content/application~1json/schema/oneOf/0/allOf/0"},{"type":"object","properties":{"results":{"type":"array","items":{"$ref":"#/paths/~1location.info/post/responses/200/content/application~1json/schema/oneOf/0/allOf/1/properties/results"}}},"required":["results"]}]},{"title":"Error response","$ref":"#/paths/~1report.generate/post/responses/429/content/application~1json/schema"}]}}}}}}},"/location.move":{"post":{"summary":"location.move","description":"Moves a location in location hierarchy.\n\n**Requires the [`organizationWrite`](authentication#permissions-locationmove) permission.**\n","operationId":"locationmove","tags":["Location"],"requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["locationId","parentLocationHierarchyId"],"properties":{"locationId":{"type":"string","description":"The id of the location"},"parentLocationHierarchyId":{"type":"string","description":"The id of the parent location hierarchy"}}}}}},"responses":{"200":{"description":"Responses for the location.move endpoint","content":{"application/json":{"schema":{"oneOf":[{"title":"Success response","allOf":[{"$ref":"#/paths/~1job.info/post/responses/200/content/application~1json/schema/oneOf/0/allOf/0"},{"type":"object","properties":{"results":{"$ref":"#/paths/~1location.info/post/responses/200/content/application~1json/schema/oneOf/0/allOf/1/properties/results"}},"required":["results"]}]},{"title":"Error response","$ref":"#/paths/~1report.generate/post/responses/429/content/application~1json/schema"}]}}}}}}},"/location.restore":{"post":{"summary":"location.restore","description":"Restores an archived location or location hierarchy.\n\n**Requires the [`organizationWrite`](authentication#permissions-locationrestore) permission.**\n","operationId":"locationrestore","tags":["Location"],"requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["locationId"],"properties":{"locationId":{"type":"string","description":"The id of the location"}}}}}},"responses":{"200":{"description":"Responses for the location.restore endpoint","content":{"application/json":{"schema":{"oneOf":[{"title":"Success response","allOf":[{"$ref":"#/paths/~1job.info/post/responses/200/content/application~1json/schema/oneOf/0/allOf/0"},{"type":"object","properties":{"results":{"$ref":"#/paths/~1location.info/post/responses/200/content/application~1json/schema/oneOf/0/allOf/1/properties/results"}},"required":["results"]}]},{"title":"Error response","$ref":"#/paths/~1report.generate/post/responses/429/content/application~1json/schema"}]}}}}}}},"/location.updateAddress":{"post":{"summary":"location.updateAddress","description":"Update an address of a location or location hierarchy.\n\n**Requires the [`organizationWrite`](authentication#permissions-locationupdateaddress) permission.**\n","operationId":"locationupdateaddress","tags":["Location"],"requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["locationId","address"],"properties":{"locationId":{"type":"string","description":"The id of the location"},"address":{"type":"object","description":"The address of the location","properties":{"postalAddress":{"type":"object","properties":{"addressCountry":{"type":"string","description":"The country of the location. Must be a valid country name or two-letter country code."},"addressRegion":{"type":"string","description":"The region of the location (for instance, a state or province)."},"addressLocality":{"type":"string","description":"The city or town of the location."},"postalCode":{"type":"string","description":"The postal code of the location."},"streetAddress":{"type":"string","description":"The street address of the location."}}}}}}}}}},"responses":{"200":{"description":"Responses for the location.updateAddress endpoint","content":{"application/json":{"schema":{"oneOf":[{"title":"Success response","allOf":[{"$ref":"#/paths/~1job.info/post/responses/200/content/application~1json/schema/oneOf/0/allOf/0"},{"type":"object","properties":{"results":{"$ref":"#/paths/~1location.info/post/responses/200/content/application~1json/schema/oneOf/0/allOf/1/properties/results"}},"required":["results"]}]},{"title":"Error response","$ref":"#/paths/~1report.generate/post/responses/429/content/application~1json/schema"}]}}}}}}},"/location.updateName":{"post":{"summary":"location.updateName","description":"Update location's name.\n\n**Requires the [`organizationWrite`](authentication#permissions-locationupdateName) permission.**\n","operationId":"locationupdateName","tags":["Location"],"requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["locationId","name"],"properties":{"locationId":{"type":"string","description":"The id of the location"},"name":{"type":"string","description":"The name of the location"}}}}}},"responses":{"200":{"description":"Responses for the location.updateName endpoint","content":{"application/json":{"schema":{"oneOf":[{"title":"Success response","allOf":[{"$ref":"#/paths/~1job.info/post/responses/200/content/application~1json/schema/oneOf/0/allOf/0"},{"type":"object","properties":{"results":{"$ref":"#/paths/~1location.info/post/responses/200/content/application~1json/schema/oneOf/0/allOf/1/properties/results"}},"required":["results"]}]},{"title":"Error response","$ref":"#/paths/~1report.generate/post/responses/429/content/application~1json/schema"}]}}}}}}},"/location.updateExternalName":{"post":{"summary":"location.updateExternalName","description":"Update a location's external (candidate-facing) name.\n\n**Requires the [`organizationWrite`](authentication#permissions-locationupdateexternalname) permission.**\n","operationId":"locationupdateexternalname","tags":["Location"],"requestBody":{"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["locationId"],"properties":{"locationId":{"type":"string","description":"The id of the location"},"externalName":{"type":"string","description":"An alternate candidate-facing name for this location used on job boards and in the API. Pass `null` to clear."}}}}}},"responses":{"200":{"description":"Responses for the location.updateExternalName endpoint","content":{"application/json":{"schema":{"oneOf":[{"title":"Success response","allOf":[{"$ref":"#/paths/~1job.info/post/responses/200/content/application~1json/schema/oneOf/0/allOf/0"},{"type":"object","properties":{"results":{"$ref":"#/paths/~1location.info/post/responses/200/content/application~1json/schema/oneOf/0/allOf/1/properties/results"}},"required":["results"]}]},{"title":"Error response","$ref":"#/paths/~1report.generate/post/responses/429/content/application~1json/schema"}]}}}}}}},"/location.updateWorkplaceType":{"post":{"summary":"location.updateWorkplaceType","description":"Update location's workplace type.\n\n**Requires the [`organizationWrite`](authentication#permissions-locationupdateworkplacetype) permission.**\n","operationId":"locationupdateworkplacetype","tags":["Location"],"requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["locationId","workplaceType"],"properties":{"locationId":{"type":"string","description":"The id of the location"},"workplaceType":{"allOf":[{"description":"The type of workplace. LocationHierarchies cannot be labeled with a workplaceType."},{"$ref":"#/paths/~1location.create/post/requestBody/content/application~1json/schema/properties/workplaceType/allOf/1"}]}}}}}},"responses":{"200":{"description":"Responses for the location.updateWorkplaceType endpoint","content":{"application/json":{"schema":{"oneOf":[{"title":"Success response","allOf":[{"$ref":"#/paths/~1job.info/post/responses/200/content/application~1json/schema/oneOf/0/allOf/0"},{"type":"object","properties":{"results":{"$ref":"#/paths/~1location.info/post/responses/200/content/application~1json/schema/oneOf/0/allOf/1/properties/results"}},"required":["results"]}]},{"title":"Error response","$ref":"#/paths/~1report.generate/post/responses/429/content/application~1json/schema"}]}}}}}}},"/notetakerTranscript.info":{"post":{"summary":"notetakerTranscript.info","operationId":"notetakerTranscriptInfo","description":"Fetches metadata and a pre-signed download URL for an AI\nNotetaker transcript recording.\n\n**Prerequisites:**\n- Your organization must have the **AI Notetaker add-on**. If your organization does not have\n the add-on, requests will fail with the `notetaker_transcript_not_enabled` error.\n\nThe response includes a signed URL with the transcript JSON. Download the file promptly after calling\n this endpoint. If the URL has expired, call the endpoint again to get a fresh one.\n\nOn the free tier, transcripts expire after a retention period. Requesting an expired\ntranscript returns the `notetaker_transcript_expired` error. Organizations with unlimited\nAI Notetaker access are not subject to this expiry.\n\nUse the `notetakerTranscriptId` field from\n[`interviewEvent.list`](ref:intervieweventlist) or [`interviewSchedule.list`](ref:interviewschedulelist) to discover\ntranscript IDs for interview events.\n\n**Error codes:**\n\n| Code | Description |\n|---|---|\n| `notetaker_transcript_not_enabled` | Your organization does not have the AI Notetaker add-on. |\n| `notetaker_transcript_not_found` | No transcript exists with the given ID, or you do not have access to it. |\n| `notetaker_transcript_expired` | The transcript has expired. Upgrade to unlimited AI Notetaker to retain transcripts indefinitely. |\n| `invalid_input` | The provided `notetakerTranscriptId` is not a valid UUID. |\n\n**Requires the [`notetakerRead`](authentication#permissions-notetakertranscriptinfo) permission.**\n","tags":["Notetaker Transcript"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"notetakerTranscriptId":{"allOf":[{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"},{"description":"The unique id of the notetaker transcript to fetch"}]}},"required":["notetakerTranscriptId"]},"example":{"notetakerTranscriptId":"3ae2b801-19f6-41ef-ad28-214bd731948f"}}}},"responses":{"200":{"description":"Responses from the notetakerTranscript.info endpoint","content":{"application/json":{"schema":{"oneOf":[{"title":"Success response","allOf":[{"$ref":"#/paths/~1job.info/post/responses/200/content/application~1json/schema/oneOf/0/allOf/0"},{"type":"object","properties":{"results":{"type":"object","properties":{"id":{"allOf":[{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"},{"description":"The unique id of the notetaker transcript recording"}]},"interviewEventId":{"description":"The id of the interview event this transcript is associated with","oneOf":[{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"},{"type":"null"}]},"interviewScheduleId":{"description":"The id of the interview schedule this transcript is associated with","oneOf":[{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"},{"type":"null"}]},"createdAt":{"allOf":[{"$ref":"#/paths/~1candidate.addEmailMessage/post/requestBody/content/application~1json/schema/properties/sentAt/allOf/0"},{"description":"The time the transcript recording was created"}],"type":"string"},"participants":{"type":"array","description":"The participants in the interview, resolved from the interview schedule. Includes interviewers and the candidate.","items":{"type":"object","properties":{"id":{"allOf":[{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"},{"description":"The id of the participant. For interviewers, this is the Ashby user id. For candidates, this is the candidate id."}]},"type":{"type":"string","enum":["interviewer","candidate"],"description":"Whether this participant is an interviewer or the candidate","example":"interviewer"},"name":{"type":"string","description":"The display name of the participant","example":"Jane Smith"},"email":{"type":["string","null"],"description":"The primary email address of the participant, or null if not available","example":"jane.smith@example.com"}},"required":["id","type","name","email"]}},"transcriptUrl":{"type":"string","description":"A signed URL to download the transcript JSON. The URL expires after 5 minutes. Download promptly after receiving the response. If the URL has expired, call the endpoint again to get a fresh one.","example":"https://s3.amazonaws.com/..."}},"required":["id","interviewEventId","interviewScheduleId","createdAt","participants","transcriptUrl"]}},"required":["results"]}]},{"$ref":"#/paths/~1report.generate/post/responses/429/content/application~1json/schema"}]}}}}}}},"/offer.approve":{"post":{"summary":"offer.approve","operationId":"offerApprove","description":"Approves an offer or a specific approval step within an offer's approval process.\n\nThis endpoint mimics the behavior of the \"Force Approve\" function in the Ashby app, where an admin can override approval for a specific step or entire approval process.\n\n**Requires the [`offersWrite`](authentication#permissions-offerapprove) permission.**\n\nThis endpoint can be used in two ways:\n1. **Approve entire offer**: Call without `approvalStepId` and `userId` to approve the entire offer approval process\n2. **Approve specific step**: Provide both `approvalStepId` and `userId` to approve a specific step in the approval process\n\nWhen approving a specific step, the step must be the current step in the approval process and the user must be an approver for that step.\n","tags":["Offer"],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"offerVersionId":{"allOf":[{"description":"The id of the offer version that needs approval. This can be obtained as the `entityId` from the `approval.list` endpoint."},{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"}]},"approvalStepId":{"allOf":[{"description":"The id of the specific approval step to approve. If provided, `userId` must also be provided.\nIf omitted, the entire offer approval process will be approved. This can be obtained from the `approval.list` endpoint.\n"},{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"}]},"userId":{"allOf":[{"description":"The id of the user approving the step. Required if `approvalStepId` is provided.\nMust be an approver for the specified approval step.\n"},{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"}]}},"required":["offerVersionId"]}}}},"responses":{"200":{"description":"Responses for the offer.approve endpoint","content":{"application/json":{"schema":{"oneOf":[{"title":"Success response","allOf":[{"$ref":"#/paths/~1job.info/post/responses/200/content/application~1json/schema/oneOf/0/allOf/0"},{"type":"object","properties":{"results":{"$ref":"#/webhooks/offerCreate/post/requestBody/content/application~1json/schema/properties/data/properties/offer"}},"required":["results"]}]},{"$ref":"#/paths/~1report.generate/post/responses/429/content/application~1json/schema"}]}}}}}}},"/offer.create":{"post":{"summary":"offer.create","operationId":"offerCreate","description":"Creates a new Offer\n\n**Requires the [`offersWrite`](authentication#permissions-offercreate) permission.**\n\nOffer forms support a variety of field types. The values accepted for each field depend on the type of field that's being filled out:\n- `Boolean` - A boolean value.\n- `Currency` - An object in the format `{ currencyCode: \"USD\", value: 100000 }` where currencyCode is a valid ISO 4217 currency code and value is an integer.\n- `Date` - A valid ISO Date string.\n- `Number` - An integer.\n- `String` - A string.\n- `ValueSelect` - A string that matches the value of one of the ValueSelect field's selectable options.\n- `MultiValueSelect` - An array of strings that exist in the MultiValueSelect field's selectable options.\n\n**Error codes:**\n\n| Code | Description |\n|---|---|\n| `opening_in_use` | The opening is already in use by another offer. |\n| `opening_state_invalid` | The opening has already been closed or filled by a different application.. |\n","tags":["Offer"],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"offerProcessId":{"allOf":[{"description":"The id of the offer process associated with the offer you're creating. \nThis value is the id included in the response of the `offerProcess.start` API.\n"},{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"}]},"offerFormId":{"allOf":[{"description":"The id of the form associated with the offer.\nThis value is the id included in the response of the `offer.start` API.\n"},{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"}]},"offerForm":{"type":"object","properties":{"fieldSubmissions":{"type":"array","items":{"properties":{"path":{"type":"string","description":"The form field's \"path\" value"},"value":{"type":"string","description":"This is often a primitive but the value depends on the type of field being submitted. See the description above for details on the values accepted in this field."}},"required":["path","value"]}}},"required":["fieldSubmissions"]}},"required":["offerProcessId","offerFormId","offerForm"]}}}},"responses":{"200":{"description":"Responses for the offer.create endpoint","content":{"application/json":{"schema":{"oneOf":[{"title":"Success response","allOf":[{"$ref":"#/paths/~1job.info/post/responses/200/content/application~1json/schema/oneOf/0/allOf/0"},{"type":"object","properties":{"results":{"$ref":"#/webhooks/offerCreate/post/requestBody/content/application~1json/schema/properties/data/properties/offer"}},"required":["results"]}]},{"$ref":"#/paths/~1report.generate/post/responses/429/content/application~1json/schema"}]}}}}}}},"/offer.info":{"post":{"summary":"offer.info","operationId":"offerInfo","description":"Returns details about a single offer by id\n\n**Requires the [`offersRead`](authentication#permissions-offerinfo) permission.**\n","tags":["Offer"],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"offerId":{"allOf":[{"description":"The id of the offer to fetch"},{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"}]}},"required":["offerId"]}}}},"responses":{"200":{"description":"Responses for the offer.info endpoint","content":{"application/json":{"schema":{"oneOf":[{"title":"Success response","allOf":[{"$ref":"#/paths/~1job.info/post/responses/200/content/application~1json/schema/oneOf/0/allOf/0"},{"type":"object","properties":{"results":{"$ref":"#/webhooks/offerCreate/post/requestBody/content/application~1json/schema/properties/data/properties/offer"}},"required":["results"]}]},{"$ref":"#/paths/~1report.generate/post/responses/429/content/application~1json/schema"}]}}}}}}},"/offer.list":{"post":{"summary":"offer.list","description":"Get a list of all offers with their latest version.\n\nSee the [Pagination and Incremental Synchronization](/docs/pagination-and-incremental-sync) guide for detailed usage examples.\n\n**Requires the [`offersRead`](authentication#permissions-offerlist) permission.**\n","operationId":"offerList","tags":["Offer"],"requestBody":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/paths/~1opening.list/post/requestBody/content/application~1json/schema"},{"type":"object","properties":{"offerStatus":{"type":"array","minItems":1,"description":"When supplied, only offers with provided offer-status(es) will be returned. Array must contain at least one value.","items":{"allOf":[{"type":"string","enum":["WaitingOnApprovalStart","WaitingOnOfferApproval","WaitingOnApprovalDefinition","WaitingOnCandidateResponse","CandidateRejected","CandidateAccepted","OfferCancelled"]},{"title":"OfferStatus"}]}},"acceptanceStatus":{"type":"array","minItems":1,"description":"When supplied, only offers with provided acceptance-status(es) will be returned. Array must contain at least one value.","items":{"allOf":[{"type":"string","enum":["Accepted","Declined","Pending","Created","Cancelled","WaitingOnResponse"]},{"title":"AcceptanceStatus"}]}},"applicationId":{"allOf":[{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"},{"description":"If provided, only returns the offers for the application with the supplied id"}]},"approvalStatus":{"type":"array","minItems":1,"description":"When supplied, only offers whose latest version has one of the provided approval status(es) will be returned. Array must contain at least one value.","items":{"type":"string","enum":["Approved","WaitingOnApprovals","Declined"]}}}}]}}}},"responses":{"200":{"description":"Responses for the offer.list endpoint","content":{"application/json":{"schema":{"oneOf":[{"title":"Success response","allOf":[{"$ref":"#/paths/~1job.list/post/responses/200/content/application~1json/schema/oneOf/0/allOf/0"},{"type":"object","properties":{"results":{"type":"array","items":{"type":"object","properties":{"id":{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"},"decidedAt":{"type":"string"},"applicationId":{"allOf":[{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"},{"description":"The id of the application associated with the offer"}]},"acceptanceStatus":{"allOf":[{"$ref":"#/paths/~1offer.list/post/requestBody/content/application~1json/schema/allOf/1/properties/acceptanceStatus/items/allOf/0"},{"title":"AcceptanceStatus"}]},"offerStatus":{"allOf":[{"title":"OfferStatus"},{"$ref":"#/paths/~1offer.list/post/requestBody/content/application~1json/schema/allOf/1/properties/offerStatus/items/allOf/0"}]},"latestVersion":{"$ref":"#/webhooks/offerCreate/post/requestBody/content/application~1json/schema/properties/data/properties/offer/allOf/1/properties/versions/items"}},"required":["id","applicationId","acceptanceStatus"]}}},"required":["results"]}]},{"title":"Error response","$ref":"#/paths/~1report.generate/post/responses/429/content/application~1json/schema"}]}}}}}}},"/offer.start":{"post":{"summary":"offer.start","operationId":"offerStart","description":"The offer.start endpoint creates and returns an offer version instance that can be filled out and submitted\nusing the `offer.create` endpoint. \n\n**Requires the [`offersWrite`](authentication#permissions-offerstart) permission.**\n\nIn order to create a new offer version for a candidate with an in-progress \noffer process, you can call the `offer.start` endpoint and then call the `offer.create` endpoint to fill out the\nnewly created offer version form. \n","tags":["Offer"],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"offerProcessId":{"allOf":[{"description":"The ID of the offer process to start. This value is the id included in the response of the `offerProcess.start` API."},{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"}]}},"required":["offerProcessId"]}}}},"responses":{"200":{"description":"Responses for the offer.start endpoint","content":{"application/json":{"schema":{"oneOf":[{"title":"Success response","allOf":[{"$ref":"#/paths/~1job.info/post/responses/200/content/application~1json/schema/oneOf/0/allOf/0"},{"type":"object","properties":{"results":{"type":"object","properties":{"id":{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"},"formDefinition":{"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":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"},"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"]}}}}}}},"required":["results"]}]},{"$ref":"#/paths/~1report.generate/post/responses/429/content/application~1json/schema"}]}}}}}}},"/offer.startApprovalProcess":{"post":{"summary":"offer.startApprovalProcess","operationId":"offerStartApprovalProcess","description":"Starts the approval process for an offer in a \"WaitingOnApprovalStart\" state.\nOnce started, the approval is sent to the configured approvers.\n\nThe offer version ID can be obtained from the offer (e.g. `offer.info` or `offer.list` response's `latestVersion.id`).\n\n**Requires the [`offersWrite`](authentication#permissions-offerstartapprovalprocess) permission.**\n","tags":["Offer"],"requestBody":{"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"offerVersionId":{"allOf":[{"description":"The id of the offer version whose approval process should be started."},{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"}]},"note":{"type":"string","description":"Optional note to attach to the approval request."}},"required":["offerVersionId"]}}}},"responses":{"200":{"description":"Responses for the offer.startApprovalProcess endpoint","content":{"application/json":{"schema":{"oneOf":[{"title":"Success response","allOf":[{"$ref":"#/paths/~1job.info/post/responses/200/content/application~1json/schema/oneOf/0/allOf/0"},{"type":"object","properties":{"results":{"$ref":"#/webhooks/offerCreate/post/requestBody/content/application~1json/schema/properties/data/properties/offer"}},"required":["results"]}]},{"$ref":"#/paths/~1report.generate/post/responses/429/content/application~1json/schema"}]}}}}}}},"/offer.update":{"post":{"summary":"offer.update","operationId":"offerUpdate","description":"Updates an existing Offer\n\n**Requires the [`offersWrite`](authentication#permissions-offerupdate) permission.**\n\nOffer forms support a variety of field types. The values accepted for each field depend on the type of field that's being filled out:\n- `Boolean` - A boolean value.\n- `Currency` - An object in the format `{ currencyCode: \"USD\", value: 100000 }` where currencyCode is a valid ISO 4217 currency code and value is an integer.\n- `Date` - A valid ISO Date string.\n- `Number` - An integer.\n- `String` - A string.\n- `ValueSelect` - A string that matches the value of one of the ValueSelect field's selectable options.\n- `MultiValueSelect` - An array of strings that exist in the MultiValueSelect field's selectable options.\n\nCalling this endpoint will create a new version of the offer and retrigger any necessary approval steps.\n","tags":["Offer"],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"offerId":{"allOf":[{"description":"The id of the offer you're updating.\n"},{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"}]},"offerForm":{"$ref":"#/paths/~1offer.create/post/requestBody/content/application~1json/schema/properties/offerForm","description":"The form submission for the offer. Can be retrieved from `offer.info`."}},"required":["offerId","offerForm"]}}}},"responses":{"200":{"description":"Responses for the offer.update endpoint","content":{"application/json":{"schema":{"oneOf":[{"title":"Success response","allOf":[{"$ref":"#/paths/~1job.info/post/responses/200/content/application~1json/schema/oneOf/0/allOf/0"},{"type":"object","properties":{"results":{"$ref":"#/webhooks/offerCreate/post/requestBody/content/application~1json/schema/properties/data/properties/offer"}},"required":["results"]}]},{"$ref":"#/paths/~1report.generate/post/responses/429/content/application~1json/schema"}]}}}}}}},"/offerProcess.start":{"post":{"summary":"offerProcess.start","operationId":"offerProcess.start","description":"Starts an offer process for a candidate.\n\n**Requires the [`offersWrite`](authentication#permissions-offerprocessstart) permission.**\n","tags":["Offer Process"],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"applicationId":{"allOf":[{"description":"The id of the application to start an offer process for"},{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"}]}},"required":["applicationId"]}}}},"responses":{"200":{"description":"Responses for the offerProcess.start endpoint","content":{"application/json":{"schema":{"oneOf":[{"title":"Success response","allOf":[{"$ref":"#/paths/~1job.info/post/responses/200/content/application~1json/schema/oneOf/0/allOf/0"},{"type":"object","properties":{"results":{"type":"object","properties":{"id":{"allOf":[{"description":"The id of the started offer process"},{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"}]},"applicationId":{"allOf":[{"description":"The id of the application the offer process was started for"},{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"}]},"status":{"description":"The status of the offer process","type":"string","enum":["WaitingOnOfferCreation","WaitingOnApprovalStart","WaitingOnOfferApproval","WaitingOnCandidateResponse","CandidateAccepted","CandidateRejected","OfferCancelled"]}},"required":["id","applicationId","status"]}},"required":["results"]}]},{"$ref":"#/paths/~1report.generate/post/responses/429/content/application~1json/schema"}]}}}}}}},"/opening.info":{"post":{"summary":"opening.info","description":"Retrieves an opening by its UUID.\n \n**Requires the [`jobsRead`](authentication#permissions-openinginfo) permission.**","operationId":"openinginfo","tags":["Openings"],"requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["openingId"],"properties":{"openingId":{"type":"string","description":"The id of the opening"}}}}}},"responses":{"200":{"description":"Responses for the opening.info endpoint","content":{"application/json":{"schema":{"oneOf":[{"title":"Success response","allOf":[{"$ref":"#/paths/~1job.info/post/responses/200/content/application~1json/schema/oneOf/0/allOf/0"},{"type":"object","properties":{"results":{"$ref":"#/webhooks/openingCreate/post/requestBody/content/application~1json/schema/properties/data/properties/opening"}},"required":["results"]}]},{"$ref":"#/paths/~1report.generate/post/responses/429/content/application~1json/schema"}]}}}}}}},"/opening.list":{"post":{"summary":"opening.list","description":"Lists openings.\n\nSee the [Pagination and Incremental Synchronization](/docs/pagination-and-incremental-sync) guide for detailed usage examples.\n \n**Requires the [`jobsRead`](authentication#permissions-openinglist) permission.**","operationId":"openinglist","tags":["Openings"],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"createdAfter":{"type":"integer","format":"int64","description":"The API will return data after this date, which is the time since the unix epoch in milliseconds"},"cursor":{"$ref":"#/paths/~1brand.list/post/requestBody/content/application~1json/schema/properties/cursor"},"syncToken":{"type":"string","description":"An opaque token representing the last time the data was successfully synced from the API. A new, updated one is returned after successfully fetching the last page of data.\n","example":"jYnEBmjzR"},"limit":{"$ref":"#/paths/~1brand.list/post/requestBody/content/application~1json/schema/properties/limit"}},"example":{"createdAfter":1659979196538,"cursor":"qA","syncToken":"6W05prn4d","limit":25}}}}},"responses":{"200":{"description":"Responses for the opening.list endpoint","content":{"application/json":{"schema":{"oneOf":[{"title":"Success response","allOf":[{"$ref":"#/paths/~1job.info/post/responses/200/content/application~1json/schema/oneOf/0/allOf/0"},{"type":"object","properties":{"results":{"type":"array","items":{"$ref":"#/webhooks/openingCreate/post/requestBody/content/application~1json/schema/properties/data/properties/opening"}}},"required":["results"]}]},{"$ref":"#/paths/~1report.generate/post/responses/429/content/application~1json/schema"}]}}}}}}},"/opening.search":{"post":{"summary":"opening.search","description":"Searches for openings by identifier.\n \n**Requires the [`jobsRead`](authentication#permissions-openingsearch) permission.**","operationId":"openingsearch","tags":["Openings"],"requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["identifier"],"properties":{"identifier":{"type":"string","description":"The identifier of the opening you want to search for"}}}}}},"responses":{"200":{"description":"Responses for the opening.search endpoint","content":{"application/json":{"schema":{"oneOf":[{"title":"Success response","allOf":[{"$ref":"#/paths/~1job.info/post/responses/200/content/application~1json/schema/oneOf/0/allOf/0"},{"type":"object","properties":{"results":{"type":"array","items":{"$ref":"#/webhooks/openingCreate/post/requestBody/content/application~1json/schema/properties/data/properties/opening"}}},"required":["results"]}]},{"$ref":"#/paths/~1report.generate/post/responses/429/content/application~1json/schema"}]}}}}}}},"/opening.create":{"post":{"summary":"opening.create","description":"Creates an opening.\n \n**Requires the [`jobsWrite`](authentication#permissions-openingcreate) permission.**\n\nTo set values of custom fields on Openings, use the [`customFields.setValue`](ref:customfieldsetvalue) endpoint.","operationId":"openingcreate","tags":["Openings"],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"identifier":{"type":"string","description":"jobIds, targetHireDate, targetStartDate, isBackfill, employmentType,"},"description":{"type":"string"},"teamId":{"type":"string","description":"The id of the department or team associated with the opening."},"locationIds":{"type":"array","description":"The ids of the locations associated with the opening.","items":{"type":"string"}},"jobIds":{"type":"array","description":"The ids of the jobs associated with the opening","items":{"type":"string"}},"targetHireDate":{"type":"string","description":"The date (in YYYY-MM-DD format) by which you intend to hire against this opening."},"targetStartDate":{"type":"string","description":"The date (in YYYY-MM-DD format) by which you intend someone hired against this opening will start employment."},"isBackfill":{"type":"boolean","description":"Whether this opening is intended to backfill a previous employee","default":false},"employmentType":{"type":"string","description":"The employment type for this opening","default":"FullTime","enum":["FullTime","PartTime","Intern","Contract","Temporary",""]},"openingState":{"type":"string","description":"The state the opening should be created in. Defaults to `Draft`. If not Draft, additional validation will be performed.","enum":["Draft","Approved","Open","Closed"]}}}}}},"responses":{"200":{"description":"Responses for the opening.create endpoint","content":{"application/json":{"schema":{"oneOf":[{"title":"Success response","allOf":[{"$ref":"#/paths/~1job.info/post/responses/200/content/application~1json/schema/oneOf/0/allOf/0"},{"type":"object","properties":{"results":{"$ref":"#/webhooks/openingCreate/post/requestBody/content/application~1json/schema/properties/data/properties/opening"}},"required":["results"]}]},{"$ref":"#/paths/~1report.generate/post/responses/429/content/application~1json/schema"}]}}}}}}},"/opening.addJob":{"post":{"summary":"opening.addJob","description":"Adds a job to an opening.\n \n**Requires the [`jobsWrite`](authentication#permissions-openingaddjob) permission.**","operationId":"openingaddjob","tags":["Openings"],"requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["openingId","jobId"],"properties":{"openingId":{"type":"string","description":"The id of the opening"},"jobId":{"type":"string","description":"The id of the job to add"}}}}}},"responses":{"200":{"description":"Responses for the opening.addJob endpoint","content":{"application/json":{"schema":{"oneOf":[{"title":"Success response","allOf":[{"$ref":"#/paths/~1job.info/post/responses/200/content/application~1json/schema/oneOf/0/allOf/0"},{"type":"object","properties":{"results":{"$ref":"#/webhooks/openingCreate/post/requestBody/content/application~1json/schema/properties/data/properties/opening"}},"required":["results"]}]},{"$ref":"#/paths/~1report.generate/post/responses/429/content/application~1json/schema"}]}}}}}}},"/opening.removeJob":{"post":{"summary":"opening.removeJob","description":"Removes a job from an opening.\n \n**Requires the [`jobsWrite`](authentication#permissions-openingremovejob) permission.**","operationId":"openingremovejob","tags":["Openings"],"requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["openingId","jobId"],"properties":{"openingId":{"type":"string","description":"The id of the opening"},"jobId":{"type":"string","description":"The id of the job to remove from the opening."}}}}}},"responses":{"200":{"description":"Responses for the opening.removeJob endpoint","content":{"application/json":{"schema":{"oneOf":[{"title":"Success response","allOf":[{"$ref":"#/paths/~1job.info/post/responses/200/content/application~1json/schema/oneOf/0/allOf/0"},{"type":"object","properties":{"results":{"$ref":"#/webhooks/openingCreate/post/requestBody/content/application~1json/schema/properties/data/properties/opening"}},"required":["results"]}]},{"$ref":"#/paths/~1report.generate/post/responses/429/content/application~1json/schema"}]}}}}}}},"/opening.addLocation":{"post":{"summary":"opening.addLocation","description":"Adds a location to an opening.\n \n**Requires the [`jobsWrite`](authentication#permissions-openingaddlocation) permission.**","operationId":"openingaddlocation","tags":["Openings"],"requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["openingId","locationId"],"properties":{"openingId":{"type":"string","description":"The id of the opening"},"locationId":{"type":"string","description":"The id of the location to add to the opening."}}}}}},"responses":{"200":{"description":"Responses for the opening.addLocation endpoint","content":{"application/json":{"schema":{"oneOf":[{"title":"Success response","allOf":[{"$ref":"#/paths/~1job.info/post/responses/200/content/application~1json/schema/oneOf/0/allOf/0"},{"type":"object","properties":{"results":{"$ref":"#/webhooks/openingCreate/post/requestBody/content/application~1json/schema/properties/data/properties/opening"}},"required":["results"]}]},{"$ref":"#/paths/~1report.generate/post/responses/429/content/application~1json/schema"}]}}}}}}},"/opening.removeLocation":{"post":{"summary":"opening.removeLocation","description":"Removes a location from an opening.\n \n**Requires the [`jobsWrite`](authentication#permissions-openingremovelocation) permission.**","operationId":"openingremovelocation","tags":["Openings"],"requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["openingId","locationId"],"properties":{"openingId":{"type":"string","description":"The id of the opening"},"locationId":{"type":"string","description":"The id of the location to remove from the opening."}}}}}},"responses":{"200":{"description":"Responses for the opening.removeLocation endpoint","content":{"application/json":{"schema":{"oneOf":[{"title":"Success response","allOf":[{"$ref":"#/paths/~1job.info/post/responses/200/content/application~1json/schema/oneOf/0/allOf/0"},{"type":"object","properties":{"results":{"$ref":"#/webhooks/openingCreate/post/requestBody/content/application~1json/schema/properties/data/properties/opening"}},"required":["results"]}]},{"$ref":"#/paths/~1report.generate/post/responses/429/content/application~1json/schema"}]}}}}}}},"/opening.setOpeningState":{"post":{"summary":"opening.setOpeningState","description":"Sets the state of an opening.\n \n**Requires the [`jobsWrite`](authentication#permissions-openingsetopeningstate) permission.**","operationId":"openingsetopeningstate","tags":["Openings"],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"openingId":{"type":"string","description":"The id of the opening you want to update"},"openingState":{"type":"string","description":"The new state you want to update the opening to","enum":["Draft","Approved","Open","Closed"]},"closeReasonId":{"type":"string","description":"The id of the close reason if you are setting the state to closed"}}}}}},"responses":{"200":{"description":"Responses for the opening.setOpeningState endpoint","content":{"application/json":{"schema":{"oneOf":[{"title":"Success response","allOf":[{"$ref":"#/paths/~1job.info/post/responses/200/content/application~1json/schema/oneOf/0/allOf/0"},{"type":"object","properties":{"results":{"$ref":"#/webhooks/openingCreate/post/requestBody/content/application~1json/schema/properties/data/properties/opening"}},"required":["results"]}]},{"$ref":"#/paths/~1report.generate/post/responses/429/content/application~1json/schema"}]}}}}}}},"/opening.setArchived":{"post":{"summary":"opening.setArchived","description":"Sets the archived state of an opening.\n \n**Requires the [`jobsWrite`](authentication#permissions-openingsetarchived) permission.**","operationId":"openingsetarchived","tags":["Openings"],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"openingId":{"type":"string","description":"The id of the opening you want to archive"},"archive":{"type":"boolean","description":"The new archived state you want to update the opening to"}}}}}},"responses":{"200":{"description":"Responses for the opening.setArchived endpoint","content":{"application/json":{"schema":{"oneOf":[{"title":"Success response","allOf":[{"$ref":"#/paths/~1job.info/post/responses/200/content/application~1json/schema/oneOf/0/allOf/0"},{"type":"object","properties":{"results":{"$ref":"#/webhooks/openingCreate/post/requestBody/content/application~1json/schema/properties/data/properties/opening"}},"required":["results"]}]},{"$ref":"#/paths/~1report.generate/post/responses/429/content/application~1json/schema"}]}}}}}}},"/opening.update":{"post":{"summary":"opening.update","description":"Updates an opening.\n \n**Requires the [`jobsWrite`](authentication#permissions-openingupdate) permission.**\n\nTo set values for custom fields on Openings, use the [`customFields.setValue`](ref:customfieldsetvalue) endpoint.","operationId":"openingupdate","tags":["Openings"],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"openingId":{"type":"string","description":"The openingId of the opening you want to update."},"identifier":{"type":"string","description":"jobIds, targetHireDate, targetStartDate, isBackfill, employmentType,"},"description":{"type":"string"},"teamId":{"type":"string","description":"The id of the department or team associated with the opening."},"targetHireDate":{"type":"string","description":"The date (in YYYY-MM-DD format) by which you intend to hire against this opening."},"targetStartDate":{"type":"string","description":"The date (in YYYY-MM-DD format) by which you intend someone hired against this opening will start employment."},"isBackfill":{"type":"boolean","description":"Whether this opening is intended to backfill a previous employee","default":false},"employmentType":{"type":"string","description":"The employment type for this opening","default":"FullTime","enum":["FullTime","PartTime","Intern","Contract","Temporary",""]}}}}}},"responses":{"200":{"description":"Responses for the opening.update endpoint","content":{"application/json":{"schema":{"oneOf":[{"title":"Success response","allOf":[{"$ref":"#/paths/~1job.info/post/responses/200/content/application~1json/schema/oneOf/0/allOf/0"},{"type":"object","properties":{"results":{"$ref":"#/webhooks/openingCreate/post/requestBody/content/application~1json/schema/properties/data/properties/opening"}},"required":["results"]}]},{"$ref":"#/paths/~1report.generate/post/responses/429/content/application~1json/schema"}]}}}}}}},"/project.info":{"post":{"summary":"project.info","description":"Retrieves an project by its UUID.\n \n**Requires the [`jobsRead`](authentication#permissions-projectinfo) permission.**","operationId":"projectinfo","tags":["Project"],"requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["projectId"],"properties":{"projectId":{"type":"string","description":"The id of the project"}}}}}},"responses":{"200":{"description":"Responses for the project.info endpoint","content":{"application/json":{"schema":{"oneOf":[{"title":"Success response","allOf":[{"$ref":"#/paths/~1job.info/post/responses/200/content/application~1json/schema/oneOf/0/allOf/0"},{"type":"object","properties":{"results":{"type":"object","properties":{"id":{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"},"title":{"type":"string","example":"Office Event"},"description":{"type":"string","example":"Folks invited to office for an event"},"isArchived":{"$ref":"#/webhooks/openingCreate/post/requestBody/content/application~1json/schema/properties/data/properties/opening/properties/isArchived"},"confidential":{"type":"boolean","example":false},"authorId":{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"},"createdAt":{"$ref":"#/paths/~1candidate.createNote/post/requestBody/content/application~1json/schema/properties/createdAt"},"customFieldEntries":{"type":"array","description":"All custom field values associated with the project","items":{"$ref":"#/paths/~1customField.setValue/post/responses/200/content/application~1json/schema/oneOf/0/allOf/1/properties/results"}}},"required":["id","title"]}},"required":["results"]}]},{"$ref":"#/paths/~1report.generate/post/responses/429/content/application~1json/schema"}]}}}}}}},"/project.list":{"post":{"summary":"project.list","description":"Lists projects.\n\nSee the [Pagination and Incremental Synchronization](/docs/pagination-and-incremental-sync) guide for detailed usage examples.\n \n**Requires the [`candidatesRead`](authentication#permissions-projectlist) permission.**","operationId":"projectlist","tags":["Project"],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/paths/~1opening.list/post/requestBody/content/application~1json/schema"}}}},"responses":{"200":{"description":"Responses for the project.list endpoint","content":{"application/json":{"schema":{"oneOf":[{"title":"Success response","allOf":[{"$ref":"#/paths/~1job.list/post/responses/200/content/application~1json/schema/oneOf/0/allOf/0"},{"type":"object","properties":{"results":{"type":"array","items":{"$ref":"#/paths/~1project.info/post/responses/200/content/application~1json/schema/oneOf/0/allOf/1/properties/results"}}},"required":["results"]}]},{"$ref":"#/paths/~1report.generate/post/responses/429/content/application~1json/schema"}]}}}}}}},"/project.search":{"post":{"summary":"project.search","operationId":"projectSearch","description":"Search for projects by title. \n\n**Requires the [`candidatesRead`](authentication#permissions-projectsearch) permission.**\n\nResponses are limited to 100 results. Consider refining your search or using /project.list to paginate through all projects, if you approach this limit. This API is for use cases where you intend operate on a final small set of projects, like building a project autocomplete.\n","tags":["Project"],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"title":{"type":"string","description":"The project's title"}},"example":{"title":"My Project"}}}}},"responses":{"200":{"description":"Responses for the project.search endpoint","content":{"application/json":{"schema":{"oneOf":[{"title":"Success response","allOf":[{"$ref":"#/paths/~1job.info/post/responses/200/content/application~1json/schema/oneOf/0/allOf/0"},{"type":"object","properties":{"results":{"type":"array","items":{"$ref":"#/paths/~1project.info/post/responses/200/content/application~1json/schema/oneOf/0/allOf/1/properties/results"}}},"required":["results"]}]},{"$ref":"#/paths/~1report.generate/post/responses/429/content/application~1json/schema"}]}}}}}}},"/referral.create":{"post":{"summary":"referral.create","operationId":"referralCreate","description":"Creates a referral\n\n**Requires the [`candidatesWrite`](authentication#permissions-referralcreate) permission.**\n","tags":["Referral"],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"id":{"allOf":[{"description":"The id of the referral form, from /referralForm.info"},{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"}]},"creditedToUserId":{"allOf":[{"description":"The id of the user submitting the referral"},{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"}]},"fieldSubmissions":{"type":"array","items":{"properties":{"path":{"type":"string","description":"The form field's \"path\" value"},"value":{"type":"string","description":"The value depends on the field type:\n- Most fields: A primitive value (string, number, boolean)\n- Job field: An object with { title: job.title, value: job.id }\n- Location field: An object with the following properties: `{ country: \"USA\", city: \"San Francisco\", region: \"California\" }`. You may provide any combination of these properties and we will attempt to geocode the location. For best results, provide all three properties.\n- EducationHistory field: [Early Access] An array of objects with the following properties: `{ schoolName: \"University of California, Berkeley\", degree: \"Bachelor of Science\", major: \"Computer Science\", startDate: \"2020-09-01\", endDate: \"2024-05-15\", isCurrent: true }`. Only `schoolName` is required. We will attempt to match the school name to a known school in our database. If `isCurrent` is true, `endDate` must not be provided.\n"}},"required":["path","value"]}},"createdAt":{"allOf":[{"description":"An ISO date string to set the referral's createdAt timestamp to. When this value isn't provided, the createdAt timestamp defaults to the time the referral was created.\n"},{"$ref":"#/paths/~1candidate.createNote/post/requestBody/content/application~1json/schema/properties/createdAt"}]}},"required":["id","creditedToUserId","fieldSubmissions"]}}}},"responses":{"200":{"description":"Responses for the referral.create endpoint","content":{"application/json":{"schema":{"oneOf":[{"title":"Success response","allOf":[{"$ref":"#/paths/~1job.info/post/responses/200/content/application~1json/schema/oneOf/0/allOf/0"},{"type":"object","properties":{"results":{"$ref":"#/webhooks/pushToHRIS/post/requestBody/content/application~1json/schema/properties/data/properties/application"}},"required":["results"]}]},{"$ref":"#/paths/~1report.generate/post/responses/429/content/application~1json/schema"}]}}}}}}},"/referralForm.info":{"post":{"summary":"referralForm.info","operationId":"referralFormInfo","description":"Fetches the default referral form or creates a default referral form if none exists.\n\n**Requires the [`hiringProcessMetadataRead`](authentication#permissions-referralforminfo) permission.**\n","tags":["Referral Form"],"responses":{"200":{"description":"Responses for the referral.create endpoint","content":{"application/json":{"schema":{"oneOf":[{"title":"Success response","allOf":[{"$ref":"#/paths/~1job.info/post/responses/200/content/application~1json/schema/oneOf/0/allOf/0"},{"type":"object","properties":{"results":{"allOf":[{"type":"object","properties":{"id":{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"},"organizationId":{"type":"string","format":"uuid","description":"The ID of the organization this form belongs to"},"title":{"type":"string","description":"The title of the form"},"isArchived":{"$ref":"#/webhooks/openingCreate/post/requestBody/content/application~1json/schema/properties/data/properties/opening/properties/isArchived"},"isDefaultForm":{"type":"boolean","description":"Whether this is the default form for the organization"},"formDefinition":{"$ref":"#/paths/~1offer.start/post/responses/200/content/application~1json/schema/oneOf/0/allOf/1/properties/results/properties/formDefinition"}},"required":["id","organizationId","title","isArchived","isDefaultForm","formDefinition"]},{"type":"object","properties":{"organizationId":{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"},"isDefaultForm":{"type":"boolean","example":true}}}]}},"required":["results"]}]},{"$ref":"#/paths/~1report.generate/post/responses/429/content/application~1json/schema"}]}}}}}}},"/report.generate":{"post":{"summary":"report.generate","operationId":"reportGenerate","description":"> ⚠️ Beta\n>\n> This endpoint is currently in beta and may change without notice.\n\nGenerates a new report or polls the status of an existing report generation.\n\n**Two-step process:**\n1. Call with only `reportId` to start generation → returns `requestId`\n2. Poll with both `reportId` and `requestId` every second until `status` is `complete` or `failed`\n\n**Example:**\n```\n// Step 1: Start generation\nPOST /report.generate\n{ \"reportId\": \"abc-123-def-456\" }\n→ { \"requestId\": \"rep_result:12345abc\", \"status\": \"in_progress\", \"reportData\": null }\n\n// Step 2: Poll for results\nPOST /report.generate\n{ \"reportId\": \"abc-123-def-456\", \"requestId\": \"rep_result:12345abc\" }\n→ { \"requestId\": \"rep_result:12345abc\", \"status\": \"complete\", \"reportData\": {...} }\n```\n\n**Rate Limiting (Per Organization):**\n- **Start generation requests** (without `requestId`): 15 requests per minute per organization\n- **Concurrent limit**: Maximum 3 report operations at once per organization (shared with [`report.synchronous`](ref:reportsynchronous))\n- **Polling requests** (with `requestId`): Bypass all limits\n\n**Usage Notes:**\n- If you receive a 429 error, your organization has hit its limit - wait and retry or use [`report.synchronous`](ref:reportsynchronous)\n- For synchronous retrieval of existing data, use [`report.synchronous`](ref:reportsynchronous)\n- Use this async endpoint for reports that may exceed 30 seconds\n\n**Requires the [`reportsRead`](authentication#permissions-reportgenerate) permission.**\n","tags":["Report"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/paths/~1report.synchronous/post/requestBody/content/application~1json/schema"},{"type":"object","properties":{"requestId":{"type":"string","description":"Request ID for polling existing report generation status (optional - only used when polling)"}}}]},"examples":{"start_generation":{"summary":"Standard report request","value":{"reportId":"f9e52a51-a075-4116-a7b8-484deba69004"}},"start_generation_no_headers":{"$ref":"#/paths/~1report.synchronous/post/requestBody/content/application~1json/examples/no_headers_request"},"poll_generation":{"summary":"Poll generation status","value":{"reportId":"f9e52a51-a075-4116-a7b8-484deba69004","requestId":"rep_result:12345abc"}}}}}},"responses":{"200":{"description":"Responses for the report.generate endpoint","content":{"application/json":{"schema":{"oneOf":[{"title":"Success response","allOf":[{"$ref":"#/paths/~1job.info/post/responses/200/content/application~1json/schema/oneOf/0/allOf/0"},{"type":"object","properties":{"results":{"type":"object","properties":{"requestId":{"type":"string","description":"Unique identifier for this report generation request"},"status":{"type":"string","enum":["complete","failed","in_progress"],"description":"Current status of the report generation"},"reportData":{"anyOf":[{"type":"object","properties":{"data":{"type":"array","items":{"type":"array","items":{"oneOf":[{"type":"string"},{"type":"number"}]}},"description":"Report data rows as arrays of values. When includeHeadersInData is true (default), the first row contains column headers."},"columnNames":{"type":"array","items":{"type":"string"},"description":"Column names/headers for the report data."},"metadata":{"type":"object","properties":{"updatedAt":{"type":"string","format":"date-time","description":"When the report data was last updated"},"title":{"type":"string","description":"Report title"},"reportGeneratedAt":{"type":"string","format":"date-time","description":"ISO 8601 timestamp indicating when the report data was generated. Only present when status is complete."},"cacheExpiresAt":{"type":"string","format":"date-time","description":"ISO 8601 timestamp indicating when the cached report data will expire (estimated).\nCalculated as reportGeneratedAt + cache duration (1 hour for successful reports, 15 minutes for failed reports).\nThis is an estimate with typical accuracy within 1 second of actual Redis TTL expiration.\nOnly present when status is complete or failed.\n"}},"required":["updatedAt","title"]}},"required":["data","columnNames","metadata"]},{"type":"null"}],"description":"Report data (only present when status is complete)"},"failureReason":{"type":["string","null"],"description":"Error information if report generation failed"}},"required":["requestId","status","reportData"]}},"required":["results"]}]},{"title":"Error response","$ref":"#/paths/~1report.generate/post/responses/429/content/application~1json/schema"}]},"examples":{"initial_request":{"summary":"Report generation in progress","value":{"success":true,"results":{"requestId":"rep_result:12345abc","status":"in_progress","reportData":null,"failureReason":null}}},"complete":{"summary":"Completed report with cache metadata","description":"When includeHeadersInData=false, the data array would be:\n```\nreportData.data: [\n [ \"Q1 2024\", \"Engineering\", 45 ],\n [ \"Q1 2024\", \"Sales\", 32 ],\n [ \"Q2 2024\", \"Engineering\", 52 ]\n]\n```\n","value":{"success":true,"results":{"requestId":"rep_result:12345abc","status":"complete","reportData":{"data":[["Timeframe","Department","Hired"],["Q1 2024","Engineering",45],["Q1 2024","Sales",32],["Q2 2024","Engineering",52]],"columnNames":["Timeframe","Department","Hired"],"metadata":{"updatedAt":"2024-01-15T10:30:00Z","title":"Quarterly Hiring Report","reportGeneratedAt":"2024-01-15T14:25:33.123Z","cacheExpiresAt":"2024-01-15T15:25:33.123Z"}}}}},"failed":{"summary":"Failed report generation (timeout or error)","value":{"success":true,"results":{"requestId":"rep_result:12345abc","status":"failed","reportData":null,"failureReason":"QueryTimeout"}}}}}}},"429":{"description":"Rate limit or concurrent limit exceeded","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/paths/~1job.info/post/responses/200/content/application~1json/schema/oneOf/0/allOf/0"},{"title":"Error response"},{"type":"object","required":["errors","errorInfo"],"properties":{"errors":{"description":"A list of error codes","type":"array","items":{"type":"string"},"deprecated":true},"errorInfo":{"description":"A single error code and additional error information","type":"object","required":["code"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"requestId":{"type":"string","description":"Opaque identifier for the API request, which can be provided to Ashby support to help them diagnose the issue"},"meta":{"type":"object"}}}}}],"example":{"success":false,"errors":["invalid_input"],"errorInfo":{"code":"invalid_input","message":"Request payload is malformed","requestId":"01JSJ8FDK5ZN4XQBZP7DBKK7ZC"}}},"examples":{"rate_limit_exceeded":{"summary":"Rate limit exceeded (15 requests per minute per organization)","value":{"success":false,"errors":["Rate limit exceeded"],"errorInfo":{"code":"rate_limit_exceeded","message":"Your organization has exceeded the rate limit of 15 report requests per minute. Try again in 60 seconds.","requestId":"rep_result:12345abc"}}},"concurrent_limit_exceeded":{"summary":"Concurrent operation limit exceeded (3 maximum per organization)","value":{"success":false,"errors":["Concurrent limit exceeded"],"errorInfo":{"code":"concurrent_limit_exceeded","message":"Your organization has reached the maximum of 3 concurrent report operations. Please wait for existing operations to complete or try again in 30 seconds.","requestId":"rep_result:12345abc"}}}}}}}}}},"/report.synchronous":{"post":{"summary":"report.synchronous","operationId":"reportSynchronous","description":"> ⚠️ Beta\n>\n> This endpoint is currently in beta and may change without notice.\n\nRetrieves report data synchronously.\n\n**Timeout:** 30 seconds. If a report is timing out, use the asynchronous [`report.generate`](ref:reportgenerate) instead.\n\n**Rate Limiting (Per Organization):**\n- **Request limit**: 15 requests per minute per organization\n- **Concurrent limit**: Maximum 3 report operations at once per organization (shared with [`report.generate`](ref:reportgenerate))\n- Rate limits are shared with [`report.generate`](ref:reportgenerate) for starting new generations\n\n**Usage Notes:**\n- If you receive a 429 error, your organization has hit its limit - wait briefly and retry\n- For long-running reports, use [`report.generate`](ref:reportgenerate) for async processing\n- Concurrent limit is released when the HTTP request completes\n\n**Requires the [`reportsRead`](authentication#permissions-reportsynchronous) permission.**\n","tags":["Report"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"reportId":{"allOf":[{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"},{"description":"The ID of the report"}]},"includeHeadersInData":{"type":"boolean","default":true,"description":"When true (default), column headers are included as the first row in the data array. When false, headers are only in the columnNames property."}},"required":["reportId"]},"examples":{"standard_request":{"$ref":"#/paths/~1report.generate/post/requestBody/content/application~1json/examples/start_generation"},"no_headers_request":{"summary":"Request without headers in data","value":{"reportId":"f9e52a51-a075-4116-a7b8-484deba69004","includeHeadersInData":false}}}}}},"responses":{"200":{"description":"Responses for the report.synchronous endpoint","content":{"application/json":{"schema":{"oneOf":[{"title":"Success response","$ref":"#/paths/~1report.generate/post/responses/200/content/application~1json/schema/oneOf/0"},{"title":"Error response","$ref":"#/paths/~1report.generate/post/responses/429/content/application~1json/schema"}]},"examples":{"success_response":{"$ref":"#/paths/~1report.generate/post/responses/200/content/application~1json/examples/complete"},"timeout_response":{"$ref":"#/paths/~1report.generate/post/responses/200/content/application~1json/examples/initial_request"}}}}},"429":{"description":"Rate limit or concurrent limit exceeded","content":{"application/json":{"schema":{"$ref":"#/paths/~1report.generate/post/responses/429/content/application~1json/schema"},"examples":{"rate_limit_exceeded":{"$ref":"#/paths/~1report.generate/post/responses/429/content/application~1json/examples/rate_limit_exceeded"},"concurrent_limit_exceeded":{"$ref":"#/paths/~1report.generate/post/responses/429/content/application~1json/examples/concurrent_limit_exceeded"}}}}}}}},"/source.list":{"post":{"summary":"source.list","description":"List all sources\n\n**Requires the [`hiringProcessMetadataRead`](authentication#permissions-sourcelist) permission.**\n","operationId":"sourcelist","tags":["Source"],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"includeArchived":{"type":"boolean","description":"When true, includes archived items","default":false}}}}}},"responses":{"200":{"description":"Responses for the source.list endpoint","content":{"application/json":{"schema":{"oneOf":[{"title":"Success response","allOf":[{"$ref":"#/paths/~1job.info/post/responses/200/content/application~1json/schema/oneOf/0/allOf/0"},{"type":"object","properties":{"results":{"type":"array","items":{"type":"object","properties":{"id":{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"},"title":{"type":"string","example":"Applied"},"isArchived":{"$ref":"#/webhooks/openingCreate/post/requestBody/content/application~1json/schema/properties/data/properties/opening/properties/isArchived"},"sourceType":{"type":"object","properties":{"id":{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"},"title":{"type":"string","example":"Inbound"},"isArchived":{"$ref":"#/webhooks/openingCreate/post/requestBody/content/application~1json/schema/properties/data/properties/opening/properties/isArchived"}},"required":["id","title","isArchived"]}},"required":["id","title","isArchived"]}},"moreDataAvailable":{"type":"boolean","example":false}},"required":["results","moreDataAvailable"]}]},{"title":"Error response","$ref":"#/paths/~1report.generate/post/responses/429/content/application~1json/schema"}]}}}}}}},"/sourceTrackingLink.list":{"post":{"summary":"sourceTrackingLink.list","description":"List all source custom tracking links\n\n**Requires the [`hiringProcessMetadataRead`](authentication#permissions-sourcetrackinglinklist) permission.**\n","operationId":"sourcetrackinglinklist","tags":["Source Tracking Links"],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"includeDisabled":{"type":"boolean","description":"When true, includes disabled tracking links","default":false}}}}}},"responses":{"200":{"description":"Responses for the sourceTrackingLink.list endpoint","content":{"application/json":{"schema":{"oneOf":[{"allOf":[{"$ref":"#/paths/~1job.list/post/responses/200/content/application~1json/schema/oneOf/0/allOf/0"},{"properties":{"results":{"type":"array","items":{"type":"object","properties":{"id":{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"},"code":{"type":"string","example":"fx9iL4QtWr"},"enabled":{"type":"boolean","example":true},"sourceId":{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"},"link":{"type":"string","example":"https://jobs.ashbyhq.com/example?utm_source=fx9iL4QtWr"}},"required":["id","code","enabled","sourceId","link"]}}}}],"required":["results"]},{"$ref":"#/paths/~1report.generate/post/responses/429/content/application~1json/schema"}]}}}}}}},"/surveyFormDefinition.info":{"post":{"summary":"surveyFormDefinition.info","operationId":"surveyFormDefinitionInfo","description":"Returns details about a single survey form definition by id\n\n**Requires the [`hiringProcessMetadataRead`](authentication#permissions-surveyformdefinitioninfo) permission.**\n","tags":["Survey Form Definition"],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"surveyFormDefinitionId":{"allOf":[{"description":"The id of the survey form to fetch"},{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"}]}},"required":["surveyFormDefinitionId"]}}}},"responses":{"200":{"description":"Responses for the surveyFormDefinition.info endpoint","content":{"application/json":{"schema":{"oneOf":[{"title":"Success response","allOf":[{"$ref":"#/paths/~1job.info/post/responses/200/content/application~1json/schema/oneOf/0/allOf/0"},{"type":"object","properties":{"results":{"allOf":[{"$ref":"#/paths/~1referralForm.info/post/responses/200/content/application~1json/schema/oneOf/0/allOf/1/properties/results/allOf/0"},{"type":"object","properties":{"surveyType":{"$ref":"#/webhooks/surveySubmit/post/requestBody/content/application~1json/schema/properties/data/properties/surveySubmission/properties/surveyType"}}}],"required":["id","title","isArchived","formDefinition","surveyType"]}},"required":["results"]}]},{"$ref":"#/paths/~1report.generate/post/responses/429/content/application~1json/schema"}]}}}}}}},"/surveyFormDefinition.list":{"post":{"summary":"surveyFormDefinition.list","operationId":"surveyFormDefinitionList","description":"Lists all survey form definitions.\n\nSee the [Pagination and Incremental Synchronization](/docs/pagination-and-incremental-sync) guide for detailed usage examples.\n\n**Requires the [`hiringProcessMetadataRead`](authentication#permissions-surveyformdefinitionlist) permission.**\n","tags":["Survey Form Definition"],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"cursor":{"$ref":"#/paths/~1brand.list/post/requestBody/content/application~1json/schema/properties/cursor"},"syncToken":{"$ref":"#/paths/~1opening.list/post/requestBody/content/application~1json/schema/properties/syncToken"},"limit":{"$ref":"#/paths/~1brand.list/post/requestBody/content/application~1json/schema/properties/limit"}},"example":{"syncToken":"6W05prn4d","cursor":"qA","limit":25}}}}},"responses":{"200":{"description":"Responses for the surveyFormDefinition.list endpoint","content":{"application/json":{"schema":{"oneOf":[{"allOf":[{"$ref":"#/paths/~1job.list/post/responses/200/content/application~1json/schema/oneOf/0/allOf/0"},{"properties":{"results":{"type":"array","items":{"$ref":"#/paths/~1surveyFormDefinition.info/post/responses/200/content/application~1json/schema/oneOf/0/allOf/1/properties/results"}}}}],"required":["results"]},{"$ref":"#/paths/~1report.generate/post/responses/429/content/application~1json/schema"}]}}}}}}},"/surveyRequest.create":{"post":{"summary":"surveyRequest.create","description":"This endpoint generates a survey request and returns a survey URL. You can send this URL to a candidate to allow them to complete a survey. \n\n**Requires the [`candidatesWrite`](authentication#permissions-surveyrequestcreate) permission.**\n\n**Note that calling this endpoint will not automatically email the survey to the candidate.** It simply creates the request and gives you a URL to share with a candidate.\n","operationId":"surveyRequestCreate","tags":["Survey Request"],"requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["candidateId","applicationId","surveyFormDefinitionId"],"properties":{"candidateId":{"allOf":[{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"},{"description":"The id of the candidate to create a survey request for."}]},"applicationId":{"allOf":[{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"},{"description":"The id of the application to associate with the survey request."}]},"surveyFormDefinitionId":{"allOf":[{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"},{"description":"The ID of the survey form that the candidate will see when they visit the URL returned in the `surveyURL` property of the API response. \nSurvey forms IDs can be obtained using the `surveyFormDefinition.list` endpoint. \n"}]}}}}}},"responses":{"200":{"description":"Responses for the surveyRequest.create endpoint","content":{"application/json":{"schema":{"oneOf":[{"title":"Success response","allOf":[{"$ref":"#/paths/~1job.info/post/responses/200/content/application~1json/schema/oneOf/0/allOf/0"},{"type":"object","properties":{"results":{"type":"object","properties":{"id":{"allOf":[{"description":"The id of the survey request\n"},{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"}]},"candidateId":{"allOf":[{"description":"The id of the candidate the survey request is for\n"},{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"}]},"applicationId":{"allOf":[{"description":"The id of the application associated with the survey request\n"},{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"}]},"surveyFormDefinitionId":{"allOf":[{"description":"The id of the survey form the candidate will fill out when they take the survey\n"},{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"}]},"surveyUrl":{"type":"string","example":"https://you.ashbyhq.com/ashby/survey/3f20b73e-abec-4d62-ba6f-04f2f985f7dd","description":"The URL that the candidate can visit to take the survey.\n"}},"required":["id","candidateId","applicationId","surveyFormDefinitionId","surveyUrl"]}},"required":["results"]}]},{"title":"Error response","$ref":"#/paths/~1report.generate/post/responses/429/content/application~1json/schema"}]}}}}}}},"/surveyRequest.list":{"post":{"summary":"surveyRequest.list","description":"Lists all survey requests.\n\nSee the [Pagination and Incremental Synchronization](/docs/pagination-and-incremental-sync) guide for detailed usage examples.\n\n**Requires the [`candidatesRead`](authentication#permissions-surveyRequestList) permission.**\n","operationId":"surveyRequestList","tags":["Survey Request"],"requestBody":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/paths/~1opening.list/post/requestBody/content/application~1json/schema"},{"type":"object","properties":{"surveyType":{"allOf":[{"description":"Returns only the survey requests of the given type. Currently, only `CandidateExperience` is supported."},{"type":"string"},{"enum":["CandidateExperience"]}]},"applicationId":{"allOf":[{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"},{"description":"If provided, only returns the offers for the application with the supplied id"}]},"candidateId":{"allOf":[{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"},{"description":"If provided, only returns the offers for the candidate with the supplied id"}]}},"required":["surveyType"]}]}}}},"responses":{"200":{"description":"Responses for the surveyRequest.list endpoint","content":{"application/json":{"schema":{"oneOf":[{"allOf":[{"$ref":"#/paths/~1job.list/post/responses/200/content/application~1json/schema/oneOf/0/allOf/0"},{"properties":{"results":{"type":"array","items":{"$ref":"#/paths/~1surveyRequest.create/post/responses/200/content/application~1json/schema/oneOf/0/allOf/1/properties/results"}}}}],"required":["results"]},{"$ref":"#/paths/~1report.generate/post/responses/429/content/application~1json/schema"}]}}}}}}},"/surveySubmission.create":{"post":{"summary":"surveySubmission.create","description":"Create a new survey submission.\n\n**Requires the [`candidatesWrite`](authentication#permissions-surveySubmissionCreate) permission.**\n","operationId":"surveySubmissionCreate","tags":["Survey Submission"],"requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["candidateId","applicationId","surveyFormDefinitionId","submittedValues"],"properties":{"candidateId":{"allOf":[{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"},{"description":"The id of the candidate to create a survey submission for."}]},"applicationId":{"allOf":[{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"},{"description":"The id of the application to associate with the survey submission."}]},"surveyFormDefinitionId":{"allOf":[{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"},{"description":"The ID of the survey form definition that submissions are being provided for.\n"}]},"submittedValues":{"type":"object","description":"The values that the candidate submitted in the survey form. \nThe keys of this object should be the IDs from the associated survey's form definition, and the values should be the answers to the questions.\nThe information on what values are expected can be obtained by calling the `surveyFormDefinition.info` endpoint.\n","additionalProperties":true,"example":{"_systemfield_name":"Gob Bluth"}}}}}}},"responses":{"200":{"description":"Responses for the surveySubmission.create endpoint","content":{"application/json":{"schema":{"oneOf":[{"title":"Success response","allOf":[{"$ref":"#/paths/~1job.info/post/responses/200/content/application~1json/schema/oneOf/0/allOf/0"},{"type":"object","properties":{"results":{"$ref":"#/webhooks/surveySubmit/post/requestBody/content/application~1json/schema/properties/data/properties/surveySubmission"}},"required":["results"]}]},{"title":"Error response","$ref":"#/paths/~1report.generate/post/responses/429/content/application~1json/schema"}]}}}}}}},"/surveySubmission.list":{"post":{"summary":"surveySubmission.list","operationId":"surveySubmissionList","description":"Lists all survey submissions of a given `surveyType`.\n\nSee the [Pagination and Incremental Synchronization](/docs/pagination-and-incremental-sync) guide for detailed usage examples.\n\n**Requires the [`candidatesRead`](authentication#permissions-surveySubmissionList) permission.**\n","tags":["Survey Submission"],"requestBody":{"content":{"application/json":{"schema":{"allOf":[{"type":"object","description":"The type of survey submissions to fetch.\nSupported values: CandidateExperience, Questionnaire.\n","properties":{"surveyType":{"type":"string","description":"The survey types supported by surveySubmission.list.\n","enum":["CandidateExperience","Questionnaire"],"example":"CandidateExperience"}},"required":["surveyType"]},{"$ref":"#/paths/~1opening.list/post/requestBody/content/application~1json/schema"}]}}}},"responses":{"200":{"description":"Responses for the surveySubmission.list endpoint","content":{"application/json":{"schema":{"oneOf":[{"allOf":[{"$ref":"#/paths/~1job.list/post/responses/200/content/application~1json/schema/oneOf/0/allOf/0"},{"type":"object","properties":{"results":{"type":"array","items":{"allOf":[{"$ref":"#/webhooks/surveySubmit/post/requestBody/content/application~1json/schema/properties/data/properties/surveySubmission"},{"type":"object","properties":{"surveyType":{"$ref":"#/paths/~1surveySubmission.list/post/requestBody/content/application~1json/schema/allOf/0/properties/surveyType"}},"required":["surveyType"]}]}}},"required":["results"]}]},{"$ref":"#/paths/~1report.generate/post/responses/429/content/application~1json/schema"}]}}}}}}},"/user.info":{"post":{"summary":"user.info","description":"Get an Ashby user by id\n\n**Requires the [`organizationRead`](authentication#permissions-userinfo) permission.**\n","operationId":"userInfo","tags":["User"],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"userId":{"allOf":[{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"},{"description":"The id to lookup the user"}]}},"required":["userId"]}}}},"responses":{"200":{"description":"Responses for the user.info endpoint","content":{"application/json":{"schema":{"oneOf":[{"title":"Success response","allOf":[{"$ref":"#/paths/~1job.info/post/responses/200/content/application~1json/schema/oneOf/0/allOf/0"},{"type":"object","properties":{"results":{"type":"object","properties":{"id":{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"},"firstName":{"type":"string","example":"Test"},"lastName":{"type":"string","example":"User"},"email":{"$ref":"#/paths/~1candidate.create/post/requestBody/content/application~1json/schema/properties/email/allOf/0"},"globalRole":{"type":"string","enum":["Organization Admin","Elevated Access","Limited Access","External Recruiter"]},"isEnabled":{"type":"boolean"},"updatedAt":{"$ref":"#/paths/~1candidate.createNote/post/requestBody/content/application~1json/schema/properties/createdAt"},"managerId":{"description":"The user id of the user's manager","$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"},"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":"#/paths/~1customField.setValue/post/responses/200/content/application~1json/schema/oneOf/0/allOf/1/properties/results"}}},"required":["id","firstName","lastName","globalRole","isEnabled","updatedAt"]}},"required":["results"]}]},{"title":"Error response","$ref":"#/paths/~1report.generate/post/responses/429/content/application~1json/schema"}]}}}}}}},"/user.list":{"post":{"summary":"user.list","description":"Get a list of all Ashby users.\n\nSee the [Pagination and Incremental Synchronization](/docs/pagination-and-incremental-sync) guide for detailed usage examples.\n\n**Requires the [`organizationRead`](authentication#permissions-userlist) permission.**\n\nThe `globalRole` property in the response specifies the user's access level in Ashby.\nFor more details on the permissions granted with each role, see our [documentation here](https://docs.ashbyhq.com/user-permissions).\n","operationId":"userList","tags":["User"],"requestBody":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/paths/~1surveyFormDefinition.list/post/requestBody/content/application~1json/schema"},{"type":"object","properties":{"includeDeactivated":{"type":"boolean","default":false,"description":"If set to true, deactivated users are included in the response. \nBy default, deactivated users are not included.\n"}}}]}}}},"responses":{"200":{"description":"Responses for the user.list endpoint","content":{"application/json":{"schema":{"oneOf":[{"title":"Success response","allOf":[{"$ref":"#/paths/~1job.list/post/responses/200/content/application~1json/schema/oneOf/0/allOf/0"},{"type":"object","properties":{"results":{"type":"array","items":{"$ref":"#/paths/~1user.info/post/responses/200/content/application~1json/schema/oneOf/0/allOf/1/properties/results"}}},"required":["results"]}]},{"title":"Error response","$ref":"#/paths/~1report.generate/post/responses/429/content/application~1json/schema"}]}}}}}}},"/user.search":{"post":{"summary":"user.search","description":"Search for an Ashby user by email address\n\n**Requires the [`organizationRead`](authentication#permissions-usersearch) permission.**\n","operationId":"userSearch","tags":["User"],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"email":{"type":"string","description":"The email to use to search for the user","example":"test@ashbyhq.com"}},"required":["email"]}}}},"responses":{"200":{"description":"Responses for the user.search endpoint","content":{"application/json":{"schema":{"oneOf":[{"title":"Success response","allOf":[{"$ref":"#/paths/~1job.info/post/responses/200/content/application~1json/schema/oneOf/0/allOf/0"},{"type":"object","properties":{"results":{"type":"array","items":{"$ref":"#/paths/~1user.info/post/responses/200/content/application~1json/schema/oneOf/0/allOf/1/properties/results"}}},"required":["results"]}]},{"title":"Error response","$ref":"#/paths/~1report.generate/post/responses/429/content/application~1json/schema"}]}}}}}}},"/user.interviewerSettings":{"post":{"summary":"user.interviewerSettings","description":"Get interviewer settings for a user.\n\n**Requires the [`organizationRead`](authentication#permissions-userinfo) permission.**\n","operationId":"userInterviewerSettings","tags":["User"],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"userId":{"allOf":[{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"},{"description":"The id of the user to get interviewer settings for"}]}},"required":["userId"]}}}},"responses":{"200":{"description":"Responses for the user.interviewerSettings endpoint","content":{"application/json":{"schema":{"oneOf":[{"title":"Success response","allOf":[{"$ref":"#/paths/~1job.info/post/responses/200/content/application~1json/schema/oneOf/0/allOf/0"},{"type":"object","properties":{"results":{"type":"object","properties":{"id":{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"},"dailyLimit":{"type":["integer","null"],"description":"Maximum number of interviews per day for this interviewer"},"weeklyLimit":{"type":["integer","null"],"description":"Maximum number of interviews per week for this interviewer"}},"required":["id"]}},"required":["results"]}]},{"title":"Error response","$ref":"#/paths/~1report.generate/post/responses/429/content/application~1json/schema"}]}}}}}}},"/user.updateInterviewerSettings":{"post":{"summary":"user.updateInterviewerSettings","description":"Update interviewer settings for a user. \n\nEither limit can be provided, or both can be provided. If only one is provided, the other will remain unchanged. If a limit is provided but set to null, it will be unset.\n\n**Requires the [`organizationWrite`](authentication#permissions-userinfo) permission.**\n","operationId":"userUpdateInterviewerSettings","tags":["User"],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"userId":{"allOf":[{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"},{"description":"The id of the user to update interviewer settings for"}]},"dailyLimit":{"type":["integer","null"],"description":"Maximum number of interviews per day for this interviewer"},"weeklyLimit":{"type":["integer","null"],"description":"Maximum number of interviews per week for this interviewer"}},"required":["userId"]}}}},"responses":{"200":{"description":"Responses for the user.updateInterviewerSettings endpoint","content":{"application/json":{"schema":{"oneOf":[{"title":"Success response","allOf":[{"$ref":"#/paths/~1job.info/post/responses/200/content/application~1json/schema/oneOf/0/allOf/0"},{"type":"object","properties":{"results":{"$ref":"#/paths/~1user.interviewerSettings/post/responses/200/content/application~1json/schema/oneOf/0/allOf/1/properties/results"}},"required":["results"]}]},{"title":"Error response","$ref":"#/paths/~1report.generate/post/responses/429/content/application~1json/schema"}]}}}}}}},"/user.createInterviewerPause":{"post":{"summary":"user.createInterviewerPause","description":"Creates an interviewer pause for a user. While paused, the user will not be scheduled for interviews.\n\nA user can only have one interviewer pause at a time (whether active or scheduled). Attempting to create a pause when one already exists will return an error.\n\n**Requires the [`organizationWrite`](authentication#permissions-usercreateinterviewerpause) permission.**\n","operationId":"userCreateInterviewerPause","tags":["User"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"userId":{"allOf":[{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"},{"description":"The id of the user to pause."}]},"startsAt":{"type":"string","format":"date-time","description":"The start date and time of the pause. Defaults to the current time if not provided.","example":"2024-01-15T00:00:00.000Z"},"endsAt":{"type":"string","format":"date-time","description":"The end date and time of the pause. If not provided, the pause is indefinite.","example":"2024-02-15T00:00:00.000Z"},"comment":{"type":"string","description":"An optional comment describing the reason for the pause.","example":"On vacation"}},"required":["userId"]}}}},"responses":{"200":{"description":"Responses for the user.createInterviewerPause endpoint","content":{"application/json":{"schema":{"oneOf":[{"title":"Success response","allOf":[{"$ref":"#/paths/~1job.info/post/responses/200/content/application~1json/schema/oneOf/0/allOf/0"},{"type":"object","properties":{"results":{"type":"object","description":"Represents an interviewer pause period during which the user will not be scheduled for interviews.","properties":{"id":{"allOf":[{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"},{"description":"The unique id of the interviewer pause."}]},"userId":{"allOf":[{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"},{"description":"The id of the user who is paused."}]},"startsAt":{"type":"string","format":"date-time","description":"The start date and time of the pause period.","example":"2024-01-15T00:00:00.000Z"},"endsAt":{"type":["string","null"],"format":"date-time","description":"The end date and time of the pause period. If null, the pause is indefinite.","example":"2024-02-15T00:00:00.000Z"},"comment":{"type":["string","null"],"description":"An optional comment describing the reason for the pause.","example":"On vacation"},"createdAt":{"type":"string","format":"date-time","description":"The date and time when the pause was created.","example":"2024-01-14T10:30:00.000Z"}},"required":["id","userId","startsAt","createdAt"]}},"required":["results"]}]},{"title":"Error response","$ref":"#/paths/~1report.generate/post/responses/429/content/application~1json/schema"}]}}}}}}},"/user.listInterviewerPauses":{"post":{"summary":"user.listInterviewerPauses","description":"Lists all active or scheduled interviewer pauses for a user.\n\n**Requires the [`organizationRead`](authentication#permissions-userlistinterviewerpauses) permission.**\n","operationId":"userListInterviewerPauses","tags":["User"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"userId":{"allOf":[{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"},{"description":"The id of the user to list pauses for."}]}},"required":["userId"]}}}},"responses":{"200":{"description":"Responses for the user.listInterviewerPauses endpoint","content":{"application/json":{"schema":{"oneOf":[{"title":"Success response","allOf":[{"$ref":"#/paths/~1job.info/post/responses/200/content/application~1json/schema/oneOf/0/allOf/0"},{"type":"object","properties":{"results":{"type":"array","items":{"$ref":"#/paths/~1user.createInterviewerPause/post/responses/200/content/application~1json/schema/oneOf/0/allOf/1/properties/results"}}},"required":["results"]}]},{"title":"Error response","$ref":"#/paths/~1report.generate/post/responses/429/content/application~1json/schema"}]}}}}}}},"/user.deleteInterviewerPause":{"post":{"summary":"user.deleteInterviewerPause","description":"Deletes an interviewer pause.\n\n**Requires the [`organizationWrite`](authentication#permissions-userdeleteinterviewerpause) permission.**\n","operationId":"userDeleteInterviewerPause","tags":["User"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"interviewerPauseId":{"allOf":[{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"},{"description":"The id of the interviewer pause to delete."}]}},"required":["interviewerPauseId"]}}}},"responses":{"200":{"description":"Responses for the user.deleteInterviewerPause endpoint","content":{"application/json":{"schema":{"oneOf":[{"title":"Success response","allOf":[{"$ref":"#/paths/~1job.info/post/responses/200/content/application~1json/schema/oneOf/0/allOf/0"},{"type":"object","properties":{"results":{"type":"object","properties":{"id":{"allOf":[{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"},{"description":"The id of the interviewer pause that was deleted."}]}},"required":["id"]}},"required":["results"]}]},{"title":"Error response","$ref":"#/paths/~1report.generate/post/responses/429/content/application~1json/schema"}]}}}}}}},"/webhook.create":{"post":{"summary":"webhook.create","description":"Creates a webhook setting.\n\n**Requires the [`apiKeysWrite`](authentication#permissions-webhookcreate) scope.**\n","operationId":"webhookcreate","tags":["Webhook"],"requestBody":{"content":{"application/json":{"schema":{"properties":{"webhookType":{"type":"string","enum":["applicationSubmit","applicationUpdate","candidateHire","candidateStageChange","candidateDelete","candidateMerge","interviewPlanTransition","interviewScheduleCreate","interviewScheduleUpdate","jobPostingUpdate","jobPostingPublish","jobPostingUnpublish","offerCreate","offerUpdate","offerDelete","pushToHRIS","surveySubmit"]},"requestUrl":{"type":"string","description":"The URL the webhook will send requests to."},"secretToken":{"type":"string","description":"The secret token used to sign the webhook request. See our documentation [here](https://developers.ashbyhq.com/docs/authenticating-webhooks) for more information.\n"}},"required":["webhookType","requestUrl","secretToken"]}}}},"responses":{"200":{"description":"Responses from the webhook.create endpoint","content":{"application/json":{"schema":{"oneOf":[{"title":"Success response","allOf":[{"$ref":"#/paths/~1job.info/post/responses/200/content/application~1json/schema/oneOf/0/allOf/0"},{"type":"object","properties":{"results":{"type":"object","properties":{"id":{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"},"enabled":{"type":"boolean","description":"Whether or not the webhook setting is enabled."},"requestUrl":{"type":"string","description":"The URL the webhook will send requests to.","example":"https://example.com/webhook"},"secretToken":{"type":"string","description":"The secret token used to sign the webhook request. See our documentation [here](https://developers.ashbyhq.com/docs/authenticating-webhooks) for more information.\n","example":"0c2f9463f87641919f8106a2c49d7a57"},"webhookType":{"type":"string","description":"The type of webhook.","$ref":"#/paths/~1webhook.create/post/requestBody/content/application~1json/schema/properties/webhookType"}},"required":["id","enabled","requestUrl","secretToken","webhookType"]}},"required":["results"]}]},{"$ref":"#/paths/~1report.generate/post/responses/429/content/application~1json/schema"}]}}}}}}},"/webhook.info":{"post":{"summary":"webhook.info","description":"Retrieves information about a specific webhook setting by its ID\n\n**Requires the [`apiKeysRead`](authentication#permissions-webhookinfo) permission.**\n","operationId":"webhookInfo","tags":["Webhook"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"webhookId":{"allOf":[{"description":"The id of the webhook setting to retrieve."},{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"}]}},"required":["webhookId"]}}}},"responses":{"200":{"description":"Responses from the webhook.info endpoint","content":{"application/json":{"schema":{"oneOf":[{"title":"Success response","allOf":[{"$ref":"#/paths/~1job.info/post/responses/200/content/application~1json/schema/oneOf/0/allOf/0"},{"type":"object","properties":{"results":{"type":"object","properties":{"id":{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"},"enabled":{"type":"boolean","description":"Whether or not the webhook setting is enabled."},"requestUrl":{"type":"string","description":"The URL the webhook will send requests to.","example":"https://example.com/webhook"},"webhookType":{"type":"string","description":"The type of webhook.","$ref":"#/paths/~1webhook.create/post/requestBody/content/application~1json/schema/properties/webhookType"}},"required":["id","enabled","requestUrl","webhookType"]}},"required":["results"]}]},{"$ref":"#/paths/~1report.generate/post/responses/429/content/application~1json/schema"}]}}}}}}},"/webhook.update":{"post":{"summary":"webhook.update","description":"Updates a webhook setting. One of `enabled`, `requestUrl`, or `secretToken` must be provided.\n\n**Requires the [`apiKeysWrite`](authentication#permissions-webhookcreate) permission.**\n","operationId":"webhookupdate","tags":["Webhook"],"requestBody":{"content":{"application/json":{"schema":{"properties":{"webhookId":{"allOf":[{"description":"The id of the webhook setting to update."},{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"}]},"enabled":{"type":"boolean","description":"Whether or not the webhook is enabled."},"requestUrl":{"type":"string","description":"The URL the webhook will send requests to."},"secretToken":{"type":"string","description":"The secret token used to sign the webhook request. See our documentation [here](https://developers.ashbyhq.com/docs/authenticating-webhooks) for more information.\n"}},"required":["webhookId"]}}}},"responses":{"200":{"description":"Responses from the webhook.update endpoint","content":{"application/json":{"schema":{"oneOf":[{"title":"Success response","allOf":[{"$ref":"#/paths/~1job.info/post/responses/200/content/application~1json/schema/oneOf/0/allOf/0"},{"type":"object","properties":{"results":{"$ref":"#/paths/~1webhook.create/post/responses/200/content/application~1json/schema/oneOf/0/allOf/1/properties/results"}},"required":["results"]}]},{"$ref":"#/paths/~1report.generate/post/responses/429/content/application~1json/schema"}]}}}}}}},"/webhook.delete":{"post":{"summary":"webhook.delete","description":"Deletes a webhook setting.\n\n**Requires the [`apiKeysWrite`](authentication#permissions-webhookcreate) permission.**\n","operationId":"webhookdelete","tags":["Webhook"],"requestBody":{"content":{"application/json":{"schema":{"properties":{"webhookId":{"allOf":[{"description":"The id of the webhook setting to delete."},{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"}]}},"required":["webhookId"]}}}},"responses":{"200":{"description":"Responses from the webhook.delete endpoint","content":{"application/json":{"schema":{"oneOf":[{"title":"Success response","allOf":[{"$ref":"#/paths/~1job.info/post/responses/200/content/application~1json/schema/oneOf/0/allOf/0"},{"type":"object","properties":{"results":{"type":"object","properties":{"webhookId":{"allOf":[{"description":"The id of the webhook setting that was deleted."},{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"}]}}}},"required":["results"]}]},{"$ref":"#/paths/~1report.generate/post/responses/429/content/application~1json/schema"}]}}}}}}}},"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":"#/webhooks/pushToHRIS/post/requestBody/content/application~1json/schema/properties/data/properties/application"}}}}}}}},"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](ref:candidatehirewebhook) and [candidateStageChange](ref: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":"#/webhooks/pushToHRIS/post/requestBody/content/application~1json/schema/properties/data/properties/application"}}}}}}}},"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](ref:applicationupdatewebhook) and [candidateStageChange](ref: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":"#/webhooks/pushToHRIS/post/requestBody/content/application~1json/schema/properties/data/properties/application"},"offer":{"$ref":"#/webhooks/offerCreate/post/requestBody/content/application~1json/schema/properties/data/properties/offer"}}}}}}}},"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](ref: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":"#/webhooks/pushToHRIS/post/requestBody/content/application~1json/schema/properties/data/properties/application"}}}}}}}},"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":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId","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":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId","description":"The unique id of the deleted candidate"}}},"mergedCandidate":{"type":"object","properties":{"id":{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId","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](ref: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":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"}]},"fromInterviewPlan":{"description":"The interview plan the job was previously referencing","type":"object","properties":{"id":{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"},"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":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"},"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":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"},"toInterviewStageId":{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"}},"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](ref: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":{"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":"#/paths/~1user.info/post/responses/200/content/application~1json/schema/oneOf/0/allOf/1/properties/results"},"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":"#/paths/~1interviewEvent.list/post/responses/200/content/application~1json/schema/oneOf/0/allOf/1/properties/results/items"}}}}}}}}}}},"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](ref: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":"#/webhooks/interviewScheduleCreate/post/requestBody/content/application~1json/schema/properties/data/properties/interviewSchedule"},{"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":{"type":"object","properties":{"id":{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"},"title":{"type":"string"},"confidential":{"type":"boolean"},"status":{"$ref":"#/paths/~1job.setStatus/post/requestBody/content/application~1json/schema/properties/status/allOf/1"},"employmentType":{"type":"string","enum":["FullTime","PartTime","Intern","Contract","Temporary"]},"locationId":{"allOf":[{"description":"The id of the location of the job"},{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"}]},"departmentId":{"allOf":[{"description":"The id of the department or team associated with the job"},{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"}]},"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":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"}]},"interviewPlanIds":{"type":"array","items":{"allOf":[{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"},{"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":"#/paths/~1customField.setValue/post/responses/200/content/application~1json/schema/oneOf/0/allOf/1/properties/results"}},"jobPostingIds":{"type":"array","items":{"allOf":[{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"},{"description":"The ids of all job postings associated with the job"}]}},"customRequisitionId":{"allOf":[{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"},{"description":"The custom requisition id for a job"}]},"brandId":{"allOf":[{"description":"The id of the brand to use for this job"},{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"}]},"hiringTeam":{"type":"array","items":{"$ref":"#/paths/~1hiringTeam.addMember/post/responses/200/content/application~1json/schema/oneOf/0/allOf/1/properties/results"}},"author":{"$ref":"#/paths/~1user.info/post/responses/200/content/application~1json/schema/oneOf/0/allOf/1/properties/results"},"createdAt":{"$ref":"#/paths/~1candidate.createNote/post/requestBody/content/application~1json/schema/properties/createdAt"},"updatedAt":{"$ref":"#/paths/~1candidate.createNote/post/requestBody/content/application~1json/schema/properties/createdAt"},"openedAt":{"$ref":"#/paths/~1candidate.createNote/post/requestBody/content/application~1json/schema/properties/createdAt"},"closedAt":{"$ref":"#/paths/~1candidate.createNote/post/requestBody/content/application~1json/schema/properties/createdAt"}},"required":["id","title","confidential","status","employmentType","updatedAt"]}}}}}}}},"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](ref: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":"#/webhooks/jobCreate/post/requestBody/content/application~1json/schema/properties/data/properties/job"}}}}}}}},"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](ref:jobpostingpublishwebhook) and [jobPostingUnpublish](ref: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":{"type":"object","properties":{"id":{"allOf":[{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"},{"description":"The job posting's id"}]},"title":{"type":"string","example":"Posting Title","description":"The job posting's title"},"jobId":{"allOf":[{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"},{"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":{"type":"object","description":"An object containing the ids of all locations associated with the job posting","properties":{"primaryLocationId":{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"},"secondaryLocationIds":{"type":"array","items":{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"}}},"required":["primaryLocationId","secondaryLocationIds"]},"workplaceType":{"$ref":"#/paths/~1location.create/post/requestBody/content/application~1json/schema/properties/workplaceType/allOf/1"},"employmentType":{"$ref":"#/webhooks/jobCreate/post/requestBody/content/application~1json/schema/properties/data/properties/job/properties/employmentType"},"isListed":{"type":"boolean","example":true,"description":"Whether or not the job posting is listed"},"publishedDate":{"type":"string","example":"2021-11-19","description":"The date the job posting was published"},"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":"#/paths/~1candidate.createNote/post/requestBody/content/application~1json/schema/properties/createdAt"}},"required":["id","title","jobId","departmentName","teamName","locationName","locationIds","employmentType","isListed","publishedDate","applyLink","shouldDisplayCompensationOnJobBoard","updatedAt"]}}}}}}}},"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](ref: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":"#/webhooks/jobPostingUpdate/post/requestBody/content/application~1json/schema/properties/data/properties/jobPosting"}}}}}}}},"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](ref: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":"#/webhooks/jobPostingUpdate/post/requestBody/content/application~1json/schema/properties/data/properties/jobPosting"}}}}}}}},"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":{"allOf":[{"$ref":"#/paths/~1offer.list/post/responses/200/content/application~1json/schema/oneOf/0/allOf/1/properties/results/items"},{"type":"object","properties":{"versions":{"type":"array","items":{"type":"object","properties":{"id":{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"},"startDate":{"allOf":[{"$ref":"#/paths/~1candidate.createNote/post/requestBody/content/application~1json/schema/properties/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":"#/paths/~1candidate.createNote/post/requestBody/content/application~1json/schema/properties/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":"#/paths/~1customField.setValue/post/responses/200/content/application~1json/schema/oneOf/0/allOf/1/properties/results"}},"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":"#/paths/~1candidate.info/post/responses/200/content/application~1json/schema/oneOf/0/allOf/1/properties/results/properties/fileHandles/items"}},"author":{"$ref":"#/paths/~1user.info/post/responses/200/content/application~1json/schema/oneOf/0/allOf/1/properties/results"},"approvalStatus":{"allOf":[{"type":["string","null"],"enum":["Approved","WaitingOnApprovals","Declined",null]},{"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"]}},"formDefinition":{"$ref":"#/paths/~1offer.start/post/responses/200/content/application~1json/schema/oneOf/0/allOf/1/properties/results/properties/formDefinition"}}}],"required":["formDefinition"]}}}}}}}},"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":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"},"applicationId":{"allOf":[{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"},{"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":"#/webhooks/offerCreate/post/requestBody/content/application~1json/schema/properties/data/properties/offer"}}}}}}}},"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":{"type":"object","properties":{"id":{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"},"openedAt":{"$ref":"#/paths/~1candidate.createNote/post/requestBody/content/application~1json/schema/properties/createdAt"},"closedAt":{"$ref":"#/paths/~1candidate.createNote/post/requestBody/content/application~1json/schema/properties/createdAt"},"isArchived":{"type":"boolean","example":false},"archivedAt":{"$ref":"#/paths/~1candidate.createNote/post/requestBody/content/application~1json/schema/properties/createdAt"},"closeReasonId":{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"},"openingState":{"type":"string","enum":["Approved","Closed","Draft","Filled","Open"]},"latestVersion":{"type":"object","properties":{"id":{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"},"identifier":{"type":"string"},"description":{"type":"string"},"authorId":{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"},"createdAt":{"$ref":"#/paths/~1candidate.createNote/post/requestBody/content/application~1json/schema/properties/createdAt"},"teamId":{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"},"jobIds":{"type":"array","items":{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"}},"targetHireDate":{"type":"string"},"targetStartDate":{"type":"string"},"isBackfill":{"type":"boolean"},"employmentType":{"$ref":"#/webhooks/jobCreate/post/requestBody/content/application~1json/schema/properties/data/properties/job/properties/employmentType"},"locationIds":{"type":"array","items":{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"}},"hiringTeam":{"type":"array","items":{"$ref":"#/paths/~1hiringTeam.addMember/post/responses/200/content/application~1json/schema/oneOf/0/allOf/1/properties/results"}},"customFields":{"type":"array","description":"An array of custom fields associated with the opening","items":{"$ref":"#/paths/~1customField.setValue/post/responses/200/content/application~1json/schema/oneOf/0/allOf/1/properties/results"}}},"required":["id","identifier","description","authorId","createdAt","jobIds","isBackfill","employmentType","locationIds","hiringTeam","customFields"]}},"required":["id","isArchived","openingState"]}}}}}}}},"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":{"type":"object","properties":{"id":{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"},"createdAt":{"$ref":"#/paths/~1candidate.createNote/post/requestBody/content/application~1json/schema/properties/createdAt"},"updatedAt":{"$ref":"#/paths/~1candidate.createNote/post/requestBody/content/application~1json/schema/properties/createdAt"},"status":{"type":"string","enum":["Hired","Archived","Active","Lead"],"description":"The status of the application"},"customFields":{"type":"array","items":{"$ref":"#/paths/~1customField.setValue/post/responses/200/content/application~1json/schema/oneOf/0/allOf/1/properties/results"}},"candidate":{"type":"object","description":"The candidate associated with the application","properties":{"id":{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"},"name":{"type":"string","example":"James"},"primaryEmailAddress":{"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}},"primaryPhoneNumber":{"allOf":[{"$ref":"#/webhooks/pushToHRIS/post/requestBody/content/application~1json/schema/properties/data/properties/application/properties/candidate/properties/primaryEmailAddress"},{"example":{"value":"222-222-3344","type":"Work","isPrimary":true}}]}},"required":["id","name"]},"currentInterviewStage":{"$ref":"#/paths/~1interviewStage.info/post/responses/200/content/application~1json/schema/oneOf/0/allOf/1/properties/results"},"source":{"$ref":"#/paths/~1source.list/post/responses/200/content/application~1json/schema/oneOf/0/allOf/1/properties/results/items"},"archiveReason":{"allOf":[{"$ref":"#/paths/~1archiveReason.list/post/responses/200/content/application~1json/schema/oneOf/0/allOf/1/properties/results/items"},{"type":"object","properties":{"customFields":{"type":"array","description":"Archive detail custom field values","items":{"$ref":"#/paths/~1customField.setValue/post/responses/200/content/application~1json/schema/oneOf/0/allOf/1/properties/results"}}},"required":["customFields"]}]},"archivedAt":{"allOf":[{"$ref":"#/paths/~1candidate.createNote/post/requestBody/content/application~1json/schema/properties/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":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"},"departmentId":{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"}},"required":["id","title"]},"creditedToUser":{"$ref":"#/paths/~1user.info/post/responses/200/content/application~1json/schema/oneOf/0/allOf/1/properties/results"},"hiringTeam":{"type":"array","items":{"$ref":"#/paths/~1hiringTeam.addMember/post/responses/200/content/application~1json/schema/oneOf/0/allOf/1/properties/results"}},"appliedViaJobPostingId":{"allOf":[{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"},{"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"]}}}}}}}},"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":{"type":"object","properties":{"id":{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"},"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":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"},{"type":"null"}]},"submittedAt":{"$ref":"#/paths/~1candidate.createNote/post/requestBody/content/application~1json/schema/properties/createdAt"},"candidateId":{"allOf":[{"description":"The id of the candidate who submitted the survey"},{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"}]},"applicationId":{"allOf":[{"description":"The id of the application that the survey submission is associated with"},{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"}]},"surveyType":{"type":"string","enum":["CandidateDataConsent","CandidateExperience","Diversity","EEOC","Questionnaire"]},"formDefinition":{"$ref":"#/paths/~1offer.start/post/responses/200/content/application~1json/schema/oneOf/0/allOf/1/properties/results/properties/formDefinition"},"submittedValues":{"type":"object","example":{"_systemfield_name":"Gob Bluth"}}},"required":["id","submittedAt","candidateId","surveyType"]}}}}}}}},"responses":{"200":{"description":"Return a 200 status to indicate that the data was received successfully"}},"security":[{"WebhookSignature":[]}]}}},"components":{"securitySchemes":{"BasicAuth":{"type":"http","scheme":"basic","description":"Use HTTP Basic Auth to authenticate with our API. You must send your API key with every request. \nPut your API key as the basic auth username and leave the password blank.\n"},"WebhookSignature":{"type":"apiKey","in":"header","name":"Ashby-Signature","description":"[Optional] If you provide a secret token when configuring your webhook, this will be used to create a digest of the JSON payload sent with each webhook request.\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"}}},"security":[{"BasicAuth":[]}]}