Triggered when a recruiter adds one or more candidates to a job
(e.g. from the company list, AI search, or moving from another job).
Whether API-driven writes also emit this event is not stated in the
documentation.
Your webhook verification secret. When a webhook key has been
generated in the dashboard (Account Settings → Developers → API
Key Management, under Webhook Configuration), TapTalent sends it
in this header; if no key has been set, the header may be empty.
Verify it by plain equality against the key you stored when you
generated or refreshed it, and reject mismatches (e.g. 401
Unauthorized). The key is shown only once when created or
refreshed. HMAC signature verification is not yet available.
Body
application/json
Common envelope for every webhook delivery. Deliveries are always HTTP
POST requests with Content-Type: application/json, sent to the single
company-level HTTPS webhook endpoint configured in the TapTalent
dashboard (Account Settings → Developers → API Key Management →
Webhook Configuration); only one webhook URL can be configured per
company, and configuration is dashboard-only (not available via this
API). Job and candidate events are documented as triggered by
recruiter actions in the dashboard; whether API-driven writes also
emit them is not stated. Endpoints must respond with a 2xx status
within 5 seconds; failed deliveries are retried at 200 ms, 400 ms and
800 ms before being marked failed. Make handlers idempotent, since
retries can cause duplicate deliveries.
The TapTalent company ID the event belongs to. The documented
payload-structure table declares this field (integer), but the
examples in the canonical event reference omit it while examples
on other pages include it — it is therefore modeled as optional.
Docs elsewhere show placeholder strings like "companyId_1"; the
underlying identifier is an integer.
Response
2XX
Acknowledge receipt within 5 seconds; non-2xx or timeout triggers retries at 200 ms, 400 ms and 800 ms before the delivery is marked failed.
Was this page helpful?
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/schema.json","name":"Taptalent Partner API","colors":{"primary":"#6e58ff","light":"#6e58ff","dark":"#ab9ffc"},"logo":{"light":"https://mintcdn.com/taptalent/lKy84_BssSCy2hcz/images/TTLogo(1).png?fit=max\u0026auto=format\u0026n=lKy84_BssSCy2hcz\u0026q=85\u0026s=ac7c949427cc2893306f6036415f087e","dark":"https://mintcdn.com/taptalent/lKy84_BssSCy2hcz/images/TTLogo(1).png?fit=max\u0026auto=format\u0026n=lKy84_BssSCy2hcz\u0026q=85\u0026s=ac7c949427cc2893306f6036415f087e","href":"https://taptalent.ai"},"favicon":"https://mintcdn.com/taptalent/lKy84_BssSCy2hcz/images/TTLogo(1).png?fit=max\u0026auto=format\u0026n=lKy84_BssSCy2hcz\u0026q=85\u0026s=ac7c949427cc2893306f6036415f087e","background":{"decoration":"gradient"},"navbar":{"links":[]},"footer":{"socials":{"linkedin":"https://www.linkedin.com/company/taptalent-ai","website":"https://taptalent.ai/"}},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"taptalent","hasAudioNarration":false,"actualSubdomain":"taptalent","customDomains":["docs.taptalent.io"],"gitSource":{"type":"github","owner":"taptalent-ai","repo":"taptalent-docs","deployBranch":"feat/companyCampaignPartnerAPI","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"feedback":{"thumbs":true},"entitlements":{},"buildId":"6acf73c9b4870666e533191e","clientVersion":"0.0.4076","searchFilterCounts":[{"language":"default","tag":"API Playground","count":63},{"language":"default","tag":"Documentation","count":26},{"language":"default","tag":"Webhooks","count":20},{"language":"default","tag":"API Reference","count":16},{"language":"default","tag":"Candidate Self-Scheduling","count":13},{"language":"default","tag":"Candidates","count":6},{"language":"default","tag":"Custom Field Values","count":6},{"language":"default","tag":"Pipelines","count":6},{"language":"default","tag":"Custom Fields","count":5},{"language":"default","tag":"Job Candidates","count":5}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-metadata","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"comment-mode","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"api-playground/webhooks/candidates-added-to-a-job","slug":"/api-playground/webhooks/candidates-added-to-a-job","pageMetadata":{"title":"Candidates added to a job","description":"Triggered when a recruiter adds one or more candidates to a job\n(e.g. from the company list, AI search, or moving from another job).\nWhether API-driven writes also emit this event is not stated in the\ndocumentation.\n","version":null,"deprecated":null,"openapi":"/api-reference/openapi.yaml webhook candidate.added_to_job","href":"/api-playground/webhooks/candidates-added-to-a-job","autogeneratedByOpenApi":true},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Triggered when a recruiter adds one or more candidates to a job\\n(e.g. from the company list, AI search, or moving from another job).\\nWhether API-driven writes also emit this event is not stated in the\\ndocumentation.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){return _jsx(_Fragment,{})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Candidates added to a job","description":"Triggered when a recruiter adds one or more candidates to a job\n(e.g. from the company list, AI search, or moving from another job).\nWhether API-driven writes also emit this event is not stated in the\ndocumentation.\n","version":null,"deprecated":null,"openapi":"/api-reference/openapi.yaml webhook candidate.added_to_job","href":"/api-playground/webhooks/candidates-added-to-a-job","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"tags":["Webhooks"],"operationId":"webhookCandidateAddedToJob","summary":"Candidates added to a job","description":"Triggered when a recruiter adds one or more candidates to a job\n(e.g. from the company list, AI search, or moving from another job).\nWhether API-driven writes also emit this event is not stated in the\ndocumentation.\n","security":[],"parameters":["8117e057-8068-4839-97c9-41eefcc034e0","e06a7576-8ae5-419f-8601-ce44880a584b","b67316ff-9eeb-4151-bab6-b4acb51cb2e6"],"requestBody":"fdd66743-bbd9-4476-8d1b-1790f13cee07","responses":{"2XX":"e583f535-daf0-48ad-8e5a-1be0071ce138"},"method":"post","type":"webhook","servers":["33fc5173-9c79-4ceb-afc4-86a4687d00cd","3a2ed6ba-6976-41bf-ae76-fe04d352e807"],"path":"candidate.added_to_job","baseUrlOptions":["https://partner-api.taptalent.io/v1/partner","https://sandbox.partner-api.taptalent.io/v1/partner"],"title":"Candidates added to a job","codeSamples":[],"requiredOnlyExamples":false,"requestExamples":[{"language":"json","filename":"candidatesAdded","code":"{\n \"event\": \"candidate.added_to_job\",\n \"timestamp\": \"2024-01-20T14:45:00Z\",\n \"data\": {\n \"jobId\": 12345,\n \"stageId\": 2,\n \"candidateIds\": [\n 501,\n 502\n ],\n \"jobCandidateIds\": [\n 101,\n 102\n ],\n \"count\": 2\n }\n}"}],"requestExampleType":"webhook","responseExampleType":"generated"},"dependencies":{"parameters":{"8117e057-8068-4839-97c9-41eefcc034e0":{"name":"X-Webhook-Event","in":"header","required":true,"description":"The event type of this delivery (e.g. `resume.bulk_upload_parse.started`); matches the `event` field in the request body.","schema":{"type":"string","isRequired":true,"description":"The event type of this delivery (e.g. `resume.bulk_upload_parse.started`); matches the `event` field in the request body.","uniqueKey":"","typeLabel":"string"}},"e06a7576-8ae5-419f-8601-ce44880a584b":{"name":"X-Webhook-Timestamp","in":"header","required":true,"description":"ISO 8601 timestamp of when the event occurred.","schema":{"type":"string","format":"date-time","isRequired":true,"description":"ISO 8601 timestamp of when the event occurred.","uniqueKey":"","typeLabel":"string\u003cdate-time>"}},"b67316ff-9eeb-4151-bab6-b4acb51cb2e6":{"name":"X-Webhook-Key","in":"header","required":false,"description":"Your webhook verification secret. When a webhook key has been\ngenerated in the dashboard (Account Settings → Developers → API\nKey Management, under Webhook Configuration), TapTalent sends it\nin this header; if no key has been set, the header may be empty.\nVerify it by plain equality against the key you stored when you\ngenerated or refreshed it, and reject mismatches (e.g. 401\nUnauthorized). The key is shown only once when created or\nrefreshed. HMAC signature verification is not yet available.\n","schema":{"type":"string","isRequired":false,"description":"Your webhook verification secret. When a webhook key has been\ngenerated in the dashboard (Account Settings → Developers → API\nKey Management, under Webhook Configuration), TapTalent sends it\nin this header; if no key has been set, the header may be empty.\nVerify it by plain equality against the key you stored when you\ngenerated or refreshed it, and reject mismatches (e.g. 401\nUnauthorized). The key is shown only once when created or\nrefreshed. HMAC signature verification is not yet available.\n","uniqueKey":"","typeLabel":"string"}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","description":"Common envelope for every webhook delivery. Deliveries are always HTTP\nPOST requests with `Content-Type: application/json`, sent to the single\ncompany-level HTTPS webhook endpoint configured in the TapTalent\ndashboard (Account Settings → Developers → API Key Management →\nWebhook Configuration); only one webhook URL can be configured per\ncompany, and configuration is dashboard-only (not available via this\nAPI). Job and candidate events are documented as triggered by\nrecruiter actions in the dashboard; whether API-driven writes also\nemit them is not stated. Endpoints must respond with a 2xx status\nwithin 5 seconds; failed deliveries are retried at 200 ms, 400 ms and\n800 ms before being marked failed. Make handlers idempotent, since\nretries can cause duplicate deliveries.\n","required":["event","timestamp","data"],"properties":{"event":{"type":"string","description":"The event type (e.g. `candidate.updated`).","const":"candidate.added_to_job","isRequired":true,"uniqueKey":"event","typeLabel":"string"},"timestamp":{"type":"string","format":"date-time","description":"ISO 8601 UTC timestamp when the event occurred.","isRequired":true,"uniqueKey":"timestamp","typeLabel":"string\u003cdate-time>"},"data":{"type":"object","description":"Payload for `candidate.added_to_job`.","required":["jobId","candidateIds","jobCandidateIds","count"],"properties":{"jobId":{"type":"integer","description":"The job the candidates were added to.","isRequired":true,"uniqueKey":"data.jobId","typeLabel":"integer"},"candidateIds":{"type":"array","description":"Candidate IDs that were added. Documented examples show placeholder strings like \"candidateId-1\"; modeled as integers per the API's integer candidate identifiers.","items":{"type":"integer","uniqueKey":"data.candidateIds.items.[INDEX]","typeLabel":"integer"},"isRequired":true,"uniqueKey":"data.candidateIds","typeLabel":"integer[]"},"jobCandidateIds":{"type":"array","description":"Job–candidate record IDs for each added candidate.","items":{"type":"integer","uniqueKey":"data.jobCandidateIds.items.[INDEX]","typeLabel":"integer"},"isRequired":true,"uniqueKey":"data.jobCandidateIds","typeLabel":"integer[]"},"count":{"type":"number","description":"Number of candidates added.","isRequired":true,"uniqueKey":"data.count","typeLabel":"number"},"stageId":{"type":"integer","description":"The pipeline stage ID (optional in payload).","uniqueKey":"data.stageId","typeLabel":"integer"}},"isRequired":true,"uniqueKey":"data","typeLabel":"object"},"companyId":{"type":"integer","description":"The TapTalent company ID the event belongs to. The documented\npayload-structure table declares this field (integer), but the\nexamples in the canonical event reference omit it while examples\non other pages include it — it is therefore modeled as optional.\nDocs elsewhere show placeholder strings like \"companyId_1\"; the\nunderlying identifier is an integer.\n","uniqueKey":"companyId","typeLabel":"integer"}},"uniqueKey":"","typeLabel":"object"},"examples":{"candidatesAdded":{"title":"candidatesAdded","description":"Candidate ids shown in the docs as placeholder strings (\"candidateId-1\", \"candidateId-2\") are corrected to integers.","value":{"event":"candidate.added_to_job","timestamp":"2024-01-20T14:45:00Z","data":{"jobId":12345,"stageId":2,"candidateIds":[501,502],"jobCandidateIds":[101,102],"count":2}}}},"exampleType":"examples"}},"exampleType":"examples"},"responses":{"e583f535-daf0-48ad-8e5a-1be0071ce138":{"description":"Acknowledge receipt within 5 seconds; non-2xx or timeout triggers retries at 200 ms, 400 ms and 800 ms before the delivery is marked failed.","content":{"_mintlify/placeholder":{"schema":{"type":"object","description":""}}}}},"security":{},"servers":{"33fc5173-9c79-4ceb-afc4-86a4687d00cd":{"url":"https://partner-api.taptalent.io/v1/partner","description":"Production (use `sk_live_` keys)"},"3a2ed6ba-6976-41bf-ae76-fe04d352e807":{"url":"https://sandbox.partner-api.taptalent.io/v1/partner","description":"Sandbox / staging (use `sk_test_` keys)"}}},"originalFileLocation":"api-reference/openapi.yaml"},"subdomain":"taptalent","siteName":"Taptalent Partner API","title":"Candidates added to a job - Taptalent Partner API","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-14T12:21:43.766Z","originalFileLocation":"api-playground/webhooks/candidates-added-to-a-job.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Triggered when a recruiter adds one or more candidates to a job (e.g. from the company list, AI search, or moving from another job). Whether API-driven writes also emit this event is not stated in the documentation.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Taptalent Partner API\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/taptalent/RGngVHavW5nHpOXk/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/taptalent/RGngVHavW5nHpOXk/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/taptalent/RGngVHavW5nHpOXk/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/taptalent/RGngVHavW5nHpOXk/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/taptalent/RGngVHavW5nHpOXk/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/taptalent/RGngVHavW5nHpOXk/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/taptalent/RGngVHavW5nHpOXk/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/taptalent/RGngVHavW5nHpOXk/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/taptalent/RGngVHavW5nHpOXk/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Candidates added to a job - Taptalent Partner API\">\u003cmeta data-mint-head property=\"og:description\" content=\"Triggered when a recruiter adds one or more candidates to a job (e.g. from the company list, AI search, or moving from another job). Whether API-driven writes also emit this event is not stated in the documentation.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Taptalent Partner API\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.taptalent.io/api-playground/webhooks/candidates-added-to-a-job\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://taptalent.mintlify.site/_mintlify/api/og/v2?division=Webhooks\u0026amp;title=Candidates+added+to+a+job\u0026amp;description=Triggered+when+a+recruiter+adds+one+or+more+candidates+to+a+job%0A%28e.g.+from+the+company+list%2C+AI+search%2C+or+moving+from+another+job%29.%0AWhether+API-driven+writes+a\u0026amp;theme=646244e5d078ae15de8cf593\u0026amp;signature=17a0143e0bae64efa63971686ede93d9bdf551f0e5f8269217408493bd2c424d\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Candidates added to a job - Taptalent Partner API\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Triggered when a recruiter adds one or more candidates to a job (e.g. from the company list, AI search, or moving from another job). Whether API-driven writes also emit this event is not stated in the documentation.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://taptalent.mintlify.site/_mintlify/api/og/v2?division=Webhooks\u0026amp;title=Candidates+added+to+a+job\u0026amp;description=Triggered+when+a+recruiter+adds+one+or+more+candidates+to+a+job%0A%28e.g.+from+the+company+list%2C+AI+search%2C+or+moving+from+another+job%29.%0AWhether+API-driven+writes+a\u0026amp;theme=646244e5d078ae15de8cf593\u0026amp;signature=17a0143e0bae64efa63971686ede93d9bdf551f0e5f8269217408493bd2c424d\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/taptalent/RGngVHavW5nHpOXk/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Taptalent Partner API\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#6e58ff\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.taptalent.io/api-playground/webhooks/candidates-added-to-a-job\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-playground/webhooks/candidates-added-to-a-job.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.taptalent.io/#organization\",\"name\":\"Taptalent Partner API\",\"url\":\"https://docs.taptalent.io\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/taptalent/lKy84_BssSCy2hcz/images/TTLogo(1).png?fit=max\u0026auto=format\u0026n=lKy84_BssSCy2hcz\u0026q=85\u0026s=ac7c949427cc2893306f6036415f087e\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.taptalent.io#website\",\"name\":\"Taptalent Partner API\",\"url\":\"https://docs.taptalent.io\",\"publisher\":{\"@id\":\"https://docs.taptalent.io/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.taptalent.io/api-playground/webhooks/candidates-added-to-a-job#webpage\",\"url\":\"https://docs.taptalent.io/api-playground/webhooks/candidates-added-to-a-job\",\"name\":\"Candidates added to a job\",\"description\":\"Triggered when a recruiter adds one or more candidates to a job (e.g. from the company list, AI search, or moving from another job). Whether API-driven writes also emit this event is not stated in the documentation.\",\"dateModified\":\"2026-10-14T12:21:43.766Z\",\"isPartOf\":{\"@id\":\"https://docs.taptalent.io#website\"},\"breadcrumb\":{\"@id\":\"https://docs.taptalent.io/api-playground/webhooks/candidates-added-to-a-job#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.taptalent.io/api-playground/webhooks/candidates-added-to-a-job#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Webhooks\",\"item\":\"https://docs.taptalent.io/api-playground/webhooks/bulk-resume-upload-batch-started\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Candidates added to a job\",\"item\":\"https://docs.taptalent.io/api-playground/webhooks/candidates-added-to-a-job\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.taptalent.io/api-playground/webhooks/candidates-added-to-a-job#apireference\",\"headline\":\"Candidates added to a job\",\"name\":\"Candidates added to a job\",\"description\":\"Triggered when a recruiter adds one or more candidates to a job (e.g. from the company list, AI search, or moving from another job). Whether API-driven writes also emit this event is not stated in the documentation.\",\"url\":\"https://docs.taptalent.io/api-playground/webhooks/candidates-added-to-a-job\",\"mainEntityOfPage\":{\"@id\":\"https://docs.taptalent.io/api-playground/webhooks/candidates-added-to-a-job#webpage\"},\"dateModified\":\"2026-10-14T12:21:43.766Z\",\"publisher\":{\"@id\":\"https://docs.taptalent.io/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.taptalent.io#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Taptalent Partner API\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Taptalent Partner API","nav":{"global":null,"tabs":[{"tab":"Documentation","pages":[{"title":"Documentation","href":"/introduction"}]},{"tab":"API Playground","groups":[{"group":"Jobs","pages":[{"title":"List jobs","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /jobs","href":"/api-playground/jobs/list-jobs"},{"title":"Create a job","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /jobs","href":"/api-playground/jobs/create-a-job"},{"title":"Get a job","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /jobs/{jobId}","href":"/api-playground/jobs/get-a-job"},{"title":"Update a job","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml put /jobs/{jobId}","href":"/api-playground/jobs/update-a-job"}]},{"group":"Candidates","pages":[{"title":"Add a candidate","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /candidates","href":"/api-playground/candidates/add-a-candidate"},{"title":"List candidates","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /candidates/list","href":"/api-playground/candidates/list-candidates"},{"title":"Get candidate details","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /candidates/{candidateId}","href":"/api-playground/candidates/get-candidate-details"},{"title":"Bulk upload resumes","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /candidates/bulk/resume","href":"/api-playground/candidates/bulk-upload-resumes"},{"title":"Get batch candidates","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /candidates/batch/{batchId}","href":"/api-playground/candidates/get-batch-candidates"},{"title":"Bulk fetch candidates","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /candidates/bulk-fetch","href":"/api-playground/candidates/bulk-fetch-candidates"}]},{"group":"Job Candidates","pages":[{"title":"Bulk fetch job candidates","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /job-candidates/bulk-fetch","href":"/api-playground/job-candidates/bulk-fetch-job-candidates"},{"title":"Bulk upload resumes to a job","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /job-candidates/bulk/resume","href":"/api-playground/job-candidates/bulk-upload-resumes-to-a-job"},{"title":"List candidates for a job","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /job-candidates/job/{jobId}/candidates","href":"/api-playground/job-candidates/list-candidates-for-a-job"},{"title":"List candidates in a pipeline stage","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /job-candidates/stage/{stageId}/candidates","href":"/api-playground/job-candidates/list-candidates-in-a-pipeline-stage"},{"title":"Move a job candidate to a stage","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml put /job-candidates/{jobCandidateId}/stage","href":"/api-playground/job-candidates/move-a-job-candidate-to-a-stage"}]},{"group":"Pipelines","pages":[{"title":"List pipelines","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /pipelines","href":"/api-playground/pipelines/list-pipelines"},{"title":"Create a pipeline","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /pipelines","href":"/api-playground/pipelines/create-a-pipeline"},{"title":"Get pipeline details","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /pipelines/{pipelineId}","href":"/api-playground/pipelines/get-pipeline-details"},{"title":"Update a pipeline","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml put /pipelines/{pipelineId}","href":"/api-playground/pipelines/update-a-pipeline"},{"title":"Create or update a pipeline stage","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /pipelines/stages","href":"/api-playground/pipelines/create-or-update-a-pipeline-stage"},{"title":"Delete a pipeline stage","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml delete /pipelines/stages/{stageId}","href":"/api-playground/pipelines/delete-a-pipeline-stage"}]},{"group":"Custom Fields","pages":[{"title":"List custom fields","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /custom-fields","href":"/api-playground/custom-fields/list-custom-fields"},{"title":"Create a custom field","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /custom-fields","href":"/api-playground/custom-fields/create-a-custom-field"},{"title":"Get a custom field","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /custom-fields/{customFieldId}","href":"/api-playground/custom-fields/get-a-custom-field"},{"title":"Update a custom field","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml put /custom-fields/{customFieldId}","href":"/api-playground/custom-fields/update-a-custom-field"},{"title":"Delete a custom field","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml delete /custom-fields/{customFieldId}","href":"/api-playground/custom-fields/delete-a-custom-field"}]},{"group":"Custom Field Values","pages":[{"title":"List custom field values for an entity","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /custom-field-values","href":"/api-playground/custom-field-values/list-custom-field-values-for-an-entity"},{"title":"Create or update a custom field value","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /custom-field-values","href":"/api-playground/custom-field-values/create-or-update-a-custom-field-value"},{"title":"Bulk create or update custom field values","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /custom-field-values/bulk","href":"/api-playground/custom-field-values/bulk-create-or-update-custom-field-values"},{"title":"Get a custom field value","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /custom-field-values/{valueId}","href":"/api-playground/custom-field-values/get-a-custom-field-value"},{"title":"Delete a custom field value","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml delete /custom-field-values/{valueId}","href":"/api-playground/custom-field-values/delete-a-custom-field-value"},{"title":"Delete all custom field values for an entity","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml delete /custom-field-values/entity/{entityType}/{entityId}","href":"/api-playground/custom-field-values/delete-all-custom-field-values-for-an-entity"}]},{"group":"Candidate Self-Scheduling","pages":[{"title":"List booking schedules","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /booking-schedules","href":"/api-playground/candidate-self-scheduling/list-booking-schedules"},{"title":"Get a booking schedule","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /booking-schedules/{bookingScheduleId}","href":"/api-playground/candidate-self-scheduling/get-a-booking-schedule"},{"title":"List available slots","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /booking-schedules/{bookingScheduleId}/slots","href":"/api-playground/candidate-self-scheduling/list-available-slots"},{"title":"List locations","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /booking-schedules/{bookingScheduleId}/locations","href":"/api-playground/candidate-self-scheduling/list-locations"},{"title":"List questions","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /booking-schedules/{bookingScheduleId}/questions","href":"/api-playground/candidate-self-scheduling/list-questions"},{"title":"Create a candidate scheduling link","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /booking-schedules/{bookingScheduleId}/links","href":"/api-playground/candidate-self-scheduling/create-a-candidate-scheduling-link"},{"title":"Create a booking","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /booking-schedules/{bookingScheduleId}/bookings","href":"/api-playground/candidate-self-scheduling/create-a-booking"},{"title":"List bookings","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /bookings","href":"/api-playground/candidate-self-scheduling/list-bookings"},{"title":"Get a booking","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml get /bookings/{bookingId}","href":"/api-playground/candidate-self-scheduling/get-a-booking"},{"title":"Reschedule a booking","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /bookings/{bookingId}/reschedule","href":"/api-playground/candidate-self-scheduling/reschedule-a-booking"},{"title":"Cancel a booking","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /bookings/{bookingId}/cancel","href":"/api-playground/candidate-self-scheduling/cancel-a-booking"},{"title":"Record attendance / check-in","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /bookings/{bookingId}/attendance","href":"/api-playground/candidate-self-scheduling/record-attendance-check-in"},{"title":"Record attendance by code","deprecated":null,"version":null,"openapi":"/api-reference/openapi.yaml post /attendance-codes/{attendanceCode}/check-in","href":"/api-playground/candidate-self-scheduling/record-attendance-by-code"}]},{"group":"Webhooks","pages":[{"title":"Bulk resume upload batch started","version":null,"deprecated":null,"openapi":"/api-reference/openapi.yaml webhook resume.bulk_upload_parse.started","href":"/api-playground/webhooks/bulk-resume-upload-batch-started"},{"title":"Bulk resume upload batch completed","version":null,"deprecated":null,"openapi":"/api-reference/openapi.yaml webhook resume.bulk_upload_parse.completed","href":"/api-playground/webhooks/bulk-resume-upload-batch-completed"},{"title":"Bulk resume upload batch failed","version":null,"deprecated":null,"openapi":"/api-reference/openapi.yaml webhook resume.bulk_upload_parse.failed","href":"/api-playground/webhooks/bulk-resume-upload-batch-failed"},{"title":"Single resume parse completed","version":null,"deprecated":null,"openapi":"/api-reference/openapi.yaml webhook resume.single_parse.completed","href":"/api-playground/webhooks/single-resume-parse-completed"},{"title":"Single resume parse failed","version":null,"deprecated":null,"openapi":"/api-reference/openapi.yaml webhook resume.single_parse.failed","href":"/api-playground/webhooks/single-resume-parse-failed"},{"title":"Job created","version":null,"deprecated":null,"openapi":"/api-reference/openapi.yaml webhook job.created","href":"/api-playground/webhooks/job-created"},{"title":"Job details updated","version":null,"deprecated":null,"openapi":"/api-reference/openapi.yaml webhook job.updated","href":"/api-playground/webhooks/job-details-updated"},{"title":"Job status changed","description":"Triggered when a recruiter changes a job's status (e.g. Draft →\nActive, Active → Inactive/Closed). Whether API-driven status changes\nalso emit this event is not stated in the documentation.\n","version":null,"deprecated":null,"openapi":"/api-reference/openapi.yaml webhook job.status_changed","href":"/api-playground/webhooks/job-status-changed"},{"title":"Candidates added to a job","version":null,"deprecated":null,"openapi":"/api-reference/openapi.yaml webhook candidate.added_to_job","href":"/api-playground/webhooks/candidates-added-to-a-job"},{"title":"Candidates moved to a different stage","description":"Triggered when a recruiter moves one or more candidates to a\ndifferent pipeline stage (e.g. kanban drag-and-drop). Whether\nAPI-driven stage moves also emit this event is not stated in the\ndocumentation.\n","version":null,"deprecated":null,"openapi":"/api-reference/openapi.yaml webhook candidate.stage_changed","href":"/api-playground/webhooks/candidates-moved-to-a-different-stage"},{"title":"Candidates hired","version":null,"deprecated":null,"openapi":"/api-reference/openapi.yaml webhook candidate.hired","href":"/api-playground/webhooks/candidates-hired"},{"title":"Candidates rejected","version":null,"deprecated":null,"openapi":"/api-reference/openapi.yaml webhook candidate.rejected","href":"/api-playground/webhooks/candidates-rejected"},{"title":"Candidates removed from a job","version":null,"deprecated":null,"openapi":"/api-reference/openapi.yaml webhook candidate.removed_from_job","href":"/api-playground/webhooks/candidates-removed-from-a-job"},{"title":"Candidate profile or application updated","version":null,"deprecated":null,"openapi":"/api-reference/openapi.yaml webhook candidate.updated","href":"/api-playground/webhooks/candidate-profile-or-application-updated"},{"title":"Booking scheduled","version":null,"deprecated":null,"openapi":"/api-reference/openapi.yaml webhook booking.scheduled","href":"/api-playground/webhooks/booking-scheduled"},{"title":"Booking rescheduled","version":null,"deprecated":null,"openapi":"/api-reference/openapi.yaml webhook booking.rescheduled","href":"/api-playground/webhooks/booking-rescheduled"},{"title":"Booking cancelled","version":null,"deprecated":null,"openapi":"/api-reference/openapi.yaml webhook booking.cancelled","href":"/api-playground/webhooks/booking-cancelled"},{"title":"Booking attendance updated","version":null,"deprecated":null,"openapi":"/api-reference/openapi.yaml webhook booking.attendance_updated","href":"/api-playground/webhooks/booking-attendance-updated"}]}]}]},"basePath":"","title":"Candidates added to a job - Taptalent Partner API","buildId":"dpl_8LJbrAiZvr1K98WQNZXCyY5AvT34","deploymentId":"dpl_8LJbrAiZvr1K98WQNZXCyY5AvT34","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-i2a3QZ8E.js","utils-ChLwp8m0.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-DRktVTDc.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-CA2pEs4T.js","snippetPresets-ClQ6XrKD.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","ApiExamples-Ct_Lv36y.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-Cn2PYw9e.js","shallow-rkyymjXQ.js","getApiPlaygroundDisplay-BB9vkXtE.js","CodeSnippet-Bm5RU7m1.js","CodeSnippets-BgU9Deuz.js","Page-BUDYNlhG.js","getPastedJson-BD-6NNum.js","icon-8Z6tud2e.js","MethodPill-Tuzr4g3V.js","DuplicateIcon-0ceWFYhN.js","createIcon-FBXow_ST.js","DynamicMarkdown-CD8713Yy.js","SectionHeading-7zgzQbH-.js","axios-vUo_bRtp.js","Markdown-D7Ofw1oz.js","clsx-eKJ4rcii.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-CwjSCXIK.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-9EK5IAXV.js"]}