{
  "info": {
    "description": "\n\n# Introduction\n\nThe Gem ATS API provides programmatic access to your Gem ATS data \u2014 jobs, applications, candidates,\nscorecards, offers, and more. Requires Gem ATS to be enabled on your account. Requests use standard\nHTTP methods and return JSON responses.\n\n# Authentication\n\nAll requests to the Gem ATS API are authenticated with your team's API key. Team admins can\nprovision API keys on your team's [admin dashboard (\"Team Settings\")](https://www.gem.com/admin).\nThe API key will be a 40-character alphanumeric string and should be passed under the header\n`X-API-Key`. As an example:\n\n    curl -X GET \\\n        -H \"X-API-Key: <YOUR_API_KEY>\" \\\n        -H \"Content-Type: application/json\" \\\n        https://api.gem.com/ats/v0/jobs\n\nAlternatively, the API key can be passed via HTTP Basic Auth with the API key as the username and\nan empty password:\n\n    curl -X GET \\\n        -u \"<YOUR_API_KEY>:\" \\\n        -H \"Content-Type: application/json\" \\\n        https://api.gem.com/ats/v0/jobs\n\nNote: If you are using an integration partner, you will also need to pass the `X-Application-Secret`\nheader.\n\n## On-Behalf-Of\n\nSome write endpoints require an `On-Behalf-Of` header that identifies the Gem user performing the\naction. This is used to attribute changes (e.g. moving a candidate, submitting a scorecard) to a\nspecific user rather than to the API key itself.\n\nThe value must be the `id` of an active user on your team, as returned by `GET /ats/v0/users`:\n\n    curl -X POST \\\n        -H \"X-API-Key: <YOUR_API_KEY>\" \\\n        -H \"On-Behalf-Of: <USER_ID>\" \\\n        -H \"Content-Type: application/json\" \\\n        https://api.gem.com/ats/v0/...\n\nEndpoints that require this header are marked in the reference. Omitting it on a required endpoint\nreturns a `422` error. Providing an ID that does not match an active user on your team returns\na `404`.\n\n# Rate Limits\n\nBy default, each API key is subject to a rate limit of 20 requests per second, with a burst\ncapacity of 500 requests. If you exceed either of these limits, you will receive a `429 Too Many\nRequests` or `Limit Exceeded` error code.\n\n\n# Pagination\n\nPagination is supported on `GET` requests to collection resources by using `page` and `per_page`\nquery parameters.\n\n`page` is 1-indexed. `per_page` defaults to 100 if a value isn't provided and the maximum allowed\nvalue is 500. As an example:\n\n    curl -i -X GET \\\n        -H \"X-API-Key: <YOUR_API_KEY>\" \\\n        -H \"Content-Type: application/json\" \\\n        https://api.gem.com/ats/v0/applications?page=2&per_page=50\n\nResponses from paginated collection resources will include the following response headers:\n\n- `X-Pagination`: a JSON object with pagination metadata:\n\n        {\n            \"total\": 312,\n            \"total_pages\": 7,\n            \"first_page\": 1,\n            \"last_page\": 7,\n            \"page\": 2,\n            \"previous_page\": 1,\n            \"next_page\": 3\n        }\n\n- `Link`: RFC 5988 link header with `next`, `prev`, and `last` relations.\n- `X-Per-Page-Served`: the number of results actually returned (may be less than `per_page` if the\n  cap was applied).\n- `X-Max-Per-Page`: the maximum number of results per page for the endpoint.\n",
    "title": "Gem ATS API",
    "version": "v0"
  },
  "components": {
    "securitySchemes": {
      "API Key": {
        "type": "apiKey",
        "name": "X-API-Key",
        "in": "header"
      }
    },
    "schemas": {
      "Error": {
        "type": "object",
        "properties": {
          "code": {
            "type": "integer",
            "description": "Error code"
          },
          "status": {
            "type": "string",
            "description": "Error name"
          },
          "message": {
            "type": "string",
            "description": "Error message"
          },
          "errors": {
            "type": "object",
            "description": "Errors",
            "additionalProperties": {}
          }
        },
        "additionalProperties": false
      },
      "PaginationMetadata": {
        "type": "object",
        "properties": {
          "total": {
            "type": "integer"
          },
          "total_pages": {
            "type": "integer"
          },
          "first_page": {
            "type": "integer"
          },
          "last_page": {
            "type": "integer"
          },
          "page": {
            "type": "integer"
          },
          "previous_page": {
            "type": "integer"
          },
          "next_page": {
            "type": "integer"
          }
        },
        "additionalProperties": false
      },
      "ApplicationSource": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "public_name": {
            "readOnly": true,
            "type": "string"
          }
        }
      },
      "RejectionReasonType": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "readOnly": true,
            "type": "string"
          }
        }
      },
      "RejectionReason": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "readOnly": true,
            "type": "string"
          },
          "type": {
            "$ref": "#/components/schemas/RejectionReasonType"
          }
        }
      },
      "JobLite": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Identifier for the job.",
            "example": "am9iOqNUDwbKrHcrqzhXuntLcGQ"
          },
          "name": {
            "type": "string",
            "description": "Human-readable job title.",
            "example": "Senior Backend Engineer"
          }
        }
      },
      "JobStageLite": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          }
        }
      },
      "UserLiteSchemaWithBackwardsCompatibleFields": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "first_name": {
            "readOnly": true,
            "type": "string"
          },
          "last_name": {
            "readOnly": true,
            "type": "string"
          },
          "employee_id": {
            "readOnly": true,
            "type": "string"
          },
          "user_id": {
            "readOnly": true,
            "type": "string",
            "description": "Deprecated: use `id` instead.",
            "deprecated": true
          },
          "email": {
            "readOnly": true,
            "type": "string",
            "format": "email",
            "description": "Deprecated",
            "deprecated": true
          }
        },
        "title": "UserLite"
      },
      "Application": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "candidate_id": {
            "type": "string"
          },
          "applied_at": {
            "type": "string",
            "format": "date-time"
          },
          "rejected_at": {
            "readOnly": true,
            "type": "string",
            "format": "date-time"
          },
          "last_activity_at": {
            "type": "string",
            "format": "date-time"
          },
          "source": {
            "$ref": "#/components/schemas/ApplicationSource"
          },
          "credited_to": {
            "readOnly": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/UserLite"
              }
            ],
            "title": "UserLite",
            "nullable": true
          },
          "rejection_reason": {
            "$ref": "#/components/schemas/RejectionReason"
          },
          "rejection_notes": {
            "type": "string"
          },
          "jobs": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/JobLite"
            }
          },
          "job_post_id": {
            "type": "string"
          },
          "status": {
            "type": "string",
            "enum": [
              "active",
              "rejected",
              "hired"
            ]
          },
          "current_stage": {
            "$ref": "#/components/schemas/JobStageLite"
          },
          "deleted_at": {
            "type": "string",
            "format": "date-time"
          },
          "recruiter": {
            "$ref": "#/components/schemas/UserLiteSchemaWithBackwardsCompatibleFields"
          },
          "coordinator": {
            "$ref": "#/components/schemas/UserLiteSchemaWithBackwardsCompatibleFields"
          },
          "sourcer": {
            "$ref": "#/components/schemas/UserLiteSchemaWithBackwardsCompatibleFields"
          },
          "custom_fields": {
            "type": "object"
          },
          "answers": {
            "type": [
              "array",
              "null"
            ],
            "items": {
              "type": "object",
              "properties": {
                "question": {
                  "type": "string"
                },
                "answer": {
                  "oneOf": [
                    {
                      "type": "string"
                    },
                    {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    {
                      "type": "null"
                    }
                  ]
                }
              },
              "required": [
                "question",
                "answer"
              ],
              "additionalProperties": false
            }
          }
        }
      },
      "ApplicationUpdateArgs": {
        "type": "object",
        "properties": {
          "source_id": {
            "type": "string"
          }
        }
      },
      "ApplicationMoveStageArgs": {
        "type": "object",
        "properties": {
          "from_stage_id": {
            "type": "string"
          },
          "to_stage_id": {
            "type": "string"
          }
        },
        "required": [
          "from_stage_id",
          "to_stage_id"
        ]
      },
      "InterviewDefinitionLite": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          }
        }
      },
      "InterviewKitQuestion": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "question": {
            "type": "string"
          },
          "type": {
            "readOnly": true,
            "type": "string",
            "enum": [
              "short_text",
              "long_text",
              "single_select",
              "multi_select",
              "numeric_rating"
            ],
            "description": "The type of answer expected for this question"
          },
          "options": {
            "readOnly": true,
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string",
                  "description": "The unique identifier for the option"
                },
                "value": {
                  "type": "string",
                  "description": "The display value for the option"
                }
              }
            },
            "description": "Available options for single_select and multi_select question types. Archived options are not returned. Null for other types."
          },
          "required": {
            "type": "boolean",
            "description": "Whether the question is required"
          }
        }
      },
      "InterviewKit": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "scorecard_template_id": {
            "type": "string"
          },
          "content": {
            "type": "string"
          },
          "questions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/InterviewKitQuestion"
            }
          }
        }
      },
      "UserLite": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "first_name": {
            "readOnly": true,
            "type": "string"
          },
          "last_name": {
            "readOnly": true,
            "type": "string"
          },
          "employee_id": {
            "readOnly": true,
            "type": "string"
          }
        }
      },
      "Interviewer": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "email": {
            "type": "string",
            "format": "email"
          },
          "employee_id": {
            "readOnly": true,
            "type": "string"
          },
          "response_status": {
            "type": "string",
            "enum": [
              "needs_action",
              "declined",
              "tentative",
              "accepted"
            ]
          },
          "scorecard_id": {
            "type": "string"
          }
        }
      },
      "ScheduledInterview": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "application_id": {
            "type": "string"
          },
          "candidate_id": {
            "type": "string"
          },
          "external_event_id": {
            "type": "string"
          },
          "start": {
            "readOnly": true,
            "type": "object",
            "properties": {
              "date_time": {
                "type": "string",
                "format": "date-time"
              }
            }
          },
          "end": {
            "readOnly": true,
            "type": "object",
            "properties": {
              "date_time": {
                "type": "string",
                "format": "date-time"
              }
            }
          },
          "location": {
            "type": "string"
          },
          "video_conferencing_url": {
            "type": "string",
            "format": "url"
          },
          "status": {
            "type": "string",
            "enum": [
              "scheduled",
              "awaiting_feedback",
              "complete"
            ]
          },
          "created_at": {
            "type": "string",
            "format": "date-time"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time"
          },
          "interview": {
            "$ref": "#/components/schemas/InterviewDefinitionLite"
          },
          "interview_kit": {
            "$ref": "#/components/schemas/InterviewKit"
          },
          "organizer": {
            "$ref": "#/components/schemas/UserLite"
          },
          "interviewers": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Interviewer"
            }
          },
          "job_stage_interview_item_id": {
            "type": "string"
          },
          "deleted_at": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "File": {
        "type": "object",
        "properties": {
          "filename": {
            "type": "string"
          },
          "url": {
            "readOnly": true,
            "type": "string"
          },
          "type": {
            "type": "string",
            "enum": [
              "resume"
            ]
          },
          "created_at": {
            "readOnly": true,
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "PhoneNumber": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "mobile"
            ]
          },
          "value": {
            "type": "string"
          }
        }
      },
      "EmailAddress": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "personal"
            ]
          },
          "value": {
            "type": "string",
            "format": "email"
          },
          "is_primary": {
            "type": "boolean"
          }
        }
      },
      "SocialMediaAddress": {
        "type": "object",
        "properties": {
          "value": {
            "type": "string",
            "format": "url"
          }
        }
      },
      "Education": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "school_name": {
            "type": "string",
            "nullable": true
          },
          "degree": {
            "type": "string",
            "nullable": true
          },
          "discipline": {
            "type": "string",
            "nullable": true
          },
          "start_date": {
            "readOnly": true,
            "type": "string",
            "format": "date",
            "nullable": true
          },
          "end_date": {
            "readOnly": true,
            "type": "string",
            "format": "date",
            "nullable": true
          }
        }
      },
      "Work": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "company_name": {
            "type": "string",
            "nullable": true
          },
          "title": {
            "type": "string",
            "nullable": true
          },
          "start_date": {
            "readOnly": true,
            "type": "string",
            "format": "date",
            "nullable": true
          },
          "end_date": {
            "readOnly": true,
            "type": "string",
            "format": "date",
            "nullable": true
          }
        }
      },
      "Candidate": {
        "type": "object",
        "properties": {
          "first_name": {
            "type": "string"
          },
          "last_name": {
            "type": "string"
          },
          "company": {
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "attachments": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/File"
            }
          },
          "phone_numbers": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PhoneNumber"
            }
          },
          "email_addresses": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/EmailAddress"
            }
          },
          "social_media_addresses": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SocialMediaAddress"
            }
          },
          "tags": {
            "readOnly": true,
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "educations": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Education"
            }
          },
          "employments": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Work"
            }
          },
          "linked_user_ids": {
            "readOnly": true,
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "id": {
            "type": "string"
          },
          "created_at": {
            "type": "string",
            "format": "date-time"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time"
          },
          "last_activity": {
            "type": "string",
            "format": "date-time"
          },
          "is_private": {
            "readOnly": true,
            "type": "boolean"
          },
          "applications": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Application"
            }
          },
          "application_ids": {
            "readOnly": true,
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "deleted_at": {
            "type": "string",
            "format": "date-time"
          },
          "custom_fields": {
            "type": "object"
          }
        }
      },
      "EmailAddressCreateArgs": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "personal"
            ]
          },
          "value": {
            "type": "string",
            "format": "email"
          }
        }
      },
      "UserIdentifier": {
        "type": "object",
        "properties": {
          "user_id": {
            "type": "string"
          },
          "email": {
            "type": "string",
            "format": "email"
          }
        }
      },
      "ApplicationAttachment": {
        "type": "object",
        "properties": {
          "filename": {
            "type": "string"
          },
          "type": {
            "type": "string",
            "enum": [
              "resume"
            ]
          },
          "content": {
            "type": "string",
            "description": "base64 encoded string of the file content"
          },
          "content_type": {
            "type": "string",
            "enum": [
              "application/pdf",
              "application/msword",
              "application/vnd.openxmlformats-officedocument.wordprocessingml.document"
            ]
          }
        },
        "required": [
          "content",
          "content_type",
          "filename",
          "type"
        ]
      },
      "ApplicationCreateArgs": {
        "type": "object",
        "properties": {
          "job_id": {
            "type": "string"
          },
          "initial_stage_id": {
            "type": "string"
          },
          "source_id": {
            "type": "string"
          },
          "recruiter": {
            "$ref": "#/components/schemas/UserIdentifier"
          },
          "coordinator": {
            "$ref": "#/components/schemas/UserIdentifier"
          },
          "sourcer": {
            "$ref": "#/components/schemas/UserIdentifier"
          },
          "attachments": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ApplicationAttachment"
            }
          }
        },
        "required": [
          "job_id"
        ]
      },
      "CandidateCreateArgs": {
        "type": "object",
        "properties": {
          "first_name": {
            "type": "string"
          },
          "last_name": {
            "type": "string"
          },
          "email_addresses": {
            "type": "array",
            "minItems": 1,
            "items": {
              "$ref": "#/components/schemas/EmailAddressCreateArgs"
            }
          },
          "phone_numbers": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PhoneNumber"
            }
          },
          "social_media_addresses": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SocialMediaAddress"
            }
          },
          "title": {
            "type": "string",
            "nullable": true
          },
          "company": {
            "type": "string",
            "nullable": true
          },
          "applications": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ApplicationCreateArgs"
            }
          }
        },
        "required": [
          "email_addresses",
          "first_name",
          "last_name"
        ]
      },
      "CandidateUpdateArgs": {
        "type": "object",
        "properties": {
          "first_name": {
            "type": "string"
          },
          "last_name": {
            "type": "string"
          },
          "company": {
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "phone_numbers": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PhoneNumber"
            }
          },
          "email_addresses": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/EmailAddress"
            }
          },
          "social_media_addresses": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SocialMediaAddress"
            }
          }
        }
      },
      "CandidateNoteCreateArgs": {
        "type": "object",
        "properties": {
          "user_id": {
            "type": "string"
          },
          "body": {
            "type": "string",
            "maxLength": 10000
          },
          "visibility": {
            "enum": [
              "private",
              "public"
            ]
          }
        },
        "required": [
          "body",
          "user_id",
          "visibility"
        ]
      },
      "Note": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "created_at": {
            "type": "string",
            "format": "date-time"
          },
          "body": {
            "type": "string"
          },
          "user": {
            "$ref": "#/components/schemas/UserLite"
          },
          "private": {
            "type": "boolean"
          },
          "visibility": {
            "type": "string",
            "enum": [
              "private",
              "public"
            ]
          }
        }
      },
      "CandidateEmailCreateArgs": {
        "type": "object",
        "properties": {
          "user_id": {
            "type": "string"
          },
          "to": {
            "type": "string"
          },
          "from": {
            "type": "string"
          },
          "cc": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "body": {
            "type": "string",
            "maxLength": 10000
          },
          "subject": {
            "type": "string"
          }
        },
        "required": [
          "body",
          "from",
          "subject",
          "to",
          "user_id"
        ]
      },
      "Email": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "created_at": {
            "type": "string",
            "format": "date-time"
          },
          "subject": {
            "type": "string"
          },
          "body": {
            "readOnly": true,
            "type": "string"
          },
          "to": {
            "type": "string"
          },
          "from": {
            "type": "string"
          },
          "cc": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "user": {
            "$ref": "#/components/schemas/UserLite"
          }
        }
      },
      "JobPostResponse": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "active": {
            "readOnly": true,
            "type": "boolean"
          },
          "live": {
            "type": "boolean"
          },
          "listed": {
            "type": "boolean"
          },
          "internal": {
            "readOnly": true,
            "type": "boolean"
          },
          "external": {
            "readOnly": true,
            "type": "boolean"
          },
          "first_published_at": {
            "type": "string",
            "format": "date-time"
          },
          "job_id": {
            "type": "string"
          },
          "content": {
            "type": "string"
          },
          "internal_content": {
            "type": "string"
          },
          "created_at": {
            "type": "string",
            "format": "date-time"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time"
          },
          "deleted_at": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "InterviewDefinition": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "schedulable": {
            "readOnly": true,
            "type": "boolean"
          },
          "estimated_minutes": {
            "type": "integer"
          },
          "default_interviewer_users": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/UserLite"
            }
          },
          "interview_kit": {
            "$ref": "#/components/schemas/InterviewKit"
          },
          "deleted_at": {
            "type": "string",
            "format": "date-time"
          },
          "job_stage_interview_item_id": {
            "type": "string"
          }
        }
      },
      "JobStage": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "created_at": {
            "type": "string",
            "format": "date-time"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time"
          },
          "active": {
            "readOnly": true,
            "type": "boolean"
          },
          "job_id": {
            "type": "string"
          },
          "priority": {
            "type": "integer"
          },
          "interviews": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/InterviewDefinition"
            }
          },
          "deleted_at": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "Department": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "parent_id": {
            "type": "string"
          },
          "child_ids": {
            "readOnly": true,
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "parent_department_external_id": {
            "readOnly": true,
            "type": "string"
          },
          "child_department_external_ids": {
            "readOnly": true,
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "deleted_at": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "LocationName": {
        "type": "object",
        "properties": {
          "name": {
            "readOnly": true,
            "type": "string",
            "description": "The location, pulled from a combination of City and Country (and Remote too, if relevant).",
            "example": "New York, United States"
          }
        }
      },
      "Location": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "location": {
            "$ref": "#/components/schemas/LocationName"
          },
          "parent_id": {
            "type": "string"
          },
          "child_ids": {
            "readOnly": true,
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "parent_office_external_id": {
            "readOnly": true,
            "type": "string"
          },
          "child_office_external_ids": {
            "readOnly": true,
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "deleted_at": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "JobHiringTeam": {
        "type": "object",
        "properties": {
          "hiring_managers": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/UserLite"
            }
          },
          "recruiters": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/UserLite"
            }
          },
          "coordinators": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/UserLite"
            }
          },
          "sourcers": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/UserLite"
            }
          }
        }
      },
      "OpeningLite": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "opening_id": {
            "type": "string"
          },
          "status": {
            "type": "string",
            "enum": [
              "open",
              "draft",
              "pending_approval",
              "approved",
              "closed_unfilled",
              "closed_filled"
            ]
          },
          "confidential": {
            "type": "boolean"
          },
          "created_at": {
            "type": "string",
            "format": "date-time"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time"
          },
          "opened_at": {
            "type": "string",
            "format": "date-time"
          },
          "closed_at": {
            "type": "string",
            "format": "date-time"
          },
          "application_id": {
            "readOnly": true
          },
          "deleted_at": {
            "type": "string",
            "format": "date-time"
          },
          "target_hire_date": {
            "type": "string",
            "format": "date"
          },
          "target_start_date": {
            "type": "string",
            "format": "date"
          },
          "custom_fields": {
            "type": "object"
          }
        }
      },
      "Job": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Identifier for the job.",
            "example": "am9iOqNUDwbKrHcrqzhXuntLcGQ"
          },
          "name": {
            "type": "string",
            "description": "Human-readable job title.",
            "example": "Senior Backend Engineer"
          },
          "requisition_id": {
            "type": "string",
            "description": "Customer-supplied requisition identifier. Unique per team.",
            "example": "ENG-2025-042"
          },
          "confidential": {
            "type": "boolean",
            "description": "If true, the job is hidden from users without confidential-jobs access.",
            "example": false
          },
          "status": {
            "type": "string",
            "description": "Lifecycle state of the job. Jobs created via POST always land in `draft`.",
            "example": "draft",
            "enum": [
              "open",
              "closed",
              "draft",
              "pending_approval",
              "approved"
            ]
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "description": "ISO-8601 timestamp of when the job was created.",
            "example": "2026-06-03T13:53:02.257Z"
          },
          "opened_at": {
            "type": "string",
            "format": "date-time",
            "description": "ISO-8601 timestamp of when the job was opened. Null while the job is still in `draft`.",
            "example": null
          },
          "closed_at": {
            "type": "string",
            "format": "date-time",
            "description": "ISO-8601 timestamp of when the job was closed. Null unless the job is `closed`.",
            "example": null
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "description": "ISO-8601 timestamp of the most recent update to the job.",
            "example": "2026-06-03T13:53:03.203Z"
          },
          "is_template": {
            "readOnly": true,
            "type": "boolean",
            "description": "Whether this row represents a job template. Always false for jobs returned from non-template endpoints.",
            "example": false
          },
          "departments": {
            "type": "array",
            "description": "Departments associated with the job. Currently always 0 or 1 entries.",
            "items": {
              "$ref": "#/components/schemas/Department"
            }
          },
          "offices": {
            "type": "array",
            "description": "Offices (locations) associated with the job.",
            "items": {
              "$ref": "#/components/schemas/Location"
            }
          },
          "location_type": {
            "type": "string",
            "description": "How employees work at the job's location.",
            "example": "in_office",
            "enum": [
              "in_office",
              "hybrid",
              "remote"
            ]
          },
          "employment_type": {
            "type": "string",
            "description": "Employment classification for the job.",
            "example": "full_time",
            "enum": [
              "full_time",
              "part_time",
              "intern",
              "contract",
              "temporary"
            ]
          },
          "custom_fields": {
            "type": "object",
            "description": "Free-form team-configured custom fields. Keys are custom-field names; values depend on the field type (string, number, boolean, date, array of strings, etc).",
            "example": {
              "Job Family": "Backend Engineering",
              "Seniority Level": "Senior",
              "Headcount Approved": true
            }
          },
          "hiring_team": {
            "description": "Hiring team members on the job, grouped by role. Populated from the source template's hiring team during job creation.",
            "allOf": [
              {
                "$ref": "#/components/schemas/JobHiringTeam"
              }
            ]
          },
          "deleted_at": {
            "type": "string",
            "format": "date-time",
            "description": "ISO-8601 timestamp of when the job was soft-deleted, or null.",
            "example": null
          },
          "compensation": {
            "readOnly": true,
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "type": {
                  "type": "string",
                  "enum": [
                    "BASE_PAY",
                    "BONUS",
                    "EQUITY",
                    "SIGNING_BONUS"
                  ]
                },
                "value_type": {
                  "type": "string",
                  "enum": [
                    "NUMBER",
                    "RANGE"
                  ]
                },
                "value": {
                  "oneOf": [
                    {
                      "type": "number"
                    },
                    {
                      "type": "array",
                      "items": {
                        "type": "number"
                      },
                      "minItems": 2,
                      "maxItems": 2
                    }
                  ],
                  "description": "The value of the compensation. For range values, the first number is the minimum and the second number is the maximum."
                },
                "currency_code": {
                  "type": "string",
                  "nullable": true
                },
                "interval": {
                  "type": "string",
                  "nullable": true,
                  "enum": [
                    "ONE_TIME",
                    "ANNUALLY",
                    "SEMI_ANNUALLY",
                    "QUARTERLY",
                    "MONTHLY",
                    "SEMI_MONTHLY",
                    "BI_WEEKLY",
                    "WEEKLY",
                    "DAILY",
                    "HOURLY"
                  ]
                },
                "unit": {
                  "type": "string",
                  "nullable": true,
                  "enum": [
                    "PERCENTAGE",
                    "CURRENCY",
                    "RSUS",
                    "UNITS",
                    "OPTIONS",
                    "PERCENTAGE",
                    "SHARES",
                    "CURRENCY",
                    "OTHER"
                  ],
                  "description": "Only meaningful when type is BONUS or EQUITY. For bonus: PERCENTAGE or CURRENCY. For equity: RSUS, UNITS, OPTIONS, etc."
                }
              },
              "required": [
                "type",
                "value_type",
                "value"
              ]
            },
            "description": "Compensation tiers. Each entry has a `type` (BASE_PAY, BONUS, EQUITY, SIGNING_BONUS), a `value_type` (NUMBER or RANGE), and either a scalar or two-element [min, max] value. `currency_code` and `interval` apply to most types; `unit` is meaningful only for BONUS and EQUITY.",
            "example": [
              {
                "type": "BASE_PAY",
                "value_type": "RANGE",
                "value": [
                  180000,
                  240000
                ],
                "currency_code": "USD",
                "interval": "ANNUALLY",
                "unit": null
              },
              {
                "type": "EQUITY",
                "value_type": "NUMBER",
                "value": 50000,
                "currency_code": null,
                "interval": "ANNUALLY",
                "unit": "RSUS"
              }
            ]
          },
          "openings": {
            "type": "array",
            "description": "Openings attached to the job. Created via the `number_of_openings` and `opening_ids` arguments on POST.",
            "items": {
              "$ref": "#/components/schemas/OpeningLite"
            }
          }
        }
      },
      "JobCreateArgs": {
        "type": "object",
        "properties": {
          "template_job_id": {
            "type": "string",
            "description": "Identifier of the source job to copy from. The source's stages, hiring team, custom fields, compensation, and other configuration are duplicated onto the new draft job.",
            "example": "am9iOjow5tPIFVWnI3q3Zt4pFT8"
          },
          "number_of_openings": {
            "type": "integer",
            "minimum": 0,
            "maximum": 100,
            "description": "How many openings to create on the new job. Must be between 0 and 100 inclusive.",
            "example": 2
          },
          "job_name": {
            "type": "string",
            "description": "Override for the new job's name. Defaults to the template's name.",
            "example": "Senior Backend Engineer"
          },
          "job_post_name": {
            "type": "string",
            "description": "If provided, the first job post on the new job is renamed to this. If the template has no job posts, one is created with this title.",
            "example": "Senior Backend Engineer \u2014 San Francisco"
          },
          "requisition_id": {
            "type": "string",
            "description": "Customer-supplied requisition identifier. Must be unique within the team.",
            "example": "ENG-2025-042"
          },
          "department_id": {
            "type": "string",
            "description": "Identifier of the department to assign. Overrides the template's department.",
            "example": "ZGVwdDodroJDL-SU61c1wjVZFggj"
          },
          "office_ids": {
            "type": "array",
            "description": "Identifiers of the offices (locations) to assign. Overrides the template's offices.",
            "example": [
              "bG9jOkDohMbZhuiNp1h7k9mu2Vk"
            ],
            "items": {
              "type": "string"
            }
          },
          "opening_ids": {
            "type": "array",
            "description": "Customer-supplied identifiers to assign to the newly-created openings. If provided, length must equal `number_of_openings` and entries must be unique.",
            "example": [
              "ENG-042-A",
              "ENG-042-B"
            ],
            "items": {
              "type": "string"
            }
          }
        },
        "required": [
          "number_of_openings",
          "template_job_id"
        ]
      },
      "CustomField": {
        "type": "object",
        "properties": {
          "identifier": {
            "type": "string"
          },
          "value": {
            "type": "string"
          },
          "unit": {
            "type": "string"
          },
          "delete_value": {
            "type": "string"
          }
        },
        "required": [
          "identifier",
          "value"
        ]
      },
      "JobUpdateArgs": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "New job title. Omit to leave unchanged.",
            "example": "Senior Backend Engineer"
          },
          "requisition_id": {
            "type": "string",
            "description": "New customer-supplied requisition identifier. Must be unique within the team \u2014 returns 409 if another job already uses it.",
            "example": "ENG-2026-042"
          },
          "confidential": {
            "type": "boolean",
            "description": "If true, the job becomes hidden from users without confidential-jobs access. Cannot be set to true if the job has any published job posts.",
            "example": false
          },
          "department_id": {
            "type": "string",
            "description": "Identifier of the department to assign. Must be an existing department on this team. Clearing (passing null) is not supported.",
            "example": "ZGVwdDodroJDL-SU61c1wjVZFggj"
          },
          "office_ids": {
            "type": "array",
            "description": "Identifiers of offices (locations) to set on the job. Replaces the current set wholesale. Pass an empty list to clear all offices.",
            "example": [
              "bG9jOkDohMbZhuiNp1h7k9mu2Vk"
            ],
            "items": {
              "type": "string"
            }
          },
          "location_type": {
            "type": "string",
            "description": "How employees work at the job's location.",
            "example": "in_office",
            "enum": [
              "in_office",
              "hybrid",
              "remote"
            ]
          },
          "employment_type": {
            "type": "string",
            "description": "Employment classification for the job.",
            "example": "full_time",
            "enum": [
              "full_time",
              "part_time",
              "intern",
              "contract",
              "temporary"
            ]
          },
          "opened_at": {
            "type": "string",
            "format": "date-time",
            "description": "ISO-8601 timestamp marking when the job was opened. Sets the underlying `opened_ts_ms` column without changing `status`.",
            "example": "2026-07-01T00:00:00Z"
          },
          "closed_at": {
            "type": "string",
            "format": "date-time",
            "description": "ISO-8601 timestamp marking when the job was closed. Sets the underlying `closed_ts_ms` column without changing `status`.",
            "example": "2026-12-31T23:59:59Z"
          },
          "opening_ids": {
            "type": "array",
            "description": "Identifiers of existing openings to attach to the job. Replaces the current set wholesale. Pass an empty list to detach all openings. (Unlike `POST /jobs` where this field provides customer-supplied IDs for newly-created openings, here it references existing openings.)",
            "example": [
              "b3A6oVfei24fJCY_nOXWoyz9hQ"
            ],
            "items": {
              "type": "string"
            }
          },
          "custom_fields": {
            "type": "array",
            "description": "Updates to the job's custom fields. Each item identifies a custom field by its `id` (or `name_key`) and supplies a string `value` that is coerced based on the field's type. Use `unit` for CURRENCY and CURRENCY_RANGE; for range types pass `value` as `\"min,max\"`. For MULTI_SELECT pass `value` as a comma-separated list of option names. Set `delete_value: \"true\"` to clear the field.",
            "example": [
              {
                "id": "Y3VzdGZpZWxkOjE",
                "value": "Backend"
              },
              {
                "id": "Y3VzdGZpZWxkOjI",
                "value": "Senior, Staff"
              },
              {
                "id": "Y3VzdGZpZWxkOjM",
                "value": "150000",
                "unit": "USD"
              },
              {
                "id": "Y3VzdGZpZWxkOjQ",
                "delete_value": "true",
                "value": ""
              }
            ],
            "items": {
              "$ref": "#/components/schemas/CustomField"
            }
          }
        }
      },
      "CreateJobOpeningItem": {
        "type": "object",
        "properties": {
          "custom_fields": {
            "type": "array",
            "description": "Custom field updates. Each item identifies a field by its public `id` (or `name_key`) and supplies a string `value` coerced from the field's type. Use `unit` for CURRENCY/CURRENCY_RANGE; pass range values as `\"min,max\"`; pass MULTI_SELECT as a comma-separated list of option names. Set `delete_value: \"true\"` to clear the field.",
            "example": [
              {
                "id": "Y3VzdGZpZWxkOjE",
                "value": "Backend"
              }
            ],
            "items": {
              "$ref": "#/components/schemas/CustomField"
            }
          },
          "opening_id": {
            "type": "string",
            "minLength": 1,
            "nullable": true
          }
        },
        "required": [
          "opening_id"
        ]
      },
      "CreateJobOpeningsArgs": {
        "type": "object",
        "properties": {
          "openings": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CreateJobOpeningItem"
            }
          }
        },
        "required": [
          "openings"
        ]
      },
      "Opening": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "opening_id": {
            "type": "string"
          },
          "status": {
            "type": "string",
            "enum": [
              "open",
              "draft",
              "pending_approval",
              "approved",
              "closed_unfilled",
              "closed_filled"
            ]
          },
          "confidential": {
            "type": "boolean"
          },
          "created_at": {
            "type": "string",
            "format": "date-time"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time"
          },
          "opened_at": {
            "type": "string",
            "format": "date-time"
          },
          "closed_at": {
            "type": "string",
            "format": "date-time"
          },
          "application_id": {
            "readOnly": true
          },
          "deleted_at": {
            "type": "string",
            "format": "date-time"
          },
          "target_hire_date": {
            "type": "string",
            "format": "date"
          },
          "target_start_date": {
            "type": "string",
            "format": "date"
          },
          "custom_fields": {
            "type": "object"
          },
          "jobs": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/JobLite"
            }
          },
          "compensation": {
            "readOnly": true,
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "type": {
                  "type": "string",
                  "enum": [
                    "BASE_PAY",
                    "BONUS",
                    "EQUITY",
                    "SIGNING_BONUS"
                  ]
                },
                "value_type": {
                  "type": "string",
                  "enum": [
                    "NUMBER",
                    "RANGE"
                  ]
                },
                "value": {
                  "oneOf": [
                    {
                      "type": "number"
                    },
                    {
                      "type": "array",
                      "items": {
                        "type": "number"
                      },
                      "minItems": 2,
                      "maxItems": 2
                    }
                  ],
                  "description": "The value of the compensation. For range values, the first number is the minimum and the second number is the maximum."
                },
                "currency_code": {
                  "type": "string",
                  "nullable": true
                },
                "interval": {
                  "type": "string",
                  "nullable": true,
                  "enum": [
                    "ONE_TIME",
                    "ANNUALLY",
                    "SEMI_ANNUALLY",
                    "QUARTERLY",
                    "MONTHLY",
                    "SEMI_MONTHLY",
                    "BI_WEEKLY",
                    "WEEKLY",
                    "DAILY",
                    "HOURLY"
                  ]
                },
                "unit": {
                  "type": "string",
                  "nullable": true,
                  "enum": [
                    "PERCENTAGE",
                    "CURRENCY",
                    "RSUS",
                    "UNITS",
                    "OPTIONS",
                    "PERCENTAGE",
                    "SHARES",
                    "CURRENCY",
                    "OTHER"
                  ],
                  "description": "Only meaningful when type is BONUS or EQUITY. For bonus: PERCENTAGE or CURRENCY. For equity: RSUS, UNITS, OPTIONS, etc."
                }
              },
              "required": [
                "type",
                "value_type",
                "value"
              ]
            }
          }
        }
      },
      "_HiringTeamMemberInput": {
        "type": "object",
        "properties": {
          "user_id": {
            "type": "string",
            "minLength": 1,
            "description": "Identifier of the user to assign to this role.",
            "example": "dXNlcnM6ODY1OTY2"
          }
        },
        "required": [
          "user_id"
        ],
        "additionalProperties": false
      },
      "JobHiringTeamSetArgs": {
        "type": "object",
        "properties": {
          "hiring_managers": {
            "type": "array",
            "description": "Complete set of hiring managers for the job. Omit to leave hiring managers unchanged.",
            "example": [
              {
                "user_id": "dXNlcnM6ODY1OTY2"
              }
            ],
            "items": {
              "$ref": "#/components/schemas/_HiringTeamMemberInput"
            }
          },
          "recruiters": {
            "type": "array",
            "description": "Complete set of recruiters for the job. Omit to leave recruiters unchanged.",
            "example": [
              {
                "user_id": "dXNlcnM6ODk0MTE3"
              }
            ],
            "items": {
              "$ref": "#/components/schemas/_HiringTeamMemberInput"
            }
          },
          "coordinators": {
            "type": "array",
            "description": "Complete set of coordinators for the job. Omit to leave coordinators unchanged.",
            "example": [],
            "items": {
              "$ref": "#/components/schemas/_HiringTeamMemberInput"
            }
          },
          "sourcers": {
            "type": "array",
            "description": "Complete set of sourcers for the job. Omit to leave sourcers unchanged.",
            "example": [],
            "items": {
              "$ref": "#/components/schemas/_HiringTeamMemberInput"
            }
          }
        },
        "additionalProperties": false
      },
      "OpeningUpdateArgs": {
        "type": "object",
        "properties": {
          "custom_fields": {
            "type": "array",
            "description": "Custom field updates. Each item identifies a field by its public `id` (or `name_key`) and supplies a string `value` coerced from the field's type. Use `unit` for CURRENCY/CURRENCY_RANGE; pass range values as `\"min,max\"`; pass MULTI_SELECT as a comma-separated list of option names. Set `delete_value: \"true\"` to clear the field.",
            "example": [
              {
                "id": "Y3VzdGZpZWxkOjE",
                "value": "Backend"
              }
            ],
            "items": {
              "$ref": "#/components/schemas/CustomField"
            }
          },
          "status": {
            "type": "string",
            "enum": [
              "open",
              "closed"
            ]
          },
          "close_reason_id": {
            "type": "string"
          },
          "closed_at": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "DepartmentLite": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          }
        }
      },
      "LocationLite": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "location": {
            "$ref": "#/components/schemas/LocationName"
          }
        }
      },
      "Offer": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "application_id": {
            "type": "string"
          },
          "department": {
            "$ref": "#/components/schemas/DepartmentLite"
          },
          "office": {
            "$ref": "#/components/schemas/LocationLite"
          },
          "job_id": {
            "type": "string"
          },
          "hiring_managers": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/UserLite"
            }
          },
          "candidate_id": {
            "type": "string"
          },
          "opening": {
            "$ref": "#/components/schemas/OpeningLite"
          },
          "created_at": {
            "type": "string",
            "format": "date-time"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time"
          },
          "sent_at": {
            "type": "string",
            "format": "date"
          },
          "starts_at": {
            "type": "string",
            "format": "date",
            "description": "The candidate's start date on the offer as a date-time string."
          },
          "status": {
            "type": "string",
            "enum": [
              "draft",
              "approved",
              "sent",
              "expired",
              "signed",
              "revoked"
            ]
          },
          "compensation": {
            "readOnly": true,
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "type": {
                  "type": "string",
                  "enum": [
                    "BASE_PAY",
                    "BONUS",
                    "EQUITY",
                    "SIGNING_BONUS"
                  ]
                },
                "value_type": {
                  "type": "string",
                  "enum": [
                    "NUMBER",
                    "RANGE"
                  ]
                },
                "value": {
                  "oneOf": [
                    {
                      "type": "number"
                    },
                    {
                      "type": "array",
                      "items": {
                        "type": "number"
                      },
                      "minItems": 2,
                      "maxItems": 2
                    }
                  ],
                  "description": "The value of the compensation. For range values, the first number is the minimum and the second number is the maximum."
                },
                "currency_code": {
                  "type": "string",
                  "nullable": true
                },
                "interval": {
                  "type": "string",
                  "nullable": true,
                  "enum": [
                    "ONE_TIME",
                    "ANNUALLY",
                    "SEMI_ANNUALLY",
                    "QUARTERLY",
                    "MONTHLY",
                    "SEMI_MONTHLY",
                    "BI_WEEKLY",
                    "WEEKLY",
                    "DAILY",
                    "HOURLY"
                  ]
                },
                "unit": {
                  "type": "string",
                  "nullable": true,
                  "enum": [
                    "PERCENTAGE",
                    "CURRENCY",
                    "RSUS",
                    "UNITS",
                    "OPTIONS",
                    "PERCENTAGE",
                    "SHARES",
                    "CURRENCY",
                    "OTHER"
                  ],
                  "description": "Only meaningful when type is BONUS or EQUITY. For bonus: PERCENTAGE or CURRENCY. For equity: RSUS, UNITS, OPTIONS, etc."
                }
              },
              "required": [
                "type",
                "value_type",
                "value"
              ]
            }
          },
          "custom_fields": {
            "type": "object"
          },
          "deleted_at": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "ScheduledInterviewLite": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          }
        }
      },
      "Scorecard": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time"
          },
          "created_at": {
            "type": "string",
            "format": "date-time"
          },
          "deleted_at": {
            "type": "string",
            "format": "date-time"
          },
          "interview_id": {
            "type": "string"
          },
          "interview": {
            "type": "string"
          },
          "interview_step": {
            "$ref": "#/components/schemas/ScheduledInterviewLite"
          },
          "candidate_id": {
            "type": "string"
          },
          "application_id": {
            "type": "string"
          },
          "interviewed_at": {
            "type": "string",
            "format": "date-time"
          },
          "submitted_by": {
            "$ref": "#/components/schemas/UserLite"
          },
          "interviewer": {
            "$ref": "#/components/schemas/UserLite"
          },
          "submitted_at": {
            "type": "string",
            "format": "date-time"
          },
          "overall_recommendation": {
            "type": "string",
            "enum": [
              "strong_yes",
              "weak_yes",
              "yes",
              "no_decision",
              "weak_no",
              "no",
              "strong_no"
            ]
          },
          "overall_feedback": {
            "type": "string",
            "description": "HTML-formatted string, e.g. `<p>Great Candidate</p>`"
          },
          "questions": {
            "readOnly": true,
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string"
                },
                "question": {
                  "type": "string"
                },
                "answer": {
                  "oneOf": [
                    {
                      "type": "string"
                    },
                    {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "type": {
                  "type": "string"
                },
                "options": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "id": {
                        "type": "string"
                      },
                      "value": {
                        "type": "string"
                      }
                    }
                  },
                  "nullable": true
                }
              }
            }
          }
        }
      },
      "ScorecardCreateArgs": {
        "type": "object",
        "properties": {
          "interviewer_id": {
            "type": "string"
          },
          "submitting_user_id": {
            "type": "string"
          },
          "candidate_id": {
            "type": "string"
          },
          "overall_recommendation": {
            "type": "string",
            "enum": [
              "strong_yes",
              "weak_yes",
              "yes",
              "no_decision",
              "weak_no",
              "no",
              "strong_no"
            ]
          },
          "interview_id": {
            "type": "string"
          },
          "overall_feedback": {
            "type": "string"
          },
          "scorecard_template_id": {
            "type": "string"
          },
          "draft": {
            "type": "boolean",
            "default": false,
            "description": "If true, save the scorecard as a draft (autosave) without submitting. Re-posting with `draft: true` revises the same draft. Defaults to false, which submits the scorecard; submitted scorecards cannot be modified.",
            "example": false
          },
          "answers": {
            "type": "object",
            "description": "A mapping of question IDs to answer values. Keys are question IDs from the scorecard template, and values are the answers provided by the interviewer.\n\n**Answer formats by question type:**\n- `short_text` / `long_text`: Free-form text string\n- `numeric_rating`: Numeric value as a string (e.g., \"5\")\n- `single_select`: The option ID as a string\n- `multi_select`: Comma-separated option IDs (e.g., \"option_id_1,option_id_2\")",
            "example": {
              "question_text_id": "Strong technical skills",
              "question_numeric_id": "8",
              "question_single_select_id": "option_abc123",
              "question_multi_select_id": "option_xyz789,option_def456"
            },
            "additionalProperties": {
              "type": "string",
              "nullable": true
            }
          }
        },
        "required": [
          "candidate_id",
          "interviewer_id",
          "overall_recommendation",
          "submitting_user_id"
        ]
      },
      "CreatedScorecard": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time"
          },
          "created_at": {
            "type": "string",
            "format": "date-time"
          },
          "deleted_at": {
            "type": "string",
            "format": "date-time"
          },
          "interview_id": {
            "type": "string"
          },
          "interview": {
            "type": "string"
          },
          "interview_step": {
            "$ref": "#/components/schemas/ScheduledInterviewLite"
          },
          "candidate_id": {
            "type": "string"
          },
          "application_id": {
            "type": "string"
          },
          "interviewed_at": {
            "type": "string",
            "format": "date-time"
          },
          "submitted_by": {
            "$ref": "#/components/schemas/UserLite"
          },
          "interviewer": {
            "$ref": "#/components/schemas/UserLite"
          },
          "submitted_at": {
            "type": "string",
            "format": "date-time"
          },
          "overall_recommendation": {
            "type": "string",
            "enum": [
              "strong_yes",
              "weak_yes",
              "yes",
              "no_decision",
              "weak_no",
              "no",
              "strong_no"
            ]
          },
          "overall_feedback": {
            "type": "string",
            "description": "HTML-formatted string, e.g. `<p>Great Candidate</p>`"
          },
          "questions": {
            "readOnly": true,
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string"
                },
                "question": {
                  "type": "string"
                },
                "answer": {
                  "oneOf": [
                    {
                      "type": "string"
                    },
                    {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "type": {
                  "type": "string"
                },
                "options": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "id": {
                        "type": "string"
                      },
                      "value": {
                        "type": "string"
                      }
                    }
                  },
                  "nullable": true
                }
              }
            }
          },
          "success": {
            "default": "Scorecard successfully created",
            "type": "string"
          }
        }
      },
      "InterviewerUpdateArgs": {
        "type": "object",
        "properties": {
          "user_id": {
            "type": "string"
          },
          "email": {
            "type": "string",
            "format": "email"
          },
          "response_status": {
            "enum": [
              "needs_action",
              "declined",
              "tentative",
              "accepted"
            ]
          }
        }
      },
      "ScheduledInterviewCreateArgs": {
        "type": "object",
        "properties": {
          "application_id": {
            "type": "string"
          },
          "interview_id": {
            "type": "string"
          },
          "interviewers": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/InterviewerUpdateArgs"
            }
          },
          "start": {
            "type": "string",
            "format": "date-time"
          },
          "end": {
            "type": "string",
            "format": "date-time"
          },
          "external_event_id": {
            "type": "string"
          },
          "job_stage_interview_item_id": {
            "type": "string"
          },
          "location": {
            "type": "string"
          }
        },
        "required": [
          "application_id",
          "end",
          "external_event_id",
          "interviewers",
          "start"
        ]
      },
      "CreatedScheduledInterview": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "application_id": {
            "type": "string"
          },
          "candidate_id": {
            "type": "string"
          },
          "external_event_id": {
            "type": "string"
          },
          "start": {
            "readOnly": true,
            "type": "object",
            "properties": {
              "date_time": {
                "type": "string",
                "format": "date-time"
              }
            }
          },
          "end": {
            "readOnly": true,
            "type": "object",
            "properties": {
              "date_time": {
                "type": "string",
                "format": "date-time"
              }
            }
          },
          "location": {
            "type": "string"
          },
          "video_conferencing_url": {
            "type": "string",
            "format": "url"
          },
          "status": {
            "type": "string",
            "enum": [
              "scheduled",
              "awaiting_feedback",
              "complete"
            ]
          },
          "created_at": {
            "type": "string",
            "format": "date-time"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time"
          },
          "interview": {
            "$ref": "#/components/schemas/InterviewDefinitionLite"
          },
          "interview_kit": {
            "$ref": "#/components/schemas/InterviewKit"
          },
          "organizer": {
            "$ref": "#/components/schemas/UserLite"
          },
          "interviewers": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Interviewer"
            }
          },
          "job_stage_interview_item_id": {
            "type": "string"
          },
          "deleted_at": {
            "type": "string",
            "format": "date-time"
          },
          "success": {
            "default": "Interview successfully created",
            "type": "string"
          }
        }
      },
      "ScheduledInterviewUpdateArgs": {
        "type": "object",
        "properties": {
          "interviewers": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/InterviewerUpdateArgs"
            }
          },
          "start": {
            "type": "string",
            "format": "date-time"
          },
          "end": {
            "type": "string",
            "format": "date-time"
          },
          "external_event_id": {
            "type": "string"
          },
          "location": {
            "type": "string"
          }
        }
      },
      "Message": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          }
        }
      },
      "SourceType": {
        "type": "object",
        "properties": {
          "id": {
            "readOnly": true,
            "type": "string",
            "enum": [
              "external_job_board",
              "career_site",
              "sourced",
              "referral",
              "internal_candidate",
              "event",
              "talent_marketing",
              "agency",
              "professional_networks",
              "university",
              "scheduling_link",
              "other"
            ],
            "description": "ID of the source type."
          },
          "name": {
            "readOnly": true,
            "type": "string",
            "description": "Display name of the source type."
          }
        }
      },
      "Source": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "The unique identifier for the source.",
            "example": "c291cmNlOjEyMw"
          },
          "name": {
            "readOnly": true,
            "type": "string",
            "description": "The name of the source.",
            "example": "LinkedIn"
          },
          "type": {
            "description": "The category of the source.",
            "allOf": [
              {
                "$ref": "#/components/schemas/SourceType"
              }
            ]
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "description": "The date and time at which the source was last updated."
          },
          "is_active": {
            "type": "boolean",
            "description": "Whether the source is active."
          }
        }
      },
      "User": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "first_name": {
            "readOnly": true,
            "type": "string"
          },
          "last_name": {
            "readOnly": true,
            "type": "string"
          },
          "employee_id": {
            "readOnly": true,
            "type": "string"
          },
          "primary_email_address": {
            "type": "string",
            "format": "email"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time"
          },
          "created_at": {
            "type": "string",
            "format": "date-time"
          },
          "disabled": {
            "readOnly": true,
            "type": "boolean"
          },
          "site_admin": {
            "readOnly": true,
            "type": "boolean"
          },
          "emails": {
            "readOnly": true,
            "type": "array",
            "items": {
              "type": "string",
              "format": "email"
            }
          },
          "linked_candidate_ids": {
            "readOnly": true,
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "offices": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Location"
            }
          },
          "departments": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Department"
            }
          },
          "deleted_at": {
            "readOnly": true,
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "UserUpdateArgs": {
        "type": "object",
        "properties": {
          "user_id": {
            "type": "string"
          },
          "email": {
            "type": "string",
            "format": "email"
          }
        }
      },
      "UserUpdateOneArgs": {
        "type": "object",
        "properties": {
          "user": {
            "$ref": "#/components/schemas/UserUpdateArgs"
          }
        },
        "required": [
          "user"
        ]
      }
    },
    "responses": {
      "UNPROCESSABLE_CONTENT": {
        "description": "Unprocessable Content",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/Error"
            }
          }
        }
      },
      "DEFAULT_ERROR": {
        "description": "Default error response",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/Error"
            }
          }
        }
      }
    },
    "headers": {
      "PAGINATION": {
        "description": "Pagination metadata",
        "schema": {
          "$ref": "#/components/schemas/PaginationMetadata"
        }
      }
    }
  },
  "paths": {
    "/ats/v0/applications/": {
      "get": {
        "parameters": [
          {
            "in": "query",
            "name": "created_before",
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "required": false
          },
          {
            "in": "query",
            "name": "created_after",
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "required": false
          },
          {
            "in": "query",
            "name": "last_activity_after",
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "required": false
          },
          {
            "in": "query",
            "name": "job_id",
            "schema": {
              "type": "string"
            },
            "required": false
          },
          {
            "in": "query",
            "name": "status",
            "schema": {
              "type": "string",
              "enum": [
                "active",
                "rejected",
                "hired"
              ]
            },
            "required": false
          },
          {
            "in": "query",
            "name": "include_deleted",
            "schema": {
              "type": "boolean"
            },
            "required": false
          },
          {
            "in": "query",
            "name": "milestones",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "required": false,
            "explode": true,
            "style": "form"
          },
          {
            "in": "query",
            "name": "page",
            "schema": {
              "type": "integer",
              "default": 1,
              "minimum": 1
            },
            "required": false
          },
          {
            "in": "query",
            "name": "per_page",
            "schema": {
              "type": "integer",
              "default": 100,
              "minimum": 1
            },
            "required": false
          }
        ],
        "responses": {
          "422": {
            "$ref": "#/components/responses/UNPROCESSABLE_CONTENT"
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Application"
                  }
                }
              }
            },
            "headers": {
              "X-Pagination": {
                "$ref": "#/components/headers/PAGINATION"
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          }
        },
        "summary": "List Applications",
        "description": "Lists all of a team's applications.",
        "tags": [
          "Application"
        ]
      }
    },
    "/ats/v0/applications/{application_id}": {
      "get": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Application"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          }
        },
        "summary": "Retrieve Application",
        "description": "Get an application by its `id`.",
        "tags": [
          "Application"
        ]
      },
      "patch": {
        "responses": {
          "422": {
            "$ref": "#/components/responses/UNPROCESSABLE_CONTENT"
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Application"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ApplicationUpdateArgs"
              }
            }
          }
        },
        "summary": "Update application",
        "description": "Update an application based on the provided JSON body parameters.",
        "tags": [
          "Application"
        ],
        "parameters": [
          {
            "name": "On-Behalf-Of",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "ID of the Gem user performing the action. Use `GET /ats/v0/users` to retrieve user IDs. Returns `422` if omitted, `404` if the ID does not match an active user."
          }
        ]
      },
      "parameters": [
        {
          "in": "path",
          "name": "application_id",
          "required": true,
          "schema": {
            "type": "string",
            "minLength": 1
          }
        }
      ]
    },
    "/ats/v0/applications/{application_id}/move": {
      "post": {
        "responses": {
          "422": {
            "$ref": "#/components/responses/UNPROCESSABLE_CONTENT"
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Application"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ApplicationMoveStageArgs"
              }
            }
          }
        },
        "summary": "Move Application",
        "description": "Moves an application from its current job stage to another one.",
        "tags": [
          "Application"
        ],
        "parameters": [
          {
            "name": "On-Behalf-Of",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "ID of the Gem user performing the action. Use `GET /ats/v0/users` to retrieve user IDs. Returns `422` if omitted, `404` if the ID does not match an active user."
          }
        ]
      },
      "parameters": [
        {
          "in": "path",
          "name": "application_id",
          "required": true,
          "schema": {
            "type": "string",
            "minLength": 1
          }
        }
      ]
    },
    "/ats/v0/applications/{application_id}/scheduled_interviews": {
      "get": {
        "parameters": [
          {
            "in": "query",
            "name": "created_before",
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "required": false
          },
          {
            "in": "query",
            "name": "created_after",
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "required": false
          },
          {
            "in": "query",
            "name": "updated_before",
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "required": false
          },
          {
            "in": "query",
            "name": "updated_after",
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "required": false
          },
          {
            "in": "query",
            "name": "external_event_id",
            "schema": {
              "type": "string"
            },
            "required": false
          },
          {
            "in": "query",
            "name": "candidate_id",
            "schema": {
              "type": "string"
            },
            "required": false
          },
          {
            "in": "query",
            "name": "interviewer_id",
            "schema": {
              "type": "string"
            },
            "required": false
          },
          {
            "in": "query",
            "name": "actionable",
            "schema": {
              "type": "boolean"
            },
            "required": false
          },
          {
            "in": "query",
            "name": "include_deleted",
            "schema": {
              "type": "boolean"
            },
            "required": false
          },
          {
            "in": "query",
            "name": "page",
            "schema": {
              "type": "integer",
              "default": 1,
              "minimum": 1
            },
            "required": false
          },
          {
            "in": "query",
            "name": "per_page",
            "schema": {
              "type": "integer",
              "default": 100,
              "minimum": 1
            },
            "required": false
          }
        ],
        "responses": {
          "422": {
            "$ref": "#/components/responses/UNPROCESSABLE_CONTENT"
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ScheduledInterview"
                  }
                }
              }
            },
            "headers": {
              "X-Pagination": {
                "$ref": "#/components/headers/PAGINATION"
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          }
        },
        "summary": "List Scheduled Interviews for Application",
        "description": "Lists all of the scheduled interviews for the specified application.",
        "tags": [
          "Scheduled Interview"
        ]
      },
      "parameters": [
        {
          "in": "path",
          "name": "application_id",
          "required": true,
          "schema": {
            "type": "string",
            "minLength": 1
          }
        }
      ]
    },
    "/ats/v0/candidates/": {
      "get": {
        "parameters": [
          {
            "in": "query",
            "name": "created_before",
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "required": false
          },
          {
            "in": "query",
            "name": "created_after",
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "required": false
          },
          {
            "in": "query",
            "name": "updated_before",
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "required": false
          },
          {
            "in": "query",
            "name": "updated_after",
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "required": false
          },
          {
            "in": "query",
            "name": "job_id",
            "schema": {
              "type": "string"
            },
            "required": false
          },
          {
            "in": "query",
            "name": "email",
            "schema": {
              "type": "string",
              "format": "email"
            },
            "required": false
          },
          {
            "in": "query",
            "name": "candidate_ids",
            "description": "If `candidate_ids` is provided, only the candidates with a provided ID\n        will be returned. Please provide a comma-separated string. e.g.: `candidate_ids=123,456,789`.\n        A maximum of 50 candidate_ids can be provided.\n        ",
            "schema": {
              "type": "array",
              "items": {
                "type": "string",
                "format": "ObjectID"
              }
            },
            "required": false,
            "explode": true,
            "style": "form"
          },
          {
            "in": "query",
            "name": "include_deleted",
            "schema": {
              "type": "boolean"
            },
            "required": false
          },
          {
            "in": "query",
            "name": "page",
            "schema": {
              "type": "integer",
              "default": 1,
              "minimum": 1
            },
            "required": false
          },
          {
            "in": "query",
            "name": "per_page",
            "schema": {
              "type": "integer",
              "default": 100,
              "minimum": 1
            },
            "required": false
          }
        ],
        "responses": {
          "422": {
            "$ref": "#/components/responses/UNPROCESSABLE_CONTENT"
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Candidate"
                  }
                }
              }
            },
            "headers": {
              "X-Pagination": {
                "$ref": "#/components/headers/PAGINATION"
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          }
        },
        "summary": "List Candidates",
        "description": "Lists all of a team's candidates.",
        "tags": [
          "Candidate"
        ]
      },
      "post": {
        "responses": {
          "422": {
            "$ref": "#/components/responses/UNPROCESSABLE_CONTENT"
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Candidate"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CandidateCreateArgs"
              }
            }
          }
        },
        "summary": "Create Candidate",
        "description": "Create a candidate (and application) for a job. To create a prospect instead,\nuse `POST /v0/candidates`.\nWill return a `409` error if the candidate already has an active application on the job.",
        "tags": [
          "Candidate"
        ],
        "parameters": [
          {
            "name": "On-Behalf-Of",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "ID of the Gem user performing the action. Use `GET /ats/v0/users` to retrieve user IDs. Returns `422` if omitted, `404` if the ID does not match an active user."
          }
        ]
      }
    },
    "/ats/v0/candidates/{candidate_id}": {
      "get": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Candidate"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          }
        },
        "summary": "Retrieve Candidate",
        "description": "Get a candidate by its `id`.",
        "tags": [
          "Candidate"
        ]
      },
      "patch": {
        "responses": {
          "422": {
            "$ref": "#/components/responses/UNPROCESSABLE_CONTENT"
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Candidate"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CandidateUpdateArgs"
              }
            }
          }
        },
        "summary": "Update Candidate",
        "description": "Update a candidate based on the provided JSON body parameters.",
        "tags": [
          "Candidate"
        ],
        "parameters": [
          {
            "name": "On-Behalf-Of",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "ID of the Gem user performing the action. Use `GET /ats/v0/users` to retrieve user IDs. Returns `422` if omitted, `404` if the ID does not match an active user."
          }
        ]
      },
      "parameters": [
        {
          "in": "path",
          "name": "candidate_id",
          "required": true,
          "schema": {
            "type": "string",
            "minLength": 1
          }
        }
      ]
    },
    "/ats/v0/candidates/{candidate_id}/activity_feed/notes": {
      "post": {
        "responses": {
          "422": {
            "$ref": "#/components/responses/UNPROCESSABLE_CONTENT"
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Note"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CandidateNoteCreateArgs"
              }
            }
          }
        },
        "summary": "Create Candidate Note",
        "tags": [
          "Candidate"
        ],
        "parameters": [
          {
            "name": "On-Behalf-Of",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "ID of the Gem user performing the action. Use `GET /ats/v0/users` to retrieve user IDs. Returns `422` if omitted, `404` if the ID does not match an active user."
          }
        ]
      },
      "parameters": [
        {
          "in": "path",
          "name": "candidate_id",
          "required": true,
          "schema": {
            "type": "string",
            "minLength": 1
          }
        }
      ]
    },
    "/ats/v0/candidates/{candidate_id}/activity_feed/emails": {
      "post": {
        "responses": {
          "422": {
            "$ref": "#/components/responses/UNPROCESSABLE_CONTENT"
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Email"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CandidateEmailCreateArgs"
              }
            }
          }
        },
        "summary": "Create Candidate Email",
        "tags": [
          "Candidate"
        ],
        "parameters": [
          {
            "name": "On-Behalf-Of",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "ID of the Gem user performing the action. Use `GET /ats/v0/users` to retrieve user IDs. Returns `422` if omitted, `404` if the ID does not match an active user."
          }
        ]
      },
      "parameters": [
        {
          "in": "path",
          "name": "candidate_id",
          "required": true,
          "schema": {
            "type": "string",
            "minLength": 1
          }
        }
      ]
    },
    "/ats/v0/job_posts/": {
      "get": {
        "parameters": [
          {
            "in": "query",
            "name": "created_before",
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "required": false
          },
          {
            "in": "query",
            "name": "created_after",
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "required": false
          },
          {
            "in": "query",
            "name": "updated_before",
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "required": false
          },
          {
            "in": "query",
            "name": "updated_after",
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "required": false
          },
          {
            "in": "query",
            "name": "active",
            "schema": {
              "type": "boolean"
            },
            "required": false
          },
          {
            "in": "query",
            "name": "internal",
            "schema": {
              "type": "boolean"
            },
            "required": false
          },
          {
            "in": "query",
            "name": "external",
            "schema": {
              "type": "boolean"
            },
            "required": false
          },
          {
            "in": "query",
            "name": "listed",
            "schema": {
              "type": "boolean"
            },
            "required": false
          },
          {
            "in": "query",
            "name": "live",
            "schema": {
              "type": "boolean"
            },
            "required": false
          },
          {
            "in": "query",
            "name": "page",
            "schema": {
              "type": "integer",
              "default": 1,
              "minimum": 1
            },
            "required": false
          },
          {
            "in": "query",
            "name": "per_page",
            "schema": {
              "type": "integer",
              "default": 100,
              "minimum": 1
            },
            "required": false
          }
        ],
        "responses": {
          "422": {
            "$ref": "#/components/responses/UNPROCESSABLE_CONTENT"
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/JobPostResponse"
                  }
                }
              }
            },
            "headers": {
              "X-Pagination": {
                "$ref": "#/components/headers/PAGINATION"
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          }
        },
        "summary": "List Job Posts",
        "description": "Lists all of a team's job posts.",
        "tags": [
          "Job Post"
        ]
      }
    },
    "/ats/v0/job_stages/": {
      "get": {
        "parameters": [
          {
            "in": "query",
            "name": "created_before",
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "required": false
          },
          {
            "in": "query",
            "name": "created_after",
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "required": false
          },
          {
            "in": "query",
            "name": "updated_before",
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "required": false
          },
          {
            "in": "query",
            "name": "updated_after",
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "required": false
          },
          {
            "in": "query",
            "name": "include_deleted",
            "schema": {
              "type": "boolean"
            },
            "required": false
          },
          {
            "in": "query",
            "name": "page",
            "schema": {
              "type": "integer",
              "default": 1,
              "minimum": 1
            },
            "required": false
          },
          {
            "in": "query",
            "name": "per_page",
            "schema": {
              "type": "integer",
              "default": 100,
              "minimum": 1
            },
            "required": false
          }
        ],
        "responses": {
          "422": {
            "$ref": "#/components/responses/UNPROCESSABLE_CONTENT"
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/JobStage"
                  }
                }
              }
            },
            "headers": {
              "X-Pagination": {
                "$ref": "#/components/headers/PAGINATION"
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          }
        },
        "summary": "List Job Stages",
        "description": "Lists all of a team's job stages.",
        "tags": [
          "Job Stage"
        ]
      }
    },
    "/ats/v0/job_stages/{job_stage_id}": {
      "get": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/JobStage"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          }
        },
        "summary": "Retrieve Job Stage",
        "description": "Get a job stage by its `id`.",
        "tags": [
          "Job Stage"
        ]
      },
      "parameters": [
        {
          "in": "path",
          "name": "job_stage_id",
          "required": true,
          "schema": {
            "type": "string",
            "minLength": 1
          }
        }
      ]
    },
    "/ats/v0/jobs/": {
      "get": {
        "parameters": [
          {
            "in": "query",
            "name": "created_before",
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "required": false
          },
          {
            "in": "query",
            "name": "created_after",
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "required": false
          },
          {
            "in": "query",
            "name": "updated_before",
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "required": false
          },
          {
            "in": "query",
            "name": "updated_after",
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "required": false
          },
          {
            "in": "query",
            "name": "requisition_id",
            "schema": {
              "type": "string"
            },
            "required": false
          },
          {
            "in": "query",
            "name": "status",
            "schema": {
              "type": "string"
            },
            "required": false
          },
          {
            "in": "query",
            "name": "department_id",
            "schema": {
              "type": "string"
            },
            "required": false
          },
          {
            "in": "query",
            "name": "office_id",
            "schema": {
              "type": "string"
            },
            "required": false
          },
          {
            "in": "query",
            "name": "include_deleted",
            "schema": {
              "type": "boolean"
            },
            "required": false
          },
          {
            "in": "query",
            "name": "page",
            "schema": {
              "type": "integer",
              "default": 1,
              "minimum": 1
            },
            "required": false
          },
          {
            "in": "query",
            "name": "per_page",
            "schema": {
              "type": "integer",
              "default": 100,
              "minimum": 1
            },
            "required": false
          }
        ],
        "responses": {
          "422": {
            "$ref": "#/components/responses/UNPROCESSABLE_CONTENT"
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Job"
                  }
                }
              }
            },
            "headers": {
              "X-Pagination": {
                "$ref": "#/components/headers/PAGINATION"
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          }
        },
        "summary": "List Jobs",
        "description": "Lists all of a team's jobs.",
        "tags": [
          "Job"
        ]
      },
      "post": {
        "responses": {
          "422": {
            "$ref": "#/components/responses/UNPROCESSABLE_CONTENT"
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Job"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/JobCreateArgs"
              }
            }
          }
        },
        "summary": "Create Job",
        "description": "Create a new draft job by copying from a template (or other source job).\n`template_job_id` and `number_of_openings` are required. Optional fields\noverride values copied from the template. `opening_ids`, if provided,\nsets the customer-facing identifier on each new opening; its length must\nequal `number_of_openings`. If `job_post_name` is provided, the first\njob post on the new job is renamed (or one is created if the template\nhas none).",
        "tags": [
          "Job"
        ],
        "parameters": [
          {
            "name": "On-Behalf-Of",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "ID of the Gem user performing the action. Use `GET /ats/v0/users` to retrieve user IDs. Returns `422` if omitted, `404` if the ID does not match an active user."
          }
        ]
      }
    },
    "/ats/v0/jobs/{job_id}": {
      "get": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Job"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          }
        },
        "summary": "Retrieve Job",
        "description": "Get a job by its `id`.",
        "tags": [
          "Job"
        ]
      },
      "patch": {
        "responses": {
          "422": {
            "$ref": "#/components/responses/UNPROCESSABLE_CONTENT"
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Job"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/JobUpdateArgs"
              }
            }
          }
        },
        "summary": "Update Job",
        "description": "Update a job's fields. All body fields are optional; only fields present\nin the body will be modified.",
        "tags": [
          "Job"
        ],
        "parameters": [
          {
            "name": "On-Behalf-Of",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "ID of the Gem user performing the action. Use `GET /ats/v0/users` to retrieve user IDs. Returns `422` if omitted, `404` if the ID does not match an active user."
          }
        ]
      },
      "parameters": [
        {
          "in": "path",
          "name": "job_id",
          "required": true,
          "schema": {
            "type": "string",
            "minLength": 1
          }
        }
      ]
    },
    "/ats/v0/jobs/{job_id}/stages": {
      "get": {
        "parameters": [
          {
            "in": "query",
            "name": "created_before",
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "required": false
          },
          {
            "in": "query",
            "name": "created_after",
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "required": false
          },
          {
            "in": "query",
            "name": "updated_before",
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "required": false
          },
          {
            "in": "query",
            "name": "updated_after",
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "required": false
          },
          {
            "in": "query",
            "name": "include_deleted",
            "schema": {
              "type": "boolean"
            },
            "required": false
          },
          {
            "in": "query",
            "name": "page",
            "schema": {
              "type": "integer",
              "default": 1,
              "minimum": 1
            },
            "required": false
          },
          {
            "in": "query",
            "name": "per_page",
            "schema": {
              "type": "integer",
              "default": 100,
              "minimum": 1
            },
            "required": false
          }
        ],
        "responses": {
          "422": {
            "$ref": "#/components/responses/UNPROCESSABLE_CONTENT"
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/JobStage"
                  }
                }
              }
            },
            "headers": {
              "X-Pagination": {
                "$ref": "#/components/headers/PAGINATION"
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          }
        },
        "summary": "List Job Stages for Job",
        "description": "Lists all of the stages for the specified job.",
        "tags": [
          "Job Stage"
        ]
      },
      "parameters": [
        {
          "in": "path",
          "name": "job_id",
          "required": true,
          "schema": {
            "type": "string",
            "minLength": 1
          }
        }
      ]
    },
    "/ats/v0/jobs/{job_id}/openings": {
      "post": {
        "responses": {
          "422": {
            "$ref": "#/components/responses/UNPROCESSABLE_CONTENT"
          },
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Opening"
                  }
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateJobOpeningsArgs"
              }
            }
          }
        },
        "summary": "Create Openings",
        "description": "Create one or more openings on the specified job. One opening is created per element of the\n`openings` array; each may supply an `opening_id`. An empty array creates nothing.",
        "tags": [
          "Opening"
        ],
        "parameters": [
          {
            "name": "On-Behalf-Of",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "ID of the Gem user performing the action. Use `GET /ats/v0/users` to retrieve user IDs. Returns `422` if omitted, `404` if the ID does not match an active user."
          }
        ]
      },
      "parameters": [
        {
          "in": "path",
          "name": "job_id",
          "required": true,
          "schema": {
            "type": "string",
            "minLength": 1
          }
        }
      ]
    },
    "/ats/v0/jobs/{job_id}/hiring_team": {
      "post": {
        "responses": {
          "422": {
            "$ref": "#/components/responses/UNPROCESSABLE_CONTENT"
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Job"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/JobHiringTeamSetArgs"
              }
            }
          }
        },
        "summary": "Add Hiring Team Members",
        "description": "Add users to the hiring team on the specified job without removing anyone.\nEach of the four roles (hiring_managers, recruiters, coordinators,\nsourcers) is independently optional: **omit** a role to leave its members\nunchanged; pass a list to add those users to the role. Users already\npresent in a role are silently skipped. Unlike PUT, no users are ever\nremoved by this endpoint.",
        "tags": [
          "Job"
        ],
        "parameters": [
          {
            "name": "On-Behalf-Of",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "ID of the Gem user performing the action. Use `GET /ats/v0/users` to retrieve user IDs. Returns `422` if omitted, `404` if the ID does not match an active user."
          }
        ]
      },
      "put": {
        "responses": {
          "422": {
            "$ref": "#/components/responses/UNPROCESSABLE_CONTENT"
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Job"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/JobHiringTeamSetArgs"
              }
            }
          }
        },
        "summary": "Replace Hiring Team",
        "description": "Replace the hiring team on the specified job. Each of the four roles\n(hiring_managers, recruiters, coordinators, sourcers) is independently\noptional: **omit** a role to leave its members unchanged; pass an **empty\nlist** to clear it. When provided, the list is the complete set for that\nrole \u2014 users in the list are added, users currently in the role but not in\nthe list are removed. Removals cascade to the job's job posts.",
        "tags": [
          "Job"
        ],
        "parameters": [
          {
            "name": "On-Behalf-Of",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "ID of the Gem user performing the action. Use `GET /ats/v0/users` to retrieve user IDs. Returns `422` if omitted, `404` if the ID does not match an active user."
          }
        ]
      },
      "parameters": [
        {
          "in": "path",
          "name": "job_id",
          "required": true,
          "schema": {
            "type": "string",
            "minLength": 1
          }
        }
      ]
    },
    "/ats/v0/jobs/{job_id}/openings/{opening_id}": {
      "patch": {
        "responses": {
          "422": {
            "$ref": "#/components/responses/UNPROCESSABLE_CONTENT"
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Opening"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/OpeningUpdateArgs"
              }
            }
          }
        },
        "summary": "Edit Opening",
        "description": "Open or close an opening on the specified job, and/or update its custom fields.\n`status` may be `open` or `closed`; `close_reason_id` and `closed_at` are honored\nwhen closing. `custom_fields` sets or clears the opening's custom field values.",
        "tags": [
          "Opening"
        ],
        "parameters": [
          {
            "name": "On-Behalf-Of",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "ID of the Gem user performing the action. Use `GET /ats/v0/users` to retrieve user IDs. Returns `422` if omitted, `404` if the ID does not match an active user."
          }
        ]
      },
      "parameters": [
        {
          "in": "path",
          "name": "job_id",
          "required": true,
          "schema": {
            "type": "string",
            "minLength": 1
          }
        },
        {
          "in": "path",
          "name": "opening_id",
          "required": true,
          "schema": {
            "type": "string",
            "minLength": 1
          }
        }
      ]
    },
    "/ats/v0/offers/": {
      "get": {
        "parameters": [
          {
            "in": "query",
            "name": "created_before",
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "required": false
          },
          {
            "in": "query",
            "name": "created_after",
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "required": false
          },
          {
            "in": "query",
            "name": "updated_before",
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "required": false
          },
          {
            "in": "query",
            "name": "updated_after",
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "required": false
          },
          {
            "in": "query",
            "name": "sent_after",
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "required": false
          },
          {
            "in": "query",
            "name": "sent_before",
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "required": false
          },
          {
            "in": "query",
            "name": "starts_after",
            "schema": {
              "type": "string",
              "format": "date"
            },
            "required": false
          },
          {
            "in": "query",
            "name": "starts_before",
            "schema": {
              "type": "string",
              "format": "date"
            },
            "required": false
          },
          {
            "in": "query",
            "name": "include_deleted",
            "schema": {
              "type": "boolean"
            },
            "required": false
          },
          {
            "in": "query",
            "name": "page",
            "schema": {
              "type": "integer",
              "default": 1,
              "minimum": 1
            },
            "required": false
          },
          {
            "in": "query",
            "name": "per_page",
            "schema": {
              "type": "integer",
              "default": 100,
              "minimum": 1
            },
            "required": false
          }
        ],
        "responses": {
          "422": {
            "$ref": "#/components/responses/UNPROCESSABLE_CONTENT"
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Offer"
                  }
                }
              }
            },
            "headers": {
              "X-Pagination": {
                "$ref": "#/components/headers/PAGINATION"
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          }
        },
        "summary": "List Offers",
        "description": "Lists all of a team's offers.",
        "tags": [
          "Offer"
        ]
      }
    },
    "/ats/v0/offers/{offer_id}": {
      "get": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Offer"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          }
        },
        "summary": "Retrieve Offer",
        "description": "Get an offer by its `id`.",
        "tags": [
          "Offer"
        ]
      },
      "parameters": [
        {
          "in": "path",
          "name": "offer_id",
          "required": true,
          "schema": {
            "type": "string",
            "minLength": 1
          }
        }
      ]
    },
    "/ats/v0/openings/": {
      "get": {
        "parameters": [
          {
            "in": "query",
            "name": "created_before",
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "required": false
          },
          {
            "in": "query",
            "name": "created_after",
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "required": false
          },
          {
            "in": "query",
            "name": "updated_before",
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "required": false
          },
          {
            "in": "query",
            "name": "updated_after",
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "required": false
          },
          {
            "in": "query",
            "name": "include_deleted",
            "schema": {
              "type": "boolean"
            },
            "required": false
          },
          {
            "in": "query",
            "name": "status",
            "schema": {
              "type": "string"
            },
            "required": false
          },
          {
            "in": "query",
            "name": "page",
            "schema": {
              "type": "integer",
              "default": 1,
              "minimum": 1
            },
            "required": false
          },
          {
            "in": "query",
            "name": "per_page",
            "schema": {
              "type": "integer",
              "default": 100,
              "minimum": 1
            },
            "required": false
          }
        ],
        "responses": {
          "422": {
            "$ref": "#/components/responses/UNPROCESSABLE_CONTENT"
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Opening"
                  }
                }
              }
            },
            "headers": {
              "X-Pagination": {
                "$ref": "#/components/headers/PAGINATION"
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          }
        },
        "summary": "List Openings",
        "description": "Lists all of a team's openings.",
        "tags": [
          "Opening"
        ]
      }
    },
    "/ats/v0/openings/{opening_id}": {
      "get": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Opening"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          }
        },
        "summary": "Retrieve Opening",
        "description": "Get an opening by its `id`.",
        "tags": [
          "Opening"
        ]
      },
      "parameters": [
        {
          "in": "path",
          "name": "opening_id",
          "required": true,
          "schema": {
            "type": "string",
            "minLength": 1
          }
        }
      ]
    },
    "/ats/v0/offices/": {
      "get": {
        "parameters": [
          {
            "in": "query",
            "name": "include_deleted",
            "schema": {
              "type": "boolean"
            },
            "required": false
          },
          {
            "in": "query",
            "name": "page",
            "schema": {
              "type": "integer",
              "default": 1,
              "minimum": 1
            },
            "required": false
          },
          {
            "in": "query",
            "name": "per_page",
            "schema": {
              "type": "integer",
              "default": 100,
              "minimum": 1
            },
            "required": false
          }
        ],
        "responses": {
          "422": {
            "$ref": "#/components/responses/UNPROCESSABLE_CONTENT"
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Location"
                  }
                }
              }
            },
            "headers": {
              "X-Pagination": {
                "$ref": "#/components/headers/PAGINATION"
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          }
        },
        "summary": "List Locations",
        "description": "Lists all of a team's locations.",
        "tags": [
          "Location"
        ]
      }
    },
    "/ats/v0/scorecards/": {
      "get": {
        "parameters": [
          {
            "in": "query",
            "name": "created_before",
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "required": false
          },
          {
            "in": "query",
            "name": "created_after",
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "required": false
          },
          {
            "in": "query",
            "name": "updated_before",
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "required": false
          },
          {
            "in": "query",
            "name": "updated_after",
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "required": false
          },
          {
            "in": "query",
            "name": "page",
            "schema": {
              "type": "integer",
              "default": 1,
              "minimum": 1
            },
            "required": false
          },
          {
            "in": "query",
            "name": "per_page",
            "schema": {
              "type": "integer",
              "default": 100,
              "minimum": 1
            },
            "required": false
          }
        ],
        "responses": {
          "422": {
            "$ref": "#/components/responses/UNPROCESSABLE_CONTENT"
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Scorecard"
                  }
                }
              }
            },
            "headers": {
              "X-Pagination": {
                "$ref": "#/components/headers/PAGINATION"
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          }
        },
        "summary": "List Scorecards",
        "description": "Lists all of a team's scorecards.",
        "tags": [
          "Scorecard"
        ]
      },
      "post": {
        "responses": {
          "422": {
            "$ref": "#/components/responses/UNPROCESSABLE_CONTENT"
          },
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CreatedScorecard"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ScorecardCreateArgs"
              }
            }
          }
        },
        "summary": "Create Scorecard",
        "description": "Create a scorecard based on the provided JSON body parameters.\nIf no `interview_id` is provided, a prospect scorecard will be created.\nIf an `interview_id` is provided, an interview scorecard will be submitted\nfor the corresponding scheduled interview and interview; if a scorecard was\nalready submitted, an error will be returned. Note, `interviewer_id` must\ncorrespond to an interviewer already associated with the scheduled interview.\n\nPass `draft: true` to save the scorecard without submitting it; the draft\ncan be revised by subsequent POSTs and finalized by re-posting with\n`draft: false` (the default).",
        "tags": [
          "Scorecard"
        ],
        "parameters": [
          {
            "name": "On-Behalf-Of",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "ID of the Gem user performing the action. Use `GET /ats/v0/users` to retrieve user IDs. Returns `422` if omitted, `404` if the ID does not match an active user."
          }
        ]
      }
    },
    "/ats/v0/scorecards/{scorecard_id}": {
      "get": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Scorecard"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          }
        },
        "summary": "Retrieve Scorecard",
        "description": "Get a scorecard by its `id`.",
        "tags": [
          "Scorecard"
        ]
      },
      "parameters": [
        {
          "in": "path",
          "name": "scorecard_id",
          "required": true,
          "schema": {
            "type": "string",
            "minLength": 1
          }
        }
      ]
    },
    "/ats/v0/scheduled_interviews/": {
      "get": {
        "parameters": [
          {
            "in": "query",
            "name": "created_before",
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "required": false
          },
          {
            "in": "query",
            "name": "created_after",
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "required": false
          },
          {
            "in": "query",
            "name": "updated_before",
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "required": false
          },
          {
            "in": "query",
            "name": "updated_after",
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "required": false
          },
          {
            "in": "query",
            "name": "starts_before",
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "required": false
          },
          {
            "in": "query",
            "name": "starts_after",
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "required": false
          },
          {
            "in": "query",
            "name": "ends_before",
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "required": false
          },
          {
            "in": "query",
            "name": "ends_after",
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "required": false
          },
          {
            "in": "query",
            "name": "external_event_id",
            "schema": {
              "type": "string"
            },
            "required": false
          },
          {
            "in": "query",
            "name": "application_id",
            "schema": {
              "type": "string"
            },
            "required": false
          },
          {
            "in": "query",
            "name": "candidate_id",
            "schema": {
              "type": "string"
            },
            "required": false
          },
          {
            "in": "query",
            "name": "interviewer_id",
            "schema": {
              "type": "string"
            },
            "required": false
          },
          {
            "in": "query",
            "name": "actionable",
            "schema": {
              "type": "boolean"
            },
            "required": false
          },
          {
            "in": "query",
            "name": "include_deleted",
            "schema": {
              "type": "boolean"
            },
            "required": false
          },
          {
            "in": "query",
            "name": "page",
            "schema": {
              "type": "integer",
              "default": 1,
              "minimum": 1
            },
            "required": false
          },
          {
            "in": "query",
            "name": "per_page",
            "schema": {
              "type": "integer",
              "default": 100,
              "minimum": 1
            },
            "required": false
          }
        ],
        "responses": {
          "422": {
            "$ref": "#/components/responses/UNPROCESSABLE_CONTENT"
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ScheduledInterview"
                  }
                }
              }
            },
            "headers": {
              "X-Pagination": {
                "$ref": "#/components/headers/PAGINATION"
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          }
        },
        "summary": "List Scheduled Interviews",
        "description": "Lists all of a team's scheduled interviews. Pending or cancelled interviews are not included.",
        "tags": [
          "Scheduled Interview"
        ]
      },
      "post": {
        "responses": {
          "422": {
            "$ref": "#/components/responses/UNPROCESSABLE_CONTENT"
          },
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CreatedScheduledInterview"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ScheduledInterviewCreateArgs"
              }
            }
          }
        },
        "summary": "Create Scheduled Interview",
        "description": "Create and schedule an interview based on the provided JSON body parameters.",
        "tags": [
          "Scheduled Interview"
        ],
        "parameters": [
          {
            "name": "On-Behalf-Of",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "ID of the Gem user performing the action. Use `GET /ats/v0/users` to retrieve user IDs. Returns `422` if omitted, `404` if the ID does not match an active user."
          }
        ]
      }
    },
    "/ats/v0/scheduled_interviews/{scheduled_interview_id}": {
      "get": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ScheduledInterview"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          }
        },
        "summary": "Get Scheduled Interview",
        "description": "Get a scheduled interview by its `id`.",
        "tags": [
          "Scheduled Interview"
        ]
      },
      "patch": {
        "responses": {
          "422": {
            "$ref": "#/components/responses/UNPROCESSABLE_CONTENT"
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ScheduledInterview"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ScheduledInterviewUpdateArgs"
              }
            }
          }
        },
        "summary": "Update Scheduled Interview",
        "description": "Update a scheduled interview based on the provided JSON body parameters.\nOnly interviews scheduled via the ATS API can be updated. Additionally, only interviews with\nthe following statuses can be updated: `scheduled`, `awaiting_feedback`.",
        "tags": [
          "Scheduled Interview"
        ],
        "parameters": [
          {
            "name": "On-Behalf-Of",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "ID of the Gem user performing the action. Use `GET /ats/v0/users` to retrieve user IDs. Returns `422` if omitted, `404` if the ID does not match an active user."
          }
        ]
      },
      "delete": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Message"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          }
        },
        "summary": "Delete Scheduled Interview",
        "description": "Delete a scheduled interview.\nOnly interviews scheduled via the ATS API can be deleted. Additionally, only interviews with\nthe following statuses can be deleted: `scheduled`, `awaiting_feedback`.",
        "tags": [
          "Scheduled Interview"
        ],
        "parameters": [
          {
            "name": "On-Behalf-Of",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "ID of the Gem user performing the action. Use `GET /ats/v0/users` to retrieve user IDs. Returns `422` if omitted, `404` if the ID does not match an active user."
          }
        ]
      },
      "parameters": [
        {
          "in": "path",
          "name": "scheduled_interview_id",
          "required": true,
          "schema": {
            "type": "string",
            "minLength": 1
          }
        }
      ]
    },
    "/ats/v0/sources/": {
      "get": {
        "parameters": [
          {
            "in": "query",
            "name": "is_active",
            "schema": {
              "type": "boolean"
            },
            "required": false
          },
          {
            "in": "query",
            "name": "page",
            "schema": {
              "type": "integer",
              "default": 1,
              "minimum": 1
            },
            "required": false
          },
          {
            "in": "query",
            "name": "per_page",
            "schema": {
              "type": "integer",
              "default": 100,
              "minimum": 1
            },
            "required": false
          }
        ],
        "responses": {
          "422": {
            "$ref": "#/components/responses/UNPROCESSABLE_CONTENT"
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/Source"
                  }
                }
              }
            },
            "headers": {
              "X-Pagination": {
                "$ref": "#/components/headers/PAGINATION"
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          }
        },
        "summary": "List Sources",
        "description": "Lists all of a team's sources.",
        "tags": [
          "Source"
        ]
      }
    },
    "/ats/v0/sources/{source_id}": {
      "get": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Source"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          }
        },
        "summary": "Retrieve Source",
        "description": "Get a source by its `id`.",
        "tags": [
          "Source"
        ]
      },
      "parameters": [
        {
          "in": "path",
          "name": "source_id",
          "required": true,
          "schema": {
            "type": "string",
            "minLength": 1
          }
        }
      ]
    },
    "/ats/v0/users/": {
      "get": {
        "parameters": [
          {
            "in": "query",
            "name": "created_before",
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "required": false
          },
          {
            "in": "query",
            "name": "created_after",
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "required": false
          },
          {
            "in": "query",
            "name": "updated_before",
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "required": false
          },
          {
            "in": "query",
            "name": "updated_after",
            "schema": {
              "type": "string",
              "format": "date-time"
            },
            "required": false
          },
          {
            "in": "query",
            "name": "email",
            "schema": {
              "type": "string",
              "format": "email"
            },
            "required": false
          },
          {
            "in": "query",
            "name": "include_deleted",
            "schema": {
              "type": "boolean"
            },
            "required": false
          },
          {
            "in": "query",
            "name": "page",
            "schema": {
              "type": "integer",
              "default": 1,
              "minimum": 1
            },
            "required": false
          },
          {
            "in": "query",
            "name": "per_page",
            "schema": {
              "type": "integer",
              "default": 100,
              "minimum": 1
            },
            "required": false
          }
        ],
        "responses": {
          "422": {
            "$ref": "#/components/responses/UNPROCESSABLE_CONTENT"
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/User"
                  }
                }
              }
            },
            "headers": {
              "X-Pagination": {
                "$ref": "#/components/headers/PAGINATION"
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          }
        },
        "summary": "List users",
        "description": "List all of a team's users.",
        "tags": [
          "User"
        ]
      }
    },
    "/ats/v0/users/{user_id}": {
      "get": {
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/User"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          }
        },
        "summary": "Retrieve User",
        "description": "Get a user by its `id`.",
        "tags": [
          "User"
        ]
      },
      "parameters": [
        {
          "in": "path",
          "name": "user_id",
          "required": true,
          "schema": {
            "type": "string",
            "minLength": 1
          }
        }
      ]
    },
    "/ats/v0/users/disable": {
      "patch": {
        "responses": {
          "422": {
            "$ref": "#/components/responses/UNPROCESSABLE_CONTENT"
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/User"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UserUpdateOneArgs"
              }
            }
          }
        },
        "summary": "Disable User",
        "description": "Disable a user. Side-effects cannot be undone, which include:\n- Active sequences will be paused.\n- Scheduled automated reports will be paused.\n- Actions linked to any saved searches will be disabled.",
        "tags": [
          "User"
        ],
        "parameters": [
          {
            "name": "On-Behalf-Of",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "ID of the Gem user performing the action. Use `GET /ats/v0/users` to retrieve user IDs. Returns `422` if omitted, `404` if the ID does not match an active user."
          }
        ]
      }
    },
    "/ats/v0/users/enable": {
      "patch": {
        "responses": {
          "422": {
            "$ref": "#/components/responses/UNPROCESSABLE_CONTENT"
          },
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/User"
                }
              }
            }
          },
          "default": {
            "$ref": "#/components/responses/DEFAULT_ERROR"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UserUpdateOneArgs"
              }
            }
          }
        },
        "summary": "Enable User",
        "description": "Enable a user.",
        "tags": [
          "User"
        ],
        "parameters": [
          {
            "name": "On-Behalf-Of",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "ID of the Gem user performing the action. Use `GET /ats/v0/users` to retrieve user IDs. Returns `422` if omitted, `404` if the ID does not match an active user."
          }
        ]
      }
    }
  },
  "tags": [
    {
      "name": "Application",
      "description": "Operations on applications"
    },
    {
      "name": "Candidate",
      "description": "Operations on candidates"
    },
    {
      "name": "Job Post",
      "description": "Operations on job post"
    },
    {
      "name": "Job Stage",
      "description": "Operations on job stage"
    },
    {
      "name": "Job",
      "description": "Operations on job"
    },
    {
      "name": "Offer",
      "description": "Operations on offers"
    },
    {
      "name": "Opening",
      "description": "Operations on job openings"
    },
    {
      "name": "Location",
      "description": "Operations on location"
    },
    {
      "name": "Scorecard",
      "description": "Operations on scorecard"
    },
    {
      "name": "Scheduled Interview",
      "description": "Operations on scheduled interviews"
    },
    {
      "name": "Source",
      "description": "Operations on sources"
    },
    {
      "name": "User",
      "description": "Operations on user"
    }
  ],
  "openapi": "3.0.2"
}