{
  "service": "manatal",
  "displayName": "Manatal",
  "categories": [
    "Productivity"
  ],
  "authTypes": [
    "api_key"
  ],
  "auth": [
    {
      "type": "api_key",
      "label": "API Key",
      "placeholder": "MANATAL_API_KEY",
      "description": "Manatal API token used with the Authorization: Token <apiKey> header. Manatal says Open API tokens are obtained from its support team: https://developers.manatal.com/reference/getting-started."
    }
  ],
  "homepageUrl": "https://www.manatal.com/",
  "actions": [
    {
      "id": "manatal.create_candidate",
      "service": "manatal",
      "name": "create_candidate",
      "description": "Create a Manatal candidate using JSON-safe profile fields.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "fullName": {
            "type": "string",
            "minLength": 1,
            "maxLength": 255,
            "description": "Full name of the candidate."
          },
          "externalId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 255,
            "description": "ID of the candidate in an external system."
          },
          "owner": {
            "type": "integer",
            "minimum": 1,
            "description": "ID of the owner of the candidate."
          },
          "sourceType": {
            "type": "string",
            "enum": [
              "sourced",
              "applied",
              "referred",
              "agency",
              "other"
            ],
            "description": "Origin of the candidate."
          },
          "sourceOther": {
            "type": "string",
            "minLength": 1,
            "maxLength": 255,
            "description": "Manual source information when sourceType is other."
          },
          "consent": {
            "type": "boolean",
            "description": "Whether the candidate gave permission to use their data."
          },
          "email": {
            "type": "string",
            "description": "Candidate email address.",
            "format": "email"
          },
          "phoneNumber": {
            "type": "string",
            "minLength": 1,
            "maxLength": 255,
            "description": "Candidate phone number."
          },
          "gender": {
            "type": "string",
            "enum": [
              "male",
              "female",
              "other",
              "unknown"
            ],
            "description": "Gender value stored on the candidate."
          },
          "birthDate": {
            "type": "string",
            "description": "Candidate birth date.",
            "format": "date"
          },
          "address": {
            "type": "string",
            "minLength": 1,
            "maxLength": 255,
            "description": "Full address of the candidate."
          },
          "zipcode": {
            "type": "string",
            "minLength": 1,
            "maxLength": 255,
            "description": "Postal code for the candidate address."
          },
          "latestDegree": {
            "type": "string",
            "minLength": 1,
            "maxLength": 255,
            "description": "Latest degree obtained by the candidate."
          },
          "latestUniversity": {
            "type": "string",
            "minLength": 1,
            "maxLength": 255,
            "description": "Latest university the candidate graduated from."
          },
          "currentCompany": {
            "type": "string",
            "minLength": 1,
            "maxLength": 255,
            "description": "Company where the candidate currently works."
          },
          "currentDepartment": {
            "type": "string",
            "minLength": 1,
            "maxLength": 255,
            "description": "Department where the candidate currently works."
          },
          "currentPosition": {
            "type": "string",
            "minLength": 1,
            "maxLength": 255,
            "description": "Current position of the candidate."
          },
          "description": {
            "type": "string",
            "minLength": 1,
            "description": "Text description of the candidate."
          },
          "customFields": {
            "type": "object",
            "additionalProperties": true,
            "description": "Custom field values defined in Manatal."
          }
        },
        "additionalProperties": false,
        "required": [
          "fullName"
        ],
        "description": "Fields for creating a Manatal candidate."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "candidate": {
            "type": "object",
            "additionalProperties": true,
            "description": "One Manatal candidate object."
          },
          "raw": {
            "type": "object",
            "additionalProperties": true,
            "description": "Raw Manatal response payload."
          }
        },
        "additionalProperties": false,
        "description": "Normalized Manatal candidate response."
      }
    },
    {
      "id": "manatal.create_job",
      "service": "manatal",
      "name": "create_job",
      "description": "Create a Manatal job using JSON-safe job fields.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "organization": {
            "type": "integer",
            "minimum": 1,
            "description": "ID of the organization the job is assigned to."
          },
          "positionName": {
            "type": "string",
            "minLength": 1,
            "maxLength": 255,
            "description": "Job title."
          },
          "externalId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 255,
            "description": "ID of the job in an external system."
          },
          "description": {
            "type": "string",
            "minLength": 1,
            "description": "Description of the job."
          },
          "expectedCloseAt": {
            "type": "string",
            "description": "Expected date and time when the job will be closed or filled.",
            "format": "date-time"
          },
          "headcount": {
            "type": "integer",
            "minimum": 0,
            "description": "Number of people to be hired for the job."
          },
          "salaryMin": {
            "type": "string",
            "minLength": 1,
            "description": "Minimum salary value for the job."
          },
          "salaryMax": {
            "type": "string",
            "minLength": 1,
            "description": "Maximum salary value for the job."
          },
          "isSalaryVisible": {
            "type": "boolean",
            "description": "Whether salary information is displayed to candidates."
          },
          "frequency": {
            "type": "string",
            "minLength": 1,
            "description": "Salary frequency for the job."
          },
          "currency": {
            "type": "string",
            "minLength": 1,
            "description": "Currency code for salary values."
          },
          "industry": {
            "type": "integer",
            "minimum": 1,
            "description": "ID of the industry assigned to the job."
          },
          "owner": {
            "type": "integer",
            "minimum": 1,
            "description": "ID of the owner of the job."
          },
          "address": {
            "type": "string",
            "minLength": 1,
            "maxLength": 255,
            "description": "Address of the office where the job takes place."
          },
          "city": {
            "type": "string",
            "minLength": 1,
            "maxLength": 255,
            "description": "City of the office where the job takes place."
          },
          "state": {
            "type": "string",
            "minLength": 1,
            "maxLength": 255,
            "description": "State of the office where the job takes place."
          },
          "country": {
            "type": "string",
            "minLength": 1,
            "maxLength": 255,
            "description": "Country of the office where the job takes place."
          },
          "zipcode": {
            "type": "string",
            "minLength": 1,
            "maxLength": 255,
            "description": "Postal code for the job address."
          },
          "contractDetails": {
            "type": "string",
            "enum": [
              "full_time",
              "part_time",
              "temporary",
              "freelance",
              "internship",
              "apprenticeship",
              "contractor",
              "consultancy"
            ],
            "description": "Contract type for the job."
          },
          "isPublished": {
            "type": "boolean",
            "description": "Whether the job is published."
          },
          "isRemote": {
            "type": "boolean",
            "description": "Whether the job is remote."
          },
          "status": {
            "type": "string",
            "enum": [
              "active",
              "on_hold",
              "won",
              "lost"
            ],
            "description": "Status of the job."
          },
          "isPinnedInCareerPage": {
            "type": "boolean",
            "description": "Whether the job is pinned on the career page."
          },
          "customFields": {
            "type": "object",
            "additionalProperties": true,
            "description": "Custom field values defined in Manatal."
          }
        },
        "additionalProperties": false,
        "required": [
          "organization",
          "positionName"
        ],
        "description": "Fields for creating a Manatal job."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "job": {
            "type": "object",
            "additionalProperties": true,
            "description": "One Manatal job object."
          },
          "raw": {
            "type": "object",
            "additionalProperties": true,
            "description": "Raw Manatal response payload."
          }
        },
        "additionalProperties": false,
        "description": "Normalized Manatal job response."
      }
    },
    {
      "id": "manatal.create_match",
      "service": "manatal",
      "name": "create_match",
      "description": "Create a Manatal candidate-job match using JSON-safe match fields.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "job": {
            "type": "integer",
            "minimum": 1,
            "description": "ID of the job the candidate is matched with."
          },
          "candidate": {
            "type": "integer",
            "minimum": 1,
            "description": "ID of the candidate matched to the job."
          },
          "owner": {
            "type": "integer",
            "minimum": 1,
            "description": "ID of the owner of the match."
          },
          "externalId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 255,
            "description": "ID of the match in an external system."
          },
          "isActive": {
            "type": "boolean",
            "description": "Whether the match is still active."
          },
          "hiredAt": {
            "type": "string",
            "description": "Date and time at which the candidate was hired.",
            "format": "date-time"
          },
          "submittedAt": {
            "type": "string",
            "description": "Date and time at which the candidate was added to the job.",
            "format": "date-time"
          },
          "interviewAt": {
            "type": "string",
            "description": "Date and time at which the candidate was last interviewed.",
            "format": "date-time"
          },
          "offerAt": {
            "type": "string",
            "description": "Date and time at which an offer was made to the candidate.",
            "format": "date-time"
          },
          "droppedAt": {
            "type": "string",
            "description": "Date and time at which the candidate was no longer considered.",
            "format": "date-time"
          },
          "customFields": {
            "type": "object",
            "additionalProperties": true,
            "description": "Custom field values defined in Manatal."
          }
        },
        "additionalProperties": false,
        "required": [
          "job",
          "candidate"
        ],
        "description": "Fields for creating a Manatal match."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "match": {
            "type": "object",
            "additionalProperties": true,
            "description": "One Manatal match object."
          },
          "raw": {
            "type": "object",
            "additionalProperties": true,
            "description": "Raw Manatal response payload."
          }
        },
        "additionalProperties": false,
        "description": "Normalized Manatal match response."
      }
    },
    {
      "id": "manatal.create_organization",
      "service": "manatal",
      "name": "create_organization",
      "description": "Create a Manatal organization using JSON-safe organization fields.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 255,
            "description": "Name of the organization."
          },
          "externalId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 255,
            "description": "ID of the organization in an external system."
          },
          "owner": {
            "type": "integer",
            "minimum": 1,
            "description": "ID of the owner of the organization."
          },
          "address": {
            "type": "string",
            "minLength": 1,
            "maxLength": 255,
            "description": "Full address of the organization."
          },
          "website": {
            "type": "string",
            "description": "Website URL for the organization.",
            "format": "uri"
          },
          "description": {
            "type": "string",
            "minLength": 1,
            "description": "Description of the organization."
          },
          "isPublic": {
            "type": "boolean",
            "description": "Whether the organization is public."
          },
          "isVisible": {
            "type": "boolean",
            "description": "Whether the organization is visible."
          },
          "customFields": {
            "type": "object",
            "additionalProperties": true,
            "description": "Custom field values defined in Manatal."
          }
        },
        "additionalProperties": false,
        "required": [
          "name"
        ],
        "description": "Fields for creating a Manatal organization."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "organization": {
            "type": "object",
            "additionalProperties": true,
            "description": "One Manatal organization object."
          },
          "raw": {
            "type": "object",
            "additionalProperties": true,
            "description": "Raw Manatal response payload."
          }
        },
        "additionalProperties": false,
        "description": "Normalized Manatal organization response."
      }
    },
    {
      "id": "manatal.get_candidate",
      "service": "manatal",
      "name": "get_candidate",
      "description": "Retrieve a single Manatal candidate by ID.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "candidateId": {
            "type": "integer",
            "minimum": 1,
            "description": "ID of the Manatal candidate to retrieve."
          }
        },
        "additionalProperties": false,
        "description": "Identifier for getting a Manatal candidate."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "candidate": {
            "type": "object",
            "additionalProperties": true,
            "description": "One Manatal candidate object."
          },
          "raw": {
            "type": "object",
            "additionalProperties": true,
            "description": "Raw Manatal response payload."
          }
        },
        "additionalProperties": false,
        "description": "Normalized Manatal candidate response."
      }
    },
    {
      "id": "manatal.get_job",
      "service": "manatal",
      "name": "get_job",
      "description": "Retrieve a single Manatal job by ID.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "jobId": {
            "type": "integer",
            "minimum": 1,
            "description": "ID of the Manatal job to retrieve."
          }
        },
        "additionalProperties": false,
        "description": "Identifier for getting a Manatal job."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "job": {
            "type": "object",
            "additionalProperties": true,
            "description": "One Manatal job object."
          },
          "raw": {
            "type": "object",
            "additionalProperties": true,
            "description": "Raw Manatal response payload."
          }
        },
        "additionalProperties": false,
        "description": "Normalized Manatal job response."
      }
    },
    {
      "id": "manatal.get_match",
      "service": "manatal",
      "name": "get_match",
      "description": "Retrieve a single Manatal candidate-job match by ID.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "matchId": {
            "type": "integer",
            "minimum": 1,
            "description": "ID of the Manatal match to retrieve."
          }
        },
        "additionalProperties": false,
        "description": "Identifier for getting a Manatal match."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "match": {
            "type": "object",
            "additionalProperties": true,
            "description": "One Manatal match object."
          },
          "raw": {
            "type": "object",
            "additionalProperties": true,
            "description": "Raw Manatal response payload."
          }
        },
        "additionalProperties": false,
        "description": "Normalized Manatal match response."
      }
    },
    {
      "id": "manatal.get_organization",
      "service": "manatal",
      "name": "get_organization",
      "description": "Retrieve a single Manatal organization by ID.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "organizationId": {
            "type": "integer",
            "minimum": 1,
            "description": "ID of the Manatal organization to retrieve."
          }
        },
        "additionalProperties": false,
        "description": "Identifier for getting a Manatal organization."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "organization": {
            "type": "object",
            "additionalProperties": true,
            "description": "One Manatal organization object."
          },
          "raw": {
            "type": "object",
            "additionalProperties": true,
            "description": "Raw Manatal response payload."
          }
        },
        "additionalProperties": false,
        "description": "Normalized Manatal organization response."
      }
    },
    {
      "id": "manatal.list_candidates",
      "service": "manatal",
      "name": "list_candidates",
      "description": "List Manatal candidates with pagination and recruitment profile filters.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "page": {
            "type": "integer",
            "minimum": 1,
            "description": "Page number to request. Manatal starts pagination at 1."
          },
          "pageSize": {
            "type": "integer",
            "minimum": 1,
            "description": "Number of records to return per page."
          },
          "id": {
            "type": "integer",
            "minimum": 1,
            "description": "Return a specific candidate ID."
          },
          "fullName": {
            "type": "string",
            "minLength": 1,
            "description": "Filter candidates by full name."
          },
          "creatorId": {
            "type": "integer",
            "minimum": 1,
            "description": "Return candidates created by this Manatal user ID."
          },
          "ownerId": {
            "type": "integer",
            "minimum": 1,
            "description": "Return candidates owned by this Manatal user ID."
          },
          "sourceType": {
            "type": "string",
            "minLength": 1,
            "description": "Filter candidates by source type."
          },
          "email": {
            "type": "string",
            "minLength": 1,
            "description": "Filter candidates by email address."
          },
          "phoneNumber": {
            "type": "string",
            "minLength": 1,
            "description": "Filter candidates by phone number."
          },
          "gender": {
            "type": "string",
            "minLength": 1,
            "description": "Filter candidates by gender."
          },
          "birthDateGte": {
            "type": "string",
            "description": "Return candidates born on or after this date.",
            "format": "date"
          },
          "birthDateLte": {
            "type": "string",
            "description": "Return candidates born on or before this date.",
            "format": "date"
          },
          "address": {
            "type": "string",
            "minLength": 1,
            "description": "Filter candidates by address text."
          },
          "latestDegree": {
            "type": "string",
            "minLength": 1,
            "description": "Filter candidates by latest degree."
          },
          "latestUniversity": {
            "type": "string",
            "minLength": 1,
            "description": "Filter candidates by latest university."
          },
          "currentCompany": {
            "type": "string",
            "minLength": 1,
            "description": "Filter candidates by current company."
          },
          "currentPosition": {
            "type": "string",
            "minLength": 1,
            "description": "Filter candidates by current position."
          },
          "description": {
            "type": "string",
            "minLength": 1,
            "description": "Filter candidates by description text."
          },
          "externalId": {
            "type": "string",
            "minLength": 1,
            "description": "Filter candidates by external ID."
          },
          "candidateTags": {
            "type": "string",
            "minLength": 1,
            "description": "Filter candidates by candidate tag IDs or names."
          },
          "candidateIndustries": {
            "type": "string",
            "minLength": 1,
            "description": "Filter candidates by candidate industry IDs or names."
          },
          "candidateLocation": {
            "type": "string",
            "minLength": 1,
            "description": "Filter candidates by location text."
          },
          "createdAtGte": {
            "type": "string",
            "description": "Return records created at or after this timestamp.",
            "format": "date-time"
          },
          "createdAtLte": {
            "type": "string",
            "description": "Return records created at or before this timestamp.",
            "format": "date-time"
          },
          "updatedAtGte": {
            "type": "string",
            "description": "Return records updated at or after this timestamp.",
            "format": "date-time"
          },
          "updatedAtLte": {
            "type": "string",
            "description": "Return records updated at or before this timestamp.",
            "format": "date-time"
          }
        },
        "additionalProperties": false,
        "description": "Filters and pagination for listing Manatal candidates."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "candidates": {
            "type": "array",
            "items": {
              "type": "object",
              "additionalProperties": true,
              "description": "One Manatal candidate object."
            },
            "description": "Candidates returned by Manatal."
          },
          "count": {
            "type": "integer",
            "description": "Total number of matching records reported by Manatal."
          },
          "next": {
            "anyOf": [
              {
                "type": "string",
                "description": "URL for the next Manatal result page, or null when there is no next page."
              },
              {
                "type": "null"
              }
            ]
          },
          "previous": {
            "anyOf": [
              {
                "type": "string",
                "description": "URL for the previous Manatal result page, or null when there is no previous page."
              },
              {
                "type": "null"
              }
            ]
          },
          "raw": {
            "type": "object",
            "additionalProperties": true,
            "description": "Raw Manatal response payload."
          }
        },
        "additionalProperties": false,
        "required": [
          "candidates",
          "raw"
        ],
        "description": "Normalized Manatal candidate list response."
      }
    },
    {
      "id": "manatal.list_jobs",
      "service": "manatal",
      "name": "list_jobs",
      "description": "List Manatal jobs with pagination and job status filters.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "page": {
            "type": "integer",
            "minimum": 1,
            "description": "Page number to request. Manatal starts pagination at 1."
          },
          "pageSize": {
            "type": "integer",
            "minimum": 1,
            "description": "Number of records to return per page."
          },
          "id": {
            "type": "integer",
            "minimum": 1,
            "description": "Return a specific job ID."
          },
          "organizationId": {
            "type": "integer",
            "minimum": 1,
            "description": "Filter jobs by organization ID."
          },
          "positionName": {
            "type": "string",
            "minLength": 1,
            "description": "Filter jobs by position name."
          },
          "headcount": {
            "type": "integer",
            "minimum": 0,
            "description": "Filter jobs by required headcount."
          },
          "creatorId": {
            "type": "integer",
            "minimum": 1,
            "description": "Return jobs created by this Manatal user ID."
          },
          "ownerId": {
            "type": "integer",
            "minimum": 1,
            "description": "Return jobs owned by this Manatal user ID."
          },
          "address": {
            "type": "string",
            "minLength": 1,
            "description": "Filter jobs by address text."
          },
          "status": {
            "type": "string",
            "minLength": 1,
            "description": "Filter jobs by status."
          },
          "frequency": {
            "type": "string",
            "minLength": 1,
            "description": "Filter jobs by salary frequency."
          },
          "city": {
            "type": "string",
            "minLength": 1,
            "description": "Filter jobs by city."
          },
          "state": {
            "type": "string",
            "minLength": 1,
            "description": "Filter jobs by state."
          },
          "contractDetails": {
            "type": "string",
            "minLength": 1,
            "description": "Filter jobs by contract details."
          },
          "isPublished": {
            "type": "boolean",
            "description": "Filter jobs by whether they are published."
          },
          "isRemote": {
            "type": "boolean",
            "description": "Filter jobs by whether they are remote."
          },
          "externalId": {
            "type": "string",
            "minLength": 1,
            "description": "Filter jobs by external ID."
          },
          "openAtGte": {
            "type": "string",
            "description": "Return jobs opened at or after this timestamp.",
            "format": "date-time"
          },
          "openAtLte": {
            "type": "string",
            "description": "Return jobs opened at or before this timestamp.",
            "format": "date-time"
          },
          "closeAtGte": {
            "type": "string",
            "description": "Return jobs closed at or after this timestamp.",
            "format": "date-time"
          },
          "closeAtLte": {
            "type": "string",
            "description": "Return jobs closed at or before this timestamp.",
            "format": "date-time"
          },
          "createdAtGte": {
            "type": "string",
            "description": "Return records created at or after this timestamp.",
            "format": "date-time"
          },
          "createdAtLte": {
            "type": "string",
            "description": "Return records created at or before this timestamp.",
            "format": "date-time"
          },
          "updatedAtGte": {
            "type": "string",
            "description": "Return records updated at or after this timestamp.",
            "format": "date-time"
          },
          "updatedAtLte": {
            "type": "string",
            "description": "Return records updated at or before this timestamp.",
            "format": "date-time"
          }
        },
        "additionalProperties": false,
        "description": "Filters and pagination for listing Manatal jobs."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "jobs": {
            "type": "array",
            "items": {
              "type": "object",
              "additionalProperties": true,
              "description": "One Manatal job object."
            },
            "description": "Jobs returned by Manatal."
          },
          "count": {
            "type": "integer",
            "description": "Total number of matching records reported by Manatal."
          },
          "next": {
            "anyOf": [
              {
                "type": "string",
                "description": "URL for the next Manatal result page, or null when there is no next page."
              },
              {
                "type": "null"
              }
            ]
          },
          "previous": {
            "anyOf": [
              {
                "type": "string",
                "description": "URL for the previous Manatal result page, or null when there is no previous page."
              },
              {
                "type": "null"
              }
            ]
          },
          "raw": {
            "type": "object",
            "additionalProperties": true,
            "description": "Raw Manatal response payload."
          }
        },
        "additionalProperties": false,
        "required": [
          "jobs",
          "raw"
        ],
        "description": "Normalized Manatal job list response."
      }
    },
    {
      "id": "manatal.list_matches",
      "service": "manatal",
      "name": "list_matches",
      "description": "List Manatal candidate-job matches with pagination and pipeline filters.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "page": {
            "type": "integer",
            "minimum": 1,
            "description": "Page number to request. Manatal starts pagination at 1."
          },
          "pageSize": {
            "type": "integer",
            "minimum": 1,
            "description": "Number of records to return per page."
          },
          "ordering": {
            "type": "string",
            "minLength": 1,
            "description": "Field used to order Manatal match results."
          },
          "externalId": {
            "type": "string",
            "minLength": 1,
            "description": "Filter matches by external ID."
          },
          "stageIn": {
            "type": "string",
            "minLength": 1,
            "description": "Comma-separated Manatal pipeline stage IDs."
          },
          "hiredAtGte": {
            "type": "string",
            "description": "Return matches hired at or after this timestamp.",
            "format": "date-time"
          },
          "hiredAtLte": {
            "type": "string",
            "description": "Return matches hired at or before this timestamp.",
            "format": "date-time"
          },
          "submittedAtGte": {
            "type": "string",
            "description": "Return matches submitted at or after this timestamp.",
            "format": "date-time"
          },
          "submittedAtLte": {
            "type": "string",
            "description": "Return matches submitted at or before this timestamp.",
            "format": "date-time"
          },
          "interviewAtGte": {
            "type": "string",
            "description": "Return matches interviewed at or after this timestamp.",
            "format": "date-time"
          },
          "interviewAtLte": {
            "type": "string",
            "description": "Return matches interviewed at or before this timestamp.",
            "format": "date-time"
          },
          "offerAtGte": {
            "type": "string",
            "description": "Return matches offered at or after this timestamp.",
            "format": "date-time"
          },
          "offerAtLte": {
            "type": "string",
            "description": "Return matches offered at or before this timestamp.",
            "format": "date-time"
          },
          "droppedAtGte": {
            "type": "string",
            "description": "Return matches dropped at or after this timestamp.",
            "format": "date-time"
          },
          "droppedAtLte": {
            "type": "string",
            "description": "Return matches dropped at or before this timestamp.",
            "format": "date-time"
          },
          "createdAtGte": {
            "type": "string",
            "description": "Return records created at or after this timestamp.",
            "format": "date-time"
          },
          "createdAtLte": {
            "type": "string",
            "description": "Return records created at or before this timestamp.",
            "format": "date-time"
          },
          "updatedAtGte": {
            "type": "string",
            "description": "Return records updated at or after this timestamp.",
            "format": "date-time"
          },
          "updatedAtLte": {
            "type": "string",
            "description": "Return records updated at or before this timestamp.",
            "format": "date-time"
          }
        },
        "additionalProperties": false,
        "description": "Filters and pagination for listing Manatal matches."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "matches": {
            "type": "array",
            "items": {
              "type": "object",
              "additionalProperties": true,
              "description": "One Manatal match object."
            },
            "description": "Matches returned by Manatal."
          },
          "count": {
            "type": "integer",
            "description": "Total number of matching records reported by Manatal."
          },
          "next": {
            "anyOf": [
              {
                "type": "string",
                "description": "URL for the next Manatal result page, or null when there is no next page."
              },
              {
                "type": "null"
              }
            ]
          },
          "previous": {
            "anyOf": [
              {
                "type": "string",
                "description": "URL for the previous Manatal result page, or null when there is no previous page."
              },
              {
                "type": "null"
              }
            ]
          },
          "raw": {
            "type": "object",
            "additionalProperties": true,
            "description": "Raw Manatal response payload."
          }
        },
        "additionalProperties": false,
        "required": [
          "matches",
          "raw"
        ],
        "description": "Normalized Manatal match list response."
      }
    },
    {
      "id": "manatal.list_organizations",
      "service": "manatal",
      "name": "list_organizations",
      "description": "List Manatal organizations with pagination and organization filters.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "page": {
            "type": "integer",
            "minimum": 1,
            "description": "Page number to request. Manatal starts pagination at 1."
          },
          "pageSize": {
            "type": "integer",
            "minimum": 1,
            "description": "Number of records to return per page."
          },
          "id": {
            "type": "integer",
            "minimum": 1,
            "description": "Return a specific organization ID."
          },
          "name": {
            "type": "string",
            "minLength": 1,
            "description": "Filter organizations by name."
          },
          "creatorId": {
            "type": "integer",
            "minimum": 1,
            "description": "Return organizations created by this Manatal user ID."
          },
          "ownerId": {
            "type": "integer",
            "minimum": 1,
            "description": "Return organizations owned by this Manatal user ID."
          },
          "address": {
            "type": "string",
            "minLength": 1,
            "description": "Filter organizations by address text."
          },
          "website": {
            "type": "string",
            "minLength": 1,
            "description": "Filter organizations by website."
          },
          "isPublic": {
            "type": "boolean",
            "description": "Filter organizations by whether they are public."
          },
          "isVisible": {
            "type": "boolean",
            "description": "Filter organizations by whether they are visible."
          },
          "externalId": {
            "type": "string",
            "minLength": 1,
            "description": "Filter organizations by external ID."
          },
          "createdAtGte": {
            "type": "string",
            "description": "Return records created at or after this timestamp.",
            "format": "date-time"
          },
          "createdAtLte": {
            "type": "string",
            "description": "Return records created at or before this timestamp.",
            "format": "date-time"
          },
          "updatedAtGte": {
            "type": "string",
            "description": "Return records updated at or after this timestamp.",
            "format": "date-time"
          },
          "updatedAtLte": {
            "type": "string",
            "description": "Return records updated at or before this timestamp.",
            "format": "date-time"
          }
        },
        "additionalProperties": false,
        "description": "Filters and pagination for listing Manatal organizations."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "organizations": {
            "type": "array",
            "items": {
              "type": "object",
              "additionalProperties": true,
              "description": "One Manatal organization object."
            },
            "description": "Organizations returned by Manatal."
          },
          "count": {
            "type": "integer",
            "description": "Total number of matching records reported by Manatal."
          },
          "next": {
            "anyOf": [
              {
                "type": "string",
                "description": "URL for the next Manatal result page, or null when there is no next page."
              },
              {
                "type": "null"
              }
            ]
          },
          "previous": {
            "anyOf": [
              {
                "type": "string",
                "description": "URL for the previous Manatal result page, or null when there is no previous page."
              },
              {
                "type": "null"
              }
            ]
          },
          "raw": {
            "type": "object",
            "additionalProperties": true,
            "description": "Raw Manatal response payload."
          }
        },
        "additionalProperties": false,
        "required": [
          "organizations",
          "raw"
        ],
        "description": "Normalized Manatal organization list response."
      }
    },
    {
      "id": "manatal.update_candidate",
      "service": "manatal",
      "name": "update_candidate",
      "description": "Partially update a Manatal candidate by ID.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "candidateId": {
            "type": "integer",
            "minimum": 1,
            "description": "ID of the Manatal candidate to update."
          },
          "fullName": {
            "type": "string",
            "minLength": 1,
            "maxLength": 255,
            "description": "Full name of the candidate."
          },
          "externalId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 255,
            "description": "ID of the candidate in an external system."
          },
          "owner": {
            "type": "integer",
            "minimum": 1,
            "description": "ID of the owner of the candidate."
          },
          "sourceType": {
            "type": "string",
            "enum": [
              "sourced",
              "applied",
              "referred",
              "agency",
              "other"
            ],
            "description": "Origin of the candidate."
          },
          "sourceOther": {
            "type": "string",
            "minLength": 1,
            "maxLength": 255,
            "description": "Manual source information when sourceType is other."
          },
          "consent": {
            "type": "boolean",
            "description": "Whether the candidate gave permission to use their data."
          },
          "email": {
            "type": "string",
            "description": "Candidate email address.",
            "format": "email"
          },
          "phoneNumber": {
            "type": "string",
            "minLength": 1,
            "maxLength": 255,
            "description": "Candidate phone number."
          },
          "gender": {
            "type": "string",
            "enum": [
              "male",
              "female",
              "other",
              "unknown"
            ],
            "description": "Gender value stored on the candidate."
          },
          "birthDate": {
            "type": "string",
            "description": "Candidate birth date.",
            "format": "date"
          },
          "address": {
            "type": "string",
            "minLength": 1,
            "maxLength": 255,
            "description": "Full address of the candidate."
          },
          "zipcode": {
            "type": "string",
            "minLength": 1,
            "maxLength": 255,
            "description": "Postal code for the candidate address."
          },
          "latestDegree": {
            "type": "string",
            "minLength": 1,
            "maxLength": 255,
            "description": "Latest degree obtained by the candidate."
          },
          "latestUniversity": {
            "type": "string",
            "minLength": 1,
            "maxLength": 255,
            "description": "Latest university the candidate graduated from."
          },
          "currentCompany": {
            "type": "string",
            "minLength": 1,
            "maxLength": 255,
            "description": "Company where the candidate currently works."
          },
          "currentDepartment": {
            "type": "string",
            "minLength": 1,
            "maxLength": 255,
            "description": "Department where the candidate currently works."
          },
          "currentPosition": {
            "type": "string",
            "minLength": 1,
            "maxLength": 255,
            "description": "Current position of the candidate."
          },
          "description": {
            "type": "string",
            "minLength": 1,
            "description": "Text description of the candidate."
          },
          "customFields": {
            "type": "object",
            "additionalProperties": true,
            "description": "Custom field values defined in Manatal."
          }
        },
        "additionalProperties": false,
        "required": [
          "candidateId"
        ],
        "description": "Fields for partially updating a Manatal candidate."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "candidate": {
            "type": "object",
            "additionalProperties": true,
            "description": "One Manatal candidate object."
          },
          "raw": {
            "type": "object",
            "additionalProperties": true,
            "description": "Raw Manatal response payload."
          }
        },
        "additionalProperties": false,
        "description": "Normalized Manatal candidate response."
      }
    },
    {
      "id": "manatal.update_job",
      "service": "manatal",
      "name": "update_job",
      "description": "Partially update a Manatal job by ID.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "jobId": {
            "type": "integer",
            "minimum": 1,
            "description": "ID of the Manatal job to update."
          },
          "organization": {
            "type": "integer",
            "minimum": 1,
            "description": "ID of the organization the job is assigned to."
          },
          "positionName": {
            "type": "string",
            "minLength": 1,
            "maxLength": 255,
            "description": "Job title."
          },
          "externalId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 255,
            "description": "ID of the job in an external system."
          },
          "description": {
            "type": "string",
            "minLength": 1,
            "description": "Description of the job."
          },
          "expectedCloseAt": {
            "type": "string",
            "description": "Expected date and time when the job will be closed or filled.",
            "format": "date-time"
          },
          "headcount": {
            "type": "integer",
            "minimum": 0,
            "description": "Number of people to be hired for the job."
          },
          "salaryMin": {
            "type": "string",
            "minLength": 1,
            "description": "Minimum salary value for the job."
          },
          "salaryMax": {
            "type": "string",
            "minLength": 1,
            "description": "Maximum salary value for the job."
          },
          "isSalaryVisible": {
            "type": "boolean",
            "description": "Whether salary information is displayed to candidates."
          },
          "frequency": {
            "type": "string",
            "minLength": 1,
            "description": "Salary frequency for the job."
          },
          "currency": {
            "type": "string",
            "minLength": 1,
            "description": "Currency code for salary values."
          },
          "industry": {
            "type": "integer",
            "minimum": 1,
            "description": "ID of the industry assigned to the job."
          },
          "owner": {
            "type": "integer",
            "minimum": 1,
            "description": "ID of the owner of the job."
          },
          "address": {
            "type": "string",
            "minLength": 1,
            "maxLength": 255,
            "description": "Address of the office where the job takes place."
          },
          "city": {
            "type": "string",
            "minLength": 1,
            "maxLength": 255,
            "description": "City of the office where the job takes place."
          },
          "state": {
            "type": "string",
            "minLength": 1,
            "maxLength": 255,
            "description": "State of the office where the job takes place."
          },
          "country": {
            "type": "string",
            "minLength": 1,
            "maxLength": 255,
            "description": "Country of the office where the job takes place."
          },
          "zipcode": {
            "type": "string",
            "minLength": 1,
            "maxLength": 255,
            "description": "Postal code for the job address."
          },
          "contractDetails": {
            "type": "string",
            "enum": [
              "full_time",
              "part_time",
              "temporary",
              "freelance",
              "internship",
              "apprenticeship",
              "contractor",
              "consultancy"
            ],
            "description": "Contract type for the job."
          },
          "isPublished": {
            "type": "boolean",
            "description": "Whether the job is published."
          },
          "isRemote": {
            "type": "boolean",
            "description": "Whether the job is remote."
          },
          "status": {
            "type": "string",
            "enum": [
              "active",
              "on_hold",
              "won",
              "lost"
            ],
            "description": "Status of the job."
          },
          "isPinnedInCareerPage": {
            "type": "boolean",
            "description": "Whether the job is pinned on the career page."
          },
          "customFields": {
            "type": "object",
            "additionalProperties": true,
            "description": "Custom field values defined in Manatal."
          }
        },
        "additionalProperties": false,
        "required": [
          "jobId"
        ],
        "description": "Fields for partially updating a Manatal job."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "job": {
            "type": "object",
            "additionalProperties": true,
            "description": "One Manatal job object."
          },
          "raw": {
            "type": "object",
            "additionalProperties": true,
            "description": "Raw Manatal response payload."
          }
        },
        "additionalProperties": false,
        "description": "Normalized Manatal job response."
      }
    },
    {
      "id": "manatal.update_match",
      "service": "manatal",
      "name": "update_match",
      "description": "Partially update a Manatal candidate-job match by ID.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "matchId": {
            "type": "integer",
            "minimum": 1,
            "description": "ID of the Manatal match to update."
          },
          "job": {
            "type": "integer",
            "minimum": 1,
            "description": "ID of the job the candidate is matched with."
          },
          "candidate": {
            "type": "integer",
            "minimum": 1,
            "description": "ID of the candidate matched to the job."
          },
          "owner": {
            "type": "integer",
            "minimum": 1,
            "description": "ID of the owner of the match."
          },
          "externalId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 255,
            "description": "ID of the match in an external system."
          },
          "isActive": {
            "type": "boolean",
            "description": "Whether the match is still active."
          },
          "hiredAt": {
            "type": "string",
            "description": "Date and time at which the candidate was hired.",
            "format": "date-time"
          },
          "submittedAt": {
            "type": "string",
            "description": "Date and time at which the candidate was added to the job.",
            "format": "date-time"
          },
          "interviewAt": {
            "type": "string",
            "description": "Date and time at which the candidate was last interviewed.",
            "format": "date-time"
          },
          "offerAt": {
            "type": "string",
            "description": "Date and time at which an offer was made to the candidate.",
            "format": "date-time"
          },
          "droppedAt": {
            "type": "string",
            "description": "Date and time at which the candidate was no longer considered.",
            "format": "date-time"
          },
          "customFields": {
            "type": "object",
            "additionalProperties": true,
            "description": "Custom field values defined in Manatal."
          }
        },
        "additionalProperties": false,
        "required": [
          "matchId"
        ],
        "description": "Fields for partially updating a Manatal match."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "match": {
            "type": "object",
            "additionalProperties": true,
            "description": "One Manatal match object."
          },
          "raw": {
            "type": "object",
            "additionalProperties": true,
            "description": "Raw Manatal response payload."
          }
        },
        "additionalProperties": false,
        "description": "Normalized Manatal match response."
      }
    },
    {
      "id": "manatal.update_organization",
      "service": "manatal",
      "name": "update_organization",
      "description": "Partially update a Manatal organization by ID.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "organizationId": {
            "type": "integer",
            "minimum": 1,
            "description": "ID of the Manatal organization to update."
          },
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 255,
            "description": "Name of the organization."
          },
          "externalId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 255,
            "description": "ID of the organization in an external system."
          },
          "owner": {
            "type": "integer",
            "minimum": 1,
            "description": "ID of the owner of the organization."
          },
          "address": {
            "type": "string",
            "minLength": 1,
            "maxLength": 255,
            "description": "Full address of the organization."
          },
          "website": {
            "type": "string",
            "description": "Website URL for the organization.",
            "format": "uri"
          },
          "description": {
            "type": "string",
            "minLength": 1,
            "description": "Description of the organization."
          },
          "isPublic": {
            "type": "boolean",
            "description": "Whether the organization is public."
          },
          "isVisible": {
            "type": "boolean",
            "description": "Whether the organization is visible."
          },
          "customFields": {
            "type": "object",
            "additionalProperties": true,
            "description": "Custom field values defined in Manatal."
          }
        },
        "additionalProperties": false,
        "required": [
          "organizationId"
        ],
        "description": "Fields for partially updating a Manatal organization."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "organization": {
            "type": "object",
            "additionalProperties": true,
            "description": "One Manatal organization object."
          },
          "raw": {
            "type": "object",
            "additionalProperties": true,
            "description": "Raw Manatal response payload."
          }
        },
        "additionalProperties": false,
        "description": "Normalized Manatal organization response."
      }
    }
  ]
}
