{"openapi":"3.1.0","info":{"title":"Ashby Organization (BYOK) API","version":"0.1.0","description":"Ashby Organization (BYOK) lets an AI assistant read your own Ashby Organization data through the Ashby Organization API with a key you supply (Ashby API key (organizationRead and jobsRead permissions)). Read-only: 7 tools (list_locations, list_brands, list_job_boards, list_job_postings, list_job_templates, list_hiring_team_roles, list_api_versions). The BYOK key travels with each request, is used...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-ashby-organization.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-ashby-organization/docs"},"termsOfService":"https://connectorbay.com/byok-ashby-organization/terms"},"servers":[{"url":"https://byok-ashby-organization.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-ashby-organization/docs"},"security":[{"upstreamKey":[]}],"components":{"securitySchemes":{"bearer":{"type":"http","scheme":"bearer","description":"Optional. A Pro API key raises rate limits; no credentials are required."},"upstreamKey":{"type":"apiKey","in":"header","name":"X-Upstream-Key","description":"Your own key for the service this connector wraps (bring your own key). Used for that one call only; never stored, logged or cached."}},"schemas":{"Error":{"type":"object","properties":{"ok":{"const":false},"error":{"type":"object"}}}}},"paths":{"/v1/tools/list_locations":{"post":{"operationId":"list_locations","summary":"List Ashby locations (offices and remote regions) with name, address, workplace type and parent location. Needs the orga","description":"List Ashby locations (offices and remote regions) with name, address, workplace type and parent location. Needs the organizationRead permission. Use for \"What locations are set up in Ashby\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":50,"description":"How many results to return per page (1 to 100).","title":"Limit"},"cursor":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Paging cursor: leave out for the first page, or pass the nextCursor value from the previous answer.","title":"Cursor"},"include_archived":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":false,"description":"True to include archived locations.","title":"Include Archived"},"include_location_hierarchy":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":false,"description":"True to include the location hierarchy (regions).","title":"Include Location Hierarchy"}},"title":"list_locationsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_brands":{"post":{"operationId":"list_brands","summary":"List the brands of the organization with name and hosted jobs page slug. Needs the organizationRead permission. Use for ","description":"List the brands of the organization with name and hosted jobs page slug. Needs the organizationRead permission. Use for \"What brands does my Ashby account have\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":50,"description":"How many results to return per page (1 to 100).","title":"Limit"},"cursor":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Paging cursor: leave out for the first page, or pass the nextCursor value from the previous answer.","title":"Cursor"}},"title":"list_brandsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_job_boards":{"post":{"operationId":"list_job_boards","summary":"List the enabled job boards (external and internal) with id and title. Needs the jobsRead permission. Use for \"Which job","description":"List the enabled job boards (external and internal) with id and title. Needs the jobsRead permission. Use for \"Which job boards are enabled in Ashby\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"list_job_boardsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_job_postings":{"post":{"operationId":"list_job_postings","summary":"List published job postings (optionally also drafts) with title, job id, department, team, location, workplace and emplo","description":"List published job postings (optionally also drafts) with title, job id, department, team, location, workplace and employment type, apply link and update time. Compensation is not returned by this tool. Needs the jobsRead permission. Use for \"Which job postings are live on Ashby\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"location":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Only postings in this location name (case sensitive).","title":"Location"},"department":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Only postings in this department name (case sensitive).","title":"Department"},"listed_only":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":false,"description":"True to drop unlisted postings.","title":"Listed Only"},"include_unpublished":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":false,"description":"True to include draft postings as well.","title":"Include Unpublished"},"job_board_id":{"anyOf":[{"maxLength":60,"type":"string"},{"type":"null"}],"default":null,"description":"Only postings on this job board id (from list_job_boards).","title":"Job Board Id"}},"title":"list_job_postingsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_job_templates":{"post":{"operationId":"list_job_templates","summary":"List job templates with title, status (active or inactive), location and department ids and interview plan ids. Needs th","description":"List job templates with title, status (active or inactive), location and department ids and interview plan ids. Needs the jobsRead permission. Use for \"What job templates exist in Ashby\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":50,"description":"How many results to return per page (1 to 100).","title":"Limit"},"cursor":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Paging cursor: leave out for the first page, or pass the nextCursor value from the previous answer.","title":"Cursor"}},"title":"list_job_templatesArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_hiring_team_roles":{"post":{"operationId":"list_hiring_team_roles","summary":"List the hiring team roles of the organization, either as plain titles or as objects with id and title. Needs the organi","description":"List the hiring team roles of the organization, either as plain titles or as objects with id and title. Needs the organizationRead permission. Use for \"What hiring team roles are defined in Ashby\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"names_only":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":true,"description":"True (default) for an array of role titles; false for objects with id and title.","title":"Names Only"}},"title":"list_hiring_team_rolesArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_api_versions":{"post":{"operationId":"list_api_versions","summary":"List the Ashby API versions and their lifecycle status (pre-release, active, deprecated, unsupported). Any key works. Us","description":"List the Ashby API versions and their lifecycle status (pre-release, active, deprecated, unsupported). Any key works. Use for \"Which Ashby API versions are active\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"list_api_versionsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}}}}