Merge · OpenAPI Overlay 1.0.0
API Evangelist conversational phrasing for ATS Subpackage Candidates API
8 actions
8 updates
phrasing
extends
openapi/merge-subpackage-candidates-api-openapi.yml
Generated by API Evangelist
Written by API Evangelist tooling for Merge's API. It is a proposal applied on top of the contract, not a document Merge publishes.
What the actions change
x-apievangelist-phrasing
Targets 8
$.info
$.paths['/ats/v1/candidates'].get
$.paths['/ats/v1/candidates'].post
$.paths['/ats/v1/candidates/{id}'].get
$.paths['/ats/v1/candidates/{id}'].patch
$.paths['/ats/v1/candidates/ignore/{model_id}'].post
$.paths['/ats/v1/candidates/meta/patch/{id}'].get
$.paths['/ats/v1/candidates/meta/post'].get
OpenAPI Overlay
# Generated by API Evangelist (build-phrasing.py). Our phrasing, not observed demand.
overlay: 1.0.0
info:
title: API Evangelist conversational phrasing for ATS Subpackage Candidates API
version: 1.0.0
extends: openapi/merge-subpackage-candidates-api-openapi.yml
actions:
- target: $.info
update:
x-apievangelist-phrasing:
method: generated
generated: '2026-09-26'
generator: build-phrasing.py
label: Generated by API Evangelist
operations: 7
- target: $.paths['/ats/v1/candidates'].get
update:
x-apievangelist-phrasing:
intent: List candidates
effect: read
questions:
- How do I find a candidate by email address in the ATS?
- Can I list candidates with a particular tag?
- Which candidates were added to the pipeline this week?
instructions:
- text: List candidates with email {email_addresses}.
slots:
email_addresses: query.email_addresses
- text: Find candidates named {first_name} {last_name}.
slots:
first_name: query.first_name
last_name: query.last_name
- text: Show candidates tagged {tags}.
slots:
tags: query.tags
method: generated
generated: '2026-09-26'
- target: $.paths['/ats/v1/candidates'].post
update:
x-apievangelist-phrasing:
intent: Add a candidate
effect: write
questions:
- How do I add a new candidate to a customer's applicant tracking system?
- Can I create a candidate on behalf of a specific recruiter?
instructions:
- text: Create candidate {model} as recruiter {remote_user_id}.
slots:
model: requestBody.model
remote_user_id: requestBody.remote_user_id
- text: Add a new applicant with details {model}, acting as user {remote_user_id}.
slots:
model: requestBody.model
remote_user_id: requestBody.remote_user_id
method: generated
generated: '2026-09-26'
- target: $.paths['/ats/v1/candidates/{id}'].get
update:
x-apievangelist-phrasing:
intent: Get a candidate
effect: read
questions:
- What does the ATS have on file for one candidate?
- Can I view a candidate's applications and attachments together?
instructions:
- text: Get candidate {id}.
slots:
id: path.id
- text: Fetch candidate {id} with {expand} expanded.
slots:
id: path.id
expand: query.expand
method: generated
generated: '2026-09-26'
- target: $.paths['/ats/v1/candidates/{id}'].patch
update:
x-apievangelist-phrasing:
intent: Update a candidate's profile
effect: write
questions:
- How do I edit an existing candidate's contact details?
- Can I change a candidate profile as a particular recruiter?
instructions:
- text: Update candidate {id} with {model} as user {remote_user_id}.
slots:
id: path.id
model: requestBody.model
remote_user_id: requestBody.remote_user_id
- text: 'Edit existing applicant {id}: {model}, on behalf of {remote_user_id}.'
slots:
id: path.id
model: requestBody.model
remote_user_id: requestBody.remote_user_id
method: generated
generated: '2026-09-26'
- target: $.paths['/ats/v1/candidates/ignore/{model_id}'].post
update:
x-apievangelist-phrasing:
intent: Stop syncing a candidate
effect: destructive
questions:
- How do I exclude a candidate from future syncs, for example on a GDPR request?
- What happens to a candidate's record when I ignore it?
instructions:
- text: Ignore candidate {model_id} because {reason}.
slots:
model_id: path.model_id
reason: requestBody.reason
- text: Stop syncing applicant {model_id}, reason {reason}, with note {message}.
slots:
model_id: path.model_id
reason: requestBody.reason
message: requestBody.message
method: generated
generated: '2026-09-26'
- target: $.paths['/ats/v1/candidates/meta/patch/{id}'].get
update:
x-apievangelist-phrasing:
intent: See which candidate fields can be updated
effect: read
questions:
- Which fields can I change on a given candidate?
- What does the ATS accept when editing a candidate?
instructions:
- text: Get the update metadata for candidate {id}.
slots:
id: path.id
- text: Show editable fields on applicant {id}.
slots:
id: path.id
method: generated
generated: '2026-09-26'
- target: $.paths['/ats/v1/candidates/meta/post'].get
update:
x-apievangelist-phrasing:
intent: See which fields creating a candidate needs
effect: read
questions:
- What fields are required to add a candidate in this ATS?
- Before creating a candidate, how do I check which fields are supported?
instructions:
- text: Get candidate creation metadata for linked account {account_token}.
slots:
account_token: header.X-Account-Token
- text: Show the fields needed to add a new candidate.
method: generated
generated: '2026-09-26'
Work with this as data
Every overlay here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for openapi overlays
4 MCP tools reach this
find_overlaysBrowse and filter every overlay in the catalog.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.
Call it yourself
curl for this page
This overlay
curl "https://apis.io/api/v1/overlays/merge-subpackage-candidates-api-phrasing-overlay"
All openapi overlays
curl "https://apis.io/api/v1/overlays?limit=25"
Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.