{
  "service": "cats",
  "displayName": "CATS",
  "categories": [
    "Productivity"
  ],
  "authTypes": [
    "api_key"
  ],
  "auth": [
    {
      "type": "api_key",
      "label": "API Key",
      "placeholder": "CATS_API_KEY",
      "description": "CATS v3 API key sent with the Authorization Token header. Create it from the Administration settings page in CATS.",
      "extraFields": []
    }
  ],
  "homepageUrl": "https://catsone.com/",
  "actions": [
    {
      "id": "cats.get_candidate",
      "service": "cats",
      "name": "get_candidate",
      "description": "Fetch one CATS candidate by candidate ID.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "candidateId": {
            "type": "integer",
            "minimum": 1,
            "description": "The CATS candidate ID."
          }
        },
        "additionalProperties": false,
        "description": "Request parameters for fetching one CATS candidate."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "candidate": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "CATS candidate record."
          },
          "raw": {
            "description": "The raw CATS response payload."
          }
        },
        "additionalProperties": false,
        "description": "CATS candidate detail response."
      }
    },
    {
      "id": "cats.get_company",
      "service": "cats",
      "name": "get_company",
      "description": "Fetch one CATS company by company ID.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "companyId": {
            "type": "integer",
            "minimum": 1,
            "description": "The CATS company ID."
          }
        },
        "additionalProperties": false,
        "description": "Request parameters for fetching one CATS company."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "company": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "CATS company record."
          },
          "raw": {
            "description": "The raw CATS response payload."
          }
        },
        "additionalProperties": false,
        "description": "CATS company detail response."
      }
    },
    {
      "id": "cats.get_job",
      "service": "cats",
      "name": "get_job",
      "description": "Fetch one CATS job by job ID.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "jobId": {
            "type": "integer",
            "minimum": 1,
            "description": "The CATS job ID."
          }
        },
        "additionalProperties": false,
        "description": "Request parameters for fetching one CATS job."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "job": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "CATS job record."
          },
          "raw": {
            "description": "The raw CATS response payload."
          }
        },
        "additionalProperties": false,
        "description": "CATS job detail response."
      }
    },
    {
      "id": "cats.get_site",
      "service": "cats",
      "name": "get_site",
      "description": "Get information about the CATS site associated with the API key.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false,
        "description": "No input is required to fetch the CATS site."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "site": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "CATS site record."
          },
          "raw": {
            "description": "The raw CATS response payload."
          }
        },
        "additionalProperties": false,
        "description": "CATS site response."
      }
    },
    {
      "id": "cats.list_candidates",
      "service": "cats",
      "name": "list_candidates",
      "description": "List CATS candidates with optional pagination.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "page": {
            "type": "integer",
            "minimum": 1,
            "description": "The page number to request. CATS defaults to page 1."
          },
          "perPage": {
            "type": "integer",
            "minimum": 1,
            "maximum": 100,
            "description": "The number of results to request per page, from 1 to 100."
          }
        },
        "additionalProperties": false,
        "description": "Pagination parameters for CATS list endpoints."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "candidates": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true,
              "description": "CATS candidate record."
            },
            "description": "CATS candidate record."
          },
          "pagination": {
            "type": "object",
            "properties": {
              "page": {
                "type": "integer",
                "minimum": 1,
                "description": "The current result page."
              },
              "perPage": {
                "type": "integer",
                "minimum": 1,
                "description": "The number of records returned per page."
              },
              "total": {
                "type": "integer",
                "minimum": 0,
                "description": "The total number of records available."
              },
              "totalPages": {
                "type": "integer",
                "minimum": 0,
                "description": "The total number of pages available."
              }
            },
            "additionalProperties": false,
            "description": "CATS pagination metadata parsed from response body or headers."
          },
          "raw": {
            "description": "The raw CATS response payload."
          }
        },
        "additionalProperties": false,
        "description": "CATS candidates list response."
      }
    },
    {
      "id": "cats.list_companies",
      "service": "cats",
      "name": "list_companies",
      "description": "List CATS companies with optional pagination.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "page": {
            "type": "integer",
            "minimum": 1,
            "description": "The page number to request. CATS defaults to page 1."
          },
          "perPage": {
            "type": "integer",
            "minimum": 1,
            "maximum": 100,
            "description": "The number of results to request per page, from 1 to 100."
          }
        },
        "additionalProperties": false,
        "description": "Pagination parameters for CATS list endpoints."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "companies": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true,
              "description": "CATS company record."
            },
            "description": "CATS company record."
          },
          "pagination": {
            "type": "object",
            "properties": {
              "page": {
                "type": "integer",
                "minimum": 1,
                "description": "The current result page."
              },
              "perPage": {
                "type": "integer",
                "minimum": 1,
                "description": "The number of records returned per page."
              },
              "total": {
                "type": "integer",
                "minimum": 0,
                "description": "The total number of records available."
              },
              "totalPages": {
                "type": "integer",
                "minimum": 0,
                "description": "The total number of pages available."
              }
            },
            "additionalProperties": false,
            "description": "CATS pagination metadata parsed from response body or headers."
          },
          "raw": {
            "description": "The raw CATS response payload."
          }
        },
        "additionalProperties": false,
        "description": "CATS companies list response."
      }
    },
    {
      "id": "cats.list_jobs",
      "service": "cats",
      "name": "list_jobs",
      "description": "List CATS jobs with optional pagination.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "page": {
            "type": "integer",
            "minimum": 1,
            "description": "The page number to request. CATS defaults to page 1."
          },
          "perPage": {
            "type": "integer",
            "minimum": 1,
            "maximum": 100,
            "description": "The number of results to request per page, from 1 to 100."
          }
        },
        "additionalProperties": false,
        "description": "Pagination parameters for CATS list endpoints."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "jobs": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true,
              "description": "CATS job record."
            },
            "description": "CATS job record."
          },
          "pagination": {
            "type": "object",
            "properties": {
              "page": {
                "type": "integer",
                "minimum": 1,
                "description": "The current result page."
              },
              "perPage": {
                "type": "integer",
                "minimum": 1,
                "description": "The number of records returned per page."
              },
              "total": {
                "type": "integer",
                "minimum": 0,
                "description": "The total number of records available."
              },
              "totalPages": {
                "type": "integer",
                "minimum": 0,
                "description": "The total number of pages available."
              }
            },
            "additionalProperties": false,
            "description": "CATS pagination metadata parsed from response body or headers."
          },
          "raw": {
            "description": "The raw CATS response payload."
          }
        },
        "additionalProperties": false,
        "description": "CATS jobs list response."
      }
    },
    {
      "id": "cats.search_candidates",
      "service": "cats",
      "name": "search_candidates",
      "description": "Search CATS candidates by free-text query with optional pagination.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "query": {
            "type": "string",
            "minLength": 1,
            "description": "The search string to match against CATS records."
          },
          "page": {
            "type": "integer",
            "minimum": 1,
            "description": "The page number to request. CATS defaults to page 1."
          },
          "perPage": {
            "type": "integer",
            "minimum": 1,
            "maximum": 100,
            "description": "The number of results to request per page, from 1 to 100."
          }
        },
        "additionalProperties": false,
        "required": [
          "query"
        ],
        "description": "Search parameters for CATS search endpoints."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "candidates": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true,
              "description": "CATS candidate record."
            },
            "description": "CATS candidate record."
          },
          "pagination": {
            "type": "object",
            "properties": {
              "page": {
                "type": "integer",
                "minimum": 1,
                "description": "The current result page."
              },
              "perPage": {
                "type": "integer",
                "minimum": 1,
                "description": "The number of records returned per page."
              },
              "total": {
                "type": "integer",
                "minimum": 0,
                "description": "The total number of records available."
              },
              "totalPages": {
                "type": "integer",
                "minimum": 0,
                "description": "The total number of pages available."
              }
            },
            "additionalProperties": false,
            "description": "CATS pagination metadata parsed from response body or headers."
          },
          "raw": {
            "description": "The raw CATS response payload."
          }
        },
        "additionalProperties": false,
        "description": "CATS candidate search response."
      }
    },
    {
      "id": "cats.search_companies",
      "service": "cats",
      "name": "search_companies",
      "description": "Search CATS companies by free-text query with optional pagination.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "query": {
            "type": "string",
            "minLength": 1,
            "description": "The search string to match against CATS records."
          },
          "page": {
            "type": "integer",
            "minimum": 1,
            "description": "The page number to request. CATS defaults to page 1."
          },
          "perPage": {
            "type": "integer",
            "minimum": 1,
            "maximum": 100,
            "description": "The number of results to request per page, from 1 to 100."
          }
        },
        "additionalProperties": false,
        "required": [
          "query"
        ],
        "description": "Search parameters for CATS search endpoints."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "companies": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true,
              "description": "CATS company record."
            },
            "description": "CATS company record."
          },
          "pagination": {
            "type": "object",
            "properties": {
              "page": {
                "type": "integer",
                "minimum": 1,
                "description": "The current result page."
              },
              "perPage": {
                "type": "integer",
                "minimum": 1,
                "description": "The number of records returned per page."
              },
              "total": {
                "type": "integer",
                "minimum": 0,
                "description": "The total number of records available."
              },
              "totalPages": {
                "type": "integer",
                "minimum": 0,
                "description": "The total number of pages available."
              }
            },
            "additionalProperties": false,
            "description": "CATS pagination metadata parsed from response body or headers."
          },
          "raw": {
            "description": "The raw CATS response payload."
          }
        },
        "additionalProperties": false,
        "description": "CATS company search response."
      }
    },
    {
      "id": "cats.search_jobs",
      "service": "cats",
      "name": "search_jobs",
      "description": "Search CATS jobs by free-text query with optional pagination.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "query": {
            "type": "string",
            "minLength": 1,
            "description": "The search string to match against CATS records."
          },
          "page": {
            "type": "integer",
            "minimum": 1,
            "description": "The page number to request. CATS defaults to page 1."
          },
          "perPage": {
            "type": "integer",
            "minimum": 1,
            "maximum": 100,
            "description": "The number of results to request per page, from 1 to 100."
          }
        },
        "additionalProperties": false,
        "required": [
          "query"
        ],
        "description": "Search parameters for CATS search endpoints."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "jobs": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true,
              "description": "CATS job record."
            },
            "description": "CATS job record."
          },
          "pagination": {
            "type": "object",
            "properties": {
              "page": {
                "type": "integer",
                "minimum": 1,
                "description": "The current result page."
              },
              "perPage": {
                "type": "integer",
                "minimum": 1,
                "description": "The number of records returned per page."
              },
              "total": {
                "type": "integer",
                "minimum": 0,
                "description": "The total number of records available."
              },
              "totalPages": {
                "type": "integer",
                "minimum": 0,
                "description": "The total number of pages available."
              }
            },
            "additionalProperties": false,
            "description": "CATS pagination metadata parsed from response body or headers."
          },
          "raw": {
            "description": "The raw CATS response payload."
          }
        },
        "additionalProperties": false,
        "description": "CATS job search response."
      }
    }
  ]
}
