withdraw_job_external_publication
Withdraw a job posting's internet listing
All MCP toolsWrite
Withdraw the internet listing of a job posting. Passes under the connection's scopes — the same act as the withdraw-listing confirmation on the employer app; the withdrawal is attributed to this credential. Market publication continues: signed-in candidates keep seeing the posting and matching is untouched — only the public face goes off. Copies held by search engines and external sites are not removed at once. Use the version from get_job_external_publication as expectedPermissionVersion — a stale value refuses with a version conflict; re-read and retry. Withdrawing a permission that is not granted is a no-op (changed: false). Listing again is a new grant_job_external_publication with the stored originalPublishedAt.
Input schema
{
"type": "object",
"properties": {
"jobId": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
"description": "The job whose internet listing to withdraw (jobs.id)."
},
"expectedPermissionVersion": {
"type": "integer",
"minimum": 0,
"maximum": 2147483647,
"description": "The permission version you loaded."
}
},
"required": [
"jobId",
"expectedPermissionVersion"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}Output schema
{
"type": "object",
"properties": {
"changed": {
"type": "boolean",
"description": "False when the stored permission already equalled the request: no version bump, no history row."
},
"permission": {
"type": "object",
"properties": {
"jobId": {
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
},
"mode": {
"type": "string",
"enum": [
"market-only",
"indexable"
],
"description": "\"indexable\" = the employer permits the internet listing; \"market-only\" = not permitted (the default of every job)."
},
"version": {
"type": "integer",
"minimum": 0,
"maximum": 2147483647,
"description": "The permission's own version — pass as expectedPermissionVersion on the next write."
},
"permissionStatus": {
"type": "string",
"enum": [
"not-permitted",
"permitted",
"expired"
],
"description": "\"permitted\" = mode indexable and validThrough still ahead; \"expired\" = permitted but validThrough passed (renew the deadline to list again); \"not-permitted\" otherwise."
},
"policyVersion": {
"anyOf": [
{
"type": "number",
"const": 1
},
{
"type": "null"
}
],
"description": "The disclosure policy version the permission was granted under; null until granted."
},
"originalPublishedAt": {
"anyOf": [
{
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
},
{
"type": "null"
}
],
"description": "The employer's stated original listing date (ISO 8601, UTC); retained across renewals."
},
"validThrough": {
"anyOf": [
{
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
},
{
"type": "null"
}
],
"description": "The application deadline the employer stated (ISO 8601, UTC); the listing expires at this instant."
},
"firstPublishedAt": {
"anyOf": [
{
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
},
{
"type": "null"
}
],
"description": "When the public face first went live (ISO 8601, UTC); null until the first delivery."
},
"contentUpdatedAt": {
"anyOf": [
{
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
},
{
"type": "null"
}
],
"description": "When the public face last reflected a content change (ISO 8601, UTC); null until the first delivery."
},
"stopReason": {
"anyOf": [
{
"type": "string",
"enum": [
"withdrawn"
]
},
{
"type": "null"
}
],
"description": "\"withdrawn\" after withdraw_job_external_publication; null otherwise."
},
"evaluatedAt": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$",
"description": "The database instant permissionStatus was judged at (ISO 8601, UTC)."
}
},
"required": [
"jobId",
"mode",
"version",
"permissionStatus",
"policyVersion",
"originalPublishedAt",
"validThrough",
"firstPublishedAt",
"contentUpdatedAt",
"stopReason",
"evaluatedAt"
],
"additionalProperties": false
}
},
"required": [
"changed",
"permission"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false
}