{
  "service": "lever",
  "displayName": "Lever",
  "categories": [
    "Productivity",
    "Communication"
  ],
  "authTypes": [
    "api_key"
  ],
  "auth": [
    {
      "type": "api_key",
      "label": "API Key",
      "placeholder": "LEVER_API_KEY",
      "description": "Lever API key used as the Basic Auth username. Create or manage API keys in Lever under Settings > Integrations and API: https://hire.lever.co/settings/integrations.",
      "extraFields": []
    }
  ],
  "homepageUrl": "https://www.lever.co",
  "actions": [
    {
      "id": "lever.create_opportunity_note",
      "service": "lever",
      "name": "create_opportunity_note",
      "description": "Create a note on a Lever opportunity.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "opportunityId": {
            "type": "string",
            "minLength": 1,
            "description": "The Lever object ID."
          },
          "value": {
            "type": "string",
            "minLength": 1,
            "description": "The note text to add to the opportunity."
          }
        },
        "additionalProperties": false,
        "description": "Input payload for creating a note on a Lever opportunity."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "note": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "The raw object returned by Lever."
          }
        },
        "additionalProperties": false,
        "description": "Lever opportunity note creation response."
      }
    },
    {
      "id": "lever.get_opportunity",
      "service": "lever",
      "name": "get_opportunity",
      "description": "Retrieve one Lever opportunity by ID.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "opportunityId": {
            "type": "string",
            "minLength": 1,
            "description": "The Lever object ID."
          }
        },
        "additionalProperties": false,
        "description": "Input payload containing a Lever opportunity ID."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "opportunity": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "The raw object returned by Lever."
          }
        },
        "additionalProperties": false,
        "description": "Lever opportunity response."
      }
    },
    {
      "id": "lever.get_posting",
      "service": "lever",
      "name": "get_posting",
      "description": "Retrieve one Lever posting by ID.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "postingId": {
            "type": "string",
            "minLength": 1,
            "description": "The Lever object ID."
          }
        },
        "additionalProperties": false,
        "description": "Input payload for retrieving a Lever posting."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "posting": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "The raw object returned by Lever."
          }
        },
        "additionalProperties": false,
        "description": "Lever posting response."
      }
    },
    {
      "id": "lever.list_opportunities",
      "service": "lever",
      "name": "list_opportunities",
      "description": "List Lever opportunities with optional timestamp, posting, stage, archive, contact, and expansion filters.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "offset": {
            "type": "string",
            "minLength": 1,
            "description": "The pagination cursor returned by Lever."
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 100,
            "description": "The maximum number of records to return."
          },
          "createdAtStart": {
            "type": "integer",
            "description": "A Unix timestamp in milliseconds."
          },
          "createdAtEnd": {
            "type": "integer",
            "description": "A Unix timestamp in milliseconds."
          },
          "updatedAtStart": {
            "type": "integer",
            "description": "A Unix timestamp in milliseconds."
          },
          "updatedAtEnd": {
            "type": "integer",
            "description": "A Unix timestamp in milliseconds."
          },
          "stageId": {
            "type": "string",
            "minLength": 1,
            "description": "Only return opportunities currently in this stage ID."
          },
          "postingId": {
            "type": "string",
            "minLength": 1,
            "description": "Only return opportunities associated with this posting ID."
          },
          "archiveReasonId": {
            "type": "string",
            "minLength": 1,
            "description": "Only return archived opportunities with this archive reason ID."
          },
          "contact": {
            "type": "string",
            "minLength": 1,
            "description": "Only return opportunities for this contact ID."
          },
          "expand": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "applications",
                "stage",
                "contact",
                "comments",
                "tasks",
                "notes",
                "phones",
                "emails"
              ],
              "description": "One supported Lever opportunity expansion."
            },
            "description": "Related opportunity objects to expand in Lever's response.",
            "minItems": 1
          }
        },
        "additionalProperties": false,
        "description": "Input payload for listing Lever opportunities."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "page": {
            "type": "object",
            "properties": {
              "hasNext": {
                "type": "boolean",
                "description": "Whether Lever indicates that another page is available."
              },
              "next": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "The cursor to use for the next page when available."
                  },
                  {
                    "type": "null"
                  }
                ]
              }
            },
            "additionalProperties": false,
            "description": "Pagination metadata returned by Lever."
          },
          "opportunities": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true,
              "description": "The raw object returned by Lever."
            },
            "description": "Opportunities returned by Lever."
          }
        },
        "additionalProperties": false,
        "description": "Lever opportunity list response."
      }
    },
    {
      "id": "lever.list_opportunity_notes",
      "service": "lever",
      "name": "list_opportunity_notes",
      "description": "List notes attached to a Lever opportunity.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "opportunityId": {
            "type": "string",
            "minLength": 1,
            "description": "The Lever object ID."
          },
          "offset": {
            "type": "string",
            "minLength": 1,
            "description": "The pagination cursor returned by Lever."
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 100,
            "description": "The maximum number of records to return."
          }
        },
        "additionalProperties": false,
        "required": [
          "opportunityId"
        ],
        "description": "Input payload for listing notes on a Lever opportunity."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "page": {
            "type": "object",
            "properties": {
              "hasNext": {
                "type": "boolean",
                "description": "Whether Lever indicates that another page is available."
              },
              "next": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "The cursor to use for the next page when available."
                  },
                  {
                    "type": "null"
                  }
                ]
              }
            },
            "additionalProperties": false,
            "description": "Pagination metadata returned by Lever."
          },
          "notes": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true,
              "description": "The raw object returned by Lever."
            },
            "description": "Notes returned by Lever."
          }
        },
        "additionalProperties": false,
        "description": "Lever opportunity note list response."
      }
    },
    {
      "id": "lever.list_postings",
      "service": "lever",
      "name": "list_postings",
      "description": "List Lever job postings with optional state, owner, location, and team filters.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "offset": {
            "type": "string",
            "minLength": 1,
            "description": "The pagination cursor returned by Lever."
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 100,
            "description": "The maximum number of records to return."
          },
          "state": {
            "type": "string",
            "enum": [
              "published",
              "internal",
              "closed",
              "draft"
            ],
            "description": "The Lever posting state."
          },
          "team": {
            "type": "string",
            "minLength": 1,
            "description": "Only return postings assigned to this team."
          },
          "location": {
            "type": "string",
            "minLength": 1,
            "description": "Only return postings for this location."
          },
          "department": {
            "type": "string",
            "minLength": 1,
            "description": "Only return postings assigned to this department."
          },
          "owner": {
            "type": "string",
            "minLength": 1,
            "description": "Only return postings owned by this Lever user ID."
          },
          "tag": {
            "type": "string",
            "minLength": 1,
            "description": "Only return postings with this posting tag."
          }
        },
        "additionalProperties": false,
        "description": "Input payload for listing Lever postings."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "page": {
            "type": "object",
            "properties": {
              "hasNext": {
                "type": "boolean",
                "description": "Whether Lever indicates that another page is available."
              },
              "next": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "The cursor to use for the next page when available."
                  },
                  {
                    "type": "null"
                  }
                ]
              }
            },
            "additionalProperties": false,
            "description": "Pagination metadata returned by Lever."
          },
          "postings": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true,
              "description": "The raw object returned by Lever."
            },
            "description": "Postings returned by Lever."
          }
        },
        "additionalProperties": false,
        "description": "Lever posting list response."
      }
    }
  ]
}
