{
  "service": "teamtailor",
  "displayName": "Teamtailor",
  "categories": [
    "Productivity"
  ],
  "authTypes": [
    "api_key"
  ],
  "auth": [
    {
      "type": "api_key",
      "label": "API Key",
      "placeholder": "teamtailor_api_key",
      "description": "Teamtailor API key sent with the Authorization: Token token=<key> header. Manage keys under Settings > Integrations > API keys: https://app.teamtailor.com/app/settings/integrations/api-keys.",
      "extraFields": [
        {
          "key": "stack",
          "label": "Stack",
          "inputType": "text",
          "required": false,
          "secret": false,
          "placeholder": "eu",
          "description": "Teamtailor data stack. Use eu for api.teamtailor.com or na for api.na.teamtailor.com."
        }
      ]
    }
  ],
  "homepageUrl": "https://www.teamtailor.com/",
  "actions": [
    {
      "id": "teamtailor.list_departments",
      "service": "teamtailor",
      "name": "list_departments",
      "description": "List Teamtailor departments with optional include and cursor pagination.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "stack": {
            "type": "string",
            "enum": [
              "eu",
              "na"
            ],
            "description": "The Teamtailor stack that stores the account data."
          },
          "pageSize": {
            "type": "integer",
            "minimum": 1,
            "maximum": 30,
            "description": "The number of resources to return. Teamtailor allows at most 30."
          },
          "pageAfter": {
            "type": "string",
            "minLength": 1,
            "description": "The cursor for the next page returned by Teamtailor links."
          },
          "pageBefore": {
            "type": "string",
            "minLength": 1,
            "description": "The cursor for the previous page returned by Teamtailor links."
          },
          "include": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1,
              "description": "A Teamtailor relationship name."
            },
            "description": "JSON:API relationship names to include in the Teamtailor response."
          },
          "sort": {
            "type": "string",
            "minLength": 1,
            "description": "Teamtailor sort expression, such as id or name."
          }
        },
        "additionalProperties": false,
        "description": "Action input."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true,
              "description": "A Teamtailor JSON:API resource object."
            },
            "description": "Teamtailor department resource objects."
          },
          "included": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true,
              "description": "A Teamtailor JSON:API resource object."
            },
            "description": "Included JSON:API resources returned by Teamtailor."
          },
          "links": {
            "anyOf": [
              {
                "type": "object",
                "properties": {},
                "additionalProperties": true,
                "description": "Teamtailor JSON:API pagination links."
              },
              {
                "type": "null"
              }
            ]
          },
          "meta": {
            "anyOf": [
              {
                "type": "object",
                "properties": {},
                "additionalProperties": true,
                "description": "Teamtailor JSON:API response metadata."
              },
              {
                "type": "null"
              }
            ]
          },
          "raw": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "The raw Teamtailor JSON:API response."
          }
        },
        "additionalProperties": false,
        "required": [
          "data",
          "included",
          "links",
          "meta",
          "raw"
        ],
        "description": "Teamtailor departments list response."
      }
    },
    {
      "id": "teamtailor.list_jobs",
      "service": "teamtailor",
      "name": "list_jobs",
      "description": "List Teamtailor jobs with optional department, location, status, include, and cursor pagination parameters.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "stack": {
            "type": "string",
            "enum": [
              "eu",
              "na"
            ],
            "description": "The Teamtailor stack that stores the account data."
          },
          "pageSize": {
            "type": "integer",
            "minimum": 1,
            "maximum": 30,
            "description": "The number of resources to return. Teamtailor allows at most 30."
          },
          "pageAfter": {
            "type": "string",
            "minLength": 1,
            "description": "The cursor for the next page returned by Teamtailor links."
          },
          "pageBefore": {
            "type": "string",
            "minLength": 1,
            "description": "The cursor for the previous page returned by Teamtailor links."
          },
          "include": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1,
              "description": "A Teamtailor relationship name."
            },
            "description": "JSON:API relationship names to include in the Teamtailor response."
          },
          "departmentId": {
            "type": "string",
            "minLength": 1,
            "description": "Only return jobs for this Teamtailor department ID."
          },
          "locationId": {
            "type": "string",
            "minLength": 1,
            "description": "Only return jobs for this Teamtailor location ID."
          },
          "status": {
            "type": "string",
            "minLength": 1,
            "description": "Only return jobs matching this Teamtailor status."
          },
          "sort": {
            "type": "string",
            "minLength": 1,
            "description": "Teamtailor sort expression, such as id or -created-at."
          }
        },
        "additionalProperties": false,
        "description": "Action input."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true,
              "description": "A Teamtailor JSON:API resource object."
            },
            "description": "Teamtailor job resource objects."
          },
          "included": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true,
              "description": "A Teamtailor JSON:API resource object."
            },
            "description": "Included JSON:API resources returned by Teamtailor."
          },
          "links": {
            "anyOf": [
              {
                "type": "object",
                "properties": {},
                "additionalProperties": true,
                "description": "Teamtailor JSON:API pagination links."
              },
              {
                "type": "null"
              }
            ]
          },
          "meta": {
            "anyOf": [
              {
                "type": "object",
                "properties": {},
                "additionalProperties": true,
                "description": "Teamtailor JSON:API response metadata."
              },
              {
                "type": "null"
              }
            ]
          },
          "raw": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "The raw Teamtailor JSON:API response."
          }
        },
        "additionalProperties": false,
        "required": [
          "data",
          "included",
          "links",
          "meta",
          "raw"
        ],
        "description": "Teamtailor jobs list response."
      }
    },
    {
      "id": "teamtailor.list_locations",
      "service": "teamtailor",
      "name": "list_locations",
      "description": "List Teamtailor locations with optional include and cursor pagination.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "stack": {
            "type": "string",
            "enum": [
              "eu",
              "na"
            ],
            "description": "The Teamtailor stack that stores the account data."
          },
          "pageSize": {
            "type": "integer",
            "minimum": 1,
            "maximum": 30,
            "description": "The number of resources to return. Teamtailor allows at most 30."
          },
          "pageAfter": {
            "type": "string",
            "minLength": 1,
            "description": "The cursor for the next page returned by Teamtailor links."
          },
          "pageBefore": {
            "type": "string",
            "minLength": 1,
            "description": "The cursor for the previous page returned by Teamtailor links."
          },
          "include": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1,
              "description": "A Teamtailor relationship name."
            },
            "description": "JSON:API relationship names to include in the Teamtailor response."
          },
          "sort": {
            "type": "string",
            "minLength": 1,
            "description": "Teamtailor sort expression, such as id or name."
          }
        },
        "additionalProperties": false,
        "description": "Action input."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true,
              "description": "A Teamtailor JSON:API resource object."
            },
            "description": "Teamtailor location resource objects."
          },
          "included": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true,
              "description": "A Teamtailor JSON:API resource object."
            },
            "description": "Included JSON:API resources returned by Teamtailor."
          },
          "links": {
            "anyOf": [
              {
                "type": "object",
                "properties": {},
                "additionalProperties": true,
                "description": "Teamtailor JSON:API pagination links."
              },
              {
                "type": "null"
              }
            ]
          },
          "meta": {
            "anyOf": [
              {
                "type": "object",
                "properties": {},
                "additionalProperties": true,
                "description": "Teamtailor JSON:API response metadata."
              },
              {
                "type": "null"
              }
            ]
          },
          "raw": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "The raw Teamtailor JSON:API response."
          }
        },
        "additionalProperties": false,
        "required": [
          "data",
          "included",
          "links",
          "meta",
          "raw"
        ],
        "description": "Teamtailor locations list response."
      }
    },
    {
      "id": "teamtailor.retrieve_job",
      "service": "teamtailor",
      "name": "retrieve_job",
      "description": "Retrieve one Teamtailor job by ID with optional included relationships.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "stack": {
            "type": "string",
            "enum": [
              "eu",
              "na"
            ],
            "description": "The Teamtailor stack that stores the account data."
          },
          "jobId": {
            "type": "string",
            "minLength": 1,
            "description": "The Teamtailor job ID to retrieve."
          },
          "include": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1,
              "description": "A Teamtailor relationship name."
            },
            "description": "JSON:API relationship names to include in the Teamtailor response."
          }
        },
        "additionalProperties": false,
        "required": [
          "jobId"
        ],
        "description": "Action input."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "A Teamtailor JSON:API resource object."
          },
          "included": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true,
              "description": "A Teamtailor JSON:API resource object."
            },
            "description": "Included JSON:API resources returned by Teamtailor."
          },
          "links": {
            "anyOf": [
              {
                "type": "object",
                "properties": {},
                "additionalProperties": true,
                "description": "Teamtailor JSON:API pagination links."
              },
              {
                "type": "null"
              }
            ]
          },
          "meta": {
            "anyOf": [
              {
                "type": "object",
                "properties": {},
                "additionalProperties": true,
                "description": "Teamtailor JSON:API response metadata."
              },
              {
                "type": "null"
              }
            ]
          },
          "raw": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "The raw Teamtailor JSON:API response."
          }
        },
        "additionalProperties": false,
        "required": [
          "data",
          "included",
          "links",
          "meta",
          "raw"
        ],
        "description": "A Teamtailor JSON:API single-resource response."
      }
    }
  ]
}
