### application.list Source: https://developers.ashbyhq.com/reference/applicationlist Gets all applications in the organization. Refer to the Pagination and Incremental Synchronization guide for detailed usage examples. ```APIDOC ## application.list ### Description Gets all applications in the organization. See the [Pagination and Incremental Synchronization](/docs/pagination-and-incremental-sync) guide for detailed usage examples. **Requires the [`candidatesRead`](authentication#permissions-applicationlist) permission.** ``` -------------------------------- ### OpenAPI Path Definition for Offer Start Source: https://developers.ashbyhq.com/reference/applicationlisthistory Defines the POST request for starting an offer, including parameters, request body schema, and possible responses. ```json { "$ref": "#/paths/~1offer.start/post/responses/200/content/application~1json/schema/oneOf/0/allOf/1/properties/results/properties/formDefinition" } ``` -------------------------------- ### OpenAPI Schema Examples Source: https://developers.ashbyhq.com/reference/candidatemergewebhook Examples demonstrating the structure of custom field values within the OpenAPI schema. ```json { "id": "650e5f74-32db-4a0a-b61b-b9afece05023", "title": "Is actively looking", "value": true } ``` ```json { "id": "650e5f74-32db-4a0a-b61b-b9afece05024", "title": "Years of experience", "value": 5 } ``` ```json { "id": "650e5f74-32db-4a0a-b61b-b9afece05025", "title": "Salary expectation", "value": { "value": 100000, "currencyCode": "USD" } } ``` ```json { "id": "650e5f74-32db-4a0a-b61b-b9afece05026", "title": "Expected start date", "value": "2022-11-10T19:47:56.795Z" } ``` -------------------------------- ### project.list Source: https://developers.ashbyhq.com/reference/candidatemergewebhook Lists projects. Requires the `candidatesRead` permission. See the [Pagination and Incremental Synchronization](/docs/pagination-and-incremental-sync) guide for detailed usage examples. ```APIDOC ## POST /project.list ### Description Lists projects. See the [Pagination and Incremental Synchronization](/docs/pagination-and-incremental-sync) guide for detailed usage examples. **Requires the [`candidatesRead`](authentication#permissions-projectlist) permission.** ### Method POST ### Endpoint /project.list ### Request Body - **schema** (object) - Required - The request body schema, typically referencing the schema for /opening.list. ### Response #### Success Response (200) - **results** (array) - An array of project objects. #### Response Example { "example": "{\"results\": [{\"id\": \"proj_123\", \"title\": \"Example Project\", \"createdAt\": \"2023-01-01T12:00:00Z\"}] }" } ``` -------------------------------- ### OpenAPI Path for Offer Start Source: https://developers.ashbyhq.com/reference/interviewscheduleupdate Defines the POST request for starting an offer, including parameters, request body schema, and responses. It specifies security requirements using WebhookSignature. ```yaml paths: "/offer.start": post: summary: Start an offer operationId: offer.start requestBody: content: application/json: schema: type: object properties: id: type: string description: The ID of the offer submittedAt: type: string format: date-time description: The timestamp when the offer was submitted candidateId: type: string description: The ID of the candidate surveyType: type: string enum: - "Diversity" - "EEOC" - "Questionnaire" required: true responses: "200": description: Return a 200 status to indicate that the data was received successfully security: - WebhookSignature: [] ``` -------------------------------- ### Example Job Compensation Tiers Source: https://developers.ashbyhq.com/reference/jobupdatecompensation Provides example data structures for different types of compensation tiers, including salary, equity percentage, and bonus. These examples illustrate how to format compensation data according to the defined schema. ```json [ { "compensationType": "Salary", "interval": "1 YEAR", "currencyCode": "EUR", "minValue": 72023.45, "maxValue": 100000 }, { "compensationType": "EquityPercentage", "interval": "NONE", "minValue": 1, "maxValue": 2.511 }, { "compensationType": "Bonus", "interval": "1 YEAR", "minValue": null, "maxValue": null } ] ``` -------------------------------- ### Offer Process Start Webhook Source: https://developers.ashbyhq.com/reference/offerprocessstart This webhook is triggered when an offer process is started. It provides details about the offer and the associated application. ```APIDOC ## POST /offerprocessstart ### Description This webhook is called when an offer process is started. It provides information about the offer and the associated application. ### Method POST ### Endpoint /offerprocessstart ### Request Body - **action** (string) - Required - Must be "offerProcessStart". - **data** (object) - Required - Contains the offer process details. - **offer** (object) - Required - Details about the offer. - **id** (string) - Required - The ID of the offer. - **applicationId** (string) - Required - The ID of the application associated with the offer. - **candidateId** (string) - Required - The ID of the candidate. - **jobId** (string) - Required - The ID of the job. - **status** (string) - Required - The current status of the offer. - **createdAt** (string) - Required - The timestamp when the offer was created. - **updatedAt** (string) - Required - The timestamp when the offer was last updated. - **offerProcess** (object) - Required - Details about the offer process. - **id** (string) - Required - The ID of the offer process. - **status** (string) - Required - The status of the offer process. - **createdAt** (string) - Required - The timestamp when the offer process was created. - **updatedAt** (string) - Required - The timestamp when the offer process was last updated. ### Response #### Success Response (200) - **description**: Return a 200 status to indicate that the data was received successfully. ``` -------------------------------- ### Start Offer Approval Source: https://developers.ashbyhq.com/reference/offerstartapprovalprocess Initiates the offer approval process. This endpoint is used to start the workflow for an offer that requires approval. ```APIDOC ## POST /offer/start ### Description Starts the offer approval process. ### Method POST ### Endpoint /offer/start ### Request Body - **offer** (object) - Required - The offer details. - **candidateId** (string) - Required - The ID of the candidate. - **applicationId** (string) - Required - The ID of the application. - **offerDetails** (object) - Required - Details of the offer. - **compensation** (object) - Required - Compensation details. - **amount** (number) - Required - The compensation amount. - **currency** (string) - Required - The currency of the compensation. - **startDate** (string) - Required - The start date of the offer (YYYY-MM-DD). - **jobTitle** (string) - Required - The title of the job. - **approvers** (array) - Optional - A list of approvers for the offer. - **userId** (string) - Required - The ID of the approver. ### Request Example ```json { "offer": { "candidateId": "cand_123", "applicationId": "app_456", "offerDetails": { "compensation": { "amount": 75000, "currency": "USD" }, "startDate": "2024-01-01", "jobTitle": "Software Engineer" }, "approvers": [ { "userId": "user_789" } ] } } ``` ### Response #### Success Response (200) - **message** (string) - A success message indicating the offer approval process has started. #### Response Example ```json { "message": "Offer approval process started successfully." } ``` ``` -------------------------------- ### Report Generation In Progress Example Source: https://developers.ashbyhq.com/reference/reportgenerate This example shows the response when a report generation request is initiated and is currently in progress. The reportData field will be null. ```json { "success": true, "results": { "requestId": "rep_result:12345abc", "status": "in_progress", "reportData": null, "failureReason": null } } ``` -------------------------------- ### Candidate Job Information Example Source: https://developers.ashbyhq.com/reference/candidateremovetag Example of job details associated with a candidate, including ID, title, location, and department. ```json { "id": "4071538b-3cac-4fbf-ac76-f78ed250ffdd", "title": "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" } } ``` -------------------------------- ### Sync Token Response Example Source: https://developers.ashbyhq.com/reference/sync This JSON structure shows an example response from a list endpoint that includes a `syncToken`. Use this token in future requests to fetch only updated records. ```json { "success": true, "results": [...], "moreDataAvailable": false, "syncToken": "Rld2D" } ``` -------------------------------- ### Job Object Example Source: https://developers.ashbyhq.com/reference/apikeyinfo Example structure for a job object, including ID, title, location ID, and department ID. ```json { "id": "4071538b-3cac-4fbf-ac76-f78ed250ffdd", "title": "First Designer", "locationId": "", "departmentId": "" } ``` -------------------------------- ### Offer Process Start Webhook Source: https://developers.ashbyhq.com/reference/offerprocessstart This webhook is triggered when an offer process is started. It provides details about the offer and its associated form definition. ```APIDOC ## POST /offer.start ### Description This webhook is triggered when an offer process is started. It provides details about the offer and its associated form definition. ### Method POST ### Endpoint /offer.start ### Request Body - **action** (string) - Required - Must be "offerStart". - **data** (object) - Required - Contains the offer and form definition details. - **offer** (object) - Required - Details of the offer. - **id** (string) - Required - The unique identifier for the offer. - **createdAt** (string) - Required - The timestamp when the offer was created. - **applicationId** (string) - Required - The ID of the application associated with the offer. - **candidateId** (string) - Required - The ID of the candidate associated with the offer. - **status** (string) - Required - The current status of the offer (e.g., "Draft", "Sent", "Accepted", "Declined"). - **version** (object) - Optional - Information about the offer version. - **id** (string) - Required - The unique identifier for the offer version. - **createdAt** (string) - Required - The timestamp when the offer version was created. - **approvalStatus** (string) - Optional - 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. - **formDefinition** (object) - Required - The definition of the form associated with the offer process. ### Response #### Success Response (200) - **description**: Return a 200 status to indicate that the data was received successfully ``` -------------------------------- ### offer.start Source: https://developers.ashbyhq.com/reference/offerstart Creates and returns an offer version instance that can be filled out and submitted using the `offer.create` endpoint. Requires the `offersWrite` permission. ```APIDOC ## POST /offer.start ### Description Initiates a new offer version for a candidate, preparing it for subsequent completion and submission via the `offer.create` endpoint. This operation requires the `offersWrite` permission. ### Method POST ### Endpoint /offer.start ### Parameters #### Request Body - **offerProcessId** (string) - Required - The ID of the offer process to start. This ID is obtained from the response of the `offerProcess.start` API. ``` -------------------------------- ### offerProcess.start Source: https://developers.ashbyhq.com/reference/offerprocessstart Starts an offer process for a candidate. Requires the `offersWrite` permission. ```APIDOC ## offerProcess.start ### Description Starts an offer process for a candidate. ### Permissions Requires the `offersWrite` permission. ``` -------------------------------- ### offerList Source: https://developers.ashbyhq.com/reference/interviewscheduleupdatewebhook Get a list of all offers with their latest version. See the [Pagination and Incremental Synchronization](/docs/pagination-and-incremental-sync) guide for detailed usage examples. Requires the `offersRead` permission. ```APIDOC ## POST /offer.list ### Description Get a list of all offers with their latest version. See the [Pagination and Incremental Synchronization](/docs/pagination-and-incremental-sync) guide for detailed usage examples. **Requires the [`offersRead`](authentication#permissions-offerlist) permission.** ### Method POST ### Endpoint /offer.list ### Parameters #### Request Body - **offerStatus** (array) - Optional - When supplied, only offers with provided offer-status(es) will be returned. Array must contain at least one value. Items must be one of: "WaitingOnApprovalStart", "WaitingOnOfferApproval", "WaitingOnApprovalDefinition", "WaitingOnCandidateResponse", "CandidateRejected", "CandidateAccepted", "OfferCancelled". - **acceptanceStatus** (array) - Optional - Description for acceptanceStatus ``` -------------------------------- ### Get User List Source: https://developers.ashbyhq.com/reference/userlist Retrieves a list of all users within the Ashby organization. This endpoint requires the `organizationRead` permission. Refer to the pagination guide for usage examples. ```APIDOC ## GET /users ### Description Get a list of all Ashby users. See the [Pagination and Incremental Synchronization](/docs/pagination-and-incremental-sync) guide for detailed usage examples. **Requires the [`organizationRead`](authentication#permissions-userlist) permission.** The `globalRole` property in the response specifies the user's access level in Ashby. For more details on the permissions granted with each role, see our [documentation here](https://docs.ashbyhq.com/user-permissions). ### Method GET ### Endpoint /users ### Response #### Success Response (200) - **users** (array) - A list of user objects. - **id** (string) - The unique identifier for the user. - **email** (string) - The email address of the user. - **firstName** (string) - The first name of the user. - **lastName** (string) - The last name of the user. - **globalRole** (string) - The user's global role in Ashby (e.g., 'admin', 'user'). - **createdAt** (string) - The timestamp when the user was created. - **updatedAt** (string) - The timestamp when the user was last updated. #### Response Example { "users": [ { "id": "user_123", "email": "test@example.com", "firstName": "Test", "lastName": "User", "globalRole": "admin", "createdAt": "2023-01-01T10:00:00Z", "updatedAt": "2023-01-01T10:00:00Z" } ] } ``` -------------------------------- ### offerProcess.start Source: https://developers.ashbyhq.com/reference/offerprocessstart Starts an offer process for a candidate. Requires the `offersWrite` permission. ```APIDOC ## POST /offerProcess.start ### Description Starts an offer process for a candidate. **Requires the [`offersWrite`](authentication#permissions-offerprocessstart) permission.** ### Method POST ### Endpoint /offerProcess.start ### Parameters #### Request Body - **applicationId** (string) - Required - The id of the application to start an offer process for ### Request Example { "applicationId": "app_12345" } ### Response #### Success Response (200) - **results** (object) - Required - Contains details about the started offer process - **id** (string) - Required - The id of the started offer process - **applicationId** (string) - Required - The id of the application the offer process was started for - **status** (string) - Required - The status of the offer process. Possible values: "WaitingOnOfferCreation", "WaitingOnApprovalStart", "WaitingOnOfferApproval", "WaitingOnCandidateResponse", "CandidateAccepted", "CandidateRejected", "OfferCancelled" #### Response Example { "results": { "id": "offer_process_abcde", "applicationId": "app_12345", "status": "WaitingOnOfferCreation" } } ``` -------------------------------- ### offer.list Source: https://developers.ashbyhq.com/reference/offerlist Get a list of all offers with their latest version. This endpoint requires the `offersRead` permission. Refer to the Pagination and Incremental Synchronization guide for detailed usage examples. ```APIDOC ## POST /offer.list ### Description Get a list of all offers with their latest version. See the [Pagination and Incremental Synchronization](/docs/pagination-and-incremental-sync) guide for detailed usage examples. **Requires the [`offersRead`](authentication#permissions-offerlist) permission.** ### Method POST ### Endpoint /offer.list ### Request Body - **offerStatus** (array) - Optional - When supplied, only offers with provided offer-status(es) will be returned. Array must contain at least one value. Possible values: `WaitingOnApprovalStart`, `WaitingOnOfferApproval`, `WaitingOnApprovalDefinition`, `WaitingOnCandidateResponse`, `CandidateRejected`, `CandidateAccepted`, `OfferCancelled`. - **acceptanceStatus** (array) - Optional - When supplied, only offers with provided acceptance-status(es) will be returned. Array must contain at least one value. Possible values: `Accepted`, `Declined`, `Pending`, `Created`, `Cancelled`, `WaitingOnResponse`. - **applicationId** (string) - Optional - If provided, only returns the offers for the application with the supplied id. - **approvalStatus** (array) - Optional - 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. Possible values: `Approved`, `WaitingOnApprovals`, `Declined`. ### Request Example ```json { "offerStatus": [ "WaitingOnCandidateResponse" ], "acceptanceStatus": [ "Pending" ], "applicationId": "app_12345", "approvalStatus": [ "Approved" ] } ``` ### Response #### Success Response (200) - **offers** (array) - A list of offers. - **offerId** (string) - The unique identifier for the offer. - **offerStatus** (string) - The current status of the offer. - **acceptanceStatus** (string) - The current acceptance status of the offer. - **applicationId** (string) - The ID of the associated application. - **candidateId** (string) - The ID of the candidate associated with the offer. - **createdAt** (string) - The timestamp when the offer was created. - **updatedAt** (string) - The timestamp when the offer was last updated. - **version** (integer) - The version number of the offer. - **offerDetails** (object) - Details about the offer. - **title** (string) - The title of the offer. - **salary** (object) - Salary details. - **amount** (number) - The salary amount. - **currency** (string) - The currency of the salary. - **startDate** (string) - The proposed start date. - **endDate** (string) - The proposed end date. - **benefits** (array) - A list of benefits included in the offer. - **notes** (string) - Any additional notes for the offer. #### Response Example ```json { "offers": [ { "offerId": "offer_abcde", "offerStatus": "WaitingOnCandidateResponse", "acceptanceStatus": "Pending", "applicationId": "app_12345", "candidateId": "cand_67890", "createdAt": "2023-10-27T10:00:00Z", "updatedAt": "2023-10-27T10:00:00Z", "version": 1, "offerDetails": { "title": "Software Engineer", "salary": { "amount": 120000, "currency": "USD" }, "startDate": "2023-11-15", "endDate": "2024-11-15", "benefits": ["Health Insurance", "401k"], "notes": "Standard offer for a full-time role." } } ] } ``` ``` -------------------------------- ### offer.startApprovalProcess Source: https://developers.ashbyhq.com/reference/offerstartapprovalprocess Starts the approval process for a specific offer version. This action transitions the offer to a state where it is sent to configured approvers for review. Requires the 'offersWrite' permission. ```APIDOC ## offer.startApprovalProcess ### Description Starts the approval process for an offer in a "WaitingOnApprovalStart" state. Once started, the approval is sent to the configured approvers. The offer version ID can be obtained from the offer (e.g. `offer.info` or `offer.list` response's `latestVersion.id`). **Requires the [`offersWrite`](authentication#permissions-offerstartapprovalprocess) permission.** ### Method POST ### Endpoint /offers/{offerId}/versions/{offerVersionId}/start-approval ### Parameters #### Path Parameters - **offerId** (string) - Required - The ID of the offer. - **offerVersionId** (string) - Required - The ID of the offer version to start the approval process for. ### Request Body This endpoint does not require a request body. ### Response #### Success Response (200) - **status** (string) - Indicates the success of the operation (e.g., "success"). #### Response Example ```json { "status": "success" } ``` ``` -------------------------------- ### offer.start Source: https://developers.ashbyhq.com/reference/offerstart Creates and returns a new offer version instance that can be filled out and submitted. ```APIDOC ## offer.start ### Description Creates and returns a new offer version instance that can be filled out and submitted using the `offer.create` endpoint. ### Permissions Requires the [`offersWrite`](authentication#permissions-offerstart) permission. ### Usage In order to create a new offer version for a candidate with an in-progress offer process, you can call the `offer.start` endpoint and then call the `offer.create` endpoint to fill out the newly created offer version form. ``` -------------------------------- ### department.list Source: https://developers.ashbyhq.com/reference/departmentlist Lists all departments. Refer to the Pagination and Incremental Synchronization guide for detailed usage examples. Requires the 'organizationRead' permission. ```APIDOC ## department.list ### Description Lists all departments. ### Permissions Requires the [`organizationRead`](authentication#permissions-departmentlist) permission. ### See Also See the [Pagination and Incremental Synchronization](/docs/pagination-and-incremental-sync) guide for detailed usage examples. ``` -------------------------------- ### offer.startApprovalProcess Source: https://developers.ashbyhq.com/reference/offerstartapprovalprocess Starts the approval process for an offer. This endpoint is used to send an offer to configured approvers for review and approval. It requires the `offerVersionId` and can include an optional `note`. ```APIDOC ## POST /offer.startApprovalProcess ### Description Starts the approval process for an offer in a "WaitingOnApprovalStart" state. Once started, the approval is sent to the configured approvers. The offer version ID can be obtained from the offer (e.g. `offer.info` or `offer.list` response's `latestVersion.id`). **Requires the [`offersWrite`](authentication#permissions-offerstartapprovalprocess) permission.** ### Method POST ### Endpoint /offer.startApprovalProcess ### Parameters #### Request Body - **offerVersionId** (string) - Required - The id of the offer version whose approval process should be started. - **note** (string) - Optional - Optional note to attach to the approval request. ### Request Example ```json { "offerVersionId": "offer_version_id_123", "note": "Please review and approve this offer." } ``` ### Response #### Success Response (200) - **results** (object) - The offer object. #### Response Example ```json { "results": { "id": "offer_id_abc", "versionId": "offer_version_id_123", "candidate": { "id": "candidate_id_xyz", "firstName": "Jane", "lastName": "Doe" }, "job": { "id": "job_id_def" }, "status": "WaitingOnApprovalStart", "createdAt": "2023-10-27T10:00:00Z", "updatedAt": "2023-10-27T10:00:00Z" } } ``` ``` -------------------------------- ### candidate.listClientInfo Source: https://developers.ashbyhq.com/reference/candidatelistclientinfo Lists all client info records for a candidate. Refer to the Pagination and Incremental Synchronization guide for detailed usage examples. ```APIDOC ## candidate.listClientInfo ### Description Lists all client info records for a candidate. See the [Pagination and Incremental Synchronization](/docs/pagination-and-incremental-sync) guide for detailed usage examples. ### Permissions Requires the [`candidatesRead`](authentication#permissions-candidatelistclientinfo) permission. ``` -------------------------------- ### interviewerPool.list Source: https://developers.ashbyhq.com/reference/interviewerpoollist Lists all interviewer pools. Requires the 'hiringProcessMetadataRead' permission. Refer to the Pagination and Incremental Synchronization guide for detailed usage examples. ```APIDOC ## interviewerPool.list ### Description List all interviewer pools. See the [Pagination and Incremental Synchronization](/docs/pagination-and-incremental-sync) guide for detailed usage examples. **Requires the [`hiringProcessMetadataRead`](authentication#permissions-interviewerpoollist) permission.** ``` -------------------------------- ### POST /offer.start Source: https://developers.ashbyhq.com/reference/jobinfo This endpoint is used to start an offer process. It accepts offer details and returns a success status. ```APIDOC ## POST /offer.start ### Description Starts an offer process with the provided details. ### Method POST ### Endpoint /offer.start ### Request Body - **offer** (object) - Required - Details of the offer to be started. - **candidateId** (string) - Required - The ID of the candidate. - **jobId** (string) - Required - The ID of the job. - **formDefinition** (object) - Optional - The definition of the form to be used. - **submittedValues** (object) - Optional - Values submitted for the form. ### Response #### Success Response (200) - **message** (string) - A success message. - **results** (object) - Contains details about the started offer process. - **id** (string) - The ID of the offer. - **submittedAt** (string) - The timestamp when the offer was submitted. - **candidateId** (string) - The ID of the candidate. - **surveyType** (string) - The type of survey associated with the offer. - **formDefinition** (object) - The definition of the form used. - **submittedValues** (object) - The values submitted for the form. ### Security - **WebhookSignature**: Optional, uses Ashby-Signature header for payload digest verification. - **BasicAuth**: Required, uses API key as username for authentication. ``` -------------------------------- ### candidate.listNotes Source: https://developers.ashbyhq.com/reference/candidatemergewebhook Lists all notes on a candidate. See the [Pagination and Incremental Synchronization](/docs/pagination-and-incremental-sync) guide for detailed usage examples. Requires the `candidatesRead` permission. ```APIDOC ## POST /candidate.listNotes ### Description Lists all notes on a candidate. See the [Pagination and Incremental Synchronization](/docs/pagination-and-incremental-sync) guide for detailed usage examples. **Requires the [`candidatesRead`](authentication#permissions-candidatelistnotes) permission.** ### Method POST ### Endpoint /candidate.listNotes ### Parameters #### Request Body - **candidateId** (string) - Required - The id of the candidate to list notes for. ``` -------------------------------- ### candidate.listClientInfo Source: https://developers.ashbyhq.com/reference/candidatemergewebhook Lists all client info records for a candidate. Requires the `candidatesRead` permission. See the Pagination and Incremental Synchronization guide for detailed usage examples. ```APIDOC ## POST /candidate.listClientInfo ### Description Lists all client info records for a candidate. See the [Pagination and Incremental Synchronization](/docs/pagination-and-incremental-sync) guide for detailed usage examples. **Requires the [`candidatesRead`](authentication#permissions-candidatelistclientinfo) permission.** ### Method POST ### Endpoint /candidate.listClientInfo ### Request Body - **candidateId** (string) - Required - The id of the candidate to fetch client info for - **schema** (object) - Optional - The schema for pagination and filtering. ### Response #### Success Response (200) - **results** (array) - An array of client info objects for the candidate. #### Response Example { "results": [ { "id": "string", "candidateId": "string", "clientId": "string", "clientName": "string", "jobId": "string", "jobName": "string", "applicationId": "string", "applicationStatus": "string", "applicationStage": "string", "applicationStageId": "string", "applicationCreatedTimestamp": "string", "applicationUpdatedTimestamp": "string" } ] } ``` -------------------------------- ### Start Offer Approval Process Source: https://developers.ashbyhq.com/reference/candidatemergewebhook Initiates the approval process for a specific offer version. This action sends the offer to the designated approvers. Requires the `offersWrite` permission. ```APIDOC ## POST /offer.startApprovalProcess ### Description Starts the approval process for an offer in a "WaitingOnApprovalStart" state. Once started, the approval is sent to the configured approvers. The offer version ID can be obtained from the offer (e.g. `offer.info` or `offer.list` response's `latestVersion.id`). **Requires the [`offersWrite`](authentication#permissions-offerstartapprovalprocess) permission.** ### Method POST ### Endpoint /offer.startApprovalProcess ### Parameters #### Request Body - **offerVersionId** (string) - Required - The id of the offer version whose approval process should be started. - **note** (string) - Optional - Optional note to attach to the approval request. ### Response #### Success Response (200) - **results** (object) - The updated offer object. ### Request Example ```json { "offerVersionId": "offer_v_123", "note": "Please review this offer." } ``` ### Response Example ```json { "results": { "id": "offer_123", "version": 1, "status": "WaitingOnApproval", "candidate": { "id": "candidate_456" } } } ``` ``` -------------------------------- ### Start Offer Process Source: https://developers.ashbyhq.com/reference/offerprocessstart Initiates the offer process for a candidate. ```APIDOC ## POST /offerProcess/start ### Description Starts the offer process for a candidate, allowing for the creation and management of job offers. ### Method POST ### Endpoint /offerProcess/start ### Request Body - **candidateId** (string) - Required - The ID of the candidate for whom the offer process is starting. - **jobId** (string) - Required - The ID of the job associated with this offer. - **offerDetails** (object) - Optional - Contains details about the offer, such as salary, start date, etc. - **salary** (number) - Optional - The offered salary amount. - **startDate** (string) - Optional - The proposed start date for the candidate (YYYY-MM-DD). - **customFields** (array) - Optional - An array of custom fields to associate with the offer. - **id** (string) - Required - The ID of the custom field. - **value** (any) - Required - The value to set for the custom field. ### Request Example { "candidateId": "cand_12345", "jobId": "job_67890", "offerDetails": { "salary": 80000, "startDate": "2024-01-15", "customFields": [ { "id": "cf_dept", "value": "Engineering" } ] } } ### Response #### Success Response (200) - **offerProcessId** (string) - The ID of the newly created offer process. - **status** (string) - The initial status of the offer process (e.g., 'Draft'). #### Response Example { "offerProcessId": "op_abcde", "status": "Draft" } ``` -------------------------------- ### Project List Source: https://developers.ashbyhq.com/reference/projectlist Lists projects within your Ashby instance. This endpoint requires the 'candidatesRead' permission. Refer to the pagination guide for detailed usage examples. ```APIDOC ## POST /project.list ### Description Lists projects. See the [Pagination and Incremental Synchronization](/docs/pagination-and-incremental-sync) guide for detailed usage examples. **Requires the [`candidatesRead`](authentication#permissions-projectlist) permission.** ### Method POST ### Endpoint https://api.ashbyhq.com/project.list ### Request Body (Schema not fully defined in source, but implies a JSON object for filtering or pagination) ### Responses #### Success Response (200) - `results` (array) - An array of project objects. #### Response Example (Example response structure not fully defined in source, but implies a structure containing a 'results' array.) ``` -------------------------------- ### jobTemplate.list Source: https://developers.ashbyhq.com/reference/jobtemplatelist Lists all active and inactive job templates. Refer to the Pagination and Incremental Synchronization guide for detailed usage examples. Requires the `jobsRead` permission. ```APIDOC ## jobTemplate.list ### Description List all active and inactive job templates. See the [Pagination and Incremental Synchronization](/docs/pagination-and-incremental-sync) guide for detailed usage examples. **Requires the [`jobsRead`](authentication#permissions-jobtemplatelist) permission. ``` -------------------------------- ### Start Offer Process Source: https://developers.ashbyhq.com/reference/offerprocessstart Initiates the offer process. This endpoint is secured using basic authentication and optionally webhook signatures. ```APIDOC ## POST /offerprocessstart ### Description This endpoint is used to start the offer process. It accepts a POST request and returns a success status if the data is received correctly. ### Method POST ### Endpoint /offerprocessstart ### Security - BasicAuth - WebhookSignature (Optional) ### Response #### Success Response (200) - description: Return a 200 status to indicate that the data was received successfully ``` -------------------------------- ### Start Offer Process Source: https://developers.ashbyhq.com/reference/candidatelistclientinfo Initiates the offer process for a candidate, potentially including generating an offer letter and setting up approval workflows. ```APIDOC ## POST /offer.start ### Description Initiates the offer process for a candidate. ### Method POST ### Endpoint /offer.start ### Request Body - **candidateId** (string) - Required - The ID of the candidate for whom the offer is being created. - **openingId** (string) - Required - The ID of the opening this offer is for. - **formDefinition** (object) - Required - Defines the structure and fields of the offer form. - **fields** (array) - An array of field definitions for the offer form. - **name** (string) - The name of the field. - **label** (string) - The display label for the field. - **type** (string) - The data type of the field (e.g., "string", "number", "date"). - **required** (boolean) - Indicates if the field is mandatory. ### Request Example { "candidateId": "cand_12345", "openingId": "opening_fghij", "formDefinition": { "fields": [ { "name": "salary", "label": "Salary", "type": "number", "required": true }, { "name": "startDate", "label": "Start Date", "type": "date", "required": false } ] } } ### Response #### Success Response (200) - **formDefinition** (object) - The definition of the offer form that was created. - **fields** (array) - An array of field definitions for the offer form. - **name** (string) - The name of the field. - **label** (string) - The display label for the field. - **type** (string) - The data type of the field. - **required** (boolean) - Indicates if the field is mandatory. #### Response Example { "formDefinition": { "fields": [ { "name": "salary", "label": "Salary", "type": "number", "required": true }, { "name": "startDate", "label": "Start Date", "type": "date", "required": false } ] } } ``` -------------------------------- ### interviewSchedule.list Source: https://developers.ashbyhq.com/reference/interviewschedulelist Retrieves all interview schedules in the organization. This operation requires the `interviewsRead` permission. Refer to the Pagination and Incremental Synchronization guide for detailed usage examples. ```APIDOC ## interviewSchedule.list ### Description Gets all interview schedules in the organization. See the [Pagination and Incremental Synchronization](/docs/pagination-and-incremental-sync) guide for detailed usage examples. **Requires the [`interviewsRead`](authentication#permissions-interviewschedulelist) permission.** ``` -------------------------------- ### feedbackFormDefinition.list Source: https://developers.ashbyhq.com/reference/feedbackformdefinitionlist Lists all feedback forms. This endpoint requires the `hiringProcessMetadataRead` permission. Refer to the [Pagination and Incremental Synchronization](/docs/pagination-and-incremental-sync) guide for detailed usage examples. ```APIDOC ## POST /feedbackFormDefinition.list ### Description Lists all feedback forms. See the [Pagination and Incremental Synchronization](/docs/pagination-and-incremental-sync) guide for detailed usage examples. **Requires the [`hiringProcessMetadataRead`](authentication#permissions-feedbackformdefinitionlist) permission.** ### Method POST ### Endpoint /feedbackFormDefinition.list ### Request Body This endpoint accepts an empty JSON object as the request body. ### Response #### Success Response (200) - **results** (array) - An array of feedback form definitions. #### Response Example { "results": [ { "id": "string", "name": "string", "description": "string", "createdAt": "string", "updatedAt": "string" } ] } ``` -------------------------------- ### jobTemplate.list Source: https://developers.ashbyhq.com/reference/jobtemplatelist Lists all active and inactive job templates. This endpoint requires the `jobsRead` permission. Refer to the Pagination and Incremental Synchronization guide for detailed usage examples. ```APIDOC ## POST /jobTemplate.list ### Description List all active and inactive job templates. See the [Pagination and Incremental Synchronization](/docs/pagination-and-incremental-sync) guide for detailed usage examples. **Requires the [`jobsRead`](authentication#permissions-jobtemplatelist) permission.** ### Method POST ### Endpoint /jobTemplate.list ### Request Body - **expand** (array) - Optional - Choose to expand the result and include additional data for related objects. Possible values: `location`. ### Response #### Success Response (200) - **results** (array) - Contains a list of job templates. - **id** (string) - The ID of the job template. - **title** (string) - The title of the job template. - **status** (string) - The status of the job template. Possible values: `Active`, `Inactive`. - **locationId** (string) - The ID of the location associated with the job template. - **departmentId** (string) - The ID of the department or team associated with the job template. - **defaultInterviewPlanId** (string) - The ID of the default interview plan for the job template. ``` -------------------------------- ### Offer Process Start Endpoint Source: https://developers.ashbyhq.com/reference/offerprocessstart Initiates the offer process by accepting application data. ```APIDOC ## POST /offerprocessstart ### Description This endpoint is used to start the offer process for a candidate. It accepts detailed information about the application, job, and hiring team. ### Method POST ### Endpoint /offerprocessstart ### Request Body - **id** (string) - Required - Unique identifier for the application. - **createdAt** (string) - Required - Timestamp when the application was created. - **updatedAt** (string) - Required - Timestamp when the application was last updated. - **candidate** (object) - Required - Information about the candidate. - **id** (string) - Required - Unique identifier for the candidate. - **firstName** (string) - Required - Candidate's first name. - **lastName** (string) - Required - Candidate's last name. - **email** (string) - Required - Candidate's email address. - **status** (string) - Required - Current status of the application. - **currentInterviewStage** (object) - Required - Details of the current interview stage. - **id** (string) - Required - Unique identifier for the interview stage. - **name** (string) - Required - Name of the interview stage. - **job** (object) - Required - Information about the job. - **id** (string) - Required - Unique identifier for the job. - **title** (string) - Required - Title of the job. - **locationId** (string) - Optional - Identifier for the job location. - **departmentId** (string) - Optional - Identifier for the job department. - **creditedToUser** (object) - Optional - User credited for this offer. - **hiringTeam** (array) - Required - List of users in the hiring team. - **userId** (string) - Required - Identifier for a hiring team member. - **appliedViaJobPostingId** (string) - Optional - The ID of the job posting the candidate applied through. - **submitterClientIp** (string) - Optional - The IP address of the client that submitted the application. - **submitterUserAgent** (string) - Optional - The user agent of the client that submitted the application. ### Response #### Success Response (200) - **description** (string) - Indicates that the data was received successfully. ### Request Example ```json { "id": "a1b2c3d4-e5f6-7890-1234-567890abcdef", "createdAt": "2023-10-27T10:00:00Z", "updatedAt": "2023-10-27T10:00:00Z", "candidate": { "id": "cand-12345", "firstName": "Jane", "lastName": "Doe", "email": "jane.doe@example.com" }, "status": "Applied", "currentInterviewStage": { "id": "stage-001", "name": "Application Review" }, "job": { "id": "job-abcde", "title": "Software Engineer" }, "hiringTeam": [ { "userId": "user-xyz" } ] } ``` ### Response Example ```json { "message": "Offer process started successfully." } ``` ``` -------------------------------- ### Upload Candidate Resume using Presigned Handle Source: https://developers.ashbyhq.com/reference/candidateuploadresume Use this method to upload a candidate's resume by first obtaining a presigned URL for direct upload. This is recommended for better reliability and performance with large files. Requires the `candidatesWrite` permission. ```json { "candidateId": "f9e52a51-a075-4116-a7b8-484deba69004", "resumeHandle": "your-resume-handle-from-file-createFileUploadHandle" } ``` -------------------------------- ### interviewSchedule.list Source: https://developers.ashbyhq.com/reference/interviewschedulelist Retrieves all interview schedules in the organization. This endpoint requires the `interviewsRead` permission. Refer to the [Pagination and Incremental Synchronization](/docs/pagination-and-incremental-sync) guide for detailed usage examples. ```APIDOC ## POST /interviewSchedule.list ### Description Gets all interview schedules in the organization. See the [Pagination and Incremental Synchronization](/docs/pagination-and-incremental-sync) guide for detailed usage examples. **Requires the [`interviewsRead`](authentication#permissions-interviewschedulelist) permission.** ### Method POST ### Endpoint /interviewSchedule.list ### Parameters #### Request Body - **applicationId** (string) - Optional - The id of the application, for which to fetch interview schedules - **interviewStageId** (string) - Optional - The id of the interview stage, for which to fetch interview schedules ### Response #### Success Response (200) - **results** (array) - An array of interview schedules. #### Response Example { "results": [ { "id": "is_abc123", "applicationId": "app_xyz789", "interviewStageId": "isg_def456", "interviewerIds": ["user_1", "user_2"], "startTime": "2023-10-27T10:00:00Z", "endTime": "2023-10-27T11:00:00Z" } ] } ```