{"_id":"587395fe11b3ec1900d3b6ed","__v":0,"category":"587395fe11b3ec1900d3b6dc","githubsync":"","link_url":"","order":0,"project":"551111444878730d00220ecb","slug":"generate-an-access-token","excerpt":"API access to your recruiting data","link_external":false,"parentDoc":null,"version":"587395fe11b3ec1900d3b6db","type":"basic","api":{"settings":"","auth":"required","params":[],"url":"","results":{"codes":[]}},"createdAt":"2015-07-08T14:27:53.650Z","hidden":false,"isReference":false,"next":{"pages":[],"description":""},"sync_unique":"","title":"Getting started","updates":[],"user":"55967fa3430c481900db1b29","body":"Need to display your positions in different ways, or to extract additional information from your [Workable](https://www.workable.com) account? We provide you with an API that gives you full control over your data.\n\nThe Workable API can be used in the following ways:\n\n* Extract information about your: \n  * [account](doc:accounts)\n  * [hiring members](doc:members) and [recruiters](doc:recruiters)\n  * [pipeline stages](doc:stages)\n  * [jobs](doc:jobs) and [questions](doc:job-questions)\n  * scheduled [events](doc:events) \n  * [job's](doc:job-activities) and/or [candidate's](doc:candidate-activities) activity\n* Manage your candidates by:\n  * Fetching [candidates](doc:job-candidates-index)\n  * Extracting detail [candidate](doc:job-candidates-show) info\n  * [Creating candidates](doc:job-candidates-create)\n  * [Updating candidates](doc:update-candidate)\n  * Execute various actions on candidates e.g. [copy](doc:copy-candidate), [relocate](doc:relocate-candidates) or [disqualify](doc:disqualify-candidate) \n  * Adding [comments](doc:comment-on-candidate) or [ratings](doc:rate-candidate) \n\n\n[block:api-header]\n{\n  \"type\": \"basic\",\n  \"title\": \"Generate an API access token\"\n}\n[/block]\nThis guide shows how to generate an API access token for your Workable account.\n[block:callout]\n{\n  \"type\": \"success\",\n  \"body\": \"If you have an application that you’d like to integrate with Workable, we also support OAuth as an alternative authorisation method. \\n\\n[Contact us](mailto: support@workable.com) for more information.\\n[OAuth documentation](https://workable.readme.io/v3/page/oauth)\",\n  \"title\": \"OAuth support\"\n}\n[/block]\nTo start, open the drop-down menu on the top right of your screen and select “Integrations” or press [here](https://www.workable.com/backend/account/integrations):\n\n[block:image]\n{\n  \"images\": [\n    {\n      \"caption\": \"Integrations menu\",\n      \"image\": [\n        \"https://files.readme.io/rlENKfbGSe6jN0okgpeQ_integrations.png\",\n        \"integrations.png\",\n        \"310\",\n        \"360\",\n        \"#3c7498\",\n        \"\"\n      ]\n    }\n  ]\n}\n[/block]\nNow click on the “Generate new token” button:\n\n[block:image]\n{\n  \"images\": [\n    {\n      \"image\": [\n        \"https://files.readme.io/9HabAxoKS4CPOr29r7gD_access_token_generate-560x194.png\",\n        \"access_token_generate-560x194.png\",\n        \"560\",\n        \"194\",\n        \"#6b9ba0\",\n        \"\"\n      ],\n      \"caption\": \"Generate new token button\"\n    }\n  ]\n}\n[/block]\nOnce you click the generate button, you’ll see the new access token being generated:\n\n[block:image]\n{\n  \"images\": [\n    {\n      \"image\": [\n        \"https://files.readme.io/TT0G6yqjQxep1uMfPgXz_access_token_generated-560x142.png\",\n        \"access_token_generated-560x142.png\",\n        \"560\",\n        \"142\",\n        \"#748d99\",\n        \"\"\n      ],\n      \"caption\": \"Access token\"\n    }\n  ]\n}\n[/block]\nIf you're using Mac OS X or Linux, test it on the spot just by typing the following command in your terminal window (remember to replace the ‘account subdomain’):\n\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"curl -H \\\"Authorization:Bearer <ACCESS TOKEN>\\\" \\n     https://<account subdomain>.workable.com/spi/v3/jobs\",\n      \"language\": \"shell\"\n    }\n  ]\n}\n[/block]\nYou will also need the account subdomain which you can find in the company profile settings page:\n[block:image]\n{\n  \"images\": [\n    {\n      \"image\": [\n        \"https://files.readme.io/WKgVyhKaTCaaTm1wJSjY_subdomain.png\",\n        \"subdomain.png\",\n        \"465\",\n        \"522\",\n        \"#955c4a\",\n        \"\"\n      ],\n      \"caption\": \"Account subdomain\"\n    }\n  ]\n}\n[/block]\n\n[block:callout]\n{\n  \"type\": \"danger\",\n  \"title\": \"Revoking The Access Token\",\n  \"body\": \"Be aware that you can revoke this access token anytime, but if you decide to proceed, every script or application that accesses the Workable API through this token will stop functioning. To keep things running smoothly after revoking your current token, you will have to generate a new access token and update every script or application bound to the previous one.\"\n}\n[/block]","childrenPages":[]}

Getting started

API access to your recruiting data

Need to display your positions in different ways, or to extract additional information from your [Workable](https://www.workable.com) account? We provide you with an API that gives you full control over your data. The Workable API can be used in the following ways: * Extract information about your: * [account](doc:accounts) * [hiring members](doc:members) and [recruiters](doc:recruiters) * [pipeline stages](doc:stages) * [jobs](doc:jobs) and [questions](doc:job-questions) * scheduled [events](doc:events) * [job's](doc:job-activities) and/or [candidate's](doc:candidate-activities) activity * Manage your candidates by: * Fetching [candidates](doc:job-candidates-index) * Extracting detail [candidate](doc:job-candidates-show) info * [Creating candidates](doc:job-candidates-create) * [Updating candidates](doc:update-candidate) * Execute various actions on candidates e.g. [copy](doc:copy-candidate), [relocate](doc:relocate-candidates) or [disqualify](doc:disqualify-candidate) * Adding [comments](doc:comment-on-candidate) or [ratings](doc:rate-candidate) [block:api-header] { "type": "basic", "title": "Generate an API access token" } [/block] This guide shows how to generate an API access token for your Workable account. [block:callout] { "type": "success", "body": "If you have an application that you’d like to integrate with Workable, we also support OAuth as an alternative authorisation method. \n\n[Contact us](mailto: support@workable.com) for more information.\n[OAuth documentation](https://workable.readme.io/v3/page/oauth)", "title": "OAuth support" } [/block] To start, open the drop-down menu on the top right of your screen and select “Integrations” or press [here](https://www.workable.com/backend/account/integrations): [block:image] { "images": [ { "caption": "Integrations menu", "image": [ "https://files.readme.io/rlENKfbGSe6jN0okgpeQ_integrations.png", "integrations.png", "310", "360", "#3c7498", "" ] } ] } [/block] Now click on the “Generate new token” button: [block:image] { "images": [ { "image": [ "https://files.readme.io/9HabAxoKS4CPOr29r7gD_access_token_generate-560x194.png", "access_token_generate-560x194.png", "560", "194", "#6b9ba0", "" ], "caption": "Generate new token button" } ] } [/block] Once you click the generate button, you’ll see the new access token being generated: [block:image] { "images": [ { "image": [ "https://files.readme.io/TT0G6yqjQxep1uMfPgXz_access_token_generated-560x142.png", "access_token_generated-560x142.png", "560", "142", "#748d99", "" ], "caption": "Access token" } ] } [/block] If you're using Mac OS X or Linux, test it on the spot just by typing the following command in your terminal window (remember to replace the ‘account subdomain’): [block:code] { "codes": [ { "code": "curl -H \"Authorization:Bearer <ACCESS TOKEN>\" \n https://<account subdomain>.workable.com/spi/v3/jobs", "language": "shell" } ] } [/block] You will also need the account subdomain which you can find in the company profile settings page: [block:image] { "images": [ { "image": [ "https://files.readme.io/WKgVyhKaTCaaTm1wJSjY_subdomain.png", "subdomain.png", "465", "522", "#955c4a", "" ], "caption": "Account subdomain" } ] } [/block] [block:callout] { "type": "danger", "title": "Revoking The Access Token", "body": "Be aware that you can revoke this access token anytime, but if you decide to proceed, every script or application that accesses the Workable API through this token will stop functioning. To keep things running smoothly after revoking your current token, you will have to generate a new access token and update every script or application bound to the previous one." } [/block]
Need to display your positions in different ways, or to extract additional information from your [Workable](https://www.workable.com) account? We provide you with an API that gives you full control over your data. The Workable API can be used in the following ways: * Extract information about your: * [account](doc:accounts) * [hiring members](doc:members) and [recruiters](doc:recruiters) * [pipeline stages](doc:stages) * [jobs](doc:jobs) and [questions](doc:job-questions) * scheduled [events](doc:events) * [job's](doc:job-activities) and/or [candidate's](doc:candidate-activities) activity * Manage your candidates by: * Fetching [candidates](doc:job-candidates-index) * Extracting detail [candidate](doc:job-candidates-show) info * [Creating candidates](doc:job-candidates-create) * [Updating candidates](doc:update-candidate) * Execute various actions on candidates e.g. [copy](doc:copy-candidate), [relocate](doc:relocate-candidates) or [disqualify](doc:disqualify-candidate) * Adding [comments](doc:comment-on-candidate) or [ratings](doc:rate-candidate) [block:api-header] { "type": "basic", "title": "Generate an API access token" } [/block] This guide shows how to generate an API access token for your Workable account. [block:callout] { "type": "success", "body": "If you have an application that you’d like to integrate with Workable, we also support OAuth as an alternative authorisation method. \n\n[Contact us](mailto: support@workable.com) for more information.\n[OAuth documentation](https://workable.readme.io/v3/page/oauth)", "title": "OAuth support" } [/block] To start, open the drop-down menu on the top right of your screen and select “Integrations” or press [here](https://www.workable.com/backend/account/integrations): [block:image] { "images": [ { "caption": "Integrations menu", "image": [ "https://files.readme.io/rlENKfbGSe6jN0okgpeQ_integrations.png", "integrations.png", "310", "360", "#3c7498", "" ] } ] } [/block] Now click on the “Generate new token” button: [block:image] { "images": [ { "image": [ "https://files.readme.io/9HabAxoKS4CPOr29r7gD_access_token_generate-560x194.png", "access_token_generate-560x194.png", "560", "194", "#6b9ba0", "" ], "caption": "Generate new token button" } ] } [/block] Once you click the generate button, you’ll see the new access token being generated: [block:image] { "images": [ { "image": [ "https://files.readme.io/TT0G6yqjQxep1uMfPgXz_access_token_generated-560x142.png", "access_token_generated-560x142.png", "560", "142", "#748d99", "" ], "caption": "Access token" } ] } [/block] If you're using Mac OS X or Linux, test it on the spot just by typing the following command in your terminal window (remember to replace the ‘account subdomain’): [block:code] { "codes": [ { "code": "curl -H \"Authorization:Bearer <ACCESS TOKEN>\" \n https://<account subdomain>.workable.com/spi/v3/jobs", "language": "shell" } ] } [/block] You will also need the account subdomain which you can find in the company profile settings page: [block:image] { "images": [ { "image": [ "https://files.readme.io/WKgVyhKaTCaaTm1wJSjY_subdomain.png", "subdomain.png", "465", "522", "#955c4a", "" ], "caption": "Account subdomain" } ] } [/block] [block:callout] { "type": "danger", "title": "Revoking The Access Token", "body": "Be aware that you can revoke this access token anytime, but if you decide to proceed, every script or application that accesses the Workable API through this token will stop functioning. To keep things running smoothly after revoking your current token, you will have to generate a new access token and update every script or application bound to the previous one." } [/block]
{"_id":"587395fe11b3ec1900d3b6ee","api":{"results":{"codes":[{"name":"","code":"{}","language":"json","status":200},{"name":"","code":"{}","language":"json","status":400}]},"settings":"","auth":"required","params":[],"url":""},"body":"Version 3 is the latest API provided by Workable. \n[block:api-header]\n{\n  \"type\": \"basic\",\n  \"title\": \"New features\"\n}\n[/block]\nVersion 3 includes some new features that significantly improve the performance of the API. To be more specific latest version provides:\n\n* paginated data for [jobs](/docs/jobs) and [candidates](/docs/job-candidates-index)\n* scroll parameters `since_id` and `max_id`\n* filter parameters `created_after` and `updated_after`\n* reduced verbose candidate json on job [candidates](/docs/job-candidates-index) collection\n[block:api-header]\n{\n  \"type\": \"basic\",\n  \"title\": \"Breaking changes\"\n}\n[/block]\n\n[block:callout]\n{\n  \"type\": \"danger\",\n  \"body\": \"The v1 & v2 APIs are now deprecated but will continue to function correctly. We highly recommend you to update to v3 in order to take advantage of the increased performance, improvements and new features.\\n\\n**NOTE:** Updating your code to use the new v3 endpoints will require some changes to your code but we have tried to minimize the changes that you'll have to make.\",\n  \"title\": \"IMPORTANT UPDATES\"\n}\n[/block]\n##  Common changes\n* The `key` attributes are renamed to `id`\n* Timestamp fields are rendered in [ISO 8601](https://en.wikipedia.org/?title=ISO_8601) format (e.g. 2015-06-08T00:00:00Z). Timezone is always UTC\n* Empty string values are now returned as `null`\n* Candidates are  now considered as 'uploaded' by default. You have to include the `sourced: false` in order to consider a candidate as applied. More details on this [here](http://workable.readme.io/docs/job-candidates-create).\n\n##  Candidates collection\nIn order to improve the overall performance of the candidates endpoint the following changes have been made since v2:\n\n* Candidates are sorted by the time inserted on system, in ascending order (older candidates come first).\n* Response contains a limited number of candidates. Number is controlled by the `limit` parameter (50 for default). More results can be fetched by following the `paging/next` url.\n* The candidate json is limited to basic arguments. The following attributes are no longer returned: `address`, `phone`, `outbound_mailbox`, `cover_letter`, `summary`, `education_entries`, `exprerience_entries`, `skills`, `answers`, `resume_url`, `social_profiles`, `tags`. This information can be retrieved by the [candidate info](/docs/job-candidates-show) endpoint.\n\nThe following sample compares the candidate payload of v2 and v3.\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"{\\n      \\\"id\\\": \\\"3fc9a811\\\",\\n      \\\"name\\\": \\\"Mattias Avelin\\\",\\n      \\\"firstname\\\": \\\"Mattias\\\",\\n      \\\"lastname\\\": \\\"Avelin\\\",\\n      \\\"headline\\\": \\\"Software Engineer at Gears of Leo\\\",\\n      \\\"account\\\": {\\n        \\\"subdomain\\\": \\\"groove-tech\\\",\\n        \\\"name\\\": \\\"Groove Tech\\\"\\n      },\\n      \\\"job\\\": {\\n        \\\"shortcode\\\": \\\"GROOV005\\\",\\n        \\\"title\\\": \\\"Office Manager\\\"\\n      },\\n      \\\"stage\\\": \\\"Sourced\\\",\\n      \\\"disqualified\\\": false,\\n      \\\"disqualification_reason\\\": null,\\n      \\\"sourced\\\": true,\\n      \\\"profile_url\\\": \\\"https://groove-tech.workable.com/backend/jobs/376844767/candidates/1070179135\\\",\\n      \\\"email\\\": null,\\n      \\\"domain\\\": null,\\n      \\\"created_at\\\": \\\"2015-07-09T08:54:12Z\\\",\\n      \\\"updated_at\\\": \\\"2015-07-09T08:54:16Z\\\"\\n    }\",\n      \"language\": \"json\",\n      \"name\": \"v3\"\n    },\n    {\n      \"code\": \"{\\n      \\\"key\\\": \\\"3fc9a811\\\",\\n      \\\"name\\\": \\\"Mattias Avelin\\\",\\n      \\\"firstname\\\": \\\"Mattias\\\",\\n      \\\"lastname\\\": \\\"Avelin\\\",\\n      \\\"headline\\\": \\\"Software Engineer at Gears of Leo\\\",\\n      \\\"account\\\": {\\n        \\\"subdomain\\\": \\\"groove-tech\\\",\\n        \\\"name\\\": \\\"Groove Tech\\\"\\n      },\\n      \\\"job\\\": {\\n        \\\"shortcode\\\": \\\"GROOV005\\\",\\n        \\\"title\\\": \\\"Office Manager\\\"\\n      },\\n      \\\"stage\\\": \\\"Sourced\\\",\\n      \\\"disqualified\\\": false,\\n      \\\"sourced\\\": true,\\n      \\\"profile_url\\\": \\\"http://groove-tech.workable.com/backend/jobs/376844767/candidates/1070179135\\\",\\n      \\\"address\\\": \\\"Stockholm, Sweden\\\",\\n      \\\"phone\\\": \\\"\\\",\\n      \\\"email\\\": \\\"\\\",\\n      \\\"outbound_mailbox\\\": \\\"6zz6frwg@outbound.workablestaging.mailgun.org\\\",\\n      \\\"domain\\\": \\\"\\\",\\n      \\\"created_at\\\": \\\"2015-07-09 08:54:12\\\",\\n      \\\"updated_at\\\": \\\"2015-07-09 08:54:16\\\",\\n      \\\"cover_letter\\\": \\\"\\\",\\n      \\\"summary\\\": \\\"Expert knowledge/experience in complex data migration, working with open source solutions (Linux, MySQL, Java, php, Apache, JBoss, TomCat etc.). Experienced in build systems capable of handling high transaction volumes. Experienced MySQL power-user. Worked with clients such as Tele2, Ericsson, Eniro, Bwin Games, SIX and others. Certified MySQL Developer.\\\",\\n      \\\"education_entries\\\": [],\\n      \\\"experience_entries\\\": [\\n        {\\n          \\\"title\\\": \\\"Software Engineer\\\",\\n          \\\"summary\\\": \\\"\\\",\\n          \\\"start_date\\\": \\\"2015-05-01\\\",\\n          \\\"end_date\\\": \\\"\\\",\\n          \\\"company\\\": \\\"Gears of Leo\\\",\\n          \\\"industry\\\": \\\"Gambling & Casinos\\\",\\n          \\\"current\\\": true\\n        }\\n      ],\\n      \\\"skills\\\": [],\\n      \\\"answers\\\": [],\\n      \\\"resume_url\\\": \\\"\\\",\\n      \\\"social_profiles\\\": [\\n        {\\n          \\\"type\\\": \\\"linkedin\\\",\\n          \\\"url\\\": \\\"https://www.linkedin.com/in/mattiasavelin\\\"\\n        }\\n      ],\\n      \\\"tags\\\": []\\n    }\",\n      \"language\": \"json\",\n      \"name\": \"v2\"\n    }\n  ]\n}\n[/block]\n##  Jobs collection\n\n* Jobs are sorted by the time inserted on system, in ascending order (older jobs come first).\n* Response contains a limited number of jobs. Number is controlled by the `limit` parameter (50 for default). More results can be fetched by following the `paging/next` url.\n* The account specific attributes `name` and `description` are removed.\n\nThe following sample compares the job payload of v2 and v3.\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"{\\n  \\\"jobs\\\": [\\n    {\\n      \\\"id\\\": \\\"61884e2\\\",\\n      \\\"title\\\": \\\"Sales Intern\\\",\\n      \\\"full_title\\\": \\\"Sales Intern - US/3/SI\\\",\\n      \\\"shortcode\\\": \\\"GROOV003\\\",\\n      \\\"code\\\": \\\"US/3/SI\\\",\\n      \\\"state\\\": \\\"draft\\\",\\n      \\\"department\\\": \\\"Sales\\\",\\n      \\\"url\\\": \\\"https://groove-tech.workable.com/jobs/102268944\\\",\\n      \\\"application_url\\\": \\\"https://groove-tech.workable.com/jobs/102268944/candidates/new\\\",\\n      \\\"shortlink\\\": \\\"https://groove-tech.workable.com/j/GROOV003\\\",\\n      \\\"location\\\": {\\n        \\\"country\\\": \\\"United States\\\",\\n        \\\"country_code\\\": \\\"US\\\",\\n        \\\"region\\\": \\\"Oregon\\\",\\n        \\\"region_code\\\": \\\"OR\\\",\\n        \\\"city\\\": \\\"Portland\\\",\\n        \\\"zip_code\\\": \\\"97201\\\",\\n        \\\"telecommuting\\\": false\\n      },\\n      \\\"created_at\\\": \\\"2015-07-01T00:00:00Z\\\"\\n    },\\n    {\\n      \\\"id\\\": \\\"1166bf8c\\\",\\n      \\\"title\\\": \\\"Operations Manager\\\",\\n      \\\"full_title\\\": \\\"Operations Manager - US/02/CM\\\",\\n      \\\"shortcode\\\": \\\"GROOV001\\\",\\n      \\\"code\\\": \\\"US/02/CM\\\",\\n      \\\"state\\\": \\\"archived\\\",\\n      \\\"department\\\": \\\"Operations\\\",\\n      \\\"url\\\": \\\"https://groove-tech.workable.com/jobs/291945146\\\",\\n      \\\"application_url\\\": \\\"https://groove-tech.workable.com/jobs/291945146/candidates/new\\\",\\n      \\\"shortlink\\\": \\\"https://groove-tech.workable.com/j/GROOV001\\\",\\n      \\\"location\\\": {\\n        \\\"country\\\": \\\"United States\\\",\\n        \\\"country_code\\\": \\\"US\\\",\\n        \\\"region\\\": \\\"Illinois\\\",\\n        \\\"region_code\\\": \\\"IL\\\",\\n        \\\"city\\\": \\\"Chicago\\\",\\n        \\\"zip_code\\\": \\\"60290\\\",\\n        \\\"telecommuting\\\": false\\n      },\\n      \\\"created_at\\\": \\\"2015-05-07T00:00:00Z\\\"\\n    },\\n    {\\n      \\\"id\\\": \\\"167636b1\\\",\\n      \\\"title\\\": \\\"Office Manager\\\",\\n      \\\"full_title\\\": \\\"Office Manager - US/4/OM\\\",\\n      \\\"shortcode\\\": \\\"GROOV005\\\",\\n      \\\"code\\\": \\\"US/4/OM\\\",\\n      \\\"state\\\": \\\"published\\\",\\n      \\\"department\\\": \\\"Administration\\\",\\n      \\\"url\\\": \\\"https://groove-tech.workable.com/jobs/376844767\\\",\\n      \\\"application_url\\\": \\\"https://groove-tech.workable.com/jobs/376844767/candidates/new\\\",\\n      \\\"shortlink\\\": \\\"https://groove-tech.workable.com/j/GROOV005\\\",\\n      \\\"location\\\": {\\n        \\\"country\\\": \\\"United States\\\",\\n        \\\"country_code\\\": \\\"US\\\",\\n        \\\"region\\\": \\\"Illinois\\\",\\n        \\\"region_code\\\": \\\"IL\\\",\\n        \\\"city\\\": \\\"Chicago\\\",\\n        \\\"zip_code\\\": \\\"60290\\\",\\n        \\\"telecommuting\\\": false\\n      },\\n      \\\"created_at\\\": \\\"2015-06-06T00:00:00Z\\\"\\n    },\\n    {\\n      \\\"id\\\": \\\"2700d6df\\\",\\n      \\\"title\\\": \\\"Web Developer\\\",\\n      \\\"full_title\\\": \\\"Web Developer - US/2/WD\\\",\\n      \\\"shortcode\\\": \\\"GROOV002\\\",\\n      \\\"code\\\": \\\"US/2/WD\\\",\\n      \\\"state\\\": \\\"closed\\\",\\n      \\\"department\\\": \\\"Engineering\\\",\\n      \\\"url\\\": \\\"https://groove-tech.workable.com/jobs/654365197\\\",\\n      \\\"application_url\\\": \\\"https://groove-tech.workable.com/jobs/654365197/candidates/new\\\",\\n      \\\"shortlink\\\": \\\"https://groove-tech.workable.com/j/GROOV002\\\",\\n      \\\"location\\\": {\\n        \\\"country\\\": \\\"United States\\\",\\n        \\\"country_code\\\": \\\"US\\\",\\n        \\\"region\\\": \\\"Illinois\\\",\\n        \\\"region_code\\\": \\\"IL\\\",\\n        \\\"city\\\": \\\"Chicago\\\",\\n        \\\"zip_code\\\": \\\"60290\\\",\\n        \\\"telecommuting\\\": false\\n      },\\n      \\\"created_at\\\": \\\"2015-05-22T00:00:00Z\\\"\\n    },\\n    {\\n      \\\"id\\\": \\\"2b2d288d\\\",\\n      \\\"title\\\": \\\"Finance Manager\\\",\\n      \\\"full_title\\\": \\\"Finance Manager - UK/1/FM\\\",\\n      \\\"shortcode\\\": \\\"GROOV006\\\",\\n      \\\"code\\\": \\\"UK/1/FM\\\",\\n      \\\"state\\\": \\\"archived\\\",\\n      \\\"department\\\": \\\"Finance\\\",\\n      \\\"url\\\": \\\"https://groove-tech.workable.com/jobs/724378555\\\",\\n      \\\"application_url\\\": \\\"https://groove-tech.workable.com/jobs/724378555/candidates/new\\\",\\n      \\\"shortlink\\\": \\\"https://groove-tech.workable.com/j/GROOV006\\\",\\n      \\\"location\\\": {\\n        \\\"country\\\": \\\"United Kingdom\\\",\\n        \\\"country_code\\\": \\\"GB\\\",\\n        \\\"region\\\": \\\"London, City of\\\",\\n        \\\"region_code\\\": \\\"LND\\\",\\n        \\\"city\\\": \\\"London\\\",\\n        \\\"zip_code\\\": \\\"W1B 5 QA\\\",\\n        \\\"telecommuting\\\": false\\n      },\\n      \\\"created_at\\\": \\\"2015-06-06T00:00:00Z\\\"\\n    }\\n  ],\\n  \\\"paging\\\": {\\n    \\\"next\\\": \\\"https://www.workable.com/spi/v3/accounts/groove-tech/jobs?limit=5&since_id=34ed8eb6\\\"\\n  }\\n}\",\n      \"language\": \"json\",\n      \"name\": \"v3\"\n    },\n    {\n      \"code\": \"{\\n  \\\"name\\\": \\\"Groove Tech\\\",\\n  \\\"description\\\": \\\"<p>We’ve all spent tons of hours trying to book a trip! Well, our guys finally got tired of going through this frustrating process and passionately decided to do something about it: To change the traveller’s experience. Four years later, we stick to that idea by daily plotting the traveling revolution.</p> <p>Like busy little bees, all 98 of us, customise our user-friendly software and innovative services to match leisure and business travellers needs throughout the entire journey. We create innovative and top notch travel products for a simple reason: You deserve it.</p> <p>Whether it’s about booking tickets or hotels, whatever the budget, us travel lovers are dedicated to deliver you a lifetime experience. How? By empowering you to easily discover, book and have fun at the whole world!</p> <p>We are innovators, idealists and perfectionists. We love raising the bar to delight and amaze our customers and that’s exactly why working with us requires a lot of you. But it’s a lot more than that. We’ll brightly reward you. We’ll develop your career. We’ll keep you excited! In other words we promise being the most exciting place for you to work at.</p> <p>We are growing as crazy and we need you industry experts and passionate individuals to do things that matter and take us off! Come aboard ready to share, learn and grow.</p>\\\",\\n  \\\"jobs\\\": [\\n    {\\n      \\\"key\\\": \\\"2b2d288d\\\",\\n      \\\"title\\\": \\\"Finance Manager\\\",\\n      \\\"full_title\\\": \\\"Finance Manager - UK/1/FM\\\",\\n      \\\"code\\\": \\\"UK/1/FM\\\",\\n      \\\"shortcode\\\": \\\"GROOV006\\\",\\n      \\\"state\\\": \\\"archived\\\",\\n      \\\"department\\\": \\\"Finance\\\",\\n      \\\"url\\\": \\\"http://groove-tech.workable.com/jobs/724378555\\\",\\n      \\\"application_url\\\": \\\"http://groove-tech.workable.com/jobs/724378555/candidates/new\\\",\\n      \\\"shortlink\\\": \\\"http://groove-tech.workable.com/j/GROOV006\\\",\\n      \\\"location\\\": {\\n        \\\"country\\\": \\\"United Kingdom\\\",\\n        \\\"country_code\\\": \\\"GB\\\",\\n        \\\"region\\\": \\\"London, City of\\\",\\n        \\\"region_code\\\": \\\"LND\\\",\\n        \\\"city\\\": \\\"London\\\",\\n        \\\"zip_code\\\": \\\"W1B 5 QA\\\",\\n        \\\"telecommuting\\\": false\\n      },\\n      \\\"created_at\\\": \\\"2015-06-06\\\"\\n    },\\n    {\\n      \\\"key\\\": \\\"34ed8eb6\\\",\\n      \\\"title\\\": \\\"Head of Account Management\\\",\\n      \\\"full_title\\\": \\\"Head of Account Management - US/4/HAM\\\",\\n      \\\"code\\\": \\\"US/4/HAM\\\",\\n      \\\"shortcode\\\": \\\"GROOV004\\\",\\n      \\\"state\\\": \\\"published\\\",\\n      \\\"department\\\": \\\"Sales\\\",\\n      \\\"url\\\": \\\"http://groove-tech.workable.com/jobs/887982564\\\",\\n      \\\"application_url\\\": \\\"http://groove-tech.workable.com/jobs/887982564/candidates/new\\\",\\n      \\\"shortlink\\\": \\\"http://groove-tech.workable.com/j/GROOV004\\\",\\n      \\\"location\\\": {\\n        \\\"country\\\": \\\"United States\\\",\\n        \\\"country_code\\\": \\\"US\\\",\\n        \\\"region\\\": \\\"New York\\\",\\n        \\\"region_code\\\": \\\"NY\\\",\\n        \\\"city\\\": \\\"New York\\\",\\n        \\\"zip_code\\\": \\\"10001\\\",\\n        \\\"telecommuting\\\": false\\n      },\\n      \\\"created_at\\\": \\\"2015-06-06\\\"\\n    },\\n    {\\n      \\\"key\\\": \\\"167636b1\\\",\\n      \\\"title\\\": \\\"Office Manager\\\",\\n      \\\"full_title\\\": \\\"Office Manager - US/4/OM\\\",\\n      \\\"code\\\": \\\"US/4/OM\\\",\\n      \\\"shortcode\\\": \\\"GROOV005\\\",\\n      \\\"state\\\": \\\"published\\\",\\n      \\\"department\\\": \\\"Administration\\\",\\n      \\\"url\\\": \\\"http://groove-tech.workable.com/jobs/376844767\\\",\\n      \\\"application_url\\\": \\\"http://groove-tech.workable.com/jobs/376844767/candidates/new\\\",\\n      \\\"shortlink\\\": \\\"http://groove-tech.workable.com/j/GROOV005\\\",\\n      \\\"location\\\": {\\n        \\\"country\\\": \\\"United States\\\",\\n        \\\"country_code\\\": \\\"US\\\",\\n        \\\"region\\\": \\\"Illinois\\\",\\n        \\\"region_code\\\": \\\"IL\\\",\\n        \\\"city\\\": \\\"Chicago\\\",\\n        \\\"zip_code\\\": \\\"60290\\\",\\n        \\\"telecommuting\\\": false\\n      },\\n      \\\"created_at\\\": \\\"2015-06-06\\\"\\n    },\\n    {\\n      \\\"key\\\": \\\"1166bf8c\\\",\\n      \\\"title\\\": \\\"Operations Manager\\\",\\n      \\\"full_title\\\": \\\"Operations Manager - US/02/CM\\\",\\n      \\\"code\\\": \\\"US/02/CM\\\",\\n      \\\"shortcode\\\": \\\"GROOV001\\\",\\n      \\\"state\\\": \\\"archived\\\",\\n      \\\"department\\\": \\\"Operations\\\",\\n      \\\"url\\\": \\\"http://groove-tech.workable.com/jobs/291945146\\\",\\n      \\\"application_url\\\": \\\"http://groove-tech.workable.com/jobs/291945146/candidates/new\\\",\\n      \\\"shortlink\\\": \\\"http://groove-tech.workable.com/j/GROOV001\\\",\\n      \\\"location\\\": {\\n        \\\"country\\\": \\\"United States\\\",\\n        \\\"country_code\\\": \\\"US\\\",\\n        \\\"region\\\": \\\"Illinois\\\",\\n        \\\"region_code\\\": \\\"IL\\\",\\n        \\\"city\\\": \\\"Chicago\\\",\\n        \\\"zip_code\\\": \\\"60290\\\",\\n        \\\"telecommuting\\\": false\\n      },\\n      \\\"created_at\\\": \\\"2015-05-07\\\"\\n    },\\n    {\\n      \\\"key\\\": \\\"61884e2\\\",\\n      \\\"title\\\": \\\"Sales Intern\\\",\\n      \\\"full_title\\\": \\\"Sales Intern - US/3/SI\\\",\\n      \\\"code\\\": \\\"US/3/SI\\\",\\n      \\\"shortcode\\\": \\\"GROOV003\\\",\\n      \\\"state\\\": \\\"draft\\\",\\n      \\\"department\\\": \\\"Sales\\\",\\n      \\\"url\\\": \\\"http://groove-tech.workable.com/jobs/102268944\\\",\\n      \\\"application_url\\\": \\\"http://groove-tech.workable.com/jobs/102268944/candidates/new\\\",\\n      \\\"shortlink\\\": \\\"http://groove-tech.workable.com/j/GROOV003\\\",\\n      \\\"location\\\": {\\n        \\\"country\\\": \\\"United States\\\",\\n        \\\"country_code\\\": \\\"US\\\",\\n        \\\"region\\\": \\\"Oregon\\\",\\n        \\\"region_code\\\": \\\"OR\\\",\\n        \\\"city\\\": \\\"Portland\\\",\\n        \\\"zip_code\\\": \\\"97201\\\",\\n        \\\"telecommuting\\\": false\\n      },\\n      \\\"created_at\\\": \\\"2015-07-01\\\"\\n    },\\n    {\\n      \\\"key\\\": \\\"2700d6df\\\",\\n      \\\"title\\\": \\\"Web Developer\\\",\\n      \\\"full_title\\\": \\\"Web Developer - US/2/WD\\\",\\n      \\\"code\\\": \\\"US/2/WD\\\",\\n      \\\"shortcode\\\": \\\"GROOV002\\\",\\n      \\\"state\\\": \\\"closed\\\",\\n      \\\"department\\\": \\\"Engineering\\\",\\n      \\\"url\\\": \\\"http://groove-tech.workable.com/jobs/654365197\\\",\\n      \\\"application_url\\\": \\\"http://groove-tech.workable.com/jobs/654365197/candidates/new\\\",\\n      \\\"shortlink\\\": \\\"http://groove-tech.workable.com/j/GROOV002\\\",\\n      \\\"location\\\": {\\n        \\\"country\\\": \\\"United States\\\",\\n        \\\"country_code\\\": \\\"US\\\",\\n        \\\"region\\\": \\\"Illinois\\\",\\n        \\\"region_code\\\": \\\"IL\\\",\\n        \\\"city\\\": \\\"Chicago\\\",\\n        \\\"zip_code\\\": \\\"60290\\\",\\n        \\\"telecommuting\\\": false\\n      },\\n      \\\"created_at\\\": \\\"2015-05-22\\\"\\n    }\\n  ]\\n}\",\n      \"language\": \"json\",\n      \"name\": \"v2\"\n    }\n  ]\n}\n[/block]","category":"587395fe11b3ec1900d3b6dc","githubsync":"","next":{"pages":[],"description":""},"slug":"whats-new-in-v3","updates":[],"__v":0,"version":"587395fe11b3ec1900d3b6db","isReference":false,"order":2,"createdAt":"2015-07-09T11:11:17.685Z","link_external":false,"link_url":"","type":"basic","user":"55967fa3430c481900db1b29","excerpt":"","hidden":false,"parentDoc":null,"project":"551111444878730d00220ecb","sync_unique":"","title":"What's new in v3","childrenPages":[]}

What's new in v3


Version 3 is the latest API provided by Workable. [block:api-header] { "type": "basic", "title": "New features" } [/block] Version 3 includes some new features that significantly improve the performance of the API. To be more specific latest version provides: * paginated data for [jobs](/docs/jobs) and [candidates](/docs/job-candidates-index) * scroll parameters `since_id` and `max_id` * filter parameters `created_after` and `updated_after` * reduced verbose candidate json on job [candidates](/docs/job-candidates-index) collection [block:api-header] { "type": "basic", "title": "Breaking changes" } [/block] [block:callout] { "type": "danger", "body": "The v1 & v2 APIs are now deprecated but will continue to function correctly. We highly recommend you to update to v3 in order to take advantage of the increased performance, improvements and new features.\n\n**NOTE:** Updating your code to use the new v3 endpoints will require some changes to your code but we have tried to minimize the changes that you'll have to make.", "title": "IMPORTANT UPDATES" } [/block] ## Common changes * The `key` attributes are renamed to `id` * Timestamp fields are rendered in [ISO 8601](https://en.wikipedia.org/?title=ISO_8601) format (e.g. 2015-06-08T00:00:00Z). Timezone is always UTC * Empty string values are now returned as `null` * Candidates are now considered as 'uploaded' by default. You have to include the `sourced: false` in order to consider a candidate as applied. More details on this [here](http://workable.readme.io/docs/job-candidates-create). ## Candidates collection In order to improve the overall performance of the candidates endpoint the following changes have been made since v2: * Candidates are sorted by the time inserted on system, in ascending order (older candidates come first). * Response contains a limited number of candidates. Number is controlled by the `limit` parameter (50 for default). More results can be fetched by following the `paging/next` url. * The candidate json is limited to basic arguments. The following attributes are no longer returned: `address`, `phone`, `outbound_mailbox`, `cover_letter`, `summary`, `education_entries`, `exprerience_entries`, `skills`, `answers`, `resume_url`, `social_profiles`, `tags`. This information can be retrieved by the [candidate info](/docs/job-candidates-show) endpoint. The following sample compares the candidate payload of v2 and v3. [block:code] { "codes": [ { "code": "{\n \"id\": \"3fc9a811\",\n \"name\": \"Mattias Avelin\",\n \"firstname\": \"Mattias\",\n \"lastname\": \"Avelin\",\n \"headline\": \"Software Engineer at Gears of Leo\",\n \"account\": {\n \"subdomain\": \"groove-tech\",\n \"name\": \"Groove Tech\"\n },\n \"job\": {\n \"shortcode\": \"GROOV005\",\n \"title\": \"Office Manager\"\n },\n \"stage\": \"Sourced\",\n \"disqualified\": false,\n \"disqualification_reason\": null,\n \"sourced\": true,\n \"profile_url\": \"https://groove-tech.workable.com/backend/jobs/376844767/candidates/1070179135\",\n \"email\": null,\n \"domain\": null,\n \"created_at\": \"2015-07-09T08:54:12Z\",\n \"updated_at\": \"2015-07-09T08:54:16Z\"\n }", "language": "json", "name": "v3" }, { "code": "{\n \"key\": \"3fc9a811\",\n \"name\": \"Mattias Avelin\",\n \"firstname\": \"Mattias\",\n \"lastname\": \"Avelin\",\n \"headline\": \"Software Engineer at Gears of Leo\",\n \"account\": {\n \"subdomain\": \"groove-tech\",\n \"name\": \"Groove Tech\"\n },\n \"job\": {\n \"shortcode\": \"GROOV005\",\n \"title\": \"Office Manager\"\n },\n \"stage\": \"Sourced\",\n \"disqualified\": false,\n \"sourced\": true,\n \"profile_url\": \"http://groove-tech.workable.com/backend/jobs/376844767/candidates/1070179135\",\n \"address\": \"Stockholm, Sweden\",\n \"phone\": \"\",\n \"email\": \"\",\n \"outbound_mailbox\": \"6zz6frwg@outbound.workablestaging.mailgun.org\",\n \"domain\": \"\",\n \"created_at\": \"2015-07-09 08:54:12\",\n \"updated_at\": \"2015-07-09 08:54:16\",\n \"cover_letter\": \"\",\n \"summary\": \"Expert knowledge/experience in complex data migration, working with open source solutions (Linux, MySQL, Java, php, Apache, JBoss, TomCat etc.). Experienced in build systems capable of handling high transaction volumes. Experienced MySQL power-user. Worked with clients such as Tele2, Ericsson, Eniro, Bwin Games, SIX and others. Certified MySQL Developer.\",\n \"education_entries\": [],\n \"experience_entries\": [\n {\n \"title\": \"Software Engineer\",\n \"summary\": \"\",\n \"start_date\": \"2015-05-01\",\n \"end_date\": \"\",\n \"company\": \"Gears of Leo\",\n \"industry\": \"Gambling & Casinos\",\n \"current\": true\n }\n ],\n \"skills\": [],\n \"answers\": [],\n \"resume_url\": \"\",\n \"social_profiles\": [\n {\n \"type\": \"linkedin\",\n \"url\": \"https://www.linkedin.com/in/mattiasavelin\"\n }\n ],\n \"tags\": []\n }", "language": "json", "name": "v2" } ] } [/block] ## Jobs collection * Jobs are sorted by the time inserted on system, in ascending order (older jobs come first). * Response contains a limited number of jobs. Number is controlled by the `limit` parameter (50 for default). More results can be fetched by following the `paging/next` url. * The account specific attributes `name` and `description` are removed. The following sample compares the job payload of v2 and v3. [block:code] { "codes": [ { "code": "{\n \"jobs\": [\n {\n \"id\": \"61884e2\",\n \"title\": \"Sales Intern\",\n \"full_title\": \"Sales Intern - US/3/SI\",\n \"shortcode\": \"GROOV003\",\n \"code\": \"US/3/SI\",\n \"state\": \"draft\",\n \"department\": \"Sales\",\n \"url\": \"https://groove-tech.workable.com/jobs/102268944\",\n \"application_url\": \"https://groove-tech.workable.com/jobs/102268944/candidates/new\",\n \"shortlink\": \"https://groove-tech.workable.com/j/GROOV003\",\n \"location\": {\n \"country\": \"United States\",\n \"country_code\": \"US\",\n \"region\": \"Oregon\",\n \"region_code\": \"OR\",\n \"city\": \"Portland\",\n \"zip_code\": \"97201\",\n \"telecommuting\": false\n },\n \"created_at\": \"2015-07-01T00:00:00Z\"\n },\n {\n \"id\": \"1166bf8c\",\n \"title\": \"Operations Manager\",\n \"full_title\": \"Operations Manager - US/02/CM\",\n \"shortcode\": \"GROOV001\",\n \"code\": \"US/02/CM\",\n \"state\": \"archived\",\n \"department\": \"Operations\",\n \"url\": \"https://groove-tech.workable.com/jobs/291945146\",\n \"application_url\": \"https://groove-tech.workable.com/jobs/291945146/candidates/new\",\n \"shortlink\": \"https://groove-tech.workable.com/j/GROOV001\",\n \"location\": {\n \"country\": \"United States\",\n \"country_code\": \"US\",\n \"region\": \"Illinois\",\n \"region_code\": \"IL\",\n \"city\": \"Chicago\",\n \"zip_code\": \"60290\",\n \"telecommuting\": false\n },\n \"created_at\": \"2015-05-07T00:00:00Z\"\n },\n {\n \"id\": \"167636b1\",\n \"title\": \"Office Manager\",\n \"full_title\": \"Office Manager - US/4/OM\",\n \"shortcode\": \"GROOV005\",\n \"code\": \"US/4/OM\",\n \"state\": \"published\",\n \"department\": \"Administration\",\n \"url\": \"https://groove-tech.workable.com/jobs/376844767\",\n \"application_url\": \"https://groove-tech.workable.com/jobs/376844767/candidates/new\",\n \"shortlink\": \"https://groove-tech.workable.com/j/GROOV005\",\n \"location\": {\n \"country\": \"United States\",\n \"country_code\": \"US\",\n \"region\": \"Illinois\",\n \"region_code\": \"IL\",\n \"city\": \"Chicago\",\n \"zip_code\": \"60290\",\n \"telecommuting\": false\n },\n \"created_at\": \"2015-06-06T00:00:00Z\"\n },\n {\n \"id\": \"2700d6df\",\n \"title\": \"Web Developer\",\n \"full_title\": \"Web Developer - US/2/WD\",\n \"shortcode\": \"GROOV002\",\n \"code\": \"US/2/WD\",\n \"state\": \"closed\",\n \"department\": \"Engineering\",\n \"url\": \"https://groove-tech.workable.com/jobs/654365197\",\n \"application_url\": \"https://groove-tech.workable.com/jobs/654365197/candidates/new\",\n \"shortlink\": \"https://groove-tech.workable.com/j/GROOV002\",\n \"location\": {\n \"country\": \"United States\",\n \"country_code\": \"US\",\n \"region\": \"Illinois\",\n \"region_code\": \"IL\",\n \"city\": \"Chicago\",\n \"zip_code\": \"60290\",\n \"telecommuting\": false\n },\n \"created_at\": \"2015-05-22T00:00:00Z\"\n },\n {\n \"id\": \"2b2d288d\",\n \"title\": \"Finance Manager\",\n \"full_title\": \"Finance Manager - UK/1/FM\",\n \"shortcode\": \"GROOV006\",\n \"code\": \"UK/1/FM\",\n \"state\": \"archived\",\n \"department\": \"Finance\",\n \"url\": \"https://groove-tech.workable.com/jobs/724378555\",\n \"application_url\": \"https://groove-tech.workable.com/jobs/724378555/candidates/new\",\n \"shortlink\": \"https://groove-tech.workable.com/j/GROOV006\",\n \"location\": {\n \"country\": \"United Kingdom\",\n \"country_code\": \"GB\",\n \"region\": \"London, City of\",\n \"region_code\": \"LND\",\n \"city\": \"London\",\n \"zip_code\": \"W1B 5 QA\",\n \"telecommuting\": false\n },\n \"created_at\": \"2015-06-06T00:00:00Z\"\n }\n ],\n \"paging\": {\n \"next\": \"https://www.workable.com/spi/v3/accounts/groove-tech/jobs?limit=5&since_id=34ed8eb6\"\n }\n}", "language": "json", "name": "v3" }, { "code": "{\n \"name\": \"Groove Tech\",\n \"description\": \"<p>We’ve all spent tons of hours trying to book a trip! Well, our guys finally got tired of going through this frustrating process and passionately decided to do something about it: To change the traveller’s experience. Four years later, we stick to that idea by daily plotting the traveling revolution.</p> <p>Like busy little bees, all 98 of us, customise our user-friendly software and innovative services to match leisure and business travellers needs throughout the entire journey. We create innovative and top notch travel products for a simple reason: You deserve it.</p> <p>Whether it’s about booking tickets or hotels, whatever the budget, us travel lovers are dedicated to deliver you a lifetime experience. How? By empowering you to easily discover, book and have fun at the whole world!</p> <p>We are innovators, idealists and perfectionists. We love raising the bar to delight and amaze our customers and that’s exactly why working with us requires a lot of you. But it’s a lot more than that. We’ll brightly reward you. We’ll develop your career. We’ll keep you excited! In other words we promise being the most exciting place for you to work at.</p> <p>We are growing as crazy and we need you industry experts and passionate individuals to do things that matter and take us off! Come aboard ready to share, learn and grow.</p>\",\n \"jobs\": [\n {\n \"key\": \"2b2d288d\",\n \"title\": \"Finance Manager\",\n \"full_title\": \"Finance Manager - UK/1/FM\",\n \"code\": \"UK/1/FM\",\n \"shortcode\": \"GROOV006\",\n \"state\": \"archived\",\n \"department\": \"Finance\",\n \"url\": \"http://groove-tech.workable.com/jobs/724378555\",\n \"application_url\": \"http://groove-tech.workable.com/jobs/724378555/candidates/new\",\n \"shortlink\": \"http://groove-tech.workable.com/j/GROOV006\",\n \"location\": {\n \"country\": \"United Kingdom\",\n \"country_code\": \"GB\",\n \"region\": \"London, City of\",\n \"region_code\": \"LND\",\n \"city\": \"London\",\n \"zip_code\": \"W1B 5 QA\",\n \"telecommuting\": false\n },\n \"created_at\": \"2015-06-06\"\n },\n {\n \"key\": \"34ed8eb6\",\n \"title\": \"Head of Account Management\",\n \"full_title\": \"Head of Account Management - US/4/HAM\",\n \"code\": \"US/4/HAM\",\n \"shortcode\": \"GROOV004\",\n \"state\": \"published\",\n \"department\": \"Sales\",\n \"url\": \"http://groove-tech.workable.com/jobs/887982564\",\n \"application_url\": \"http://groove-tech.workable.com/jobs/887982564/candidates/new\",\n \"shortlink\": \"http://groove-tech.workable.com/j/GROOV004\",\n \"location\": {\n \"country\": \"United States\",\n \"country_code\": \"US\",\n \"region\": \"New York\",\n \"region_code\": \"NY\",\n \"city\": \"New York\",\n \"zip_code\": \"10001\",\n \"telecommuting\": false\n },\n \"created_at\": \"2015-06-06\"\n },\n {\n \"key\": \"167636b1\",\n \"title\": \"Office Manager\",\n \"full_title\": \"Office Manager - US/4/OM\",\n \"code\": \"US/4/OM\",\n \"shortcode\": \"GROOV005\",\n \"state\": \"published\",\n \"department\": \"Administration\",\n \"url\": \"http://groove-tech.workable.com/jobs/376844767\",\n \"application_url\": \"http://groove-tech.workable.com/jobs/376844767/candidates/new\",\n \"shortlink\": \"http://groove-tech.workable.com/j/GROOV005\",\n \"location\": {\n \"country\": \"United States\",\n \"country_code\": \"US\",\n \"region\": \"Illinois\",\n \"region_code\": \"IL\",\n \"city\": \"Chicago\",\n \"zip_code\": \"60290\",\n \"telecommuting\": false\n },\n \"created_at\": \"2015-06-06\"\n },\n {\n \"key\": \"1166bf8c\",\n \"title\": \"Operations Manager\",\n \"full_title\": \"Operations Manager - US/02/CM\",\n \"code\": \"US/02/CM\",\n \"shortcode\": \"GROOV001\",\n \"state\": \"archived\",\n \"department\": \"Operations\",\n \"url\": \"http://groove-tech.workable.com/jobs/291945146\",\n \"application_url\": \"http://groove-tech.workable.com/jobs/291945146/candidates/new\",\n \"shortlink\": \"http://groove-tech.workable.com/j/GROOV001\",\n \"location\": {\n \"country\": \"United States\",\n \"country_code\": \"US\",\n \"region\": \"Illinois\",\n \"region_code\": \"IL\",\n \"city\": \"Chicago\",\n \"zip_code\": \"60290\",\n \"telecommuting\": false\n },\n \"created_at\": \"2015-05-07\"\n },\n {\n \"key\": \"61884e2\",\n \"title\": \"Sales Intern\",\n \"full_title\": \"Sales Intern - US/3/SI\",\n \"code\": \"US/3/SI\",\n \"shortcode\": \"GROOV003\",\n \"state\": \"draft\",\n \"department\": \"Sales\",\n \"url\": \"http://groove-tech.workable.com/jobs/102268944\",\n \"application_url\": \"http://groove-tech.workable.com/jobs/102268944/candidates/new\",\n \"shortlink\": \"http://groove-tech.workable.com/j/GROOV003\",\n \"location\": {\n \"country\": \"United States\",\n \"country_code\": \"US\",\n \"region\": \"Oregon\",\n \"region_code\": \"OR\",\n \"city\": \"Portland\",\n \"zip_code\": \"97201\",\n \"telecommuting\": false\n },\n \"created_at\": \"2015-07-01\"\n },\n {\n \"key\": \"2700d6df\",\n \"title\": \"Web Developer\",\n \"full_title\": \"Web Developer - US/2/WD\",\n \"code\": \"US/2/WD\",\n \"shortcode\": \"GROOV002\",\n \"state\": \"closed\",\n \"department\": \"Engineering\",\n \"url\": \"http://groove-tech.workable.com/jobs/654365197\",\n \"application_url\": \"http://groove-tech.workable.com/jobs/654365197/candidates/new\",\n \"shortlink\": \"http://groove-tech.workable.com/j/GROOV002\",\n \"location\": {\n \"country\": \"United States\",\n \"country_code\": \"US\",\n \"region\": \"Illinois\",\n \"region_code\": \"IL\",\n \"city\": \"Chicago\",\n \"zip_code\": \"60290\",\n \"telecommuting\": false\n },\n \"created_at\": \"2015-05-22\"\n }\n ]\n}", "language": "json", "name": "v2" } ] } [/block]
Version 3 is the latest API provided by Workable. [block:api-header] { "type": "basic", "title": "New features" } [/block] Version 3 includes some new features that significantly improve the performance of the API. To be more specific latest version provides: * paginated data for [jobs](/docs/jobs) and [candidates](/docs/job-candidates-index) * scroll parameters `since_id` and `max_id` * filter parameters `created_after` and `updated_after` * reduced verbose candidate json on job [candidates](/docs/job-candidates-index) collection [block:api-header] { "type": "basic", "title": "Breaking changes" } [/block] [block:callout] { "type": "danger", "body": "The v1 & v2 APIs are now deprecated but will continue to function correctly. We highly recommend you to update to v3 in order to take advantage of the increased performance, improvements and new features.\n\n**NOTE:** Updating your code to use the new v3 endpoints will require some changes to your code but we have tried to minimize the changes that you'll have to make.", "title": "IMPORTANT UPDATES" } [/block] ## Common changes * The `key` attributes are renamed to `id` * Timestamp fields are rendered in [ISO 8601](https://en.wikipedia.org/?title=ISO_8601) format (e.g. 2015-06-08T00:00:00Z). Timezone is always UTC * Empty string values are now returned as `null` * Candidates are now considered as 'uploaded' by default. You have to include the `sourced: false` in order to consider a candidate as applied. More details on this [here](http://workable.readme.io/docs/job-candidates-create). ## Candidates collection In order to improve the overall performance of the candidates endpoint the following changes have been made since v2: * Candidates are sorted by the time inserted on system, in ascending order (older candidates come first). * Response contains a limited number of candidates. Number is controlled by the `limit` parameter (50 for default). More results can be fetched by following the `paging/next` url. * The candidate json is limited to basic arguments. The following attributes are no longer returned: `address`, `phone`, `outbound_mailbox`, `cover_letter`, `summary`, `education_entries`, `exprerience_entries`, `skills`, `answers`, `resume_url`, `social_profiles`, `tags`. This information can be retrieved by the [candidate info](/docs/job-candidates-show) endpoint. The following sample compares the candidate payload of v2 and v3. [block:code] { "codes": [ { "code": "{\n \"id\": \"3fc9a811\",\n \"name\": \"Mattias Avelin\",\n \"firstname\": \"Mattias\",\n \"lastname\": \"Avelin\",\n \"headline\": \"Software Engineer at Gears of Leo\",\n \"account\": {\n \"subdomain\": \"groove-tech\",\n \"name\": \"Groove Tech\"\n },\n \"job\": {\n \"shortcode\": \"GROOV005\",\n \"title\": \"Office Manager\"\n },\n \"stage\": \"Sourced\",\n \"disqualified\": false,\n \"disqualification_reason\": null,\n \"sourced\": true,\n \"profile_url\": \"https://groove-tech.workable.com/backend/jobs/376844767/candidates/1070179135\",\n \"email\": null,\n \"domain\": null,\n \"created_at\": \"2015-07-09T08:54:12Z\",\n \"updated_at\": \"2015-07-09T08:54:16Z\"\n }", "language": "json", "name": "v3" }, { "code": "{\n \"key\": \"3fc9a811\",\n \"name\": \"Mattias Avelin\",\n \"firstname\": \"Mattias\",\n \"lastname\": \"Avelin\",\n \"headline\": \"Software Engineer at Gears of Leo\",\n \"account\": {\n \"subdomain\": \"groove-tech\",\n \"name\": \"Groove Tech\"\n },\n \"job\": {\n \"shortcode\": \"GROOV005\",\n \"title\": \"Office Manager\"\n },\n \"stage\": \"Sourced\",\n \"disqualified\": false,\n \"sourced\": true,\n \"profile_url\": \"http://groove-tech.workable.com/backend/jobs/376844767/candidates/1070179135\",\n \"address\": \"Stockholm, Sweden\",\n \"phone\": \"\",\n \"email\": \"\",\n \"outbound_mailbox\": \"6zz6frwg@outbound.workablestaging.mailgun.org\",\n \"domain\": \"\",\n \"created_at\": \"2015-07-09 08:54:12\",\n \"updated_at\": \"2015-07-09 08:54:16\",\n \"cover_letter\": \"\",\n \"summary\": \"Expert knowledge/experience in complex data migration, working with open source solutions (Linux, MySQL, Java, php, Apache, JBoss, TomCat etc.). Experienced in build systems capable of handling high transaction volumes. Experienced MySQL power-user. Worked with clients such as Tele2, Ericsson, Eniro, Bwin Games, SIX and others. Certified MySQL Developer.\",\n \"education_entries\": [],\n \"experience_entries\": [\n {\n \"title\": \"Software Engineer\",\n \"summary\": \"\",\n \"start_date\": \"2015-05-01\",\n \"end_date\": \"\",\n \"company\": \"Gears of Leo\",\n \"industry\": \"Gambling & Casinos\",\n \"current\": true\n }\n ],\n \"skills\": [],\n \"answers\": [],\n \"resume_url\": \"\",\n \"social_profiles\": [\n {\n \"type\": \"linkedin\",\n \"url\": \"https://www.linkedin.com/in/mattiasavelin\"\n }\n ],\n \"tags\": []\n }", "language": "json", "name": "v2" } ] } [/block] ## Jobs collection * Jobs are sorted by the time inserted on system, in ascending order (older jobs come first). * Response contains a limited number of jobs. Number is controlled by the `limit` parameter (50 for default). More results can be fetched by following the `paging/next` url. * The account specific attributes `name` and `description` are removed. The following sample compares the job payload of v2 and v3. [block:code] { "codes": [ { "code": "{\n \"jobs\": [\n {\n \"id\": \"61884e2\",\n \"title\": \"Sales Intern\",\n \"full_title\": \"Sales Intern - US/3/SI\",\n \"shortcode\": \"GROOV003\",\n \"code\": \"US/3/SI\",\n \"state\": \"draft\",\n \"department\": \"Sales\",\n \"url\": \"https://groove-tech.workable.com/jobs/102268944\",\n \"application_url\": \"https://groove-tech.workable.com/jobs/102268944/candidates/new\",\n \"shortlink\": \"https://groove-tech.workable.com/j/GROOV003\",\n \"location\": {\n \"country\": \"United States\",\n \"country_code\": \"US\",\n \"region\": \"Oregon\",\n \"region_code\": \"OR\",\n \"city\": \"Portland\",\n \"zip_code\": \"97201\",\n \"telecommuting\": false\n },\n \"created_at\": \"2015-07-01T00:00:00Z\"\n },\n {\n \"id\": \"1166bf8c\",\n \"title\": \"Operations Manager\",\n \"full_title\": \"Operations Manager - US/02/CM\",\n \"shortcode\": \"GROOV001\",\n \"code\": \"US/02/CM\",\n \"state\": \"archived\",\n \"department\": \"Operations\",\n \"url\": \"https://groove-tech.workable.com/jobs/291945146\",\n \"application_url\": \"https://groove-tech.workable.com/jobs/291945146/candidates/new\",\n \"shortlink\": \"https://groove-tech.workable.com/j/GROOV001\",\n \"location\": {\n \"country\": \"United States\",\n \"country_code\": \"US\",\n \"region\": \"Illinois\",\n \"region_code\": \"IL\",\n \"city\": \"Chicago\",\n \"zip_code\": \"60290\",\n \"telecommuting\": false\n },\n \"created_at\": \"2015-05-07T00:00:00Z\"\n },\n {\n \"id\": \"167636b1\",\n \"title\": \"Office Manager\",\n \"full_title\": \"Office Manager - US/4/OM\",\n \"shortcode\": \"GROOV005\",\n \"code\": \"US/4/OM\",\n \"state\": \"published\",\n \"department\": \"Administration\",\n \"url\": \"https://groove-tech.workable.com/jobs/376844767\",\n \"application_url\": \"https://groove-tech.workable.com/jobs/376844767/candidates/new\",\n \"shortlink\": \"https://groove-tech.workable.com/j/GROOV005\",\n \"location\": {\n \"country\": \"United States\",\n \"country_code\": \"US\",\n \"region\": \"Illinois\",\n \"region_code\": \"IL\",\n \"city\": \"Chicago\",\n \"zip_code\": \"60290\",\n \"telecommuting\": false\n },\n \"created_at\": \"2015-06-06T00:00:00Z\"\n },\n {\n \"id\": \"2700d6df\",\n \"title\": \"Web Developer\",\n \"full_title\": \"Web Developer - US/2/WD\",\n \"shortcode\": \"GROOV002\",\n \"code\": \"US/2/WD\",\n \"state\": \"closed\",\n \"department\": \"Engineering\",\n \"url\": \"https://groove-tech.workable.com/jobs/654365197\",\n \"application_url\": \"https://groove-tech.workable.com/jobs/654365197/candidates/new\",\n \"shortlink\": \"https://groove-tech.workable.com/j/GROOV002\",\n \"location\": {\n \"country\": \"United States\",\n \"country_code\": \"US\",\n \"region\": \"Illinois\",\n \"region_code\": \"IL\",\n \"city\": \"Chicago\",\n \"zip_code\": \"60290\",\n \"telecommuting\": false\n },\n \"created_at\": \"2015-05-22T00:00:00Z\"\n },\n {\n \"id\": \"2b2d288d\",\n \"title\": \"Finance Manager\",\n \"full_title\": \"Finance Manager - UK/1/FM\",\n \"shortcode\": \"GROOV006\",\n \"code\": \"UK/1/FM\",\n \"state\": \"archived\",\n \"department\": \"Finance\",\n \"url\": \"https://groove-tech.workable.com/jobs/724378555\",\n \"application_url\": \"https://groove-tech.workable.com/jobs/724378555/candidates/new\",\n \"shortlink\": \"https://groove-tech.workable.com/j/GROOV006\",\n \"location\": {\n \"country\": \"United Kingdom\",\n \"country_code\": \"GB\",\n \"region\": \"London, City of\",\n \"region_code\": \"LND\",\n \"city\": \"London\",\n \"zip_code\": \"W1B 5 QA\",\n \"telecommuting\": false\n },\n \"created_at\": \"2015-06-06T00:00:00Z\"\n }\n ],\n \"paging\": {\n \"next\": \"https://www.workable.com/spi/v3/accounts/groove-tech/jobs?limit=5&since_id=34ed8eb6\"\n }\n}", "language": "json", "name": "v3" }, { "code": "{\n \"name\": \"Groove Tech\",\n \"description\": \"<p>We’ve all spent tons of hours trying to book a trip! Well, our guys finally got tired of going through this frustrating process and passionately decided to do something about it: To change the traveller’s experience. Four years later, we stick to that idea by daily plotting the traveling revolution.</p> <p>Like busy little bees, all 98 of us, customise our user-friendly software and innovative services to match leisure and business travellers needs throughout the entire journey. We create innovative and top notch travel products for a simple reason: You deserve it.</p> <p>Whether it’s about booking tickets or hotels, whatever the budget, us travel lovers are dedicated to deliver you a lifetime experience. How? By empowering you to easily discover, book and have fun at the whole world!</p> <p>We are innovators, idealists and perfectionists. We love raising the bar to delight and amaze our customers and that’s exactly why working with us requires a lot of you. But it’s a lot more than that. We’ll brightly reward you. We’ll develop your career. We’ll keep you excited! In other words we promise being the most exciting place for you to work at.</p> <p>We are growing as crazy and we need you industry experts and passionate individuals to do things that matter and take us off! Come aboard ready to share, learn and grow.</p>\",\n \"jobs\": [\n {\n \"key\": \"2b2d288d\",\n \"title\": \"Finance Manager\",\n \"full_title\": \"Finance Manager - UK/1/FM\",\n \"code\": \"UK/1/FM\",\n \"shortcode\": \"GROOV006\",\n \"state\": \"archived\",\n \"department\": \"Finance\",\n \"url\": \"http://groove-tech.workable.com/jobs/724378555\",\n \"application_url\": \"http://groove-tech.workable.com/jobs/724378555/candidates/new\",\n \"shortlink\": \"http://groove-tech.workable.com/j/GROOV006\",\n \"location\": {\n \"country\": \"United Kingdom\",\n \"country_code\": \"GB\",\n \"region\": \"London, City of\",\n \"region_code\": \"LND\",\n \"city\": \"London\",\n \"zip_code\": \"W1B 5 QA\",\n \"telecommuting\": false\n },\n \"created_at\": \"2015-06-06\"\n },\n {\n \"key\": \"34ed8eb6\",\n \"title\": \"Head of Account Management\",\n \"full_title\": \"Head of Account Management - US/4/HAM\",\n \"code\": \"US/4/HAM\",\n \"shortcode\": \"GROOV004\",\n \"state\": \"published\",\n \"department\": \"Sales\",\n \"url\": \"http://groove-tech.workable.com/jobs/887982564\",\n \"application_url\": \"http://groove-tech.workable.com/jobs/887982564/candidates/new\",\n \"shortlink\": \"http://groove-tech.workable.com/j/GROOV004\",\n \"location\": {\n \"country\": \"United States\",\n \"country_code\": \"US\",\n \"region\": \"New York\",\n \"region_code\": \"NY\",\n \"city\": \"New York\",\n \"zip_code\": \"10001\",\n \"telecommuting\": false\n },\n \"created_at\": \"2015-06-06\"\n },\n {\n \"key\": \"167636b1\",\n \"title\": \"Office Manager\",\n \"full_title\": \"Office Manager - US/4/OM\",\n \"code\": \"US/4/OM\",\n \"shortcode\": \"GROOV005\",\n \"state\": \"published\",\n \"department\": \"Administration\",\n \"url\": \"http://groove-tech.workable.com/jobs/376844767\",\n \"application_url\": \"http://groove-tech.workable.com/jobs/376844767/candidates/new\",\n \"shortlink\": \"http://groove-tech.workable.com/j/GROOV005\",\n \"location\": {\n \"country\": \"United States\",\n \"country_code\": \"US\",\n \"region\": \"Illinois\",\n \"region_code\": \"IL\",\n \"city\": \"Chicago\",\n \"zip_code\": \"60290\",\n \"telecommuting\": false\n },\n \"created_at\": \"2015-06-06\"\n },\n {\n \"key\": \"1166bf8c\",\n \"title\": \"Operations Manager\",\n \"full_title\": \"Operations Manager - US/02/CM\",\n \"code\": \"US/02/CM\",\n \"shortcode\": \"GROOV001\",\n \"state\": \"archived\",\n \"department\": \"Operations\",\n \"url\": \"http://groove-tech.workable.com/jobs/291945146\",\n \"application_url\": \"http://groove-tech.workable.com/jobs/291945146/candidates/new\",\n \"shortlink\": \"http://groove-tech.workable.com/j/GROOV001\",\n \"location\": {\n \"country\": \"United States\",\n \"country_code\": \"US\",\n \"region\": \"Illinois\",\n \"region_code\": \"IL\",\n \"city\": \"Chicago\",\n \"zip_code\": \"60290\",\n \"telecommuting\": false\n },\n \"created_at\": \"2015-05-07\"\n },\n {\n \"key\": \"61884e2\",\n \"title\": \"Sales Intern\",\n \"full_title\": \"Sales Intern - US/3/SI\",\n \"code\": \"US/3/SI\",\n \"shortcode\": \"GROOV003\",\n \"state\": \"draft\",\n \"department\": \"Sales\",\n \"url\": \"http://groove-tech.workable.com/jobs/102268944\",\n \"application_url\": \"http://groove-tech.workable.com/jobs/102268944/candidates/new\",\n \"shortlink\": \"http://groove-tech.workable.com/j/GROOV003\",\n \"location\": {\n \"country\": \"United States\",\n \"country_code\": \"US\",\n \"region\": \"Oregon\",\n \"region_code\": \"OR\",\n \"city\": \"Portland\",\n \"zip_code\": \"97201\",\n \"telecommuting\": false\n },\n \"created_at\": \"2015-07-01\"\n },\n {\n \"key\": \"2700d6df\",\n \"title\": \"Web Developer\",\n \"full_title\": \"Web Developer - US/2/WD\",\n \"code\": \"US/2/WD\",\n \"shortcode\": \"GROOV002\",\n \"state\": \"closed\",\n \"department\": \"Engineering\",\n \"url\": \"http://groove-tech.workable.com/jobs/654365197\",\n \"application_url\": \"http://groove-tech.workable.com/jobs/654365197/candidates/new\",\n \"shortlink\": \"http://groove-tech.workable.com/j/GROOV002\",\n \"location\": {\n \"country\": \"United States\",\n \"country_code\": \"US\",\n \"region\": \"Illinois\",\n \"region_code\": \"IL\",\n \"city\": \"Chicago\",\n \"zip_code\": \"60290\",\n \"telecommuting\": false\n },\n \"created_at\": \"2015-05-22\"\n }\n ]\n}", "language": "json", "name": "v2" } ] } [/block]
{"_id":"587395fe11b3ec1900d3b6e0","excerpt":"Returns a collection of all the accounts you have access to","link_external":false,"project":"551111444878730d00220ecb","title":"/","type":"get","updates":[],"version":"587395fe11b3ec1900d3b6db","hidden":false,"link_url":"","parentDoc":null,"slug":"accounts","api":{"url":"/","auth":"required","examples":{"codes":[{"code":"curl \n\t-H \"Content-Type: application/json\" \n  -H \"Authorization:Bearer <Access Token>\" \nhttps://www.workable.com/spi/v3/accounts/","language":"shell"}]},"method":"get","params":[],"results":{"codes":[{"name":"","status":200,"language":"json","code":"{\n\t\"accounts\": [\n    {\n    \"id\": \"20ff5c50\",\n    \"name\": \"Groove Tech\",\n    \"subdomain\": \"groove-tech\",\n    \"description\": \"<p>We’ve all spent tons of hours trying to book a trip! Well, our guys finally got tired of going through this frustrating process and passionately decided to do something about it: To change the traveller’s experience. Four years later, we stick to that idea by daily plotting the traveling revolution.</p> <p>Like busy little bees, all 98 of us, customise our user-friendly software and innovative services to match leisure and business travellers needs throughout the entire journey. We create innovative and top notch travel products for a simple reason: You deserve it.</p> <p>Whether it’s about booking tickets or hotels, whatever the budget, us travel lovers are dedicated to deliver you a lifetime experience. How? By empowering you to easily discover, book and have fun at the whole world!</p> <p>We are innovators, idealists and perfectionists. We love raising the bar to delight and amaze our customers and that’s exactly why working with us requires a lot of you. But it’s a lot more than that. We’ll brightly reward you. We’ll develop your career. We’ll keep you excited! In other words we promise being the most exciting place for you to work at.</p> <p>We are growing as crazy and we need you industry experts and passionate individuals to do things that matter and take us off! Come aboard ready to share, learn and grow.</p>\",\n    \"summary\": \"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam elementum posuere erat, quis mattis lectus ullamcorper sit amet. Praesent nec aliquet erat. Donec quis arcu id metus tristique eleifend. Aenean sed nunc id tortor vulputate auctor. Pellentesque ut volutpat augue, vel aliquam lectus. Maecenas mattis dictum risus, id varius nisi sodales vitae. Aenean pulvinar lacinia condimentum. Nulla id leo a tortor elementum dapibus id condimentum nibh.\",\n    \"website_url\": \"https://www.workable.com\"\n  \t}\n\t]\n}  "},{"language":"json","status":401,"code":"{\n  \"error\": \"Not authorized\"\n}"}]},"settings":"56b9d5723d24e10d0088d081"},"category":"587395fe11b3ec1900d3b6dd","createdAt":"2015-07-06T10:29:25.137Z","isReference":false,"order":0,"user":"55967fa3430c481900db1b29","__v":0,"body":"[block:api-header]\n{\n  \"type\": \"basic\",\n  \"title\": \"Response\"\n}\n[/block]\nCalling the root endpoint will return a collection of accounts you have access.\nEach `account` will have the following keys:\n[block:parameters]\n{\n  \"data\": {\n    \"h-0\": \"key\",\n    \"h-1\": \"type\",\n    \"0-0\": \"id\",\n    \"0-1\": \"`string`\",\n    \"1-0\": \"name\",\n    \"1-1\": \"`string`\",\n    \"2-0\": \"subdomain\",\n    \"2-1\": \"`string`\",\n    \"3-0\": \"description\",\n    \"3-1\": \"`string`\",\n    \"4-0\": \"summary\",\n    \"5-0\": \"website_url\",\n    \"4-1\": \"`string`\",\n    \"5-1\": \"`string`\",\n    \"h-2\": \"description\",\n    \"0-2\": \"The account unique key\",\n    \"1-2\": \"The name of the account\",\n    \"2-2\": \"The subdomain of the account\",\n    \"3-2\": \"The description of the account\",\n    \"4-2\": \"The summary of the account\",\n    \"5-2\": \"The url of the account's web site\"\n  },\n  \"cols\": 3,\n  \"rows\": 6\n}\n[/block]","githubsync":"","next":{"pages":[],"description":""},"sync_unique":"","childrenPages":[]}

get/

Returns a collection of all the accounts you have access to

[block:api-header] { "type": "basic", "title": "Response" } [/block] Calling the root endpoint will return a collection of accounts you have access. Each `account` will have the following keys: [block:parameters] { "data": { "h-0": "key", "h-1": "type", "0-0": "id", "0-1": "`string`", "1-0": "name", "1-1": "`string`", "2-0": "subdomain", "2-1": "`string`", "3-0": "description", "3-1": "`string`", "4-0": "summary", "5-0": "website_url", "4-1": "`string`", "5-1": "`string`", "h-2": "description", "0-2": "The account unique key", "1-2": "The name of the account", "2-2": "The subdomain of the account", "3-2": "The description of the account", "4-2": "The summary of the account", "5-2": "The url of the account's web site" }, "cols": 3, "rows": 6 } [/block]

User Information

Try It Out

get
{{ tryResults.results }}
Method{{ tryResults.method }}
Request Headers
{{ tryResults.requestHeaders }}
URL{{ tryResults.url }}
Request Data
{{ tryResults.data }}
Status
Response Headers
{{ tryResults.responseHeaders }}

Definition

{{ api_url }}{{ page_api_url }}

Examples


Result Format



[block:api-header] { "type": "basic", "title": "Response" } [/block] Calling the root endpoint will return a collection of accounts you have access. Each `account` will have the following keys: [block:parameters] { "data": { "h-0": "key", "h-1": "type", "0-0": "id", "0-1": "`string`", "1-0": "name", "1-1": "`string`", "2-0": "subdomain", "2-1": "`string`", "3-0": "description", "3-1": "`string`", "4-0": "summary", "5-0": "website_url", "4-1": "`string`", "5-1": "`string`", "h-2": "description", "0-2": "The account unique key", "1-2": "The name of the account", "2-2": "The subdomain of the account", "3-2": "The description of the account", "4-2": "The summary of the account", "5-2": "The url of the account's web site" }, "cols": 3, "rows": 6 } [/block]
{"_id":"587395fe11b3ec1900d3b6e1","createdAt":"2015-07-08T15:21:10.763Z","githubsync":"","next":{"pages":[],"description":""},"sync_unique":"","user":"55967fa3430c481900db1b29","updates":[],"api":{"results":{"codes":[{"status":200,"language":"json","code":"{\n  \"members\": [\n    {\n      \"id\": \"13e0eb0e\",\n      \"name\": \"Eduardo Vallente\",\n      \"headline\": \"Operations Manager\",\n      \"email\": \"eduardo.vallente@workabledemo.com\",\n      \"role\": \"admin\"\n    },\n    {\n      \"id\": \"19782abc\",\n      \"name\": \"Nadia Sawahla\",\n      \"headline\": \"Talent Manager\",\n      \"email\": \"nadia.sawahla@name.com\",\n      \"role\": \"recruiter\"\n    },\n    {\n      \"id\": \"3247e8c7\",\n      \"name\": \"Alexia Middleton\",\n      \"headline\": \"Commercial Director\",\n      \"email\": \"alexia.middleton@workabledemo.com\",\n      \"role\": \"simple\"\n    },\n    {\n      \"id\": \"3c00c3ac\",\n      \"name\": \"David Bodello\",\n      \"headline\": \"IT Specialist Recruiter\",\n      \"email\": \"david.bodellos@gmail.com\",\n      \"role\": \"recruiter\"\n    }\n  ]\n}","name":""},{"status":401,"language":"json","code":"{\n  \"error\":\"Not authorized\"\n}","name":""}]},"settings":"58739d5a3af3bc0f003ef40a","url":"/members","auth":"required","examples":{"codes":[{"language":"shell","code":"curl \t-H \"Content-Type: application/json\" \\\n\t\t\t-H \"Authorization:Bearer <Access Token>\" \\ https://<subdomain>.workable.com/spi/v3/members","name":""}]},"method":"get","params":[{"type":"string","name":"subdomain","_id":"57d2ab1a106224200096d177","ref":"","in":"path","required":false,"desc":"The account's subdomain","default":""},{"desc":"Specifies the number of members to try and retrieve per page (optional)","default":"50","type":"int","name":"limit","_id":"587cf1cf6dccbf0f00956c47","ref":"","in":"query","required":false},{"_id":"587cf1cf6dccbf0f00956c46","default":"","desc":"Returns results with an ID greater than or equal to the specified ID. (optional)","in":"query","name":"since_id","ref":"","required":false,"type":"string"},{"name":"max_id","_id":"587cf1cf6dccbf0f00956c45","ref":"","in":"query","required":false,"desc":"Returns results with an ID less than or equal to the specified ID. (optional)","default":"","type":"string"},{"type":"string","name":"role","_id":"587cf1cf6dccbf0f00956c44","ref":"","in":"query","required":false,"desc":"Filters for members of the specified role. Can be `simple` or `admin`","default":""},{"required":false,"desc":"Filters for a specific job, only collaborators will be returned","default":"","type":"string","name":"shortcode","_id":"587cf1cf6dccbf0f00956c43","ref":"","in":"query"}]},"excerpt":"Returns a collection of your account members","link_url":"","order":1,"title":"/members","category":"587395fe11b3ec1900d3b6dd","link_external":false,"parentDoc":null,"project":"551111444878730d00220ecb","slug":"members","type":"get","version":"587395fe11b3ec1900d3b6db","__v":1,"body":"[block:api-header]\n{\n  \"type\": \"basic\",\n  \"title\": \"Results\"\n}\n[/block]\nCalling the `/members` endpoint will return a collection of the [defined members](http://www.workable.com/backend/account/members) \n\nEach `member` will have the following keys:\n\n\n[block:parameters]\n{\n  \"data\": {\n    \"h-0\": \"key\",\n    \"h-1\": \"type\",\n    \"h-2\": \"description\",\n    \"0-0\": \"id\",\n    \"1-0\": \"name\",\n    \"2-0\": \"headline\",\n    \"3-0\": \"email\",\n    \"4-0\": \"role\",\n    \"0-1\": \"`string`\",\n    \"1-1\": \"`string`\",\n    \"2-1\": \"`string`\",\n    \"3-1\": \"`string`\",\n    \"4-1\": \"`string`\",\n    \"0-2\": \"The member identifier\",\n    \"1-2\": \"The full name of the member\",\n    \"2-2\": \"The headline of the member\",\n    \"3-2\": \"The email address of the member\",\n    \"4-2\": \"The member's role. Possible values are `admin` and `simple`\"\n  },\n  \"cols\": 3,\n  \"rows\": 5\n}\n[/block]","hidden":false,"isReference":false,"childrenPages":[]}

get/members

Returns a collection of your account members

Path Params

subdomain:
string
The account's subdomain

Query Params

limit:
integer50
Specifies the number of members to try and retrieve per page (optional)
since_id:
string
Returns results with an ID greater than or equal to the specified ID. (optional)
max_id:
string
Returns results with an ID less than or equal to the specified ID. (optional)
role:
string
Filters for members of the specified role. Can be `simple` or `admin`
shortcode:
string
Filters for a specific job, only collaborators will be returned
[block:api-header] { "type": "basic", "title": "Results" } [/block] Calling the `/members` endpoint will return a collection of the [defined members](http://www.workable.com/backend/account/members) Each `member` will have the following keys: [block:parameters] { "data": { "h-0": "key", "h-1": "type", "h-2": "description", "0-0": "id", "1-0": "name", "2-0": "headline", "3-0": "email", "4-0": "role", "0-1": "`string`", "1-1": "`string`", "2-1": "`string`", "3-1": "`string`", "4-1": "`string`", "0-2": "The member identifier", "1-2": "The full name of the member", "2-2": "The headline of the member", "3-2": "The email address of the member", "4-2": "The member's role. Possible values are `admin` and `simple`" }, "cols": 3, "rows": 5 } [/block]

User Information

Try It Out

get
{{ tryResults.results }}
Method{{ tryResults.method }}
Request Headers
{{ tryResults.requestHeaders }}
URL{{ tryResults.url }}
Request Data
{{ tryResults.data }}
Status
Response Headers
{{ tryResults.responseHeaders }}

Definition

{{ api_url }}{{ page_api_url }}

Examples


Result Format



[block:api-header] { "type": "basic", "title": "Results" } [/block] Calling the `/members` endpoint will return a collection of the [defined members](http://www.workable.com/backend/account/members) Each `member` will have the following keys: [block:parameters] { "data": { "h-0": "key", "h-1": "type", "h-2": "description", "0-0": "id", "1-0": "name", "2-0": "headline", "3-0": "email", "4-0": "role", "0-1": "`string`", "1-1": "`string`", "2-1": "`string`", "3-1": "`string`", "4-1": "`string`", "0-2": "The member identifier", "1-2": "The full name of the member", "2-2": "The headline of the member", "3-2": "The email address of the member", "4-2": "The member's role. Possible values are `admin` and `simple`" }, "cols": 3, "rows": 5 } [/block]
{"_id":"587395fe11b3ec1900d3b6e2","excerpt":"Returns a collection of your account external recruiters","githubsync":"","isReference":false,"link_url":"","project":"551111444878730d00220ecb","slug":"recruiters","title":"/recruiters","createdAt":"2015-07-09T08:43:56.631Z","user":"55967fa3430c481900db1b29","updates":[],"link_external":false,"order":2,"parentDoc":null,"sync_unique":"","body":"[block:api-header]\n{\n  \"type\": \"basic\",\n  \"title\": \"Results\"\n}\n[/block]\nCalling the `/recruiters` endpoint will return a collection of the [external recruiters](http://www.workable.com/backend/account/recruiters) \n\nEach `recruiter` will have the following keys:\n\n\n[block:parameters]\n{\n  \"data\": {\n    \"h-0\": \"key\",\n    \"h-1\": \"type\",\n    \"h-2\": \"description\",\n    \"0-0\": \"id\",\n    \"1-0\": \"name\",\n    \"2-0\": \"email\",\n    \"0-1\": \"`string`\",\n    \"1-1\": \"`string`\",\n    \"2-1\": \"`string`\",\n    \"0-2\": \"The recruiter identifier\",\n    \"1-2\": \"The full name of the recruiter\",\n    \"2-2\": \"The email address of the recruiter\"\n  },\n  \"cols\": 3,\n  \"rows\": 3\n}\n[/block]","api":{"params":[{"type":"string","name":"subdomain","_id":"57d2abbb106224200096d178","ref":"","in":"path","required":false,"desc":"The account's subdomain","default":""},{"desc":"The job's shortcode. If provided only recruiters collaborating on the correlated job will be returned.","default":"","type":"string","name":"shortcode","_id":"587cb1922569d319009f5a05","ref":"","in":"query","required":false}],"results":{"codes":[{"status":200,"language":"json","code":"{\n  \"recruiters\": [\n    {\n      \"id\": \"19782abc\",\n      \"name\": \"Nadia Sawahla\",\n      \"email\": \"nadia.sawahla@name.com\"\n    },\n    {\n      \"id\": \"3c00c3ac\",\n      \"name\": \"David Bodello\",\n      \"email\": \"david.bodellos@gmail.com\"\n    }\n  ]\n}","name":""},{"name":"","status":401,"language":"json","code":"{\n  \"error\":\"Not authorized\"\n}"}]},"settings":"58739d5a3af3bc0f003ef40a","url":"/recruiters","auth":"required","examples":{"codes":[{"name":"","code":"curl \t-H \"Content-Type: application/json\" \\\n\t\t\t-H \"Authorization:Bearer <Access Token>\" \\\n      https://<subdomain>.workable.com/spi/v3/recruiters","language":"shell"}]},"method":"get"},"category":"587395fe11b3ec1900d3b6dd","hidden":false,"next":{"pages":[],"description":""},"type":"get","version":"587395fe11b3ec1900d3b6db","__v":1,"childrenPages":[]}

get/recruiters

Returns a collection of your account external recruiters

Path Params

subdomain:
string
The account's subdomain

Query Params

shortcode:
string
The job's shortcode. If provided only recruiters collaborating on the correlated job will be returned.
[block:api-header] { "type": "basic", "title": "Results" } [/block] Calling the `/recruiters` endpoint will return a collection of the [external recruiters](http://www.workable.com/backend/account/recruiters) Each `recruiter` will have the following keys: [block:parameters] { "data": { "h-0": "key", "h-1": "type", "h-2": "description", "0-0": "id", "1-0": "name", "2-0": "email", "0-1": "`string`", "1-1": "`string`", "2-1": "`string`", "0-2": "The recruiter identifier", "1-2": "The full name of the recruiter", "2-2": "The email address of the recruiter" }, "cols": 3, "rows": 3 } [/block]

User Information

Try It Out

get
{{ tryResults.results }}
Method{{ tryResults.method }}
Request Headers
{{ tryResults.requestHeaders }}
URL{{ tryResults.url }}
Request Data
{{ tryResults.data }}
Status
Response Headers
{{ tryResults.responseHeaders }}

Definition

{{ api_url }}{{ page_api_url }}

Examples


Result Format



[block:api-header] { "type": "basic", "title": "Results" } [/block] Calling the `/recruiters` endpoint will return a collection of the [external recruiters](http://www.workable.com/backend/account/recruiters) Each `recruiter` will have the following keys: [block:parameters] { "data": { "h-0": "key", "h-1": "type", "h-2": "description", "0-0": "id", "1-0": "name", "2-0": "email", "0-1": "`string`", "1-1": "`string`", "2-1": "`string`", "0-2": "The recruiter identifier", "1-2": "The full name of the recruiter", "2-2": "The email address of the recruiter" }, "cols": 3, "rows": 3 } [/block]
{"_id":"587395fe11b3ec1900d3b6e3","api":{"examples":{"codes":[{"name":"","code":"curl \t-H \"Content-Type: application/json\" \\\n\t\t\t-H \"Authorization:Bearer <Access Token>\" \\\n      https://<subdomain>.workable.com/spi/v3/stages","language":"shell"}]},"method":"get","params":[{"in":"path","required":false,"desc":"The account's subdomain","default":"","type":"string","name":"subdomain","_id":"57d2abd3106224200096d179","ref":""}],"results":{"codes":[{"name":"","code":"{\n  \"stages\": [\n    {\n      \"slug\": \"sourced\",\n      \"name\": \"Sourced\",\n      \"kind\": \"sourced\",\n      \"position\": 0\n    },\n    {\n      \"slug\": \"applied\",\n      \"name\": \"Applied\",\n      \"kind\": \"applied\",\n      \"position\": 1\n    },\n    {\n      \"slug\": \"phone-screen\",\n      \"name\": \"Phone Screen\",\n      \"kind\": \"phone-screen\",\n      \"position\": 2\n    },\n    {\n      \"slug\": \"interview\",\n      \"name\": \"Interview\",\n      \"kind\": \"interview\",\n      \"position\": 3\n    },\n    {\n      \"slug\": \"offer\",\n      \"name\": \"Offer\",\n      \"kind\": \"offer\",\n      \"position\": 4\n    },\n    {\n      \"slug\": \"hired\",\n      \"name\": \"Hired\",\n      \"kind\": \"hired\",\n      \"position\": 5\n    }\n  ]\n}","language":"json","status":200},{"name":"","code":"{\n  \"error\":\"Not authorized\"\n}","language":"json","status":401}]},"settings":"58739d5a3af3bc0f003ef40a","url":"/stages","auth":"required"},"excerpt":"Returns a collection of your recruitment pipeline stages","hidden":false,"link_external":false,"user":"55967fa3430c481900db1b29","__v":0,"body":"[block:api-header]\n{\n  \"type\": \"basic\",\n  \"title\": \"Results\"\n}\n[/block]\nCalling the `/stages` endpoint will return a collection of the recruitment pipeline stages as defined in [recruiting preferences](https://www.workable.com/backend/account/recruiting_preferences) page\n\nEach `stage` will have the following keys:\n\n\n[block:parameters]\n{\n  \"data\": {\n    \"h-0\": \"key\",\n    \"h-1\": \"type\",\n    \"h-2\": \"description\",\n    \"0-0\": \"slug\",\n    \"1-0\": \"name\",\n    \"2-0\": \"kind\",\n    \"0-1\": \"`string`\",\n    \"1-1\": \"`string`\",\n    \"2-1\": \"`string`\",\n    \"0-2\": \"The unique token of the stage\",\n    \"1-2\": \"The stage name\",\n    \"2-2\": \"The type of the stage. Possible values are `sourced`, `applied`, `shortlisted`, `assessment`, `phone-screen`, `interview`, `offer` & `hired`\",\n    \"3-0\": \"position\",\n    \"3-1\": \"`integer`\",\n    \"3-2\": \"The position of the stage in the pipeline (zero based)\"\n  },\n  \"cols\": 3,\n  \"rows\": 4\n}\n[/block]","createdAt":"2015-07-09T09:08:40.651Z","githubsync":"","slug":"stages","sync_unique":"","isReference":false,"link_url":"","updates":[],"version":"587395fe11b3ec1900d3b6db","category":"587395fe11b3ec1900d3b6dd","next":{"pages":[],"description":""},"order":3,"parentDoc":null,"project":"551111444878730d00220ecb","title":"/stages","type":"get","childrenPages":[]}

get/stages

Returns a collection of your recruitment pipeline stages

Path Params

subdomain:
string
The account's subdomain
[block:api-header] { "type": "basic", "title": "Results" } [/block] Calling the `/stages` endpoint will return a collection of the recruitment pipeline stages as defined in [recruiting preferences](https://www.workable.com/backend/account/recruiting_preferences) page Each `stage` will have the following keys: [block:parameters] { "data": { "h-0": "key", "h-1": "type", "h-2": "description", "0-0": "slug", "1-0": "name", "2-0": "kind", "0-1": "`string`", "1-1": "`string`", "2-1": "`string`", "0-2": "The unique token of the stage", "1-2": "The stage name", "2-2": "The type of the stage. Possible values are `sourced`, `applied`, `shortlisted`, `assessment`, `phone-screen`, `interview`, `offer` & `hired`", "3-0": "position", "3-1": "`integer`", "3-2": "The position of the stage in the pipeline (zero based)" }, "cols": 3, "rows": 4 } [/block]

User Information

Try It Out

get
{{ tryResults.results }}
Method{{ tryResults.method }}
Request Headers
{{ tryResults.requestHeaders }}
URL{{ tryResults.url }}
Request Data
{{ tryResults.data }}
Status
Response Headers
{{ tryResults.responseHeaders }}

Definition

{{ api_url }}{{ page_api_url }}

Examples


Result Format



[block:api-header] { "type": "basic", "title": "Results" } [/block] Calling the `/stages` endpoint will return a collection of the recruitment pipeline stages as defined in [recruiting preferences](https://www.workable.com/backend/account/recruiting_preferences) page Each `stage` will have the following keys: [block:parameters] { "data": { "h-0": "key", "h-1": "type", "h-2": "description", "0-0": "slug", "1-0": "name", "2-0": "kind", "0-1": "`string`", "1-1": "`string`", "2-1": "`string`", "0-2": "The unique token of the stage", "1-2": "The stage name", "2-2": "The type of the stage. Possible values are `sourced`, `applied`, `shortlisted`, `assessment`, `phone-screen`, `interview`, `offer` & `hired`", "3-0": "position", "3-1": "`integer`", "3-2": "The position of the stage in the pipeline (zero based)" }, "cols": 3, "rows": 4 } [/block]
{"_id":"587395fe11b3ec1900d3b6e4","parentDoc":null,"project":"551111444878730d00220ecb","title":"/jobs","type":"get","hidden":false,"isReference":false,"order":4,"slug":"jobs","updates":["598b01d392b48c002d74e87d"],"category":"587395fe11b3ec1900d3b6dd","excerpt":"Returns a collection of your account jobs","next":{"pages":[],"description":""},"sync_unique":"","__v":1,"githubsync":"","link_url":"","createdAt":"2015-03-24T07:29:07.040Z","link_external":false,"user":"55111100318f8c170023787a","version":"587395fe11b3ec1900d3b6db","api":{"auth":"required","examples":{"codes":[{"language":"shell","code":"curl \t-H \"Content-Type: application/json\" \\\n\t\t\t-H \"Authorization:Bearer <Access Token>\" \\\n      https://<subdomain>.workable.com/spi/v3/jobs?state=published","name":null}]},"method":"get","params":[{"_id":"559d0e34b107590d00c65ec8","ref":"","in":"query","required":false,"desc":"Returns jobs with the current state. Possible values (draft, published, archived & closed).","default":"","type":"string","name":"state"},{"_id":"559a5fbf1b009a0d00a0053c","ref":"","in":"query","required":false,"desc":"Specifies the number of jobs to try and retrieve per page (optional)","default":"50","type":"int","name":"limit"},{"_id":"559a5ff7fd47a80d00abf3d1","default":"","desc":"Returns results with an ID greater than or equal to the specified ID. (optional)","in":"query","name":"since_id","ref":"","required":false,"type":"string"},{"_id":"559d01070a817c0d001a05c5","ref":"","in":"query","required":false,"desc":"Returns results with an ID less than or equal to the specified ID. (optional)","default":"","type":"string","name":"max_id"},{"name":"created_after","_id":"559d01070a817c0d001a05c4","ref":"","in":"query","required":false,"desc":"Returns results created after the specified timestamp. (optional)","default":"","type":"timestamp"},{"ref":"","in":"query","required":false,"desc":"Returns results updated after the specified timestamp.","default":"","type":"timestamp","name":"updated_after","_id":"559d01070a817c0d001a05c3"},{"in":"query","required":false,"desc":"Includes additional fields in each job (description, full_description, requirements and benefits).","default":"","type":"string","name":"include_fields","_id":"565d9c72fd2d960d00a3ee99","ref":""},{"required":false,"desc":"The account's subdomain","default":"","type":"string","name":"subdomain","_id":"57d2abea106224200096d17a","ref":"","in":"path"}],"results":{"codes":[{"code":"{  \n  \"jobs\": [\n    {\n      \"id\": \"61884e2\",\n      \"title\": \"Sales Intern\",\n      \"full_title\": \"Sales Intern - US/3/SI\",\n      \"shortcode\": \"GROOV003\",\n      \"code\": \"US/3/SI\",\n      \"state\": \"draft\",\n      \"department\": \"Sales\",\n      \"url\": \"https://groove-tech.workable.com/jobs/102268944\",\n      \"application_url\": \"https://groove-tech.workable.com/jobs/102268944/candidates/new\",\n      \"shortlink\": \"https://groove-tech.workable.com/j/GROOV003\",\n      \"location\": {\n        \"country\": \"United States\",\n        \"country_code\": \"US\",\n        \"region\": \"Oregon\",\n        \"region_code\": \"OR\",\n        \"city\": \"Portland\",\n        \"zip_code\": \"97201\",\n        \"telecommuting\": false\n      },\n      \"created_at\": \"2015-07-01T00:00:00Z\"\n    },\n    {\n      \"id\": \"1166bf8c\",\n      \"title\": \"Operations Manager\",\n      \"full_title\": \"Operations Manager - US/02/CM\",\n      \"shortcode\": \"GROOV001\",\n      \"code\": \"US/02/CM\",\n      \"state\": \"archived\",\n      \"department\": \"Operations\",\n      \"url\": \"https://groove-tech.workable.com/jobs/291945146\",\n      \"application_url\": \"https://groove-tech.workable.com/jobs/291945146/candidates/new\",\n      \"shortlink\": \"https://groove-tech.workable.com/j/GROOV001\",\n      \"location\": {\n        \"country\": \"United States\",\n        \"country_code\": \"US\",\n        \"region\": \"Illinois\",\n        \"region_code\": \"IL\",\n        \"city\": \"Chicago\",\n        \"zip_code\": \"60290\",\n        \"telecommuting\": false\n      },\n      \"created_at\": \"2015-05-07T00:00:00Z\"\n    },\n    {\n      \"id\": \"167636b1\",\n      \"title\": \"Office Manager\",\n      \"full_title\": \"Office Manager - US/4/OM\",\n      \"shortcode\": \"GROOV005\",\n      \"code\": \"US/4/OM\",\n      \"state\": \"published\",\n      \"department\": \"Administration\",\n      \"url\": \"https://groove-tech.workable.com/jobs/376844767\",\n      \"application_url\": \"https://groove-tech.workable.com/jobs/376844767/candidates/new\",\n      \"shortlink\": \"https://groove-tech.workable.com/j/GROOV005\",\n      \"location\": {\n        \"country\": \"United States\",\n        \"country_code\": \"US\",\n        \"region\": \"Illinois\",\n        \"region_code\": \"IL\",\n        \"city\": \"Chicago\",\n        \"zip_code\": \"60290\",\n        \"telecommuting\": false\n      },\n      \"created_at\": \"2015-06-06T00:00:00Z\"\n    }\n  ],\n  \"paging\": {\n    \"next\": \"https://www.workable.com/spi/v3/accounts/groove-tech/jobs?limit=3&since_id=2700d6df\"\n  }\n}","name":"","status":200,"language":"json"},{"code":"{\n  \"error\":\"Not found\"\n}","language":"json","status":404},{"code":"{\n  \"error\":\"Not authorized\"\n}","language":"json","status":401}]},"settings":"58739d5a3af3bc0f003ef40a","url":"/jobs"},"body":"[block:callout]\n{\n  \"type\": \"info\",\n  \"title\": \"Timestamp parameters input format\",\n  \"body\": \"Supported input formats for the timestamp fields `created_after` & `updated_after` are:\\n\\n- [ISO8601](https://en.wikipedia.org/?title=ISO_8601) e.g. 20150708T115616Z\\n- Unix time (e.g. 1436356721)\"\n}\n[/block]\n\n[block:api-header]\n{\n  \"type\": \"basic\",\n  \"title\": \"Results\"\n}\n[/block]\nCalling the `/jobs` endpoint will return a collection of the defined `jobs` sorted by the time inserted on system, in ascending order (older jobs come first).\n\nBy default results are limited to 50. The limit can by updated via the request parameter `limit`. The value specified cannot be more than 100.\n\n[block:parameters]\n{\n  \"data\": {\n    \"h-0\": \"key\",\n    \"h-1\": \"description\",\n    \"0-0\": \"`jobs`\",\n    \"0-1\": \"array of the defined jobs\",\n    \"1-0\": \"`paging`\",\n    \"1-1\": \"Includes the `next` URL pointing to the next results page, in case there are more results than the provided limit\"\n  },\n  \"cols\": 2,\n  \"rows\": 2\n}\n[/block]\nEach `job` will have the following keys:\n[block:parameters]\n{\n  \"data\": {\n    \"h-0\": \"key\",\n    \"h-1\": \"type\",\n    \"h-2\": \"description\",\n    \"0-0\": \"id\",\n    \"1-0\": \"title\",\n    \"2-0\": \"full_title\",\n    \"3-0\": \"shortcode\",\n    \"4-0\": \"code\",\n    \"5-0\": \"state\",\n    \"6-0\": \"department\",\n    \"7-0\": \"url\",\n    \"8-0\": \"application_url\",\n    \"9-0\": \"shortlink\",\n    \"10-0\": \"location/country\",\n    \"11-0\": \"location/country_code\",\n    \"12-0\": \"location/region\",\n    \"13-0\": \"location/region_code\",\n    \"14-0\": \"location/city\",\n    \"15-0\": \"location/zip_code\",\n    \"16-0\": \"location/telecommuting\",\n    \"17-0\": \"created_at\",\n    \"0-1\": \"`string`\",\n    \"1-1\": \"`string`\",\n    \"2-1\": \"`string`\",\n    \"3-1\": \"`string`\",\n    \"4-1\": \"`string`\",\n    \"5-1\": \"`string`\",\n    \"6-1\": \"`string`\",\n    \"7-1\": \"`string`\",\n    \"8-1\": \"`string`\",\n    \"9-1\": \"`string`\",\n    \"10-1\": \"`string`\",\n    \"11-1\": \"`string`\",\n    \"12-1\": \"`string`\",\n    \"13-1\": \"`string`\",\n    \"14-1\": \"`string`\",\n    \"15-1\": \"`string`\",\n    \"16-1\": \"`boolean`\",\n    \"17-1\": \"`timestamp`\",\n    \"0-2\": \"The job identifier\",\n    \"1-2\": \"The short title of the job\",\n    \"2-2\": \"The full title of the job\",\n    \"3-2\": \"System generated job code\",\n    \"4-2\": \"Job code as defined in editor\",\n    \"5-2\": \"The job state. Possible values are `draft`, `published`, `closed`, `archived`. Where `closed` is a job used internally.\",\n    \"6-2\": \"The job department as defined in editor\",\n    \"7-2\": \"URL to the job page\",\n    \"8-2\": \"URL to the job application form\",\n    \"9-2\": \"short URL to the job page\",\n    \"10-2\": \"The country name as defined in job editor\",\n    \"11-2\": \"The two digit country code\",\n    \"12-2\": \"The region as defined in job editor\",\n    \"13-2\": \"The two digit region code\",\n    \"14-2\": \"The city as defined in job editor\",\n    \"15-2\": \"The zip code as defined in job editor\",\n    \"17-2\": \"The timestamp the job created\",\n    \"16-2\": \"Indicates if this is a remote/telecommute job\"\n  },\n  \"cols\": 3,\n  \"rows\": 18\n}\n[/block]","childrenPages":[]}

get/jobs

Returns a collection of your account jobs

Path Params

subdomain:
string
The account's subdomain

Query Params

state:
string
Returns jobs with the current state. Possible values (draft, published, archived & closed).
limit:
integer50
Specifies the number of jobs to try and retrieve per page (optional)
since_id:
string
Returns results with an ID greater than or equal to the specified ID. (optional)
max_id:
string
Returns results with an ID less than or equal to the specified ID. (optional)
created_after:
timestamp
Returns results created after the specified timestamp. (optional)
updated_after:
timestamp
Returns results updated after the specified timestamp.
include_fields:
string
Includes additional fields in each job (description, full_description, requirements and benefits).
[block:callout] { "type": "info", "title": "Timestamp parameters input format", "body": "Supported input formats for the timestamp fields `created_after` & `updated_after` are:\n\n- [ISO8601](https://en.wikipedia.org/?title=ISO_8601) e.g. 20150708T115616Z\n- Unix time (e.g. 1436356721)" } [/block] [block:api-header] { "type": "basic", "title": "Results" } [/block] Calling the `/jobs` endpoint will return a collection of the defined `jobs` sorted by the time inserted on system, in ascending order (older jobs come first). By default results are limited to 50. The limit can by updated via the request parameter `limit`. The value specified cannot be more than 100. [block:parameters] { "data": { "h-0": "key", "h-1": "description", "0-0": "`jobs`", "0-1": "array of the defined jobs", "1-0": "`paging`", "1-1": "Includes the `next` URL pointing to the next results page, in case there are more results than the provided limit" }, "cols": 2, "rows": 2 } [/block] Each `job` will have the following keys: [block:parameters] { "data": { "h-0": "key", "h-1": "type", "h-2": "description", "0-0": "id", "1-0": "title", "2-0": "full_title", "3-0": "shortcode", "4-0": "code", "5-0": "state", "6-0": "department", "7-0": "url", "8-0": "application_url", "9-0": "shortlink", "10-0": "location/country", "11-0": "location/country_code", "12-0": "location/region", "13-0": "location/region_code", "14-0": "location/city", "15-0": "location/zip_code", "16-0": "location/telecommuting", "17-0": "created_at", "0-1": "`string`", "1-1": "`string`", "2-1": "`string`", "3-1": "`string`", "4-1": "`string`", "5-1": "`string`", "6-1": "`string`", "7-1": "`string`", "8-1": "`string`", "9-1": "`string`", "10-1": "`string`", "11-1": "`string`", "12-1": "`string`", "13-1": "`string`", "14-1": "`string`", "15-1": "`string`", "16-1": "`boolean`", "17-1": "`timestamp`", "0-2": "The job identifier", "1-2": "The short title of the job", "2-2": "The full title of the job", "3-2": "System generated job code", "4-2": "Job code as defined in editor", "5-2": "The job state. Possible values are `draft`, `published`, `closed`, `archived`. Where `closed` is a job used internally.", "6-2": "The job department as defined in editor", "7-2": "URL to the job page", "8-2": "URL to the job application form", "9-2": "short URL to the job page", "10-2": "The country name as defined in job editor", "11-2": "The two digit country code", "12-2": "The region as defined in job editor", "13-2": "The two digit region code", "14-2": "The city as defined in job editor", "15-2": "The zip code as defined in job editor", "17-2": "The timestamp the job created", "16-2": "Indicates if this is a remote/telecommute job" }, "cols": 3, "rows": 18 } [/block]

User Information

Try It Out

get
{{ tryResults.results }}
Method{{ tryResults.method }}
Request Headers
{{ tryResults.requestHeaders }}
URL{{ tryResults.url }}
Request Data
{{ tryResults.data }}
Status
Response Headers
{{ tryResults.responseHeaders }}

Definition

{{ api_url }}{{ page_api_url }}

Examples


Result Format



[block:callout] { "type": "info", "title": "Timestamp parameters input format", "body": "Supported input formats for the timestamp fields `created_after` & `updated_after` are:\n\n- [ISO8601](https://en.wikipedia.org/?title=ISO_8601) e.g. 20150708T115616Z\n- Unix time (e.g. 1436356721)" } [/block] [block:api-header] { "type": "basic", "title": "Results" } [/block] Calling the `/jobs` endpoint will return a collection of the defined `jobs` sorted by the time inserted on system, in ascending order (older jobs come first). By default results are limited to 50. The limit can by updated via the request parameter `limit`. The value specified cannot be more than 100. [block:parameters] { "data": { "h-0": "key", "h-1": "description", "0-0": "`jobs`", "0-1": "array of the defined jobs", "1-0": "`paging`", "1-1": "Includes the `next` URL pointing to the next results page, in case there are more results than the provided limit" }, "cols": 2, "rows": 2 } [/block] Each `job` will have the following keys: [block:parameters] { "data": { "h-0": "key", "h-1": "type", "h-2": "description", "0-0": "id", "1-0": "title", "2-0": "full_title", "3-0": "shortcode", "4-0": "code", "5-0": "state", "6-0": "department", "7-0": "url", "8-0": "application_url", "9-0": "shortlink", "10-0": "location/country", "11-0": "location/country_code", "12-0": "location/region", "13-0": "location/region_code", "14-0": "location/city", "15-0": "location/zip_code", "16-0": "location/telecommuting", "17-0": "created_at", "0-1": "`string`", "1-1": "`string`", "2-1": "`string`", "3-1": "`string`", "4-1": "`string`", "5-1": "`string`", "6-1": "`string`", "7-1": "`string`", "8-1": "`string`", "9-1": "`string`", "10-1": "`string`", "11-1": "`string`", "12-1": "`string`", "13-1": "`string`", "14-1": "`string`", "15-1": "`string`", "16-1": "`boolean`", "17-1": "`timestamp`", "0-2": "The job identifier", "1-2": "The short title of the job", "2-2": "The full title of the job", "3-2": "System generated job code", "4-2": "Job code as defined in editor", "5-2": "The job state. Possible values are `draft`, `published`, `closed`, `archived`. Where `closed` is a job used internally.", "6-2": "The job department as defined in editor", "7-2": "URL to the job page", "8-2": "URL to the job application form", "9-2": "short URL to the job page", "10-2": "The country name as defined in job editor", "11-2": "The two digit country code", "12-2": "The region as defined in job editor", "13-2": "The two digit region code", "14-2": "The city as defined in job editor", "15-2": "The zip code as defined in job editor", "17-2": "The timestamp the job created", "16-2": "Indicates if this is a remote/telecommute job" }, "cols": 3, "rows": 18 } [/block]
{"_id":"587395fe11b3ec1900d3b6e5","isReference":false,"next":{"pages":[],"description":""},"project":"551111444878730d00220ecb","updates":[],"user":"55967fa3430c481900db1b29","version":"587395fe11b3ec1900d3b6db","githubsync":"","slug":"jobsshortcode","sync_unique":"","title":"/jobs/:shortcode","body":"[block:api-header]\n{\n  \"type\": \"basic\",\n  \"title\": \"Response\"\n}\n[/block]\nCalling the `jobs/:shortcode` will return the full job JSON object.\n[block:parameters]\n{\n  \"data\": {\n    \"h-0\": \"key\",\n    \"h-1\": \"type\",\n    \"h-2\": \"description\",\n    \"0-0\": \"id\",\n    \"0-1\": \"`string`\",\n    \"0-2\": \"The job identifier\",\n    \"1-0\": \"title\",\n    \"2-0\": \"full_title\",\n    \"3-0\": \"shortcode\",\n    \"4-0\": \"code\",\n    \"5-0\": \"state\",\n    \"6-0\": \"department\",\n    \"7-0\": \"url\",\n    \"8-0\": \"application_url\",\n    \"9-0\": \"shortlink\",\n    \"10-0\": \"location/country\",\n    \"11-0\": \"location/country_code\",\n    \"12-0\": \"location/region\",\n    \"13-0\": \"location/region_code\",\n    \"14-0\": \"location/city\",\n    \"15-0\": \"location/zip_code\",\n    \"16-0\": \"location/telecommuting\",\n    \"17-0\": \"created_at\",\n    \"18-0\": \"full_description\",\n    \"19-0\": \"description\",\n    \"20-0\": \"requirements\",\n    \"21-0\": \"benefits\",\n    \"22-0\": \"employment_type\",\n    \"23-0\": \"industry\",\n    \"24-0\": \"function\",\n    \"25-0\": \"experience\",\n    \"26-0\": \"education\",\n    \"1-1\": \"`string`\",\n    \"1-2\": \"The short title of the job\",\n    \"2-1\": \"`string`\",\n    \"2-2\": \"The full title of the job (title + code)\",\n    \"3-1\": \"`string`\",\n    \"3-2\": \"System generated job code\",\n    \"4-1\": \"`string`\",\n    \"4-2\": \"Job code as defined in editor\",\n    \"5-1\": \"`string`\",\n    \"5-2\": \"The job state. Possible values are `draft`, `published`, `closed`, `archived`\",\n    \"6-1\": \"`string`\",\n    \"6-2\": \"The job department as defined in job editor\",\n    \"7-1\": \"`string`\",\n    \"7-2\": \"short URL to the job page\",\n    \"8-1\": \"`string`\",\n    \"8-2\": \"URL to the job application form\",\n    \"9-1\": \"`string`\",\n    \"9-2\": \"short URL to the job page\",\n    \"10-1\": \"`string`\",\n    \"10-2\": \"The country name as defined in job editor\",\n    \"11-1\": \"`string`\",\n    \"12-1\": \"`string`\",\n    \"13-1\": \"`string`\",\n    \"14-1\": \"`string`\",\n    \"15-1\": \"`string`\",\n    \"16-1\": \"`boolean`\",\n    \"17-1\": \"`string`\",\n    \"18-1\": \"`string`\",\n    \"19-1\": \"`string`\",\n    \"20-1\": \"`string`\",\n    \"21-1\": \"`string`\",\n    \"22-1\": \"`string`\",\n    \"23-1\": \"`string`\",\n    \"24-1\": \"`string`\",\n    \"25-1\": \"`string`\",\n    \"26-1\": \"`string`\",\n    \"11-2\": \"The two digit country code\",\n    \"12-2\": \"The region as defined in job editor\",\n    \"13-2\": \"The two digit region code\",\n    \"14-2\": \"The city as defined in job editor\",\n    \"15-2\": \"The zip code as defined in job editor\",\n    \"16-2\": \"True if job is telecommuting\",\n    \"17-2\": \"The timestamp the job was created\",\n    \"18-2\": \"Description + requirements + benefits\",\n    \"19-2\": \"The description of the job\",\n    \"20-2\": \"The requirements section of the job\",\n    \"21-2\": \"The benefits section of the job\",\n    \"22-2\": \"The employment type of the job\",\n    \"23-2\": \"The job's industry\",\n    \"24-2\": \"The job's function\",\n    \"25-2\": \"The experience required for the job\",\n    \"26-2\": \"The education level required for the job\"\n  },\n  \"cols\": 3,\n  \"rows\": 27\n}\n[/block]","createdAt":"2015-07-08T15:22:58.234Z","__v":0,"api":{"method":"get","params":[{"required":false,"desc":"The account's subdomain","default":"","type":"string","name":"subdomain","_id":"57d2ac09db2574200016abdc","ref":"","in":"path"},{"type":"string","name":"shortcode","_id":"559e562533243e0d00906f64","ref":"","in":"path","required":true,"desc":"The job's shortcode","default":""}],"results":{"codes":[{"name":"","code":"{\n  \"id\": \"167636b1\",\n  \"title\": \"Office Manager\",\n  \"full_title\": \"Office Manager - US/4/OM\",\n  \"shortcode\": \"GROOV005\",\n  \"code\": \"US/4/OM\",\n  \"state\": \"published\",\n  \"department\": \"Administration\",\n  \"url\": \"https://groove-tech.lvh.me:3000/jobs/376844767\",\n  \"application_url\": \"https://groove-tech.lvh.me:3000/jobs/376844767/candidates/new\",\n  \"shortlink\": \"https://groove-tech.lvh.me:3000/j/GROOV005\",\n  \"location\": {\n    \"country\": \"United States\",\n    \"country_code\": \"US\",\n    \"region\": \"Illinois\",\n    \"region_code\": \"IL\",\n    \"city\": \"Chicago\",\n    \"zip_code\": \"60290\",\n    \"telecommuting\": false\n  },\n  \"created_at\": \"2015-06-08T00:00:00Z\",\n  \"full_description\": \" <p>We are looking for an Office Manager to organize and coordinate office operations and procedures, in order to ensure organizational effectiveness, efficiency and safety.The ideal candidate will be experienced in handling a wide range of administrative and executive support related tasks and will be able to work independently with little or no supervision. This person must be exceedingly well organized, flexible and enjoy the administrative challenges of supporting an office of diverse people.</p> <p>Responsibilities:<ul> <li>Serve as the point person for maintenance, mailing, shopping, supplies, equipment, bills, and errands</li> <li>Organize and schedule meetings and appointments</li> <li>Partner with HR to maintain office policies as necessary</li> <li>Organize office operations and proceduresCoordinate with IT department on all office equipment</li> <li>Manage relationships with vendors, service providers, and landlord, ensuring that all items are invoiced and paid on time</li> <li>Manage contract and price negotiations with office vendors, service providers and office lease</li> <li>Manage office G&A budget, ensure accurate and timely reporting</li> <li>Provide general support to visitors</li> </ul></p><p><strong>Requirements</strong></p><ul> <li>4+ years of office management, administrative or assistant experience</li> <li>Knowledge of office management systems and procedures</li> <li>Excellent time management skills and ability to multi-task and prioritize work</li> <li>Attention to detail and problem solving skills</li> <li>Excellent written and verbal communication skills</li> <li>Strong organizational and planning skills</li> <li>Proficiency in MS Office</li> </ul><p><strong>Benefits</strong></p><ul>\\\\\\n <li>Great opportunities for career development</li> <li>All your equipment provided including a laptop</li> <li>Increasing vacation days with each year of employment</li> </ul>\",\n  \"description\": \" <p>We are looking for an Office Manager to organize and coordinate office operations and procedures, in order to ensure organizational effectiveness, efficiency and safety.The ideal candidate will be experienced in handling a wide range of administrative and executive support related tasks and will be able to work independently with little or no supervision. This person must be exceedingly well organized, flexible and enjoy the administrative challenges of supporting an office of diverse people.</p> <p>Responsibilities:<ul> <li>Serve as the point person for maintenance, mailing, shopping, supplies, equipment, bills, and errands</li> <li>Organize and schedule meetings and appointments</li> <li>Partner with HR to maintain office policies as necessary</li> <li>Organize office operations and proceduresCoordinate with IT department on all office equipment</li> <li>Manage relationships with vendors, service providers, and landlord, ensuring that all items are invoiced and paid on time</li> <li>Manage contract and price negotiations with office vendors, service providers and office lease</li> <li>Manage office G&A budget, ensure accurate and timely reporting</li> <li>Provide general support to visitors</li> </ul></p>\",\n  \"requirements\": \"<ul> <li>4+ years of office management, administrative or assistant experience</li> <li>Knowledge of office management systems and procedures</li> <li>Excellent time management skills and ability to multi-task and prioritize work</li> <li>Attention to detail and problem solving skills</li> <li>Excellent written and verbal communication skills</li> <li>Strong organizational and planning skills</li> <li>Proficiency in MS Office</li> </ul>\",\n  \"benefits\": \"<ul> <li>Great opportunities for career development</li> <li>All your equipment provided including a laptop</li> <li>Increasing vacation days with each year of employment</li> </ul>\",\n  \"employment_type\": \"Full-time\",\n  \"industry\": \"Business Supplies and equipment\",\n  \"function\": \"Administrative\",\n  \"experience\": \"Associate\",\n  \"education\": \"High School or equivalent\"\n}","language":"json","status":200},{"status":404,"language":"json","code":"{\n  \"error\":\"Not found\"\n}"},{"code":"{\n  \"error\":\"Not authorized\"\n}","language":"json","status":401}]},"settings":"58739d5a3af3bc0f003ef40a","url":"/jobs/:shortcode","auth":"required","examples":{"codes":[{"language":"curl","code":"curl \t-H \"Content-Type: application/json\" \\\n\t\t\t-H \"Authorization:Bearer <Access Token>\" \\\n      https://<subdomain>.workable.com/spi/v3/jobs/<shortcode>"}]}},"category":"587395fe11b3ec1900d3b6dd","excerpt":"","hidden":false,"link_external":false,"link_url":"","order":5,"parentDoc":null,"type":"get","childrenPages":[]}

get/jobs/:shortcode


Path Params

subdomain:
string
The account's subdomain
shortcode:
required
string
The job's shortcode
[block:api-header] { "type": "basic", "title": "Response" } [/block] Calling the `jobs/:shortcode` will return the full job JSON object. [block:parameters] { "data": { "h-0": "key", "h-1": "type", "h-2": "description", "0-0": "id", "0-1": "`string`", "0-2": "The job identifier", "1-0": "title", "2-0": "full_title", "3-0": "shortcode", "4-0": "code", "5-0": "state", "6-0": "department", "7-0": "url", "8-0": "application_url", "9-0": "shortlink", "10-0": "location/country", "11-0": "location/country_code", "12-0": "location/region", "13-0": "location/region_code", "14-0": "location/city", "15-0": "location/zip_code", "16-0": "location/telecommuting", "17-0": "created_at", "18-0": "full_description", "19-0": "description", "20-0": "requirements", "21-0": "benefits", "22-0": "employment_type", "23-0": "industry", "24-0": "function", "25-0": "experience", "26-0": "education", "1-1": "`string`", "1-2": "The short title of the job", "2-1": "`string`", "2-2": "The full title of the job (title + code)", "3-1": "`string`", "3-2": "System generated job code", "4-1": "`string`", "4-2": "Job code as defined in editor", "5-1": "`string`", "5-2": "The job state. Possible values are `draft`, `published`, `closed`, `archived`", "6-1": "`string`", "6-2": "The job department as defined in job editor", "7-1": "`string`", "7-2": "short URL to the job page", "8-1": "`string`", "8-2": "URL to the job application form", "9-1": "`string`", "9-2": "short URL to the job page", "10-1": "`string`", "10-2": "The country name as defined in job editor", "11-1": "`string`", "12-1": "`string`", "13-1": "`string`", "14-1": "`string`", "15-1": "`string`", "16-1": "`boolean`", "17-1": "`string`", "18-1": "`string`", "19-1": "`string`", "20-1": "`string`", "21-1": "`string`", "22-1": "`string`", "23-1": "`string`", "24-1": "`string`", "25-1": "`string`", "26-1": "`string`", "11-2": "The two digit country code", "12-2": "The region as defined in job editor", "13-2": "The two digit region code", "14-2": "The city as defined in job editor", "15-2": "The zip code as defined in job editor", "16-2": "True if job is telecommuting", "17-2": "The timestamp the job was created", "18-2": "Description + requirements + benefits", "19-2": "The description of the job", "20-2": "The requirements section of the job", "21-2": "The benefits section of the job", "22-2": "The employment type of the job", "23-2": "The job's industry", "24-2": "The job's function", "25-2": "The experience required for the job", "26-2": "The education level required for the job" }, "cols": 3, "rows": 27 } [/block]

User Information

Try It Out

get
{{ tryResults.results }}
Method{{ tryResults.method }}
Request Headers
{{ tryResults.requestHeaders }}
URL{{ tryResults.url }}
Request Data
{{ tryResults.data }}
Status
Response Headers
{{ tryResults.responseHeaders }}

Definition

{{ api_url }}{{ page_api_url }}

Examples


Result Format



[block:api-header] { "type": "basic", "title": "Response" } [/block] Calling the `jobs/:shortcode` will return the full job JSON object. [block:parameters] { "data": { "h-0": "key", "h-1": "type", "h-2": "description", "0-0": "id", "0-1": "`string`", "0-2": "The job identifier", "1-0": "title", "2-0": "full_title", "3-0": "shortcode", "4-0": "code", "5-0": "state", "6-0": "department", "7-0": "url", "8-0": "application_url", "9-0": "shortlink", "10-0": "location/country", "11-0": "location/country_code", "12-0": "location/region", "13-0": "location/region_code", "14-0": "location/city", "15-0": "location/zip_code", "16-0": "location/telecommuting", "17-0": "created_at", "18-0": "full_description", "19-0": "description", "20-0": "requirements", "21-0": "benefits", "22-0": "employment_type", "23-0": "industry", "24-0": "function", "25-0": "experience", "26-0": "education", "1-1": "`string`", "1-2": "The short title of the job", "2-1": "`string`", "2-2": "The full title of the job (title + code)", "3-1": "`string`", "3-2": "System generated job code", "4-1": "`string`", "4-2": "Job code as defined in editor", "5-1": "`string`", "5-2": "The job state. Possible values are `draft`, `published`, `closed`, `archived`", "6-1": "`string`", "6-2": "The job department as defined in job editor", "7-1": "`string`", "7-2": "short URL to the job page", "8-1": "`string`", "8-2": "URL to the job application form", "9-1": "`string`", "9-2": "short URL to the job page", "10-1": "`string`", "10-2": "The country name as defined in job editor", "11-1": "`string`", "12-1": "`string`", "13-1": "`string`", "14-1": "`string`", "15-1": "`string`", "16-1": "`boolean`", "17-1": "`string`", "18-1": "`string`", "19-1": "`string`", "20-1": "`string`", "21-1": "`string`", "22-1": "`string`", "23-1": "`string`", "24-1": "`string`", "25-1": "`string`", "26-1": "`string`", "11-2": "The two digit country code", "12-2": "The region as defined in job editor", "13-2": "The two digit region code", "14-2": "The city as defined in job editor", "15-2": "The zip code as defined in job editor", "16-2": "True if job is telecommuting", "17-2": "The timestamp the job was created", "18-2": "Description + requirements + benefits", "19-2": "The description of the job", "20-2": "The requirements section of the job", "21-2": "The benefits section of the job", "22-2": "The employment type of the job", "23-2": "The job's industry", "24-2": "The job's function", "25-2": "The experience required for the job", "26-2": "The education level required for the job" }, "cols": 3, "rows": 27 } [/block]
{"_id":"5873aace9240910f00196b04","__v":1,"body":"[block:api-header]\n{\n  \"type\": \"basic\",\n  \"title\": \"Results\"\n}\n[/block]\nCalling the `/jobs/:shortcode/activities` endpoint returns a JSON array of the job's activities.\n[block:parameters]\n{\n  \"data\": {\n    \"h-0\": \"key\",\n    \"h-1\": \"description\",\n    \"h-2\": \"description\",\n    \"0-0\": \"activities\",\n    \"0-1\": \"array of activities\"\n  },\n  \"cols\": 2,\n  \"rows\": 1\n}\n[/block]\nEach activity has the following keys:\n[block:parameters]\n{\n  \"data\": {\n    \"h-0\": \"key\",\n    \"h-1\": \"type\",\n    \"h-2\": \"description\",\n    \"0-0\": \"action\",\n    \"0-1\": \"`string`\",\n    \"0-2\": \"The action/type of the activity\",\n    \"1-0\": \"stage_name\",\n    \"1-1\": \"`string`\",\n    \"1-2\": \"The stage the candidate was in when the activity was created (if applicable)\",\n    \"2-0\": \"created_at\",\n    \"2-1\": \"`string`\",\n    \"2-2\": \"The creation timestamp of the activity\",\n    \"3-0\": \"candidate\",\n    \"3-1\": \"`object`\",\n    \"3-2\": \"The candidate (if applicable), contains id and name\",\n    \"4-0\": \"member\",\n    \"4-1\": \"`object`\",\n    \"4-2\": \"The member that created the activity (if applicable), contains id and name of the member\",\n    \"5-0\": \"body\",\n    \"5-1\": \"`string`\",\n    \"5-2\": \"The body of the activity, available if action is `comment`, `rating`, `message` or `disqualification`\"\n  },\n  \"cols\": 3,\n  \"rows\": 6\n}\n[/block]","createdAt":"2017-01-09T15:22:54.979Z","githubsync":"","next":{"pages":[],"description":""},"project":"551111444878730d00220ecb","slug":"job-activities","sync_unique":"","type":"get","updates":[],"version":"587395fe11b3ec1900d3b6db","hidden":false,"order":6,"title":"/jobs/:shortcode/activities","category":"587395fe11b3ec1900d3b6dd","isReference":false,"link_external":false,"parentDoc":null,"user":"55111100318f8c170023787a","api":{"auth":"required","examples":{"codes":[{"code":"curl \t-H \"Content-Type: application/json\" \\\n\t\t\t-H \"Authorization:Bearer <Access Token>\" \\\n      https://<subdomain>.workable.com/spi/v3/jobs/<shortcode>/activities","language":"curl"}]},"method":"get","params":[{"_id":"559e34888371c50d0052f06e","ref":"","in":"path","required":true,"desc":"The account's subdomain","default":"","type":"string","name":"subdomain"},{"name":"shortcode","_id":"559e7cc9be7abc0d00507f05","ref":"","in":"path","required":true,"desc":"The job's shortcode","default":"","type":"string"},{"ref":"","in":"query","required":false,"desc":"Specifies the number of members to try and retrieve per page (optional)","default":"50","type":"int","name":"limit","_id":"587cf2f82569d319009f5af2"},{"desc":"Returns results with an ID greater than or equal to the specified ID. (optional)","in":"query","name":"since_id","ref":"","required":false,"type":"string","_id":"587cf2f82569d319009f5af1","default":""},{"required":false,"desc":"Returns results with an ID less than or equal to the specified ID. (optional)","default":"","type":"string","name":"max_id","_id":"587cf2f82569d319009f5af0","ref":"","in":"query"}],"results":{"codes":[{"status":200,"language":"json","code":"{\n  \"activities\": [\n\t\t{\n      \"action\": \"event\",\n      \"stage_name\": null,\n      \"created_at\": \"2017-01-18T10:31:06.947Z\",\n      \"candidate\": {\n        \"id\": \"30290210\",\n        \"name\": \"Osvaldo Keel\"\n      },\n      \"member\": {\n        \"id\": \"3247e8c7\",\n        \"name\": \"Alexia Middleton\"\n      },\n      \"body\": null\n    },\n    {\n      \"action\": \"uploaded\",\n      \"stage_name\": \"Sourced\",\n      \"created_at\": \"2016-09-25T00:00:00.000Z\",\n      \"candidate\": {\n        \"id\": \"1289a448\",\n        \"name\": \"Harmon Carter\"\n      },\n      \"member\": {\n        \"id\": \"19782abc\",\n        \"name\": \"Nadia Sawahla\"\n      },\n      \"body\": null\n    },\n    {\n      \"action\": \"message\",\n      \"stage_name\": null,\n      \"created_at\": \"2016-11-01T00:00:00.000Z\",\n      \"candidate\": {\n        \"id\": \"1cccc872\",\n        \"name\": \"Manuel Stradford\"\n      },\n      \"body\": \"<p>Hi, Natalie</p>\\n<p>I'm thrilled to receive the offer for the position and really excited to accept. Please find attached the signed offer letter. I can't wait to get started.<p>\\n<p>Best,</p>\\nManuel Stradford\\n\"\n    },\n    {\n      \"action\": \"comment\",\n      \"stage_name\": null,\n      \"created_at\": \"2016-11-13T06:05:00.000Z\",\n      \"candidate\": {\n        \"id\": \"23c8811a\",\n        \"name\": \"Raphael Henley\"\n      },\n      \"member\": {\n        \"id\": \"3f8918be\",\n        \"name\": \"Natalie Sung\"\n      },\n      \"body\": \"Looks like a good candidate. @eduardo_vallente should we arrange a call?\"\n    }\n  ]\n}","name":""},{"status":404,"language":"json","code":"{\n  \"error\":\"Not found\"\n}"},{"status":401,"code":"{\n  \"error\":\"Not authorized\"\n}","language":"json"}]},"settings":"58739d5a3af3bc0f003ef40a","url":"/jobs/:shortcode/activities"},"excerpt":"Returns the activity stream of the given job","link_url":"","childrenPages":[]}

get/jobs/:shortcode/activities

Returns the activity stream of the given job

Path Params

subdomain:
required
string
The account's subdomain
shortcode:
required
string
The job's shortcode

Query Params

limit:
integer50
Specifies the number of members to try and retrieve per page (optional)
since_id:
string
Returns results with an ID greater than or equal to the specified ID. (optional)
max_id:
string
Returns results with an ID less than or equal to the specified ID. (optional)
[block:api-header] { "type": "basic", "title": "Results" } [/block] Calling the `/jobs/:shortcode/activities` endpoint returns a JSON array of the job's activities. [block:parameters] { "data": { "h-0": "key", "h-1": "description", "h-2": "description", "0-0": "activities", "0-1": "array of activities" }, "cols": 2, "rows": 1 } [/block] Each activity has the following keys: [block:parameters] { "data": { "h-0": "key", "h-1": "type", "h-2": "description", "0-0": "action", "0-1": "`string`", "0-2": "The action/type of the activity", "1-0": "stage_name", "1-1": "`string`", "1-2": "The stage the candidate was in when the activity was created (if applicable)", "2-0": "created_at", "2-1": "`string`", "2-2": "The creation timestamp of the activity", "3-0": "candidate", "3-1": "`object`", "3-2": "The candidate (if applicable), contains id and name", "4-0": "member", "4-1": "`object`", "4-2": "The member that created the activity (if applicable), contains id and name of the member", "5-0": "body", "5-1": "`string`", "5-2": "The body of the activity, available if action is `comment`, `rating`, `message` or `disqualification`" }, "cols": 3, "rows": 6 } [/block]

User Information

Try It Out

get
{{ tryResults.results }}
Method{{ tryResults.method }}
Request Headers
{{ tryResults.requestHeaders }}
URL{{ tryResults.url }}
Request Data
{{ tryResults.data }}
Status
Response Headers
{{ tryResults.responseHeaders }}

Definition

{{ api_url }}{{ page_api_url }}

Examples


Result Format



[block:api-header] { "type": "basic", "title": "Results" } [/block] Calling the `/jobs/:shortcode/activities` endpoint returns a JSON array of the job's activities. [block:parameters] { "data": { "h-0": "key", "h-1": "description", "h-2": "description", "0-0": "activities", "0-1": "array of activities" }, "cols": 2, "rows": 1 } [/block] Each activity has the following keys: [block:parameters] { "data": { "h-0": "key", "h-1": "type", "h-2": "description", "0-0": "action", "0-1": "`string`", "0-2": "The action/type of the activity", "1-0": "stage_name", "1-1": "`string`", "1-2": "The stage the candidate was in when the activity was created (if applicable)", "2-0": "created_at", "2-1": "`string`", "2-2": "The creation timestamp of the activity", "3-0": "candidate", "3-1": "`object`", "3-2": "The candidate (if applicable), contains id and name", "4-0": "member", "4-1": "`object`", "4-2": "The member that created the activity (if applicable), contains id and name of the member", "5-0": "body", "5-1": "`string`", "5-2": "The body of the activity, available if action is `comment`, `rating`, `message` or `disqualification`" }, "cols": 3, "rows": 6 } [/block]
{"_id":"587395fe11b3ec1900d3b6ec","updates":[],"api":{"url":"/jobs/:shortcode/application_form","auth":"required","examples":{"codes":[{"language":"curl","code":"curl \t-H \"Content-Type: application/json\" \\\n\t\t\t-H \"Authorization:Bearer <Access Token>\" \\\n      https://<subdomain>.workable.com/spi/v3/jobs/<shortcode>/application_form"}]},"method":"get","params":[{"_id":"559e34888371c50d0052f06e","ref":"","in":"path","required":true,"desc":"The account's subdomain","default":"","type":"string","name":"subdomain"},{"name":"shortcode","_id":"559e7cc9be7abc0d00507f05","ref":"","in":"path","required":true,"desc":"The job's shortcode","default":"","type":"string"}],"results":{"codes":[{"status":200,"language":"json","code":"{\n  \"form_fields\": [\n    {\n      \"key\": \"headline\",\n      \"label\": \"Headline\",\n      \"type\": \"string\",\n      \"required\": true\n    },\n    {\n      \"key\": \"address\",\n      \"label\": \"Address\",\n      \"type\": \"string\",\n      \"required\": false\n    },\n    {\n      \"key\": \"avatar\",\n      \"label\": \"Photo\",\n      \"type\": \"file\",\n      \"supported_file_types\": [\n        \"jpg\",\n        \"jpeg\",\n        \"gif\",\n        \"png\"\n      ],\n      \"max_file_size\": 5242880,\n      \"required\": true\n    },\n    {\n      \"key\": \"experience\",\n      \"label\": \"Experience\",\n      \"type\": \"complex\",\n      \"multiple\": true,\n      \"required\": false,\n      \"fields\": [\n        {\n          \"key\": \"title\",\n          \"label\": \"Title\",\n          \"type\": \"string\",\n          \"required\": true\n        },\n        {\n          \"key\": \"company\",\n          \"label\": \"Company\",\n          \"type\": \"string\",\n          \"required\": false\n        },\n        {\n          \"key\": \"industry\",\n          \"label\": \"Industry\",\n          \"type\": \"string\",\n          \"required\": false\n        },\n        {\n          \"key\": \"summary\",\n          \"label\": \"Summary\",\n          \"type\": \"free_text\",\n          \"required\": false\n        },\n        {\n          \"key\": \"current\",\n          \"label\": \"I currently work here\",\n          \"type\": \"boolean\",\n          \"required\": true\n        },\n        {\n          \"key\": \"start_date\",\n          \"type\": \"date\",\n          \"required\": false\n        },\n        {\n          \"key\": \"end_date\",\n          \"type\": \"date\",\n          \"required\": false\n        }\n      ]\n    },\n    {\n      \"key\": \"summary\",\n      \"label\": \"Summary\",\n      \"type\": \"free_text\",\n      \"required\": false\n    },\n    {\n      \"key\": \"resume\",\n      \"label\": \"Resume\",\n      \"type\": \"file\",\n      \"supported_file_types\": [\n        \"pdf\",\n        \"doc\",\n        \"docx\",\n        \"odt\",\n        \"rtf\",\n        \"html\",\n        \"htm\",\n        \"txt\"\n      ],\n      \"max_file_size\": 5242880,\n      \"required\": false\n    },\n    {\n      \"key\": \"cover_letter\",\n      \"label\": \"Cover letter\",\n      \"type\": \"free_text\",\n      \"required\": false\n    }\n  ],\n  \"questions\": [\n    {\n      \"id\": \"4da\",\n      \"body\": \"Describe a win situation\",\n      \"type\": \"free_text\"\n    }\n  ]\n}","name":""},{"code":"{\n  \"error\":\"Not found\"\n}","status":404,"language":"json"},{"code":"{\n  \"error\":\"Not authorized\"\n}","language":"json","status":401}]},"settings":"58739d5a3af3bc0f003ef40a"},"body":"[block:api-header]\n{\n  \"type\": \"basic\",\n  \"title\": \"Response\"\n}\n[/block]\nCalling the `/jobs/:shortcode/application_form` endpoint returns a JSON object with two arrays, one with the application form fields and one array with the job's questions.\n\nThis endpoint might be handy if you wan't to build a dynamic application form that will conform with the rules defined in the \"Application Form\" tab of Job Editor.\n[block:parameters]\n{\n  \"data\": {\n    \"h-0\": \"key\",\n    \"h-1\": \"description\",\n    \"h-2\": \"description\",\n    \"0-0\": \"form_fields\",\n    \"0-1\": \"array of form fields\",\n    \"1-0\": \"questions\",\n    \"1-1\": \"array of questions\"\n  },\n  \"cols\": 2,\n  \"rows\": 2\n}\n[/block]\nEach question has the following keys:\n[block:parameters]\n{\n  \"data\": {\n    \"h-0\": \"key\",\n    \"h-1\": \"type\",\n    \"h-2\": \"description\",\n    \"0-0\": \"id\",\n    \"0-1\": \"`string`\",\n    \"0-2\": \"The question's id\",\n    \"1-0\": \"body\",\n    \"1-1\": \"`string`\",\n    \"1-2\": \"The question's body\",\n    \"2-0\": \"type\",\n    \"2-1\": \"`string`\",\n    \"2-2\": \"The question's type. Possible values are `free_text`, `multiple_choice`, `boolean`, `dropdown`, `numeric`, `date`, `file`\",\n    \"4-0\": \"single_answer\",\n    \"4-1\": \"`boolean`\",\n    \"4-2\": \"Defined only if question's type is `multiple_choice`\",\n    \"5-0\": \"choices\",\n    \"5-1\": \"`array`\",\n    \"5-2\": \"Defined only if question's type is `multiple_choice` or `dropdown`. An array specifying the possible answers.\",\n    \"6-0\": \"choices/id\",\n    \"6-1\": \"`string`\",\n    \"6-2\": \"The choice's id\",\n    \"7-0\": \"choices/body\",\n    \"7-1\": \"`string`\",\n    \"7-2\": \"The choice's text\",\n    \"8-0\": \"supported_file_types\",\n    \"8-1\": \"`array`\",\n    \"8-2\": \"Defined only if question type is `file`. An array specifying the accepted file types for this question.\",\n    \"9-0\": \"max_file_size\",\n    \"9-1\": \"`integer`\",\n    \"9-2\": \"Defined only if question type is `file`. The maximum file size in bytes.\",\n    \"3-0\": \"required\",\n    \"3-1\": \"`boolean`\",\n    \"3-2\": \"Specifies whether providing an answer for this question is required\"\n  },\n  \"cols\": 3,\n  \"rows\": 10\n}\n[/block]\nEach form_field has the following keys:\n[block:parameters]\n{\n  \"data\": {\n    \"h-0\": \"key\",\n    \"h-1\": \"type\",\n    \"h-2\": \"description\",\n    \"0-0\": \"key\",\n    \"1-0\": \"label\",\n    \"2-0\": \"type\",\n    \"3-0\": \"required\",\n    \"4-0\": \"fields\",\n    \"0-1\": \"`string`\",\n    \"1-1\": \"`string`\",\n    \"2-1\": \"`string`\",\n    \"0-2\": \"The application form's field key. This key matches with the candidate attribute as well\",\n    \"1-2\": \"The fields name.\",\n    \"2-2\": \"The fields type. Possible values are: `string`, `free_text`, `file`, `boolean`, `date`,  `complex`\",\n    \"3-1\": \"`boolean`\",\n    \"3-2\": \"Indicates if this field is mandatory\",\n    \"4-1\": \"`array`\",\n    \"4-2\": \"Defined in fields of type `complex`\",\n    \"5-0\": \"supported_file_types\",\n    \"5-1\": \"`array`\",\n    \"5-2\": \"Defined in fields of type `file`\",\n    \"6-0\": \"max_file_size\",\n    \"6-1\": \"`integer`\",\n    \"6-2\": \"Defined in fields of type `file`\"\n  },\n  \"cols\": 3,\n  \"rows\": 7\n}\n[/block]","excerpt":"","link_url":"","parentDoc":null,"title":"/jobs/:shortcode/application_form","type":"get","user":"55111100318f8c170023787a","createdAt":"2016-09-19T08:25:20.297Z","order":7,"project":"551111444878730d00220ecb","sync_unique":"","version":"587395fe11b3ec1900d3b6db","hidden":false,"next":{"pages":[],"description":""},"slug":"jobsshortcodeapplication_form","__v":0,"category":"587395fe11b3ec1900d3b6dd","githubsync":"","isReference":false,"link_external":false,"childrenPages":[]}

get/jobs/:shortcode/application_form


Path Params

subdomain:
required
string
The account's subdomain
shortcode:
required
string
The job's shortcode
[block:api-header] { "type": "basic", "title": "Response" } [/block] Calling the `/jobs/:shortcode/application_form` endpoint returns a JSON object with two arrays, one with the application form fields and one array with the job's questions. This endpoint might be handy if you wan't to build a dynamic application form that will conform with the rules defined in the "Application Form" tab of Job Editor. [block:parameters] { "data": { "h-0": "key", "h-1": "description", "h-2": "description", "0-0": "form_fields", "0-1": "array of form fields", "1-0": "questions", "1-1": "array of questions" }, "cols": 2, "rows": 2 } [/block] Each question has the following keys: [block:parameters] { "data": { "h-0": "key", "h-1": "type", "h-2": "description", "0-0": "id", "0-1": "`string`", "0-2": "The question's id", "1-0": "body", "1-1": "`string`", "1-2": "The question's body", "2-0": "type", "2-1": "`string`", "2-2": "The question's type. Possible values are `free_text`, `multiple_choice`, `boolean`, `dropdown`, `numeric`, `date`, `file`", "4-0": "single_answer", "4-1": "`boolean`", "4-2": "Defined only if question's type is `multiple_choice`", "5-0": "choices", "5-1": "`array`", "5-2": "Defined only if question's type is `multiple_choice` or `dropdown`. An array specifying the possible answers.", "6-0": "choices/id", "6-1": "`string`", "6-2": "The choice's id", "7-0": "choices/body", "7-1": "`string`", "7-2": "The choice's text", "8-0": "supported_file_types", "8-1": "`array`", "8-2": "Defined only if question type is `file`. An array specifying the accepted file types for this question.", "9-0": "max_file_size", "9-1": "`integer`", "9-2": "Defined only if question type is `file`. The maximum file size in bytes.", "3-0": "required", "3-1": "`boolean`", "3-2": "Specifies whether providing an answer for this question is required" }, "cols": 3, "rows": 10 } [/block] Each form_field has the following keys: [block:parameters] { "data": { "h-0": "key", "h-1": "type", "h-2": "description", "0-0": "key", "1-0": "label", "2-0": "type", "3-0": "required", "4-0": "fields", "0-1": "`string`", "1-1": "`string`", "2-1": "`string`", "0-2": "The application form's field key. This key matches with the candidate attribute as well", "1-2": "The fields name.", "2-2": "The fields type. Possible values are: `string`, `free_text`, `file`, `boolean`, `date`, `complex`", "3-1": "`boolean`", "3-2": "Indicates if this field is mandatory", "4-1": "`array`", "4-2": "Defined in fields of type `complex`", "5-0": "supported_file_types", "5-1": "`array`", "5-2": "Defined in fields of type `file`", "6-0": "max_file_size", "6-1": "`integer`", "6-2": "Defined in fields of type `file`" }, "cols": 3, "rows": 7 } [/block]

User Information

Try It Out

get
{{ tryResults.results }}
Method{{ tryResults.method }}
Request Headers
{{ tryResults.requestHeaders }}
URL{{ tryResults.url }}
Request Data
{{ tryResults.data }}
Status
Response Headers
{{ tryResults.responseHeaders }}

Definition

{{ api_url }}{{ page_api_url }}

Examples


Result Format



[block:api-header] { "type": "basic", "title": "Response" } [/block] Calling the `/jobs/:shortcode/application_form` endpoint returns a JSON object with two arrays, one with the application form fields and one array with the job's questions. This endpoint might be handy if you wan't to build a dynamic application form that will conform with the rules defined in the "Application Form" tab of Job Editor. [block:parameters] { "data": { "h-0": "key", "h-1": "description", "h-2": "description", "0-0": "form_fields", "0-1": "array of form fields", "1-0": "questions", "1-1": "array of questions" }, "cols": 2, "rows": 2 } [/block] Each question has the following keys: [block:parameters] { "data": { "h-0": "key", "h-1": "type", "h-2": "description", "0-0": "id", "0-1": "`string`", "0-2": "The question's id", "1-0": "body", "1-1": "`string`", "1-2": "The question's body", "2-0": "type", "2-1": "`string`", "2-2": "The question's type. Possible values are `free_text`, `multiple_choice`, `boolean`, `dropdown`, `numeric`, `date`, `file`", "4-0": "single_answer", "4-1": "`boolean`", "4-2": "Defined only if question's type is `multiple_choice`", "5-0": "choices", "5-1": "`array`", "5-2": "Defined only if question's type is `multiple_choice` or `dropdown`. An array specifying the possible answers.", "6-0": "choices/id", "6-1": "`string`", "6-2": "The choice's id", "7-0": "choices/body", "7-1": "`string`", "7-2": "The choice's text", "8-0": "supported_file_types", "8-1": "`array`", "8-2": "Defined only if question type is `file`. An array specifying the accepted file types for this question.", "9-0": "max_file_size", "9-1": "`integer`", "9-2": "Defined only if question type is `file`. The maximum file size in bytes.", "3-0": "required", "3-1": "`boolean`", "3-2": "Specifies whether providing an answer for this question is required" }, "cols": 3, "rows": 10 } [/block] Each form_field has the following keys: [block:parameters] { "data": { "h-0": "key", "h-1": "type", "h-2": "description", "0-0": "key", "1-0": "label", "2-0": "type", "3-0": "required", "4-0": "fields", "0-1": "`string`", "1-1": "`string`", "2-1": "`string`", "0-2": "The application form's field key. This key matches with the candidate attribute as well", "1-2": "The fields name.", "2-2": "The fields type. Possible values are: `string`, `free_text`, `file`, `boolean`, `date`, `complex`", "3-1": "`boolean`", "3-2": "Indicates if this field is mandatory", "4-1": "`array`", "4-2": "Defined in fields of type `complex`", "5-0": "supported_file_types", "5-1": "`array`", "5-2": "Defined in fields of type `file`", "6-0": "max_file_size", "6-1": "`integer`", "6-2": "Defined in fields of type `file`" }, "cols": 3, "rows": 7 } [/block]
{"_id":"587395fe11b3ec1900d3b6e6","version":"587395fe11b3ec1900d3b6db","githubsync":"","slug":"job-questions","user":"55967fa3430c481900db1b29","link_url":"","order":8,"parentDoc":null,"body":"[block:api-header]\n{\n  \"type\": \"basic\",\n  \"title\": \"Results\"\n}\n[/block]\nCalling the `/jobs/:shortcode/questions` endpoint returns a JSON array of the job's questions.\n[block:parameters]\n{\n  \"data\": {\n    \"h-0\": \"key\",\n    \"h-1\": \"description\",\n    \"h-2\": \"description\",\n    \"0-0\": \"questions\",\n    \"0-1\": \"array of questions\"\n  },\n  \"cols\": 2,\n  \"rows\": 1\n}\n[/block]\nEach question has the following keys:\n[block:parameters]\n{\n  \"data\": {\n    \"h-0\": \"key\",\n    \"h-1\": \"type\",\n    \"h-2\": \"description\",\n    \"0-0\": \"id\",\n    \"0-1\": \"`string`\",\n    \"0-2\": \"The question's id\",\n    \"1-0\": \"body\",\n    \"1-1\": \"`string`\",\n    \"1-2\": \"The question's body\",\n    \"2-0\": \"type\",\n    \"2-1\": \"`string`\",\n    \"2-2\": \"The question's type. Possible values are `free_text`, `multiple_choice`, `boolean`, `dropdown`, `numeric`, `date`, `file`\",\n    \"4-0\": \"single_answer\",\n    \"4-1\": \"`boolean`\",\n    \"4-2\": \"Defined only if question's type is `multiple_choice`\",\n    \"5-0\": \"choices\",\n    \"5-1\": \"`array`\",\n    \"5-2\": \"Defined only if question's type is `multiple_choice` or `dropdown`. An array specifying the possible answers.\",\n    \"6-0\": \"choices/id\",\n    \"6-1\": \"`string`\",\n    \"6-2\": \"The choice's id\",\n    \"7-0\": \"choices/body\",\n    \"7-1\": \"`string`\",\n    \"7-2\": \"The choice's text\",\n    \"8-0\": \"supported_file_types\",\n    \"8-1\": \"`array`\",\n    \"8-2\": \"Defined only if question type is `file`. An array specifying the accepted file types for this question.\",\n    \"9-0\": \"max_file_size\",\n    \"9-1\": \"`integer`\",\n    \"9-2\": \"Defined only if question type is `file`. The maximum file size in bytes.\",\n    \"3-0\": \"required\",\n    \"3-1\": \"`boolean`\",\n    \"3-2\": \"Specifies whether providing an answer for this question is required\"\n  },\n  \"cols\": 3,\n  \"rows\": 10\n}\n[/block]","category":"587395fe11b3ec1900d3b6dd","sync_unique":"","title":"/jobs/:shortcode/questions","updates":[],"__v":0,"hidden":false,"link_external":false,"isReference":false,"next":{"pages":[],"description":""},"project":"551111444878730d00220ecb","type":"get","api":{"params":[{"type":"string","name":"subdomain","_id":"559e34888371c50d0052f06e","ref":"","in":"path","required":true,"desc":"The account's subdomain","default":""},{"desc":"The job's shortcode","default":"","type":"string","name":"shortcode","_id":"559e7cc9be7abc0d00507f05","ref":"","in":"path","required":true}],"results":{"codes":[{"status":200,"language":"json","code":"{\n  \"questions\": [\n    {\n      \"id\": \"2128d717\",\n      \"body\": \"Explain one aspect of this role you believe you will excel at.\",\n      \"type\": \"free_text\",\n      \"required\": true\n    },\n    {\n      \"id\": \"a8ee3a9\",\n      \"body\": \"Explain one aspect of this role you believe will be a challenge.\",\n      \"type\": \"free_text\",\n      \"required\": true\n    },\n    {\n      \"id\": \"1914385\",\n      \"body\": \"How many years administrative experience do you have?\",\n      \"type\": \"dropdown\",\n      \"required\": true,\n      \"single_answer\": true,\n      \"choices\": [\n        {\n          \"id\": \"3f3c0265\",\n          \"body\": \"0-3 years\"\n        },\n        {\n          \"id\": \"2632b0fd\",\n          \"body\": \"3-5 years\"\n        },\n        {\n          \"id\": \"1135a194\",\n          \"body\": \"Over 5 years\"\n        }\n      ]\n    },\n    {\n      \"id\": \"1d3f348f\",\n      \"body\": \"Intermediate or above proficiency with MS Office?\",\n      \"type\": \"boolean\",\n      \"required\": true\n    },\n    {\n      \"id\": \"2cc66842\",\n      \"body\": \"How would you describe yourself in a sentence?\",\n      \"type\": \"short_text\",\n      \"required\": true\n    },\n    {\n      \"id\": \"3399e6cd\",\n      \"body\": \"Which Microsoft Office tools are you familiar with?\",\n      \"type\": \"multiple_choice\",\n      \"required\": true,\n      \"single_answer\": false,\n      \"choices\": [\n        {\n          \"id\": \"3049114a\",\n          \"body\": \"Word\"\n        },\n        {\n          \"id\": \"29406296\",\n          \"body\": \"Excel\"\n        },\n        {\n          \"id\": \"1e477229\",\n          \"body\": \"Powerpoint\"\n        }\n      ]\n    },\n    {\n      \"id\": \"386d95ed\",\n      \"body\": \"When does your work permit expire? (please fill in only if applicable)\",\n      \"type\": \"date\",\n      \"required\": true\n    },\n    {\n      \"id\": \"1e6c9547\",\n      \"body\": \"Work permit (please fill in only if applicable)\",\n      \"type\": \"file\",\n      \"required\": true,\n      \"supported_file_types\": [\n        \"pdf\",\n        \"doc\",\n        \"docx\",\n        \"odt\",\n        \"html\",\n        \"rtf\",\n        \"ppt\",\n        \"pptx\",\n        \"png\",\n        \"jpg\",\n        \"jpeg\",\n        \"gif\",\n        \"tiff\",\n        \"txt\",\n        \"xlsx\",\n        \"xls\",\n        \"pptx\",\n        \"ppt\",\n        \"zip\"\n      ],\n      \"max_file_size\": 20971520\n    }\n  ]\n}","name":""},{"status":404,"language":"json","code":"{\n  \"error\":\"Not found\"\n}"},{"code":"{\n  \"error\":\"Not authorized\"\n}","language":"json","status":401}]},"settings":"58739d5a3af3bc0f003ef40a","url":"/jobs/:shortcode/questions","auth":"required","examples":{"codes":[{"language":"curl","code":"curl \t-H \"Content-Type: application/json\" \\\n\t\t\t-H \"Authorization:Bearer <Access Token>\" \\\n      https://<subdomain>.workable.com/spi/v3/jobs/<shortcode>/questions"}]},"method":"get"},"createdAt":"2015-07-09T13:53:13.100Z","excerpt":"","childrenPages":[]}

get/jobs/:shortcode/questions


Path Params

subdomain:
required
string
The account's subdomain
shortcode:
required
string
The job's shortcode
[block:api-header] { "type": "basic", "title": "Results" } [/block] Calling the `/jobs/:shortcode/questions` endpoint returns a JSON array of the job's questions. [block:parameters] { "data": { "h-0": "key", "h-1": "description", "h-2": "description", "0-0": "questions", "0-1": "array of questions" }, "cols": 2, "rows": 1 } [/block] Each question has the following keys: [block:parameters] { "data": { "h-0": "key", "h-1": "type", "h-2": "description", "0-0": "id", "0-1": "`string`", "0-2": "The question's id", "1-0": "body", "1-1": "`string`", "1-2": "The question's body", "2-0": "type", "2-1": "`string`", "2-2": "The question's type. Possible values are `free_text`, `multiple_choice`, `boolean`, `dropdown`, `numeric`, `date`, `file`", "4-0": "single_answer", "4-1": "`boolean`", "4-2": "Defined only if question's type is `multiple_choice`", "5-0": "choices", "5-1": "`array`", "5-2": "Defined only if question's type is `multiple_choice` or `dropdown`. An array specifying the possible answers.", "6-0": "choices/id", "6-1": "`string`", "6-2": "The choice's id", "7-0": "choices/body", "7-1": "`string`", "7-2": "The choice's text", "8-0": "supported_file_types", "8-1": "`array`", "8-2": "Defined only if question type is `file`. An array specifying the accepted file types for this question.", "9-0": "max_file_size", "9-1": "`integer`", "9-2": "Defined only if question type is `file`. The maximum file size in bytes.", "3-0": "required", "3-1": "`boolean`", "3-2": "Specifies whether providing an answer for this question is required" }, "cols": 3, "rows": 10 } [/block]

User Information

Try It Out

get
{{ tryResults.results }}
Method{{ tryResults.method }}
Request Headers
{{ tryResults.requestHeaders }}
URL{{ tryResults.url }}
Request Data
{{ tryResults.data }}
Status
Response Headers
{{ tryResults.responseHeaders }}

Definition

{{ api_url }}{{ page_api_url }}

Examples


Result Format



[block:api-header] { "type": "basic", "title": "Results" } [/block] Calling the `/jobs/:shortcode/questions` endpoint returns a JSON array of the job's questions. [block:parameters] { "data": { "h-0": "key", "h-1": "description", "h-2": "description", "0-0": "questions", "0-1": "array of questions" }, "cols": 2, "rows": 1 } [/block] Each question has the following keys: [block:parameters] { "data": { "h-0": "key", "h-1": "type", "h-2": "description", "0-0": "id", "0-1": "`string`", "0-2": "The question's id", "1-0": "body", "1-1": "`string`", "1-2": "The question's body", "2-0": "type", "2-1": "`string`", "2-2": "The question's type. Possible values are `free_text`, `multiple_choice`, `boolean`, `dropdown`, `numeric`, `date`, `file`", "4-0": "single_answer", "4-1": "`boolean`", "4-2": "Defined only if question's type is `multiple_choice`", "5-0": "choices", "5-1": "`array`", "5-2": "Defined only if question's type is `multiple_choice` or `dropdown`. An array specifying the possible answers.", "6-0": "choices/id", "6-1": "`string`", "6-2": "The choice's id", "7-0": "choices/body", "7-1": "`string`", "7-2": "The choice's text", "8-0": "supported_file_types", "8-1": "`array`", "8-2": "Defined only if question type is `file`. An array specifying the accepted file types for this question.", "9-0": "max_file_size", "9-1": "`integer`", "9-2": "Defined only if question type is `file`. The maximum file size in bytes.", "3-0": "required", "3-1": "`boolean`", "3-2": "Specifies whether providing an answer for this question is required" }, "cols": 3, "rows": 10 } [/block]
{"_id":"58b6e6aa21f8003100b43d33","hidden":false,"isReference":false,"link_external":false,"link_url":"","next":{"pages":[],"description":""},"parentDoc":null,"version":"587395fe11b3ec1900d3b6db","api":{"auth":"required","examples":{"codes":[{"name":"","code":"curl \t-H \"Content-Type: application/json\" \\\n\t\t\t-H \"Authorization:Bearer <Access Token>\" \\\n      https://<subdomain>.workable.com/spi/v3/jobs/<shortcode>/stages","language":"shell"}]},"method":"get","params":[{"required":false,"desc":"The account's subdomain","default":"","type":"string","name":"subdomain*","_id":"57d2abd3106224200096d179","ref":"","in":"path"},{"ref":"","in":"path","required":true,"desc":"The job's shortcode","default":"","type":"string","name":"shortcode","_id":"58b6e72db72a430f007f9ed1"}],"results":{"codes":[{"name":"","code":"{\n  \"stages\": [\n    {\n      \"slug\": \"sourced\",\n      \"name\": \"Sourced\",\n      \"kind\": \"sourced\",\n      \"position\": 0\n    },\n    {\n      \"slug\": \"applied\",\n      \"name\": \"Applied\",\n      \"kind\": \"applied\",\n      \"position\": 1\n    },\n    {\n      \"slug\": \"phone-screen\",\n      \"name\": \"Phone Screen\",\n      \"kind\": \"phone-screen\",\n      \"position\": 2\n    },\n    {\n      \"slug\": \"interview\",\n      \"name\": \"Interview\",\n      \"kind\": \"interview\",\n      \"position\": 3\n    },\n    {\n      \"slug\": \"offer\",\n      \"name\": \"Offer\",\n      \"kind\": \"offer\",\n      \"position\": 4\n    },\n    {\n      \"slug\": \"hired\",\n      \"name\": \"Hired\",\n      \"kind\": \"hired\",\n      \"position\": 5\n    }\n  ]\n}","language":"json","status":200},{"name":"","code":"{\n  \"error\":\"Not authorized\"\n}","language":"json","status":401}]},"settings":"58739d5a3af3bc0f003ef40a","url":"/jobs/:shortcode/stages"},"createdAt":"2017-03-01T15:20:10.976Z","githubsync":"","project":"551111444878730d00220ecb","sync_unique":"","__v":1,"slug":"job-stages","user":"55111100318f8c170023787a","body":"[block:api-header]\n{\n  \"type\": \"basic\",\n  \"title\": \"Results\"\n}\n[/block]\nCalling the `/stages` endpoint will return a collection of the recruitment pipeline stages as defined in [recruiting preferences](https://www.workable.com/backend/account/recruiting_preferences) page\n\nEach `stage` will have the following keys:\n\n\n[block:parameters]\n{\n  \"data\": {\n    \"h-0\": \"key\",\n    \"h-1\": \"type\",\n    \"h-2\": \"description\",\n    \"0-0\": \"slug\",\n    \"1-0\": \"name\",\n    \"2-0\": \"kind\",\n    \"0-1\": \"`string`\",\n    \"1-1\": \"`string`\",\n    \"2-1\": \"`string`\",\n    \"0-2\": \"The unique token of the stage\",\n    \"1-2\": \"The stage name\",\n    \"2-2\": \"The type of the stage. Possible values are `sourced`, `applied`, `shortlisted`, `assessment`, `phone-screen`, `interview`, `offer` & `hired`\",\n    \"3-0\": \"position\",\n    \"3-1\": \"`integer`\",\n    \"3-2\": \"The position of the stage in the pipeline (zero based)\"\n  },\n  \"cols\": 3,\n  \"rows\": 4\n}\n[/block]","excerpt":"Returns a collection of your recruitment pipeline stages","order":9,"title":"/jobs/:shortcode/stages","type":"get","updates":[],"category":"587395fe11b3ec1900d3b6dd","childrenPages":[]}

get/jobs/:shortcode/stages

Returns a collection of your recruitment pipeline stages

Path Params

subdomain:
string
The account's subdomain
shortcode:
required
string
The job's shortcode
[block:api-header] { "type": "basic", "title": "Results" } [/block] Calling the `/stages` endpoint will return a collection of the recruitment pipeline stages as defined in [recruiting preferences](https://www.workable.com/backend/account/recruiting_preferences) page Each `stage` will have the following keys: [block:parameters] { "data": { "h-0": "key", "h-1": "type", "h-2": "description", "0-0": "slug", "1-0": "name", "2-0": "kind", "0-1": "`string`", "1-1": "`string`", "2-1": "`string`", "0-2": "The unique token of the stage", "1-2": "The stage name", "2-2": "The type of the stage. Possible values are `sourced`, `applied`, `shortlisted`, `assessment`, `phone-screen`, `interview`, `offer` & `hired`", "3-0": "position", "3-1": "`integer`", "3-2": "The position of the stage in the pipeline (zero based)" }, "cols": 3, "rows": 4 } [/block]

User Information

Try It Out

get
{{ tryResults.results }}
Method{{ tryResults.method }}
Request Headers
{{ tryResults.requestHeaders }}
URL{{ tryResults.url }}
Request Data
{{ tryResults.data }}
Status
Response Headers
{{ tryResults.responseHeaders }}

Definition

{{ api_url }}{{ page_api_url }}

Examples


Result Format



[block:api-header] { "type": "basic", "title": "Results" } [/block] Calling the `/stages` endpoint will return a collection of the recruitment pipeline stages as defined in [recruiting preferences](https://www.workable.com/backend/account/recruiting_preferences) page Each `stage` will have the following keys: [block:parameters] { "data": { "h-0": "key", "h-1": "type", "h-2": "description", "0-0": "slug", "1-0": "name", "2-0": "kind", "0-1": "`string`", "1-1": "`string`", "2-1": "`string`", "0-2": "The unique token of the stage", "1-2": "The stage name", "2-2": "The type of the stage. Possible values are `sourced`, `applied`, `shortlisted`, `assessment`, `phone-screen`, `interview`, `offer` & `hired`", "3-0": "position", "3-1": "`integer`", "3-2": "The position of the stage in the pipeline (zero based)" }, "cols": 3, "rows": 4 } [/block]
{"_id":"587395fe11b3ec1900d3b6e9","createdAt":"2015-07-08T15:25:07.541Z","excerpt":"","parentDoc":null,"sync_unique":"","title":"/candidates","user":"55967fa3430c481900db1b29","api":{"auth":"required","examples":{"codes":[{"code":"curl \t-H \"Content-Type: application/json\" \\\n\t\t\t-H \"Authorization:Bearer <Access Token>\" \\\n      https://<subdomain>.workable.com/spi/v3/candidates","language":"curl"}]},"method":"get","params":[{"_id":"559e7cf16a83e00d00835a8f","ref":"","in":"path","required":true,"desc":"The account's subdomain","default":"","type":"string","name":"subdomain"},{"_id":"559e3fcef6bf360d00f68f66","ref":"","in":"query","required":false,"desc":"The job's system generated code","default":"","type":"string","name":"shortcode"},{"_id":"559e3ff8f6bf360d00f68f67","ref":"","in":"query","required":false,"desc":"The job's stage slug, can be retrieved from the `/stages` endpoint","default":"","type":"string","name":"stage"},{"_id":"559e46ccfa822e0d00db2610","ref":"","in":"query","required":false,"desc":"Specifies the number of candidates to try and retrieve per page","default":"","type":"int","name":"limit"},{"_id":"559e46ccfa822e0d00db260f","ref":"","in":"query","required":false,"desc":"Returns results with an ID greater than or equal to the specified ID.","default":"","type":"string","name":"since_id"},{"_id":"559e46ccfa822e0d00db260e","ref":"","in":"query","required":false,"desc":"Returns results with an ID less than or equal to the specified ID.","default":"","type":"string","name":"max_id"},{"_id":"559e46ccfa822e0d00db260d","ref":"","in":"query","required":false,"desc":"Returns results created after the specified timestamp.","default":"","type":"timestamp","name":"created_after"},{"_id":"559e46ccfa822e0d00db260c","ref":"","in":"query","required":false,"desc":"Returns results updated after the specified timestamp.","default":"","type":"timestamp","name":"updated_after"}],"results":{"codes":[{"status":200,"language":"json","code":"{\n  \"candidates\": [\n    {\n      \"id\": \"ce4da98\",\n      \"name\": \"Lakita Marrero\",\n      \"firstname\": \"Lakita\",\n      \"lastname\": \"Marrero\",\n      \"headline\": \"Operations Manager\",\n      \"account\": {\n        \"subdomain\": \"groove-tech\",\n        \"name\": \"Groove Tech\"\n      },\n      \"job\": {\n        \"shortcode\": \"GROOV005\",\n        \"title\": \"Office Manager\"\n      },\n      \"stage\": \"Interview\",\n      \"disqualified\": true,\n      \"disqualification_reason\": null,\n      \"sourced\": false,\n      \"profile_url\": \"https://groove-tech.workable.com/backend/jobs/376844767/candidates/216323526\",\n      \"email\": \"lakita_marrero@gmail.com\",\n      \"domain\": \"twitter.com\",\n      \"created_at\": \"2015-06-26T00:00:00Z\",\n      \"updated_at\": \"2015-07-08T14:46:48Z\"\n    },\n    {\n      \"id\": \"108d1748\",\n      \"name\": \"Cindy Sawyers\",\n      \"firstname\": \"Cindy\",\n      \"lastname\": \"Sawyers\",\n      \"headline\": \"Talented Operations Executive\",\n      \"account\": {\n        \"subdomain\": \"groove-tech\",\n        \"name\": \"Groove Tech\"\n      },\n      \"job\": {\n        \"shortcode\": \"GROOV005\",\n        \"title\": \"Office Manager\"\n      },\n      \"stage\": \"Applied\",\n      \"disqualified\": false,\n      \"disqualification_reason\": null,\n      \"sourced\": false,\n      \"profile_url\": \"https://groove-tech.workable.com/backend/jobs/376844767/candidates/277680758\",\n      \"email\": \"cindy_sawyers@gmail.com\",\n      \"domain\": \"indeed.com\",\n      \"created_at\": \"2015-07-08T00:00:00Z\",\n      \"updated_at\": \"2015-07-08T14:46:48Z\"\n    }\n  ],\n  \"paging\": {\n    \"next\": \"https://www.workable.com/spi/v3/accounts/groove-tech/candidates?limit=3&since_id=2789d6dg\"\n  }\n}","name":""},{"status":404,"language":"json","code":"{\n  \"error\":\"Not found\"\n}","name":""},{"code":"{\n  \"error\":\"Not authorized\"\n}","language":"json","status":401}]},"settings":"58739d5a3af3bc0f003ef40a","url":"/candidates"},"category":"587395fe11b3ec1900d3b6dd","githubsync":"","order":10,"__v":1,"isReference":false,"link_external":false,"link_url":"","updates":[],"version":"587395fe11b3ec1900d3b6db","body":"[block:api-header]\n{\n  \"type\": \"basic\",\n  \"title\": \"Results\"\n}\n[/block]\nCalling the `/candidates` endpoint will return a collection of the job's candidates. If no query parameter is defined, all candidates will be returned.\n\nBy default results are limited to 50. The limit can by updated via the request parameter limit. The value specified cannot be more than 100.\n[block:parameters]\n{\n  \"data\": {\n    \"h-0\": \"key\",\n    \"h-1\": \"description\",\n    \"0-0\": \"candidates\",\n    \"0-1\": \"array of candidates\",\n    \"1-0\": \"paging\",\n    \"1-1\": \"Includes the `next` URL pointing to the next results page, in case there are more results than the provided limit\"\n  },\n  \"cols\": 2,\n  \"rows\": 2\n}\n[/block]\nEach candidate will have the following keys:\n[block:parameters]\n{\n  \"data\": {\n    \"h-0\": \"key\",\n    \"h-1\": \"type\",\n    \"h-2\": \"description\",\n    \"0-0\": \"id\",\n    \"1-0\": \"name\",\n    \"2-0\": \"firstname\",\n    \"3-0\": \"lastname\",\n    \"4-0\": \"headline\",\n    \"5-0\": \"account/subdomain\",\n    \"6-0\": \"account/name\",\n    \"7-0\": \"job/shortcode\",\n    \"8-0\": \"job/title\",\n    \"9-0\": \"stage\",\n    \"10-0\": \"disqualified\",\n    \"11-0\": \"disqualification_reason\",\n    \"12-0\": \"sourced\",\n    \"13-0\": \"profile_url\",\n    \"14-0\": \"email\",\n    \"15-0\": \"domain\",\n    \"16-0\": \"created_at\",\n    \"17-0\": \"updated_at\",\n    \"0-1\": \"`string`\",\n    \"1-1\": \"`string`\",\n    \"2-1\": \"`string`\",\n    \"3-1\": \"`string`\",\n    \"4-1\": \"`string`\",\n    \"5-1\": \"`string`\",\n    \"6-1\": \"`string`\",\n    \"7-1\": \"`string`\",\n    \"8-1\": \"`string`\",\n    \"9-1\": \"`string`\",\n    \"10-1\": \"`boolean`\",\n    \"11-1\": \"`string`\",\n    \"12-1\": \"`boolean`\",\n    \"13-1\": \"`string`\",\n    \"14-1\": \"`string`\",\n    \"15-1\": \"`string`\",\n    \"16-1\": \"`string`\",\n    \"17-1\": \"`string`\",\n    \"0-2\": \"The candidate identifier\",\n    \"1-2\": \"Candidate's full name\",\n    \"2-2\": \"Candidate's first name\",\n    \"3-2\": \"Candidate's last name\",\n    \"4-2\": \"Candidate's headline\",\n    \"5-2\": \"Account's subdomain\",\n    \"6-2\": \"Account's name\",\n    \"7-2\": \"Job's system generated code\",\n    \"8-2\": \"Job's title\",\n    \"9-2\": \"Candidate's stage slug\",\n    \"10-2\": \"True if candidate is disqualifed\",\n    \"11-2\": \"null if member has not provided a disqualification reason\",\n    \"14-2\": \"Candidate's email\",\n    \"16-2\": \"Timestamp when candidate  was created\",\n    \"17-2\": \"Last timestamp when candidate was updated\",\n    \"15-2\": \"Where candidate came from\",\n    \"13-2\": \"Candidate's URL in Workable\",\n    \"12-2\": \"True if candidate has been sourced\",\n    \"18-0\": \"hired_at\",\n    \"18-1\": \"`date`\",\n    \"18-2\": \"The date the candidate was moved to the hired stage\",\n    \"19-0\": \"address\",\n    \"19-1\": \"`string`\",\n    \"19-2\": \"The address of the candidate\",\n    \"20-0\": \"phone\",\n    \"20-1\": \"`string`\",\n    \"20-2\": \"The phone number of the candidate\"\n  },\n  \"cols\": 3,\n  \"rows\": 21\n}\n[/block]","hidden":false,"next":{"description":"","pages":[]},"project":"551111444878730d00220ecb","slug":"job-candidates-index","type":"get","childrenPages":[]}

get/candidates


Path Params

subdomain:
required
string
The account's subdomain

Query Params

shortcode:
string
The job's system generated code
stage:
string
The job's stage slug, can be retrieved from the `/stages` endpoint
limit:
integer
Specifies the number of candidates to try and retrieve per page
since_id:
string
Returns results with an ID greater than or equal to the specified ID.
max_id:
string
Returns results with an ID less than or equal to the specified ID.
created_after:
timestamp
Returns results created after the specified timestamp.
updated_after:
timestamp
Returns results updated after the specified timestamp.
[block:api-header] { "type": "basic", "title": "Results" } [/block] Calling the `/candidates` endpoint will return a collection of the job's candidates. If no query parameter is defined, all candidates will be returned. By default results are limited to 50. The limit can by updated via the request parameter limit. The value specified cannot be more than 100. [block:parameters] { "data": { "h-0": "key", "h-1": "description", "0-0": "candidates", "0-1": "array of candidates", "1-0": "paging", "1-1": "Includes the `next` URL pointing to the next results page, in case there are more results than the provided limit" }, "cols": 2, "rows": 2 } [/block] Each candidate will have the following keys: [block:parameters] { "data": { "h-0": "key", "h-1": "type", "h-2": "description", "0-0": "id", "1-0": "name", "2-0": "firstname", "3-0": "lastname", "4-0": "headline", "5-0": "account/subdomain", "6-0": "account/name", "7-0": "job/shortcode", "8-0": "job/title", "9-0": "stage", "10-0": "disqualified", "11-0": "disqualification_reason", "12-0": "sourced", "13-0": "profile_url", "14-0": "email", "15-0": "domain", "16-0": "created_at", "17-0": "updated_at", "0-1": "`string`", "1-1": "`string`", "2-1": "`string`", "3-1": "`string`", "4-1": "`string`", "5-1": "`string`", "6-1": "`string`", "7-1": "`string`", "8-1": "`string`", "9-1": "`string`", "10-1": "`boolean`", "11-1": "`string`", "12-1": "`boolean`", "13-1": "`string`", "14-1": "`string`", "15-1": "`string`", "16-1": "`string`", "17-1": "`string`", "0-2": "The candidate identifier", "1-2": "Candidate's full name", "2-2": "Candidate's first name", "3-2": "Candidate's last name", "4-2": "Candidate's headline", "5-2": "Account's subdomain", "6-2": "Account's name", "7-2": "Job's system generated code", "8-2": "Job's title", "9-2": "Candidate's stage slug", "10-2": "True if candidate is disqualifed", "11-2": "null if member has not provided a disqualification reason", "14-2": "Candidate's email", "16-2": "Timestamp when candidate was created", "17-2": "Last timestamp when candidate was updated", "15-2": "Where candidate came from", "13-2": "Candidate's URL in Workable", "12-2": "True if candidate has been sourced", "18-0": "hired_at", "18-1": "`date`", "18-2": "The date the candidate was moved to the hired stage", "19-0": "address", "19-1": "`string`", "19-2": "The address of the candidate", "20-0": "phone", "20-1": "`string`", "20-2": "The phone number of the candidate" }, "cols": 3, "rows": 21 } [/block]

User Information

Try It Out

get
{{ tryResults.results }}
Method{{ tryResults.method }}
Request Headers
{{ tryResults.requestHeaders }}
URL{{ tryResults.url }}
Request Data
{{ tryResults.data }}
Status
Response Headers
{{ tryResults.responseHeaders }}

Definition

{{ api_url }}{{ page_api_url }}

Examples


Result Format



[block:api-header] { "type": "basic", "title": "Results" } [/block] Calling the `/candidates` endpoint will return a collection of the job's candidates. If no query parameter is defined, all candidates will be returned. By default results are limited to 50. The limit can by updated via the request parameter limit. The value specified cannot be more than 100. [block:parameters] { "data": { "h-0": "key", "h-1": "description", "0-0": "candidates", "0-1": "array of candidates", "1-0": "paging", "1-1": "Includes the `next` URL pointing to the next results page, in case there are more results than the provided limit" }, "cols": 2, "rows": 2 } [/block] Each candidate will have the following keys: [block:parameters] { "data": { "h-0": "key", "h-1": "type", "h-2": "description", "0-0": "id", "1-0": "name", "2-0": "firstname", "3-0": "lastname", "4-0": "headline", "5-0": "account/subdomain", "6-0": "account/name", "7-0": "job/shortcode", "8-0": "job/title", "9-0": "stage", "10-0": "disqualified", "11-0": "disqualification_reason", "12-0": "sourced", "13-0": "profile_url", "14-0": "email", "15-0": "domain", "16-0": "created_at", "17-0": "updated_at", "0-1": "`string`", "1-1": "`string`", "2-1": "`string`", "3-1": "`string`", "4-1": "`string`", "5-1": "`string`", "6-1": "`string`", "7-1": "`string`", "8-1": "`string`", "9-1": "`string`", "10-1": "`boolean`", "11-1": "`string`", "12-1": "`boolean`", "13-1": "`string`", "14-1": "`string`", "15-1": "`string`", "16-1": "`string`", "17-1": "`string`", "0-2": "The candidate identifier", "1-2": "Candidate's full name", "2-2": "Candidate's first name", "3-2": "Candidate's last name", "4-2": "Candidate's headline", "5-2": "Account's subdomain", "6-2": "Account's name", "7-2": "Job's system generated code", "8-2": "Job's title", "9-2": "Candidate's stage slug", "10-2": "True if candidate is disqualifed", "11-2": "null if member has not provided a disqualification reason", "14-2": "Candidate's email", "16-2": "Timestamp when candidate was created", "17-2": "Last timestamp when candidate was updated", "15-2": "Where candidate came from", "13-2": "Candidate's URL in Workable", "12-2": "True if candidate has been sourced", "18-0": "hired_at", "18-1": "`date`", "18-2": "The date the candidate was moved to the hired stage", "19-0": "address", "19-1": "`string`", "19-2": "The address of the candidate", "20-0": "phone", "20-1": "`string`", "20-2": "The phone number of the candidate" }, "cols": 3, "rows": 21 } [/block]
{"_id":"587395fe11b3ec1900d3b6eb","createdAt":"2015-07-08T15:26:02.731Z","isReference":false,"parentDoc":null,"slug":"job-candidates-create","user":"55967fa3430c481900db1b29","__v":2,"api":{"url":"/jobs/:shortcode/candidates","auth":"required","examples":{"codes":[{"code":"curl \t-X POST \\\n\t\t\t-H \"Content-Type: application/json\" \\\n\t\t\t-H \"Authorization:Bearer <Access Token>\" \\\n      -H 'Accept: application/json' \\\n      https://<subdomain>.workable.com/spi/v3/jobs/<shortcode>/candidates \\\n\t\t\t--data '{\"candidate\": { \"firstname\": \"Jj\", \"lastname\": \"Botha\", \"email\": \"jj_botha@fakemail.com\"} }'","language":"curl"}]},"method":"post","params":[{"_id":"559e7d1fc713ef0d00028260","ref":"","in":"path","required":true,"desc":"The account's subdomain","default":"","type":"string","name":"subdomain"},{"_id":"587c98956dccbf0f00956b81","ref":"","in":"query","required":false,"desc":"Depending on the value of the `sourced` flag, candidates are put into the `sourced` or `applied` stage. But you can set this if you want to create a candidate directly in another stage. Values can be retrieved from the `jobs/:shortcode/stages` endpoint","default":"","type":"string","name":"stage"},{"_id":"594102145d7921001bc01f0b","ref":"","in":"path","required":true,"desc":"The job's shortcode","default":"","type":"string","name":"shortcode"}],"results":{"codes":[{"status":201,"language":"json","code":"{\n  \"status\": \"created\",\n  \"candidate\": {\n    \"id\": \"3fc9a80f\",\n    \"name\": \"Jj Botha\",\n    \"firstname\": null,\n    \"lastname\": null,\n    \"headline\": \"Professional Administration Manager\",\n    \"image_url\": null,\n    \"account\": {\n      \"subdomain\": \"groove-tech\",\n      \"name\": \"Groove Tech\"\n    },\n    \"job\": {\n      \"shortcode\": \"GROOV005\",\n      \"title\": \"Office Manager\"\n    },\n    \"stage\": \"Sourced\",\n    \"disqualified\": false,\n    \"disqualified_at\": null,\n    \"disqualification_reason\": null,\n    \"sourced\": true,\n    \"profile_url\": \"https://groove-tech.workable.com/backend/jobs/376844767/candidates/1070179133\",\n    \"address\": \"25772 Gustave Shore, Iowa, USA\",\n    \"phone\": \"1-859-557-6573\",\n    \"email\": \"jj_botha@fakemail.com\",\n    \"outbound_mailbox\": \"b-6adwdc@outbound.dev-workable.mailgun.org\",\n    \"domain\": null,\n    \"uploader_id\": null,\n    \"created_at\": \"2015-07-09T10:55:53Z\",\n    \"updated_at\": \"2015-07-09T10:55:53Z\",\n    \"cover_letter\": \"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.\",\n    \"summary\": \"A focussed, results-driven team player with many year experience in the field. Working my way up to management level, I have experience of every aspect of this role. I understand the challenges it brings, and have a proven track record of providing solutions.\",\n    \"education_entries\": [\n      {\n        \"id\": \"3fcbeedf\",\n        \"degree\": \"MBA\",\n        \"school\": \"University of Pennsylvania\",\n        \"field_of_study\": null,\n        \"start_date\": \"2008-03-01\",\n        \"end_date\": \"2011-03-30\"\n      },\n      {\n        \"id\": \"3fcbeee0\",\n        \"degree\": \"B.S.\",\n        \"school\": \"University of Chicago\",\n        \"field_of_study\": \"Marketing Communication & Economics\",\n        \"start_date\": \"2004-09-01\",\n        \"end_date\": \"2007-03-30\"\n      }\n    ],\n    \"experience_entries\": [\n      {\n        \"id\": \"3fdbfd0d\",\n        \"title\": \"Sales Director\",\n        \"summary\": null,\n        \"start_date\": \"2011-03-01\",\n        \"end_date\": \"2014-03-30\",\n        \"company\": \"Vox Mobile\",\n        \"industry\": \"Telecommunications\",\n        \"current\": false\n      }\n    ],\n    \"skills\": [\n      {\n        \"name\": \"travel planning\"\n      },\n      {\n        \"name\": \"problem solving\"\n      }\n    ],\n    \"answers\": [\n      {\n        \"question\": {\n          \"body\": \"Explain one aspect of this role you believe you will excel at.\"\n        },\n        \"answer\": {\n          \"body\": \"<p>Planning</p>\"\n        }\n      },\n      {\n        \"question\": {\n          \"body\": \"How many years administrative experience do you have?\"\n        },\n        \"answer\": {\n          \"choices\": [\n            {\n              \"body\": \"Over 5 years\"\n            }\n          ]\n        }\n      }\n    ],\n    \"resume_url\": null,\n    \"social_profiles\": [\n      {\n        \"type\": \"twitter\",\n        \"username\": \"jj_botha\",\n        \"url\": \"http://www.twitter.com/jj_botha\"\n      },\n      {\n        \"type\": \"linkedin\",\n        \"url\": \"http://www.linkedin.com/in/jj_botha\"\n      },\n      {\n        \"type\": \"googleplus\",\n        \"url\": \"https://plus.google.com/6908286706342698\"\n      }\n    ],\n    \"tags\": []\n  }\n}","name":""},{"status":422,"language":"json","code":"{\n  \"error\": \"Validation failed: Email candidate already exists\",\n  \"validation_errors\": {\n    \"email\": [\n      \"candidate already exists\"\n    ]\n  }\n}","name":""},{"code":"{\n  \"error\": \"Not found\"\n}","language":"json","status":404},{"code":"{\n  \"error\": \"Not authorized\"\n}","language":"json","status":401}]},"settings":"58739d5a3af3bc0f003ef40a"},"excerpt":"","githubsync":"","link_external":false,"next":{"pages":[],"description":""},"updates":[],"version":"587395fe11b3ec1900d3b6db","category":"587395fe11b3ec1900d3b6dd","link_url":"","project":"551111444878730d00220ecb","title":"/candidates","type":"post","body":"There are a few cases where this might come in handy:\n  * **Custom application form**: If you have built an application form on your web site that you’d like to keep using, you can continue to have candidates apply using that form and then use the API to transfer the candidates to your Workable account.\n  * **Migration of existing candidates**: If you have a list of candidates in a spreadsheet or in another system, you can use the API to create all these candidates in Workable.\n  * **Integration with other systems**: Any system that holds people profiles can use the API to transfer these profiles to Workable.\n[block:callout]\n{\n  \"type\": \"info\",\n  \"body\": \"Candidates created through the API can be processed by Workable either as candidates uploaded by a Workable user or as candidates that applied through the application form. The difference is that, in the latter case,  they will also receive a ‘thank you for applying’ email.\\n\\nYou can create an 'applied' candidate by including the `\\\"sourced\\\": false` at the root level. This will ensure that the candidate does receive the “thank you for applying” e-mail.\",\n  \"title\": \"Process as uploaded or applied?\"\n}\n[/block]\n\n[block:callout]\n{\n  \"type\": \"danger\",\n  \"title\": \"Important!\",\n  \"body\": \"A major difference with the previous API versions is that if the `sourced` flag is not included, candidates are considered as uploaded and not as applied, thus not receiving the \\\"thank you for applying\\\" email.\"\n}\n[/block]\nHere is a list of fields that can be provided:\n[block:parameters]\n{\n  \"data\": {\n    \"h-0\": \"key\",\n    \"h-1\": \"type\",\n    \"h-2\": \"description\",\n    \"0-0\": \"name (required)\",\n    \"0-1\": \"`string`\",\n    \"0-2\": \"This field is optional if `firstname` and `lastname` are provided\",\n    \"1-0\": \"firstname (required)\",\n    \"1-1\": \"`string`\",\n    \"1-2\": \"The candidate's first name, It's optional if `name` is provided\",\n    \"2-0\": \"lastname (required)\",\n    \"2-1\": \"`string`\",\n    \"2-2\": \"The candidate's last name, it's optional if `name` is provided\",\n    \"3-0\": \"email (required)\",\n    \"3-1\": \"`string`\",\n    \"3-2\": \"The candidate's email\",\n    \"4-0\": \"headline\",\n    \"4-1\": \"`string`\",\n    \"4-2\": \"One line description as provided by the candidate or you\",\n    \"5-0\": \"summary\",\n    \"5-1\": \"`string`\",\n    \"5-2\": \"The profile summary provided by the candidate\",\n    \"6-0\": \"address\",\n    \"6-1\": \"`string`\",\n    \"6-2\": \"The candidate's address\",\n    \"7-0\": \"phone\",\n    \"7-1\": \"`string`\",\n    \"7-2\": \"The candidate's phone number\",\n    \"8-0\": \"cover_letter\",\n    \"8-1\": \"`string`\",\n    \"8-2\": \"The candidate's cover letter\",\n    \"12-0\": \"skills\",\n    \"12-1\": \"`string` (list)\",\n    \"12-2\": \"The candidate's skills.\",\n    \"14-0\": \"disqualifed\",\n    \"14-1\": \"`boolean`\",\n    \"14-2\": \"If true, it will mark the candidate as diqualified\",\n    \"15-0\": \"disqualification_reason\",\n    \"15-1\": \"`string`\",\n    \"15-2\": \"Required only when EOCC is enabled for your account\",\n    \"16-0\": \"disqualified_at\",\n    \"16-1\": \"`string`\",\n    \"16-2\": \"In ISO 8601 format (YYYY-MM-DD). If you leave this field empty, we will use the current timestamp\",\n    \"9-0\": \"education_entries\",\n    \"9-1\": \"`array`\",\n    \"9-2\": \"Explained [below](job-candidates-create#how-can-i-post-the-candidates-education)\",\n    \"10-0\": \"experience_entries\",\n    \"10-1\": \"`array`\",\n    \"10-2\": \"Explained [below](job-candidates-create#how-can-i-post-the-candidates-experience)\",\n    \"17-0\": \"social_profiles\",\n    \"17-1\": \"`array`\",\n    \"17-2\": \"Explained [below](job-candidates-create#can-i-also-provide-social-profiles-for-my-candidat)\",\n    \"11-0\": \"answers\",\n    \"11-1\": \"`array`\",\n    \"11-2\": \"Explained [below](job-candidates-create#how-can-i-post-the-candidates-answers)\",\n    \"13-0\": \"tags\",\n    \"13-1\": \"`array`\",\n    \"13-2\": \"A list of the candidate's tags\",\n    \"18-0\": \"domain\",\n    \"18-1\": \"`string`\",\n    \"18-2\": \"The source of the candidate\"\n  },\n  \"cols\": 3,\n  \"rows\": 19\n}\n[/block]\nHere is the structure of a complete example:\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"{\\n  \\\"sourced\\\": true,\\n  \\\"candidate\\\": {\\n    \\\"name\\\": \\\"Jj Botha\\\",\\n    \\\"firstname\\\": \\\"Jj\\\",\\n    \\\"lastname\\\": \\\"Botha\\\",\\n    \\\"headline\\\": \\\"Professional Administration Manager\\\",\\n    \\\"summary\\\": \\\"A focussed, results-driven team player with many year experience in the field. Working my way up to management level, I have experience of every aspect of this role. I understand the challenges it brings, and have a proven track record of providing solutions.\\\",\\n    \\\"address\\\": \\\"25772 Gustave Shore, Iowa, USA\\\",\\n    \\\"phone\\\": \\\"1-859-557-6573\\\",\\n    \\\"email\\\": \\\"jj_botha@fakemail.com\\\",\\n    \\\"cover_letter\\\": \\\"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.\\\",\\n\\n    \\\"education_entries\\\": [\\n      { \\\"degree\\\": \\\"MBA\\\", \\\"school\\\": \\\"University of Pennsylvania\\\", \\\"field_of_study\\\": null, \\\"start_date\\\": \\\"2008-03-01\\\", \\\"end_date\\\": \\\"2011-03-30\\\" },\\n      { \\\"degree\\\": \\\"B.S.\\\", \\\"school\\\": \\\"University of Chicago\\\", \\\"field_of_study\\\": \\\"Marketing Communication & Economics\\\", \\\"start_date\\\": \\\"2004-09-01\\\", \\\"end_date\\\": \\\"2007-03-30\\\" }\\n    ],\\n\\n    \\\"experience_entries\\\": [\\n      {\\n        \\\"title\\\": \\\"Sales Director\\\",\\n        \\\"summary\\\": null,\\n        \\\"start_date\\\": \\\"2011-03-01\\\",\\n        \\\"end_date\\\": \\\"2014-03-30\\\",\\n        \\\"current\\\": false,\\n        \\\"company\\\": \\\"Vox Mobile\\\",\\n        \\\"industry\\\": \\\"Telecommunications\\\"\\n      }\\n    ],\\n\\n    \\\"answers\\\": [\\n      {\\n        \\\"question_key\\\": \\\"2128d717\\\",\\n        \\\"body\\\": \\\"Planning\\\"\\n      },\\n      {\\n        \\\"question_key\\\": \\\"3399e6cd\\\",\\n        \\\"choices\\\": [\\\"1e477229\\\"]\\n      }\\n    ],\\n\\n    \\\"skills\\\": [ \\\"Travel Planning\\\", \\\"Problem Solving\\\"],\\n    \\\"social_profiles\\\": [\\n        {\\n          \\\"type\\\": \\\"twitter\\\",\\n          \\\"name\\\": \\\"Twitter\\\",\\n          \\\"username\\\": \\\"jj_botha\\\",\\n          \\\"url\\\": \\\"http://www.twitter.com/jj_botha\\\"\\n        },\\n        {\\n          \\\"type\\\": \\\"linkedin\\\",\\n          \\\"name\\\": \\\"LinkedIn\\\",\\n          \\\"url\\\": \\\"http://www.linkedin.com/in/jj_botha\\\"\\n        },\\n        {\\n          \\\"type\\\": \\\"googleplus\\\",\\n          \\\"url\\\": \\\"https://plus.google.com/6908286706342698\\\"\\n        }\\n    ]\\n  }\\n}\\n\",\n      \"language\": \"json\"\n    }\n  ]\n}\n[/block]\n\n[block:api-header]\n{\n  \"type\": \"basic\",\n  \"title\": \"How can I post the candidate’s resume along with the candidate information?\"\n}\n[/block]\nYou can post the candidate’s resume in `.pdf`, `.doc`, `.docx`, `.rtf` format. The API accepts one of the following\n[block:parameters]\n{\n  \"data\": {\n    \"h-0\": \"key\",\n    \"h-1\": \"type\",\n    \"h-2\": \"description\",\n    \"0-0\": \"resume_url\",\n    \"0-1\": \"`string`\",\n    \"0-2\": \"a url pointing to the candidate’s resume\"\n  },\n  \"cols\": 3,\n  \"rows\": 1\n}\n[/block]\nor alternatively you can post the resume encoded in base64 by including a 'resume' key with an object as a value, that has the following keys\n[block:parameters]\n{\n  \"data\": {\n    \"h-0\": \"key\",\n    \"h-1\": \"type\",\n    \"h-2\": \"description\",\n    \"0-0\": \"name\",\n    \"0-1\": \"`string`\",\n    \"1-0\": \"data\",\n    \"1-1\": \"`string`\",\n    \"0-2\": \"the candidate’s resume name\",\n    \"1-2\": \"the candidate’s resume encoded in base64\"\n  },\n  \"cols\": 3,\n  \"rows\": 2\n}\n[/block]\nHere is an example including a resume encoded in base64 format:\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"{\\n  \\\"candidate\\\": {\\n    \\\"name\\\": \\\"Jj Botha\\\",\\n    \\\"firstname\\\": \\\"Jj\\\",\\n    \\\"lastname\\\": \\\"Botha\\\",\\n    \\\"headline\\\": \\\"Professional Administration Manager\\\",\\n    \\\"summary\\\": \\\"A focussed, results-driven team player with many year experience in the field. Working my way up to management level, I have experience of every aspect of this role. I understand the challenges it brings, and have a proven track record of providing solutions.\\\",\\n    \\\"address\\\": \\\"25772 Gustave Shore, Iowa, USA\\\",\\n    \\\"phone\\\": \\\"1-859-557-6573\\\",\\n    \\\"email\\\": \\\"jj_botha@fakemail.com\\\",\\n    \\\"resume\\\": {\\n      \\\"name\\\": \\\"jj_botha.doc\\\",\\n      \\\"data\\\": \\\"6622116356e175ed0394b0d==\\\"\\n    }\\n  }\\n}\",\n      \"language\": \"json\"\n    }\n  ]\n}\n[/block]\n\n[block:api-header]\n{\n  \"type\": \"basic\",\n  \"title\": \"How can I post the candidate’s image along with the candidate information?\"\n}\n[/block]\n\n[block:parameters]\n{\n  \"data\": {\n    \"h-0\": \"key\",\n    \"h-1\": \"type\",\n    \"h-2\": \"description\",\n    \"0-0\": \"image_url\",\n    \"0-1\": \"`string`\",\n    \"0-2\": \"a url pointing to the candidate's image\",\n    \"1-0\": \"image_source\",\n    \"1-1\": \"`string`\",\n    \"1-2\": \"If the image is not provided by the candidate (e.g. collected from a social network profile), you can also send the image_source. It can be one of the following types: `academiaedu`, `angellist`, `behance`, `bitbucket`, `blogger`, `crunchbase`, `dandyid`, `delicious`, `deviantart`, `digg`, `doyoubuzz`, `dribble`, `dribbble`, `econsultancy`, `facebook`, `flavorsme`, `flickr`, `fullcontact`, `getglue`, `gist`, `github`, `goodreads`, `googleplus`, `gravatar`, `hackernews`, `hiim`, `klout`, `lanyrd`, `linkedin`, `myspace`, `ohloh`, `orkut`, `pinterest`, `quora`, `reddit`, `scribd`, `skype`, `slideshare`, `stackexchange`, `stackoverflow`, `tumblr`, `twitter`, `typepad`, `vk`, `wordpress`, `xing`\"\n  },\n  \"cols\": 3,\n  \"rows\": 2\n}\n[/block]\nor alternatively\n[block:parameters]\n{\n  \"data\": {\n    \"h-0\": \"key\",\n    \"h-1\": \"type\",\n    \"h-2\": \"description\",\n    \"0-0\": \"image/name\",\n    \"0-1\": \"`string`\",\n    \"0-2\": \"the candidate's image name\",\n    \"1-0\": \"image/data\",\n    \"1-1\": \"`string`\",\n    \"1-2\": \"the candidate's image encoded in base64\",\n    \"2-0\": \"image/source\",\n    \"2-1\": \"`string`\",\n    \"2-2\": \"The source of the candidate's image\"\n  },\n  \"cols\": 3,\n  \"rows\": 3\n}\n[/block]\n\n[block:api-header]\n{\n  \"type\": \"basic\",\n  \"title\": \"How can I post the candidate’s education?\"\n}\n[/block]\nCandidate’s education is a list of entries. Each entry containing the following fields:\n[block:parameters]\n{\n  \"data\": {\n    \"h-0\": \"key\",\n    \"h-1\": \"type\",\n    \"h-2\": \"description\",\n    \"0-0\": \"school (required)\",\n    \"0-1\": \"`string`\",\n    \"0-2\": \"The candidate's school\",\n    \"1-0\": \"degree\",\n    \"1-1\": \"`string`\",\n    \"1-2\": \"The candidate's degree\",\n    \"2-0\": \"field_of_study\",\n    \"2-1\": \"`string`\",\n    \"2-2\": \"The candidate's field of study\",\n    \"3-0\": \"start_date\",\n    \"3-1\": \"`string`\",\n    \"3-2\": \"In ISO 8601 format (YYYY-MM-DD)\",\n    \"4-0\": \"end_date\",\n    \"4-1\": \"`string`\",\n    \"4-2\": \"In ISO 8601 format (YYYY-MM-DD)\"\n  },\n  \"cols\": 3,\n  \"rows\": 5\n}\n[/block]\n\n[block:api-header]\n{\n  \"type\": \"basic\",\n  \"title\": \"How can I post the candidate’s experience?\"\n}\n[/block]\nCandidate’s experience is a list of entries. Each entry containing the following fields:\n[block:parameters]\n{\n  \"data\": {\n    \"h-0\": \"key\",\n    \"h-1\": \"type\",\n    \"h-2\": \"description\",\n    \"0-0\": \"title (required)\",\n    \"0-1\": \"`string`\",\n    \"0-2\": \"The candidate's title\",\n    \"1-0\": \"summary\",\n    \"1-1\": \"`string`\",\n    \"1-2\": \"A summary of the candidate's experience\",\n    \"2-0\": \"company\",\n    \"2-1\": \"`string`\",\n    \"2-2\": \"The candidate's company\",\n    \"3-0\": \"industry\",\n    \"3-1\": \"`string`\",\n    \"3-2\": \"The candidate's working industry\",\n    \"4-0\": \"start_date\",\n    \"4-1\": \"`string`\",\n    \"4-2\": \"In ISO 8601 format (YYYY-MM-DD)\",\n    \"5-0\": \"end_date\",\n    \"5-1\": \"`string`\",\n    \"5-2\": \"In ISO 8601 format (YYYY-MM-DD)\",\n    \"6-0\": \"current\",\n    \"6-1\": \"`boolean`\",\n    \"6-2\": \"True if candidate still works there\"\n  },\n  \"cols\": 3,\n  \"rows\": 7\n}\n[/block]\n\n[block:api-header]\n{\n  \"type\": \"basic\",\n  \"title\": \"How can I post the candidate's answers?\"\n}\n[/block]\nEach workable position can have a list of associated questions that can be retrieved from the  `/jobs/:shortcode/questions` endpoint. For each question, an answer can be provided by adding the answers list in the posted data. For each question, add to the answers list the following attributes based on question’s type.\n\n**Free text questions** \n[block:parameters]\n{\n  \"data\": {\n    \"h-0\": \"key\",\n    \"h-1\": \"type\",\n    \"h-2\": \"description\",\n    \"0-0\": \"question_key (required)\",\n    \"0-1\": \"`string`\",\n    \"0-2\": \"The question key\",\n    \"1-0\": \"body (required)\",\n    \"1-1\": \"`string`\",\n    \"1-2\": \"The candidate's response\"\n  },\n  \"cols\": 3,\n  \"rows\": 2\n}\n[/block]\n**Short text questions**\n[block:parameters]\n{\n  \"data\": {\n    \"h-0\": \"key\",\n    \"h-1\": \"type\",\n    \"h-2\": \"description\",\n    \"0-0\": \"question_key (required)\",\n    \"0-1\": \"`string`\",\n    \"0-2\": \"The question key\",\n    \"1-0\": \"body (required)\",\n    \"1-1\": \"`string`\",\n    \"1-2\": \"The candidate's response (maximum 128 characters)\"\n  },\n  \"cols\": 3,\n  \"rows\": 2\n}\n[/block]\n**Boolean questions** \n[block:parameters]\n{\n  \"data\": {\n    \"h-0\": \"key\",\n    \"h-1\": \"type\",\n    \"h-2\": \"description\",\n    \"0-0\": \"question_key (required)\",\n    \"0-1\": \"`string`\",\n    \"0-2\": \"The question key\",\n    \"1-0\": \"checked (required)\",\n    \"1-1\": \"`boolean`\",\n    \"1-2\": \"true | false\"\n  },\n  \"cols\": 3,\n  \"rows\": 2\n}\n[/block]\n**Multiple choice questions** \n[block:parameters]\n{\n  \"data\": {\n    \"h-0\": \"key\",\n    \"h-1\": \"type\",\n    \"h-2\": \"description\",\n    \"0-0\": \"question_key (required)\",\n    \"0-1\": \"`string`\",\n    \"0-2\": \"The question key\",\n    \"1-0\": \"choices (required)\",\n    \"1-1\": \"`array`\",\n    \"1-2\": \"[choices_ids]. For single answer questions provide only one selected choice\"\n  },\n  \"cols\": 3,\n  \"rows\": 2\n}\n[/block]\n**Dropdown questions**\n[block:parameters]\n{\n  \"data\": {\n    \"h-0\": \"key\",\n    \"h-1\": \"type\",\n    \"h-2\": \"description\",\n    \"0-0\": \"question_key (required)\",\n    \"0-1\": \"`string`\",\n    \"0-2\": \"The question key\",\n    \"1-0\": \"choices (required)\",\n    \"1-1\": \"`array`\",\n    \"1-2\": \"[choices_ids]. Provide only one selected choice\"\n  },\n  \"cols\": 3,\n  \"rows\": 2\n}\n[/block]\n**Date questions**\n[block:parameters]\n{\n  \"data\": {\n    \"h-0\": \"key\",\n    \"h-1\": \"type\",\n    \"h-2\": \"description\",\n    \"0-0\": \"question_key (required)\",\n    \"0-1\": \"`string`\",\n    \"0-2\": \"The question key\",\n    \"1-0\": \"date\",\n    \"1-1\": \"`string`\",\n    \"1-2\": \"The date in ISO 8601 format (i.e. \\\"2017-05-22\\\")\"\n  },\n  \"cols\": 3,\n  \"rows\": 2\n}\n[/block]\n**Numeric question**\n[block:parameters]\n{\n  \"data\": {\n    \"h-0\": \"key\",\n    \"h-1\": \"type\",\n    \"h-2\": \"description\",\n    \"0-0\": \"question_key (required)\",\n    \"0-1\": \"`string`\",\n    \"0-2\": \"The question key\",\n    \"1-0\": \"value\",\n    \"1-1\": \"`number`\",\n    \"1-2\": \"The value may be an integer or floating point number (use '.' as decimal point separator)\"\n  },\n  \"cols\": 3,\n  \"rows\": 2\n}\n[/block]\n**File question**\n[block:parameters]\n{\n  \"data\": {\n    \"h-0\": \"key\",\n    \"h-1\": \"type\",\n    \"h-2\": \"description\",\n    \"0-0\": \"question_key (required)\",\n    \"0-1\": \"`string`\",\n    \"0-2\": \"The question key\",\n    \"1-0\": \"file_url\",\n    \"1-1\": \"`string`\",\n    \"1-2\": \"a url pointing to the candidate’s answer\"\n  },\n  \"cols\": 3,\n  \"rows\": 2\n}\n[/block]\nor alternatively you can post the answer encoded in base64 by including a file key with an object as a value, that has the following keys:\n[block:parameters]\n{\n  \"data\": {\n    \"h-0\": \"key\",\n    \"h-1\": \"type\",\n    \"h-2\": \"description\",\n    \"0-0\": \"name\",\n    \"0-1\": \"`string`\",\n    \"0-2\": \"The file name\",\n    \"1-0\": \"data\",\n    \"1-1\": \"`string`\",\n    \"1-2\": \"The candidate’s answer encoded in base64\"\n  },\n  \"cols\": 3,\n  \"rows\": 2\n}\n[/block]\nYou can have a look below:\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"{\\n  \\\"answers\\\": [\\n    {\\n      \\\"question_key\\\": \\\"dc3e\\\",\\n      \\\"body\\\": \\\"Sublime Editor\\\"\\n    },\\n    {\\n      \\\"question_key\\\": \\\"2d30\\\",\\n      \\\"checked\\\": true\\n    },\\n    {\\n      \\\"question_key\\\": \\\"dc3f\\\",\\n      \\\"choices\\\": [\\\"e2b\\\", \\\"e2d\\\"]\\n    },\\n    {\\n      \\\"question_key\\\": \\\"dc3b\\\",\\n      \\\"date\\\": \\\"2017-01-28\\\"\\n    },\\n    {\\n      \\\"question_key\\\": \\\"dc3c\\\",\\n      \\\"number\\\": 21.87\\n    },\\n    {\\n      \\\"question_key\\\": \\\"dc3d\\\",\\n      \\\"file\\\": {\\n        \\\"name\\\": \\\"answer.pdf\\\",\\n        \\\"data\\\": \\\"SGVsbG8h....SbGh\\\"\\n      }\\n    }\\n  ]\\n}\",\n      \"language\": \"json\",\n      \"name\": \"Example answers\"\n    }\n  ]\n}\n[/block]\n\n[block:api-header]\n{\n  \"type\": \"basic\",\n  \"title\": \"I am collaborating with recruiters. How can I create a candidate that is sourced by a recruiter?\"\n}\n[/block]\nYou can include the recruiter_key in the posted data. Recruiter keys can be retrieved from the `jobs/:shortcode/recruiters` endpoint.\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"{\\n   \\\"candidate\\\":{\\n      \\\"name\\\":\\\"John Doe\\\",\\n      \\\"email\\\":\\\"john.doe@samplemail.com\\\",\\n      \\\"headline\\\":\\\"Superhero developer\\\",\\n      \\\"summary\\\":\\\"\\\",\\n      \\\"address\\\":\\\"\\\",\\n      \\\"phone\\\":\\\"\\\",\\n\\n      ....\\n\\n      \\\"recruiter_key\\\":\\\"a34526b\\\"\\n\\n      ....\\n\\n}\",\n      \"language\": \"json\"\n    }\n  ]\n}\n[/block]\n\n[block:api-header]\n{\n  \"type\": \"basic\",\n  \"title\": \"Can I also provide social profiles for my candidates?\"\n}\n[/block]\nYes, you can provide social profiles by including the ‘social_profiles’ section:\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"{\\n   \\\"candidate\\\":{\\n      \\\"name\\\":\\\"John Doe\\\",\\n      \\\"email\\\":\\\"john.doe@samplemail.com\\\",\\n      \\\"headline\\\":\\\"Superhero developer\\\",\\n      \\\"summary\\\":\\\"\\\",\\n      \\\"address\\\":\\\"\\\",\\n      \\\"phone\\\":\\\"\\\",\\n\\n      ....\\n\\n      \\\"social_profiles\\\":[\\n         {\\n            \\\"type\\\":\\\"twitter\\\",\\n            \\\"username\\\":\\\"Workable\\\",\\n            \\\"url\\\":\\\"https://twitter.com/workable\\\" \\n         }\\n      ]\\n\\n      ....\\n\\n}\",\n      \"language\": \"json\"\n    }\n  ]\n}\n[/block]\n‘social_profiles’ is a list of social profiles, and you can provide one social profile url for each social network type. Each entry contains the following fields:\n[block:parameters]\n{\n  \"data\": {\n    \"h-0\": \"key\",\n    \"h-1\": \"type\",\n    \"h-2\": \"description\",\n    \"0-0\": \"type (required)\",\n    \"0-1\": \"`string`\",\n    \"0-2\": \"One of the following types: `academiaedu`, `angellist`, `behance`, `bitbucket`, `blogger`, `crunchbase`, `dandyid`, `delicious`, `deviantart`, `digg`, `doyoubuzz`, `dribble`, `dribbble`, `econsultancy`, `facebook`, `flavorsme`, `flickr`, `fullcontact`, `getglue`, `gist`, `github`, `goodreads`, `googleplus`, `gravatar`, `hackernews`, `hiim`, `klout`, `lanyrd`, `linkedin`, `myspace`, `ohloh`, `orkut`, `pinterest`, `quora`, `reddit`, `scribd`, `skype`, `slideshare`, `stackexchange`, `stackoverflow`, `tumblr`, `twitter`, `typepad`, `vk`, `wordpress`, `xing`\",\n    \"1-0\": \"username\",\n    \"1-1\": \"`string`\",\n    \"1-2\": \"The candidate's username\",\n    \"2-0\": \"url (required)\",\n    \"2-1\": \"`string`\",\n    \"2-2\": \"The candidate's URL\"\n  },\n  \"cols\": 3,\n  \"rows\": 3\n}\n[/block]\n\n[block:api-header]\n{\n  \"type\": \"basic\",\n  \"title\": \"How can I post candidates that are already disqualified?\"\n}\n[/block]\nYou can do that by including the `\"disqualified\": true` along with the candidate’s data. This will ensure that the candidate is marked disqualified in workable. Notice that if EOCC is enabled for your account, you will also need to provide the `\"disqualification_reason\": \"some reason\"` field too.\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"{\\n   \\\"candidate\\\":{\\n      \\\"name\\\":\\\"John Doe\\\",\\n      \\\"email\\\":\\\"john.doe@samplemail.com\\\",\\n      ....\\n      \\\"disqualified\\\":true\\n      ....\\n   }\\n}\",\n      \"language\": \"json\"\n    }\n  ]\n}\n[/block]","hidden":false,"order":11,"sync_unique":"","childrenPages":[]}

post/candidates


Path Params

subdomain:
required
string
The account's subdomain
shortcode:
required
string
The job's shortcode

Query Params

stage:
string
Depending on the value of the `sourced` flag, candidates are put into the `sourced` or `applied` stage. But you can set this if you want to create a candidate directly in another stage. Values can be retrieved from the `jobs/:shortcode/stages` endpoint
There are a few cases where this might come in handy: * **Custom application form**: If you have built an application form on your web site that you’d like to keep using, you can continue to have candidates apply using that form and then use the API to transfer the candidates to your Workable account. * **Migration of existing candidates**: If you have a list of candidates in a spreadsheet or in another system, you can use the API to create all these candidates in Workable. * **Integration with other systems**: Any system that holds people profiles can use the API to transfer these profiles to Workable. [block:callout] { "type": "info", "body": "Candidates created through the API can be processed by Workable either as candidates uploaded by a Workable user or as candidates that applied through the application form. The difference is that, in the latter case, they will also receive a ‘thank you for applying’ email.\n\nYou can create an 'applied' candidate by including the `\"sourced\": false` at the root level. This will ensure that the candidate does receive the “thank you for applying” e-mail.", "title": "Process as uploaded or applied?" } [/block] [block:callout] { "type": "danger", "title": "Important!", "body": "A major difference with the previous API versions is that if the `sourced` flag is not included, candidates are considered as uploaded and not as applied, thus not receiving the \"thank you for applying\" email." } [/block] Here is a list of fields that can be provided: [block:parameters] { "data": { "h-0": "key", "h-1": "type", "h-2": "description", "0-0": "name (required)", "0-1": "`string`", "0-2": "This field is optional if `firstname` and `lastname` are provided", "1-0": "firstname (required)", "1-1": "`string`", "1-2": "The candidate's first name, It's optional if `name` is provided", "2-0": "lastname (required)", "2-1": "`string`", "2-2": "The candidate's last name, it's optional if `name` is provided", "3-0": "email (required)", "3-1": "`string`", "3-2": "The candidate's email", "4-0": "headline", "4-1": "`string`", "4-2": "One line description as provided by the candidate or you", "5-0": "summary", "5-1": "`string`", "5-2": "The profile summary provided by the candidate", "6-0": "address", "6-1": "`string`", "6-2": "The candidate's address", "7-0": "phone", "7-1": "`string`", "7-2": "The candidate's phone number", "8-0": "cover_letter", "8-1": "`string`", "8-2": "The candidate's cover letter", "12-0": "skills", "12-1": "`string` (list)", "12-2": "The candidate's skills.", "14-0": "disqualifed", "14-1": "`boolean`", "14-2": "If true, it will mark the candidate as diqualified", "15-0": "disqualification_reason", "15-1": "`string`", "15-2": "Required only when EOCC is enabled for your account", "16-0": "disqualified_at", "16-1": "`string`", "16-2": "In ISO 8601 format (YYYY-MM-DD). If you leave this field empty, we will use the current timestamp", "9-0": "education_entries", "9-1": "`array`", "9-2": "Explained [below](job-candidates-create#how-can-i-post-the-candidates-education)", "10-0": "experience_entries", "10-1": "`array`", "10-2": "Explained [below](job-candidates-create#how-can-i-post-the-candidates-experience)", "17-0": "social_profiles", "17-1": "`array`", "17-2": "Explained [below](job-candidates-create#can-i-also-provide-social-profiles-for-my-candidat)", "11-0": "answers", "11-1": "`array`", "11-2": "Explained [below](job-candidates-create#how-can-i-post-the-candidates-answers)", "13-0": "tags", "13-1": "`array`", "13-2": "A list of the candidate's tags", "18-0": "domain", "18-1": "`string`", "18-2": "The source of the candidate" }, "cols": 3, "rows": 19 } [/block] Here is the structure of a complete example: [block:code] { "codes": [ { "code": "{\n \"sourced\": true,\n \"candidate\": {\n \"name\": \"Jj Botha\",\n \"firstname\": \"Jj\",\n \"lastname\": \"Botha\",\n \"headline\": \"Professional Administration Manager\",\n \"summary\": \"A focussed, results-driven team player with many year experience in the field. Working my way up to management level, I have experience of every aspect of this role. I understand the challenges it brings, and have a proven track record of providing solutions.\",\n \"address\": \"25772 Gustave Shore, Iowa, USA\",\n \"phone\": \"1-859-557-6573\",\n \"email\": \"jj_botha@fakemail.com\",\n \"cover_letter\": \"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.\",\n\n \"education_entries\": [\n { \"degree\": \"MBA\", \"school\": \"University of Pennsylvania\", \"field_of_study\": null, \"start_date\": \"2008-03-01\", \"end_date\": \"2011-03-30\" },\n { \"degree\": \"B.S.\", \"school\": \"University of Chicago\", \"field_of_study\": \"Marketing Communication & Economics\", \"start_date\": \"2004-09-01\", \"end_date\": \"2007-03-30\" }\n ],\n\n \"experience_entries\": [\n {\n \"title\": \"Sales Director\",\n \"summary\": null,\n \"start_date\": \"2011-03-01\",\n \"end_date\": \"2014-03-30\",\n \"current\": false,\n \"company\": \"Vox Mobile\",\n \"industry\": \"Telecommunications\"\n }\n ],\n\n \"answers\": [\n {\n \"question_key\": \"2128d717\",\n \"body\": \"Planning\"\n },\n {\n \"question_key\": \"3399e6cd\",\n \"choices\": [\"1e477229\"]\n }\n ],\n\n \"skills\": [ \"Travel Planning\", \"Problem Solving\"],\n \"social_profiles\": [\n {\n \"type\": \"twitter\",\n \"name\": \"Twitter\",\n \"username\": \"jj_botha\",\n \"url\": \"http://www.twitter.com/jj_botha\"\n },\n {\n \"type\": \"linkedin\",\n \"name\": \"LinkedIn\",\n \"url\": \"http://www.linkedin.com/in/jj_botha\"\n },\n {\n \"type\": \"googleplus\",\n \"url\": \"https://plus.google.com/6908286706342698\"\n }\n ]\n }\n}\n", "language": "json" } ] } [/block] [block:api-header] { "type": "basic", "title": "How can I post the candidate’s resume along with the candidate information?" } [/block] You can post the candidate’s resume in `.pdf`, `.doc`, `.docx`, `.rtf` format. The API accepts one of the following [block:parameters] { "data": { "h-0": "key", "h-1": "type", "h-2": "description", "0-0": "resume_url", "0-1": "`string`", "0-2": "a url pointing to the candidate’s resume" }, "cols": 3, "rows": 1 } [/block] or alternatively you can post the resume encoded in base64 by including a 'resume' key with an object as a value, that has the following keys [block:parameters] { "data": { "h-0": "key", "h-1": "type", "h-2": "description", "0-0": "name", "0-1": "`string`", "1-0": "data", "1-1": "`string`", "0-2": "the candidate’s resume name", "1-2": "the candidate’s resume encoded in base64" }, "cols": 3, "rows": 2 } [/block] Here is an example including a resume encoded in base64 format: [block:code] { "codes": [ { "code": "{\n \"candidate\": {\n \"name\": \"Jj Botha\",\n \"firstname\": \"Jj\",\n \"lastname\": \"Botha\",\n \"headline\": \"Professional Administration Manager\",\n \"summary\": \"A focussed, results-driven team player with many year experience in the field. Working my way up to management level, I have experience of every aspect of this role. I understand the challenges it brings, and have a proven track record of providing solutions.\",\n \"address\": \"25772 Gustave Shore, Iowa, USA\",\n \"phone\": \"1-859-557-6573\",\n \"email\": \"jj_botha@fakemail.com\",\n \"resume\": {\n \"name\": \"jj_botha.doc\",\n \"data\": \"6622116356e175ed0394b0d==\"\n }\n }\n}", "language": "json" } ] } [/block] [block:api-header] { "type": "basic", "title": "How can I post the candidate’s image along with the candidate information?" } [/block] [block:parameters] { "data": { "h-0": "key", "h-1": "type", "h-2": "description", "0-0": "image_url", "0-1": "`string`", "0-2": "a url pointing to the candidate's image", "1-0": "image_source", "1-1": "`string`", "1-2": "If the image is not provided by the candidate (e.g. collected from a social network profile), you can also send the image_source. It can be one of the following types: `academiaedu`, `angellist`, `behance`, `bitbucket`, `blogger`, `crunchbase`, `dandyid`, `delicious`, `deviantart`, `digg`, `doyoubuzz`, `dribble`, `dribbble`, `econsultancy`, `facebook`, `flavorsme`, `flickr`, `fullcontact`, `getglue`, `gist`, `github`, `goodreads`, `googleplus`, `gravatar`, `hackernews`, `hiim`, `klout`, `lanyrd`, `linkedin`, `myspace`, `ohloh`, `orkut`, `pinterest`, `quora`, `reddit`, `scribd`, `skype`, `slideshare`, `stackexchange`, `stackoverflow`, `tumblr`, `twitter`, `typepad`, `vk`, `wordpress`, `xing`" }, "cols": 3, "rows": 2 } [/block] or alternatively [block:parameters] { "data": { "h-0": "key", "h-1": "type", "h-2": "description", "0-0": "image/name", "0-1": "`string`", "0-2": "the candidate's image name", "1-0": "image/data", "1-1": "`string`", "1-2": "the candidate's image encoded in base64", "2-0": "image/source", "2-1": "`string`", "2-2": "The source of the candidate's image" }, "cols": 3, "rows": 3 } [/block] [block:api-header] { "type": "basic", "title": "How can I post the candidate’s education?" } [/block] Candidate’s education is a list of entries. Each entry containing the following fields: [block:parameters] { "data": { "h-0": "key", "h-1": "type", "h-2": "description", "0-0": "school (required)", "0-1": "`string`", "0-2": "The candidate's school", "1-0": "degree", "1-1": "`string`", "1-2": "The candidate's degree", "2-0": "field_of_study", "2-1": "`string`", "2-2": "The candidate's field of study", "3-0": "start_date", "3-1": "`string`", "3-2": "In ISO 8601 format (YYYY-MM-DD)", "4-0": "end_date", "4-1": "`string`", "4-2": "In ISO 8601 format (YYYY-MM-DD)" }, "cols": 3, "rows": 5 } [/block] [block:api-header] { "type": "basic", "title": "How can I post the candidate’s experience?" } [/block] Candidate’s experience is a list of entries. Each entry containing the following fields: [block:parameters] { "data": { "h-0": "key", "h-1": "type", "h-2": "description", "0-0": "title (required)", "0-1": "`string`", "0-2": "The candidate's title", "1-0": "summary", "1-1": "`string`", "1-2": "A summary of the candidate's experience", "2-0": "company", "2-1": "`string`", "2-2": "The candidate's company", "3-0": "industry", "3-1": "`string`", "3-2": "The candidate's working industry", "4-0": "start_date", "4-1": "`string`", "4-2": "In ISO 8601 format (YYYY-MM-DD)", "5-0": "end_date", "5-1": "`string`", "5-2": "In ISO 8601 format (YYYY-MM-DD)", "6-0": "current", "6-1": "`boolean`", "6-2": "True if candidate still works there" }, "cols": 3, "rows": 7 } [/block] [block:api-header] { "type": "basic", "title": "How can I post the candidate's answers?" } [/block] Each workable position can have a list of associated questions that can be retrieved from the `/jobs/:shortcode/questions` endpoint. For each question, an answer can be provided by adding the answers list in the posted data. For each question, add to the answers list the following attributes based on question’s type. **Free text questions** [block:parameters] { "data": { "h-0": "key", "h-1": "type", "h-2": "description", "0-0": "question_key (required)", "0-1": "`string`", "0-2": "The question key", "1-0": "body (required)", "1-1": "`string`", "1-2": "The candidate's response" }, "cols": 3, "rows": 2 } [/block] **Short text questions** [block:parameters] { "data": { "h-0": "key", "h-1": "type", "h-2": "description", "0-0": "question_key (required)", "0-1": "`string`", "0-2": "The question key", "1-0": "body (required)", "1-1": "`string`", "1-2": "The candidate's response (maximum 128 characters)" }, "cols": 3, "rows": 2 } [/block] **Boolean questions** [block:parameters] { "data": { "h-0": "key", "h-1": "type", "h-2": "description", "0-0": "question_key (required)", "0-1": "`string`", "0-2": "The question key", "1-0": "checked (required)", "1-1": "`boolean`", "1-2": "true | false" }, "cols": 3, "rows": 2 } [/block] **Multiple choice questions** [block:parameters] { "data": { "h-0": "key", "h-1": "type", "h-2": "description", "0-0": "question_key (required)", "0-1": "`string`", "0-2": "The question key", "1-0": "choices (required)", "1-1": "`array`", "1-2": "[choices_ids]. For single answer questions provide only one selected choice" }, "cols": 3, "rows": 2 } [/block] **Dropdown questions** [block:parameters] { "data": { "h-0": "key", "h-1": "type", "h-2": "description", "0-0": "question_key (required)", "0-1": "`string`", "0-2": "The question key", "1-0": "choices (required)", "1-1": "`array`", "1-2": "[choices_ids]. Provide only one selected choice" }, "cols": 3, "rows": 2 } [/block] **Date questions** [block:parameters] { "data": { "h-0": "key", "h-1": "type", "h-2": "description", "0-0": "question_key (required)", "0-1": "`string`", "0-2": "The question key", "1-0": "date", "1-1": "`string`", "1-2": "The date in ISO 8601 format (i.e. \"2017-05-22\")" }, "cols": 3, "rows": 2 } [/block] **Numeric question** [block:parameters] { "data": { "h-0": "key", "h-1": "type", "h-2": "description", "0-0": "question_key (required)", "0-1": "`string`", "0-2": "The question key", "1-0": "value", "1-1": "`number`", "1-2": "The value may be an integer or floating point number (use '.' as decimal point separator)" }, "cols": 3, "rows": 2 } [/block] **File question** [block:parameters] { "data": { "h-0": "key", "h-1": "type", "h-2": "description", "0-0": "question_key (required)", "0-1": "`string`", "0-2": "The question key", "1-0": "file_url", "1-1": "`string`", "1-2": "a url pointing to the candidate’s answer" }, "cols": 3, "rows": 2 } [/block] or alternatively you can post the answer encoded in base64 by including a file key with an object as a value, that has the following keys: [block:parameters] { "data": { "h-0": "key", "h-1": "type", "h-2": "description", "0-0": "name", "0-1": "`string`", "0-2": "The file name", "1-0": "data", "1-1": "`string`", "1-2": "The candidate’s answer encoded in base64" }, "cols": 3, "rows": 2 } [/block] You can have a look below: [block:code] { "codes": [ { "code": "{\n \"answers\": [\n {\n \"question_key\": \"dc3e\",\n \"body\": \"Sublime Editor\"\n },\n {\n \"question_key\": \"2d30\",\n \"checked\": true\n },\n {\n \"question_key\": \"dc3f\",\n \"choices\": [\"e2b\", \"e2d\"]\n },\n {\n \"question_key\": \"dc3b\",\n \"date\": \"2017-01-28\"\n },\n {\n \"question_key\": \"dc3c\",\n \"number\": 21.87\n },\n {\n \"question_key\": \"dc3d\",\n \"file\": {\n \"name\": \"answer.pdf\",\n \"data\": \"SGVsbG8h....SbGh\"\n }\n }\n ]\n}", "language": "json", "name": "Example answers" } ] } [/block] [block:api-header] { "type": "basic", "title": "I am collaborating with recruiters. How can I create a candidate that is sourced by a recruiter?" } [/block] You can include the recruiter_key in the posted data. Recruiter keys can be retrieved from the `jobs/:shortcode/recruiters` endpoint. [block:code] { "codes": [ { "code": "{\n \"candidate\":{\n \"name\":\"John Doe\",\n \"email\":\"john.doe@samplemail.com\",\n \"headline\":\"Superhero developer\",\n \"summary\":\"\",\n \"address\":\"\",\n \"phone\":\"\",\n\n ....\n\n \"recruiter_key\":\"a34526b\"\n\n ....\n\n}", "language": "json" } ] } [/block] [block:api-header] { "type": "basic", "title": "Can I also provide social profiles for my candidates?" } [/block] Yes, you can provide social profiles by including the ‘social_profiles’ section: [block:code] { "codes": [ { "code": "{\n \"candidate\":{\n \"name\":\"John Doe\",\n \"email\":\"john.doe@samplemail.com\",\n \"headline\":\"Superhero developer\",\n \"summary\":\"\",\n \"address\":\"\",\n \"phone\":\"\",\n\n ....\n\n \"social_profiles\":[\n {\n \"type\":\"twitter\",\n \"username\":\"Workable\",\n \"url\":\"https://twitter.com/workable\" \n }\n ]\n\n ....\n\n}", "language": "json" } ] } [/block] ‘social_profiles’ is a list of social profiles, and you can provide one social profile url for each social network type. Each entry contains the following fields: [block:parameters] { "data": { "h-0": "key", "h-1": "type", "h-2": "description", "0-0": "type (required)", "0-1": "`string`", "0-2": "One of the following types: `academiaedu`, `angellist`, `behance`, `bitbucket`, `blogger`, `crunchbase`, `dandyid`, `delicious`, `deviantart`, `digg`, `doyoubuzz`, `dribble`, `dribbble`, `econsultancy`, `facebook`, `flavorsme`, `flickr`, `fullcontact`, `getglue`, `gist`, `github`, `goodreads`, `googleplus`, `gravatar`, `hackernews`, `hiim`, `klout`, `lanyrd`, `linkedin`, `myspace`, `ohloh`, `orkut`, `pinterest`, `quora`, `reddit`, `scribd`, `skype`, `slideshare`, `stackexchange`, `stackoverflow`, `tumblr`, `twitter`, `typepad`, `vk`, `wordpress`, `xing`", "1-0": "username", "1-1": "`string`", "1-2": "The candidate's username", "2-0": "url (required)", "2-1": "`string`", "2-2": "The candidate's URL" }, "cols": 3, "rows": 3 } [/block] [block:api-header] { "type": "basic", "title": "How can I post candidates that are already disqualified?" } [/block] You can do that by including the `"disqualified": true` along with the candidate’s data. This will ensure that the candidate is marked disqualified in workable. Notice that if EOCC is enabled for your account, you will also need to provide the `"disqualification_reason": "some reason"` field too. [block:code] { "codes": [ { "code": "{\n \"candidate\":{\n \"name\":\"John Doe\",\n \"email\":\"john.doe@samplemail.com\",\n ....\n \"disqualified\":true\n ....\n }\n}", "language": "json" } ] } [/block]

User Information

Try It Out

post
{{ tryResults.results }}
Method{{ tryResults.method }}
Request Headers
{{ tryResults.requestHeaders }}
URL{{ tryResults.url }}
Request Data
{{ tryResults.data }}
Status
Response Headers
{{ tryResults.responseHeaders }}

Definition

{{ api_url }}{{ page_api_url }}

Examples


Result Format



There are a few cases where this might come in handy: * **Custom application form**: If you have built an application form on your web site that you’d like to keep using, you can continue to have candidates apply using that form and then use the API to transfer the candidates to your Workable account. * **Migration of existing candidates**: If you have a list of candidates in a spreadsheet or in another system, you can use the API to create all these candidates in Workable. * **Integration with other systems**: Any system that holds people profiles can use the API to transfer these profiles to Workable. [block:callout] { "type": "info", "body": "Candidates created through the API can be processed by Workable either as candidates uploaded by a Workable user or as candidates that applied through the application form. The difference is that, in the latter case, they will also receive a ‘thank you for applying’ email.\n\nYou can create an 'applied' candidate by including the `\"sourced\": false` at the root level. This will ensure that the candidate does receive the “thank you for applying” e-mail.", "title": "Process as uploaded or applied?" } [/block] [block:callout] { "type": "danger", "title": "Important!", "body": "A major difference with the previous API versions is that if the `sourced` flag is not included, candidates are considered as uploaded and not as applied, thus not receiving the \"thank you for applying\" email." } [/block] Here is a list of fields that can be provided: [block:parameters] { "data": { "h-0": "key", "h-1": "type", "h-2": "description", "0-0": "name (required)", "0-1": "`string`", "0-2": "This field is optional if `firstname` and `lastname` are provided", "1-0": "firstname (required)", "1-1": "`string`", "1-2": "The candidate's first name, It's optional if `name` is provided", "2-0": "lastname (required)", "2-1": "`string`", "2-2": "The candidate's last name, it's optional if `name` is provided", "3-0": "email (required)", "3-1": "`string`", "3-2": "The candidate's email", "4-0": "headline", "4-1": "`string`", "4-2": "One line description as provided by the candidate or you", "5-0": "summary", "5-1": "`string`", "5-2": "The profile summary provided by the candidate", "6-0": "address", "6-1": "`string`", "6-2": "The candidate's address", "7-0": "phone", "7-1": "`string`", "7-2": "The candidate's phone number", "8-0": "cover_letter", "8-1": "`string`", "8-2": "The candidate's cover letter", "12-0": "skills", "12-1": "`string` (list)", "12-2": "The candidate's skills.", "14-0": "disqualifed", "14-1": "`boolean`", "14-2": "If true, it will mark the candidate as diqualified", "15-0": "disqualification_reason", "15-1": "`string`", "15-2": "Required only when EOCC is enabled for your account", "16-0": "disqualified_at", "16-1": "`string`", "16-2": "In ISO 8601 format (YYYY-MM-DD). If you leave this field empty, we will use the current timestamp", "9-0": "education_entries", "9-1": "`array`", "9-2": "Explained [below](job-candidates-create#how-can-i-post-the-candidates-education)", "10-0": "experience_entries", "10-1": "`array`", "10-2": "Explained [below](job-candidates-create#how-can-i-post-the-candidates-experience)", "17-0": "social_profiles", "17-1": "`array`", "17-2": "Explained [below](job-candidates-create#can-i-also-provide-social-profiles-for-my-candidat)", "11-0": "answers", "11-1": "`array`", "11-2": "Explained [below](job-candidates-create#how-can-i-post-the-candidates-answers)", "13-0": "tags", "13-1": "`array`", "13-2": "A list of the candidate's tags", "18-0": "domain", "18-1": "`string`", "18-2": "The source of the candidate" }, "cols": 3, "rows": 19 } [/block] Here is the structure of a complete example: [block:code] { "codes": [ { "code": "{\n \"sourced\": true,\n \"candidate\": {\n \"name\": \"Jj Botha\",\n \"firstname\": \"Jj\",\n \"lastname\": \"Botha\",\n \"headline\": \"Professional Administration Manager\",\n \"summary\": \"A focussed, results-driven team player with many year experience in the field. Working my way up to management level, I have experience of every aspect of this role. I understand the challenges it brings, and have a proven track record of providing solutions.\",\n \"address\": \"25772 Gustave Shore, Iowa, USA\",\n \"phone\": \"1-859-557-6573\",\n \"email\": \"jj_botha@fakemail.com\",\n \"cover_letter\": \"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.\",\n\n \"education_entries\": [\n { \"degree\": \"MBA\", \"school\": \"University of Pennsylvania\", \"field_of_study\": null, \"start_date\": \"2008-03-01\", \"end_date\": \"2011-03-30\" },\n { \"degree\": \"B.S.\", \"school\": \"University of Chicago\", \"field_of_study\": \"Marketing Communication & Economics\", \"start_date\": \"2004-09-01\", \"end_date\": \"2007-03-30\" }\n ],\n\n \"experience_entries\": [\n {\n \"title\": \"Sales Director\",\n \"summary\": null,\n \"start_date\": \"2011-03-01\",\n \"end_date\": \"2014-03-30\",\n \"current\": false,\n \"company\": \"Vox Mobile\",\n \"industry\": \"Telecommunications\"\n }\n ],\n\n \"answers\": [\n {\n \"question_key\": \"2128d717\",\n \"body\": \"Planning\"\n },\n {\n \"question_key\": \"3399e6cd\",\n \"choices\": [\"1e477229\"]\n }\n ],\n\n \"skills\": [ \"Travel Planning\", \"Problem Solving\"],\n \"social_profiles\": [\n {\n \"type\": \"twitter\",\n \"name\": \"Twitter\",\n \"username\": \"jj_botha\",\n \"url\": \"http://www.twitter.com/jj_botha\"\n },\n {\n \"type\": \"linkedin\",\n \"name\": \"LinkedIn\",\n \"url\": \"http://www.linkedin.com/in/jj_botha\"\n },\n {\n \"type\": \"googleplus\",\n \"url\": \"https://plus.google.com/6908286706342698\"\n }\n ]\n }\n}\n", "language": "json" } ] } [/block] [block:api-header] { "type": "basic", "title": "How can I post the candidate’s resume along with the candidate information?" } [/block] You can post the candidate’s resume in `.pdf`, `.doc`, `.docx`, `.rtf` format. The API accepts one of the following [block:parameters] { "data": { "h-0": "key", "h-1": "type", "h-2": "description", "0-0": "resume_url", "0-1": "`string`", "0-2": "a url pointing to the candidate’s resume" }, "cols": 3, "rows": 1 } [/block] or alternatively you can post the resume encoded in base64 by including a 'resume' key with an object as a value, that has the following keys [block:parameters] { "data": { "h-0": "key", "h-1": "type", "h-2": "description", "0-0": "name", "0-1": "`string`", "1-0": "data", "1-1": "`string`", "0-2": "the candidate’s resume name", "1-2": "the candidate’s resume encoded in base64" }, "cols": 3, "rows": 2 } [/block] Here is an example including a resume encoded in base64 format: [block:code] { "codes": [ { "code": "{\n \"candidate\": {\n \"name\": \"Jj Botha\",\n \"firstname\": \"Jj\",\n \"lastname\": \"Botha\",\n \"headline\": \"Professional Administration Manager\",\n \"summary\": \"A focussed, results-driven team player with many year experience in the field. Working my way up to management level, I have experience of every aspect of this role. I understand the challenges it brings, and have a proven track record of providing solutions.\",\n \"address\": \"25772 Gustave Shore, Iowa, USA\",\n \"phone\": \"1-859-557-6573\",\n \"email\": \"jj_botha@fakemail.com\",\n \"resume\": {\n \"name\": \"jj_botha.doc\",\n \"data\": \"6622116356e175ed0394b0d==\"\n }\n }\n}", "language": "json" } ] } [/block] [block:api-header] { "type": "basic", "title": "How can I post the candidate’s image along with the candidate information?" } [/block] [block:parameters] { "data": { "h-0": "key", "h-1": "type", "h-2": "description", "0-0": "image_url", "0-1": "`string`", "0-2": "a url pointing to the candidate's image", "1-0": "image_source", "1-1": "`string`", "1-2": "If the image is not provided by the candidate (e.g. collected from a social network profile), you can also send the image_source. It can be one of the following types: `academiaedu`, `angellist`, `behance`, `bitbucket`, `blogger`, `crunchbase`, `dandyid`, `delicious`, `deviantart`, `digg`, `doyoubuzz`, `dribble`, `dribbble`, `econsultancy`, `facebook`, `flavorsme`, `flickr`, `fullcontact`, `getglue`, `gist`, `github`, `goodreads`, `googleplus`, `gravatar`, `hackernews`, `hiim`, `klout`, `lanyrd`, `linkedin`, `myspace`, `ohloh`, `orkut`, `pinterest`, `quora`, `reddit`, `scribd`, `skype`, `slideshare`, `stackexchange`, `stackoverflow`, `tumblr`, `twitter`, `typepad`, `vk`, `wordpress`, `xing`" }, "cols": 3, "rows": 2 } [/block] or alternatively [block:parameters] { "data": { "h-0": "key", "h-1": "type", "h-2": "description", "0-0": "image/name", "0-1": "`string`", "0-2": "the candidate's image name", "1-0": "image/data", "1-1": "`string`", "1-2": "the candidate's image encoded in base64", "2-0": "image/source", "2-1": "`string`", "2-2": "The source of the candidate's image" }, "cols": 3, "rows": 3 } [/block] [block:api-header] { "type": "basic", "title": "How can I post the candidate’s education?" } [/block] Candidate’s education is a list of entries. Each entry containing the following fields: [block:parameters] { "data": { "h-0": "key", "h-1": "type", "h-2": "description", "0-0": "school (required)", "0-1": "`string`", "0-2": "The candidate's school", "1-0": "degree", "1-1": "`string`", "1-2": "The candidate's degree", "2-0": "field_of_study", "2-1": "`string`", "2-2": "The candidate's field of study", "3-0": "start_date", "3-1": "`string`", "3-2": "In ISO 8601 format (YYYY-MM-DD)", "4-0": "end_date", "4-1": "`string`", "4-2": "In ISO 8601 format (YYYY-MM-DD)" }, "cols": 3, "rows": 5 } [/block] [block:api-header] { "type": "basic", "title": "How can I post the candidate’s experience?" } [/block] Candidate’s experience is a list of entries. Each entry containing the following fields: [block:parameters] { "data": { "h-0": "key", "h-1": "type", "h-2": "description", "0-0": "title (required)", "0-1": "`string`", "0-2": "The candidate's title", "1-0": "summary", "1-1": "`string`", "1-2": "A summary of the candidate's experience", "2-0": "company", "2-1": "`string`", "2-2": "The candidate's company", "3-0": "industry", "3-1": "`string`", "3-2": "The candidate's working industry", "4-0": "start_date", "4-1": "`string`", "4-2": "In ISO 8601 format (YYYY-MM-DD)", "5-0": "end_date", "5-1": "`string`", "5-2": "In ISO 8601 format (YYYY-MM-DD)", "6-0": "current", "6-1": "`boolean`", "6-2": "True if candidate still works there" }, "cols": 3, "rows": 7 } [/block] [block:api-header] { "type": "basic", "title": "How can I post the candidate's answers?" } [/block] Each workable position can have a list of associated questions that can be retrieved from the `/jobs/:shortcode/questions` endpoint. For each question, an answer can be provided by adding the answers list in the posted data. For each question, add to the answers list the following attributes based on question’s type. **Free text questions** [block:parameters] { "data": { "h-0": "key", "h-1": "type", "h-2": "description", "0-0": "question_key (required)", "0-1": "`string`", "0-2": "The question key", "1-0": "body (required)", "1-1": "`string`", "1-2": "The candidate's response" }, "cols": 3, "rows": 2 } [/block] **Short text questions** [block:parameters] { "data": { "h-0": "key", "h-1": "type", "h-2": "description", "0-0": "question_key (required)", "0-1": "`string`", "0-2": "The question key", "1-0": "body (required)", "1-1": "`string`", "1-2": "The candidate's response (maximum 128 characters)" }, "cols": 3, "rows": 2 } [/block] **Boolean questions** [block:parameters] { "data": { "h-0": "key", "h-1": "type", "h-2": "description", "0-0": "question_key (required)", "0-1": "`string`", "0-2": "The question key", "1-0": "checked (required)", "1-1": "`boolean`", "1-2": "true | false" }, "cols": 3, "rows": 2 } [/block] **Multiple choice questions** [block:parameters] { "data": { "h-0": "key", "h-1": "type", "h-2": "description", "0-0": "question_key (required)", "0-1": "`string`", "0-2": "The question key", "1-0": "choices (required)", "1-1": "`array`", "1-2": "[choices_ids]. For single answer questions provide only one selected choice" }, "cols": 3, "rows": 2 } [/block] **Dropdown questions** [block:parameters] { "data": { "h-0": "key", "h-1": "type", "h-2": "description", "0-0": "question_key (required)", "0-1": "`string`", "0-2": "The question key", "1-0": "choices (required)", "1-1": "`array`", "1-2": "[choices_ids]. Provide only one selected choice" }, "cols": 3, "rows": 2 } [/block] **Date questions** [block:parameters] { "data": { "h-0": "key", "h-1": "type", "h-2": "description", "0-0": "question_key (required)", "0-1": "`string`", "0-2": "The question key", "1-0": "date", "1-1": "`string`", "1-2": "The date in ISO 8601 format (i.e. \"2017-05-22\")" }, "cols": 3, "rows": 2 } [/block] **Numeric question** [block:parameters] { "data": { "h-0": "key", "h-1": "type", "h-2": "description", "0-0": "question_key (required)", "0-1": "`string`", "0-2": "The question key", "1-0": "value", "1-1": "`number`", "1-2": "The value may be an integer or floating point number (use '.' as decimal point separator)" }, "cols": 3, "rows": 2 } [/block] **File question** [block:parameters] { "data": { "h-0": "key", "h-1": "type", "h-2": "description", "0-0": "question_key (required)", "0-1": "`string`", "0-2": "The question key", "1-0": "file_url", "1-1": "`string`", "1-2": "a url pointing to the candidate’s answer" }, "cols": 3, "rows": 2 } [/block] or alternatively you can post the answer encoded in base64 by including a file key with an object as a value, that has the following keys: [block:parameters] { "data": { "h-0": "key", "h-1": "type", "h-2": "description", "0-0": "name", "0-1": "`string`", "0-2": "The file name", "1-0": "data", "1-1": "`string`", "1-2": "The candidate’s answer encoded in base64" }, "cols": 3, "rows": 2 } [/block] You can have a look below: [block:code] { "codes": [ { "code": "{\n \"answers\": [\n {\n \"question_key\": \"dc3e\",\n \"body\": \"Sublime Editor\"\n },\n {\n \"question_key\": \"2d30\",\n \"checked\": true\n },\n {\n \"question_key\": \"dc3f\",\n \"choices\": [\"e2b\", \"e2d\"]\n },\n {\n \"question_key\": \"dc3b\",\n \"date\": \"2017-01-28\"\n },\n {\n \"question_key\": \"dc3c\",\n \"number\": 21.87\n },\n {\n \"question_key\": \"dc3d\",\n \"file\": {\n \"name\": \"answer.pdf\",\n \"data\": \"SGVsbG8h....SbGh\"\n }\n }\n ]\n}", "language": "json", "name": "Example answers" } ] } [/block] [block:api-header] { "type": "basic", "title": "I am collaborating with recruiters. How can I create a candidate that is sourced by a recruiter?" } [/block] You can include the recruiter_key in the posted data. Recruiter keys can be retrieved from the `jobs/:shortcode/recruiters` endpoint. [block:code] { "codes": [ { "code": "{\n \"candidate\":{\n \"name\":\"John Doe\",\n \"email\":\"john.doe@samplemail.com\",\n \"headline\":\"Superhero developer\",\n \"summary\":\"\",\n \"address\":\"\",\n \"phone\":\"\",\n\n ....\n\n \"recruiter_key\":\"a34526b\"\n\n ....\n\n}", "language": "json" } ] } [/block] [block:api-header] { "type": "basic", "title": "Can I also provide social profiles for my candidates?" } [/block] Yes, you can provide social profiles by including the ‘social_profiles’ section: [block:code] { "codes": [ { "code": "{\n \"candidate\":{\n \"name\":\"John Doe\",\n \"email\":\"john.doe@samplemail.com\",\n \"headline\":\"Superhero developer\",\n \"summary\":\"\",\n \"address\":\"\",\n \"phone\":\"\",\n\n ....\n\n \"social_profiles\":[\n {\n \"type\":\"twitter\",\n \"username\":\"Workable\",\n \"url\":\"https://twitter.com/workable\" \n }\n ]\n\n ....\n\n}", "language": "json" } ] } [/block] ‘social_profiles’ is a list of social profiles, and you can provide one social profile url for each social network type. Each entry contains the following fields: [block:parameters] { "data": { "h-0": "key", "h-1": "type", "h-2": "description", "0-0": "type (required)", "0-1": "`string`", "0-2": "One of the following types: `academiaedu`, `angellist`, `behance`, `bitbucket`, `blogger`, `crunchbase`, `dandyid`, `delicious`, `deviantart`, `digg`, `doyoubuzz`, `dribble`, `dribbble`, `econsultancy`, `facebook`, `flavorsme`, `flickr`, `fullcontact`, `getglue`, `gist`, `github`, `goodreads`, `googleplus`, `gravatar`, `hackernews`, `hiim`, `klout`, `lanyrd`, `linkedin`, `myspace`, `ohloh`, `orkut`, `pinterest`, `quora`, `reddit`, `scribd`, `skype`, `slideshare`, `stackexchange`, `stackoverflow`, `tumblr`, `twitter`, `typepad`, `vk`, `wordpress`, `xing`", "1-0": "username", "1-1": "`string`", "1-2": "The candidate's username", "2-0": "url (required)", "2-1": "`string`", "2-2": "The candidate's URL" }, "cols": 3, "rows": 3 } [/block] [block:api-header] { "type": "basic", "title": "How can I post candidates that are already disqualified?" } [/block] You can do that by including the `"disqualified": true` along with the candidate’s data. This will ensure that the candidate is marked disqualified in workable. Notice that if EOCC is enabled for your account, you will also need to provide the `"disqualification_reason": "some reason"` field too. [block:code] { "codes": [ { "code": "{\n \"candidate\":{\n \"name\":\"John Doe\",\n \"email\":\"john.doe@samplemail.com\",\n ....\n \"disqualified\":true\n ....\n }\n}", "language": "json" } ] } [/block]
{"_id":"587395fe11b3ec1900d3b6ea","isReference":false,"link_url":"","project":"551111444878730d00220ecb","__v":3,"hidden":false,"sync_unique":"","type":"get","user":"55967fa3430c481900db1b29","excerpt":"Returns specified candidate","githubsync":"","parentDoc":null,"createdAt":"2015-07-08T15:25:35.925Z","order":12,"slug":"job-candidates-show","api":{"method":"get","params":[{"_id":"559e404afa822e0d00db25ec","ref":"","in":"path","required":true,"desc":"The account's subdomain","default":"","type":"string","name":"subdomain"},{"_id":"559e404afa822e0d00db25ea","ref":"","in":"path","required":true,"desc":"The candidates's id","default":"","type":"string","name":"id"}],"results":{"codes":[{"language":"json","status":200,"name":"","code":"{\n  \"candidate\": {\n    \"id\": \"108d1748\",\n    \"name\": \"Cindy Sawyers\",\n    \"firstname\": \"Cindy\",\n    \"lastname\": \"Sawyers\",\n    \"headline\": \"Operations Manager\",\n    \"image_url\": null,\n    \"account\": {\n      \"subdomain\": \"groove-tech\",\n      \"name\": \"Groove Tech\"\n    },\n    \"job\": {\n      \"shortcode\": \"GROOV005\",\n      \"title\": \"Office Manager\"\n    },\n    \"stage\": \"Applied\",\n    \"disqualified\": false,\n    \"disqualified_at\": null,\n    \"disqualification_reason\": null,\n    \"sourced\": false,\n    \"profile_url\": \"https://groove-tech.workable.com/backend/jobs/376844767/candidates/277680758\",\n    \"address\": \"332 Clemmie Roads, Colorado, USA\",\n    \"phone\": \"(785)991-6256\",\n    \"email\": \"cindy_sawyers@gmail.com\",\n    \"outbound_mailbox\": \"azjp_gws@outbound.workable.mailgun.org\",\n    \"domain\": \"twitter.com\",\n    \"uploader_id\": null,\n    \"created_at\": \"2015-07-01T00:00:00Z\",\n    \"updated_at\": \"2015-07-06T12:16:51Z\",\n    \"cover_letter\": null,\n    \"summary\": \"A focussed, results-driven team player with many year experience in the field. Working my way up to management level, I have experience of every aspect of this role. I understand the challenges it brings, and have a proven track record of providing solutions.\",\n    \"education_entries\": [\n      {\n        \"id\": \"3fcbeee1\",\n        \"degree\": \"B.A. Business Studies\",\n        \"school\": \"University of Chicago\",\n        \"field_of_study\": null,\n        \"start_date\": \"2001-01-01\",\n        \"end_date\": \"2005-01-01\"\n      },\n      {\n        \"id\": \"3fcbeee2\",\n        \"degree\": \"Diploma\",\n        \"school\": \"Juliet Hargreaves High School\",\n        \"field_of_study\": null,\n        \"start_date\": \"1997-01-01\",\n        \"end_date\": \"2001-01-01\"\n      }\n    ],\n    \"experience_entries\": [\n      {\n        \"id\": \"3fdbfd0e\",\n        \"title\": \"Executive Assistant\",\n        \"summary\": \"<ul><li>Dealt with contacts and correspondence.</li><li>Managed suppliers, contractors and office systems.</li><li>Maintained handbooks, policies and practices, ensuring they were understood and adhered to by all staff.</li><li>Coordinated and project managed the office relocation and renovation.</li></ul>\",\n        \"start_date\": \"2013-01-01\",\n        \"end_date\": null,\n        \"company\": \"Overflow Furnishings\",\n        \"industry\": null,\n        \"current\": true\n      },\n      {\n        \"id\": \"3fdbfd0f\",\n        \"title\": \"Resources Manager\",\n        \"summary\": \"<ul><li>Coordinated agendas and papers, minute taking and maintaining records for the management committee.</li><li>Managed vendor/supplier relationships.</li><li>Responsible for overall management of the office, including budgets and building and facilities management.</li><li>Ensured compliance with health and safety and other workplace legislation, including regular risk assessments.</li></ul>\",\n        \"start_date\": \"2009-01-01\",\n        \"end_date\": \"2013-01-01\",\n        \"company\": \"Kidlaw Supplies\",\n        \"industry\": null,\n        \"current\": false\n      },\n      {\n        \"id\": \"3fdbfd10\",\n        \"title\": \"Administrative Officer\",\n        \"summary\": \"<ul><li>Managed the implementation and development of an effective recruitment program.</li><li>Organised Fire and First Aid training.</li><li>Developed induction and handover processes for staff, interns, trustees and volunteers.</li><li>Planned and managed the CEO\\\\\\\\’s diary of internal and external meetings.</li></ul>\",\n        \"start_date\": \"2005-01-01\",\n        \"end_date\": \"2009-01-01\",\n        \"company\": \"Spakes IT Services\",\n        \"industry\": null,\n        \"current\": false\n      }\n    ],\n    \"skills\": [\n      {\n        \"name\": \"Administration\"\n      },\n      {\n        \"name\": \"Organization\"\n      },\n      {\n        \"name\": \"Budgeting\"\n      },\n      {\n        \"name\": \"Project Management\"\n      },\n      {\n        \"name\": \"MS Office\"\n      },\n      {\n        \"name\": \"Event Management\"\n      }\n    ],\n    \"answers\": [],\n    \"resume_url\": null,\n    \"social_profiles\": [\n      {\n        \"type\": \"twitter\",\n        \"name\": \"Twitter\",\n        \"username\": \"cindy_sawyers\",\n        \"url\": \"http://www.twitter.com/cindy_sawyers\"\n      },\n      {\n        \"type\": \"linkedin\",\n        \"name\": \"LinkedIn\",\n        \"url\": \"http://www.linkedin.com/in/cindy_sawyers\"\n      },\n      {\n        \"type\": \"googleplus\",\n        \"url\": \"https://plus.google.com/1849771376195546\"\n      }\n    ],\n    \"tags\": []\n  }\n}"},{"status":404,"name":"","code":"{\n  \"error\": \"Not found\"\n}","language":"json"},{"code":"{\n  \"error\": \"Not authorized\"\n}","language":"text","status":401}]},"settings":"58739d5a3af3bc0f003ef40a","url":"/candidates/:id","auth":"required","examples":{"codes":[{"language":"shell","code":"curl \t-H \"Content-Type: application/json\" \\\n\t\t\t-H \"Authorization:Bearer <Access Token>\" \\\n      https://<subdomain>.workable.com/spi/v3/candidates/<id>","name":""}]}},"body":"[block:api-header]\n{\n  \"type\": \"basic\",\n  \"title\": \"Response\"\n}\n[/block]\nCalling the `candidates/:id` will return the full job JSON object of a specific `candidate`\n\n[block:parameters]\n{\n  \"data\": {\n    \"h-0\": \"key\",\n    \"h-1\": \"type\",\n    \"h-2\": \"description\",\n    \"0-0\": \"id\",\n    \"0-1\": \"`string`\",\n    \"0-2\": \"The candidate identifier\",\n    \"1-0\": \"name\",\n    \"2-0\": \"firstname\",\n    \"3-0\": \"lastname\",\n    \"4-0\": \"headline\",\n    \"5-0\": \"image_url\",\n    \"6-0\": \"account/subdomain\",\n    \"7-0\": \"account/name\",\n    \"8-0\": \"job/shortcode\",\n    \"9-0\": \"job/title\",\n    \"10-0\": \"stage\",\n    \"11-0\": \"disqualified\",\n    \"12-0\": \"disqualified_at\",\n    \"13-0\": \"disqualification_reason\",\n    \"14-0\": \"sourced\",\n    \"15-0\": \"profile_url\",\n    \"16-0\": \"address\",\n    \"17-0\": \"phone\",\n    \"18-0\": \"email\",\n    \"19-0\": \"outbound_mailbox\",\n    \"20-0\": \"domain\",\n    \"21-0\": \"uploader_id\",\n    \"22-0\": \"created_at\",\n    \"23-0\": \"updated_at\",\n    \"24-0\": \"cover_letter\",\n    \"25-0\": \"summary\",\n    \"26-0\": \"education_entries\",\n    \"32-0\": \"experience_entries\",\n    \"40-0\": \"skills\",\n    \"41-0\": \"answers\",\n    \"42-0\": \"resume_url\",\n    \"43-0\": \"social_profiles\",\n    \"47-0\": \"tags\",\n    \"1-1\": \"`string`\",\n    \"2-1\": \"`string`\",\n    \"3-1\": \"`string`\",\n    \"4-1\": \"`string`\",\n    \"5-1\": \"`string`\",\n    \"6-1\": \"`string`\",\n    \"7-1\": \"`string`\",\n    \"8-1\": \"`string`\",\n    \"9-1\": \"`string`\",\n    \"10-1\": \"`string`\",\n    \"11-1\": \"`boolean`\",\n    \"12-1\": \"`timestamp`\",\n    \"13-1\": \"`string`\",\n    \"14-1\": \"`boolean`\",\n    \"15-1\": \"`string`\",\n    \"16-1\": \"`string`\",\n    \"17-1\": \"`string`\",\n    \"18-1\": \"`string`\",\n    \"19-1\": \"`string`\",\n    \"20-1\": \"`string`\",\n    \"21-1\": \"`string`\",\n    \"22-1\": \"`timestamp`\",\n    \"23-1\": \"`timestamp`\",\n    \"24-1\": \"`string`\",\n    \"25-1\": \"`string`\",\n    \"26-1\": \"`array`\",\n    \"32-1\": \"`array`\",\n    \"40-1\": \"`array`\",\n    \"41-1\": \"`array`\",\n    \"42-1\": \"`string`\",\n    \"43-1\": \"`array`\",\n    \"47-1\": \"`array`\",\n    \"1-2\": \"The full name of the candidate\",\n    \"2-2\": \"The first name of the candidate\",\n    \"3-2\": \"The last name of the candidate\",\n    \"4-2\": \"The headline of the candidate\",\n    \"5-2\": \"Url of candidate's avatar. Available only if provided by the candidate\",\n    \"6-2\": \"The subdomain of the account\",\n    \"7-2\": \"The name of the account\",\n    \"8-2\": \"The shortcode of the job\",\n    \"9-2\": \"The title of the job\",\n    \"10-2\": \"The name of the current stage. See [stages endpoint](/docs/stages)\",\n    \"11-2\": \"Indicates if the candidate is disqualified\",\n    \"12-2\": \"The timestamp the candidate  was disqualified\",\n    \"13-2\": \"The reason the candidate was disqualified\",\n    \"14-2\": \"Indicates if the candidate is sourced `true` or applied `false`\",\n    \"15-2\": \"Url to the candidate's profile\",\n    \"16-2\": \"The address of the candidate\",\n    \"17-2\": \"The phone number of the candidate\",\n    \"18-2\": \"The email address of the candidate\",\n    \"19-2\": \"Mailbox that can be used to communicate with the candidate and inform the recruitment team of the job as well\",\n    \"21-2\": \"The id of the member uploaded the candidate.\",\n    \"22-2\": \"The timestamp the candidate  created\",\n    \"23-2\": \"The timestamp the candidate  last updated\",\n    \"24-2\": \"The cover letter provided when candidate applied\",\n    \"25-2\": \"The summary of the candidate\",\n    \"26-2\": \"A collection with education entries\",\n    \"32-2\": \"A collection with working experience entries\",\n    \"27-0\": \"education_entries/degree\",\n    \"28-0\": \"education_entries/school\",\n    \"29-0\": \"education_entries/field_of_study\",\n    \"30-0\": \"education_entries/start_date\",\n    \"31-0\": \"education_entries/start_date\",\n    \"27-1\": \"`string`\",\n    \"28-1\": \"`string`\",\n    \"29-1\": \"`string`\",\n    \"30-1\": \"`date`\",\n    \"31-1\": \"`date`\",\n    \"27-2\": \"The graduation degree\",\n    \"28-2\": \"The name of the school graduated\",\n    \"29-2\": \"The field of study\",\n    \"30-2\": \"The date started\",\n    \"31-2\": \"The date ended\",\n    \"33-0\": \"experience_entries/title\",\n    \"34-0\": \"experience_entries/summary\",\n    \"35-0\": \"experience_entries/start_date\",\n    \"36-0\": \"experience_entries/end_date\",\n    \"37-0\": \"experience_entries/company\",\n    \"38-0\": \"experience_entries/industry\",\n    \"39-0\": \"experience_entries/current\",\n    \"33-1\": \"`string`\",\n    \"34-1\": \"`string`\",\n    \"35-1\": \"`date`\",\n    \"36-1\": \"`date`\",\n    \"37-1\": \"`string`\",\n    \"38-1\": \"`string`\",\n    \"39-1\": \"`boolean`\",\n    \"33-2\": \"The title of the experience entry\",\n    \"34-2\": \"The summary of the experience entry\",\n    \"35-2\": \"The date started\",\n    \"36-2\": \"The date ended\",\n    \"37-2\": \"The company name\",\n    \"38-2\": \"The industry of the company\",\n    \"39-2\": \"Indicates if currently works there\",\n    \"40-2\": \"A collection with skill names\",\n    \"41-2\": \"A collection with the answers provided\",\n    \"42-2\": \"Url to the candidate resume\",\n    \"43-2\": \"A collection with social profiles of the candidate\",\n    \"44-0\": \"social_profiles/type\",\n    \"44-1\": \"`string`\",\n    \"44-2\": \"The slug name of the social profile. It can be one of the following types: `academiaedu`, `angellist`, `behance`, `bitbucket`, `blogger`, `crunchbase`, `dandyid`, `delicious`, `deviantart`, `digg`, `doyoubuzz`, `dribble`, `dribbble`, `econsultancy`, `facebook`, `flavorsme`, `flickr`, `fullcontact`, `getglue`, `gist`, `github`, `goodreads`, `googleplus`, `gravatar`, `hackernews`, `hiim`, `klout`, `lanyrd`, `linkedin`, `myspace`, `ohloh`, `orkut`, `pinterest`, `quora`, `reddit`, `scribd`, `skype`, `slideshare`, `stackexchange`, `stackoverflow`, `tumblr`, `twitter`, `typepad`, `vk`, `wordpress`, `xing`\",\n    \"45-0\": \"social_profiles/name\",\n    \"45-1\": \"`string`\",\n    \"45-2\": \"The full name of the social profile\",\n    \"46-0\": \"social_profiles/url\",\n    \"46-1\": \"`string`\",\n    \"46-2\": \"Url to the candidate's social profile page\",\n    \"47-2\": \"A collection with tags\",\n    \"20-2\": \"The domain of the referrer site that linked to the job page or the job board the job advertised\",\n    \"48-0\": \"hired_at\",\n    \"48-1\": \"`date`\",\n    \"48-2\": \"The date the candidate was moved to the hired stage\"\n  },\n  \"cols\": 3,\n  \"rows\": 49\n}\n[/block]","category":"587395fe11b3ec1900d3b6dd","updates":[],"version":"587395fe11b3ec1900d3b6db","link_external":false,"next":{"pages":[],"description":""},"title":"/candidates/:id","childrenPages":[]}

get/candidates/:id

Returns specified candidate

Path Params

subdomain:
required
string
The account's subdomain
id:
required
string
The candidates's id
[block:api-header] { "type": "basic", "title": "Response" } [/block] Calling the `candidates/:id` will return the full job JSON object of a specific `candidate` [block:parameters] { "data": { "h-0": "key", "h-1": "type", "h-2": "description", "0-0": "id", "0-1": "`string`", "0-2": "The candidate identifier", "1-0": "name", "2-0": "firstname", "3-0": "lastname", "4-0": "headline", "5-0": "image_url", "6-0": "account/subdomain", "7-0": "account/name", "8-0": "job/shortcode", "9-0": "job/title", "10-0": "stage", "11-0": "disqualified", "12-0": "disqualified_at", "13-0": "disqualification_reason", "14-0": "sourced", "15-0": "profile_url", "16-0": "address", "17-0": "phone", "18-0": "email", "19-0": "outbound_mailbox", "20-0": "domain", "21-0": "uploader_id", "22-0": "created_at", "23-0": "updated_at", "24-0": "cover_letter", "25-0": "summary", "26-0": "education_entries", "32-0": "experience_entries", "40-0": "skills", "41-0": "answers", "42-0": "resume_url", "43-0": "social_profiles", "47-0": "tags", "1-1": "`string`", "2-1": "`string`", "3-1": "`string`", "4-1": "`string`", "5-1": "`string`", "6-1": "`string`", "7-1": "`string`", "8-1": "`string`", "9-1": "`string`", "10-1": "`string`", "11-1": "`boolean`", "12-1": "`timestamp`", "13-1": "`string`", "14-1": "`boolean`", "15-1": "`string`", "16-1": "`string`", "17-1": "`string`", "18-1": "`string`", "19-1": "`string`", "20-1": "`string`", "21-1": "`string`", "22-1": "`timestamp`", "23-1": "`timestamp`", "24-1": "`string`", "25-1": "`string`", "26-1": "`array`", "32-1": "`array`", "40-1": "`array`", "41-1": "`array`", "42-1": "`string`", "43-1": "`array`", "47-1": "`array`", "1-2": "The full name of the candidate", "2-2": "The first name of the candidate", "3-2": "The last name of the candidate", "4-2": "The headline of the candidate", "5-2": "Url of candidate's avatar. Available only if provided by the candidate", "6-2": "The subdomain of the account", "7-2": "The name of the account", "8-2": "The shortcode of the job", "9-2": "The title of the job", "10-2": "The name of the current stage. See [stages endpoint](/docs/stages)", "11-2": "Indicates if the candidate is disqualified", "12-2": "The timestamp the candidate was disqualified", "13-2": "The reason the candidate was disqualified", "14-2": "Indicates if the candidate is sourced `true` or applied `false`", "15-2": "Url to the candidate's profile", "16-2": "The address of the candidate", "17-2": "The phone number of the candidate", "18-2": "The email address of the candidate", "19-2": "Mailbox that can be used to communicate with the candidate and inform the recruitment team of the job as well", "21-2": "The id of the member uploaded the candidate.", "22-2": "The timestamp the candidate created", "23-2": "The timestamp the candidate last updated", "24-2": "The cover letter provided when candidate applied", "25-2": "The summary of the candidate", "26-2": "A collection with education entries", "32-2": "A collection with working experience entries", "27-0": "education_entries/degree", "28-0": "education_entries/school", "29-0": "education_entries/field_of_study", "30-0": "education_entries/start_date", "31-0": "education_entries/start_date", "27-1": "`string`", "28-1": "`string`", "29-1": "`string`", "30-1": "`date`", "31-1": "`date`", "27-2": "The graduation degree", "28-2": "The name of the school graduated", "29-2": "The field of study", "30-2": "The date started", "31-2": "The date ended", "33-0": "experience_entries/title", "34-0": "experience_entries/summary", "35-0": "experience_entries/start_date", "36-0": "experience_entries/end_date", "37-0": "experience_entries/company", "38-0": "experience_entries/industry", "39-0": "experience_entries/current", "33-1": "`string`", "34-1": "`string`", "35-1": "`date`", "36-1": "`date`", "37-1": "`string`", "38-1": "`string`", "39-1": "`boolean`", "33-2": "The title of the experience entry", "34-2": "The summary of the experience entry", "35-2": "The date started", "36-2": "The date ended", "37-2": "The company name", "38-2": "The industry of the company", "39-2": "Indicates if currently works there", "40-2": "A collection with skill names", "41-2": "A collection with the answers provided", "42-2": "Url to the candidate resume", "43-2": "A collection with social profiles of the candidate", "44-0": "social_profiles/type", "44-1": "`string`", "44-2": "The slug name of the social profile. It can be one of the following types: `academiaedu`, `angellist`, `behance`, `bitbucket`, `blogger`, `crunchbase`, `dandyid`, `delicious`, `deviantart`, `digg`, `doyoubuzz`, `dribble`, `dribbble`, `econsultancy`, `facebook`, `flavorsme`, `flickr`, `fullcontact`, `getglue`, `gist`, `github`, `goodreads`, `googleplus`, `gravatar`, `hackernews`, `hiim`, `klout`, `lanyrd`, `linkedin`, `myspace`, `ohloh`, `orkut`, `pinterest`, `quora`, `reddit`, `scribd`, `skype`, `slideshare`, `stackexchange`, `stackoverflow`, `tumblr`, `twitter`, `typepad`, `vk`, `wordpress`, `xing`", "45-0": "social_profiles/name", "45-1": "`string`", "45-2": "The full name of the social profile", "46-0": "social_profiles/url", "46-1": "`string`", "46-2": "Url to the candidate's social profile page", "47-2": "A collection with tags", "20-2": "The domain of the referrer site that linked to the job page or the job board the job advertised", "48-0": "hired_at", "48-1": "`date`", "48-2": "The date the candidate was moved to the hired stage" }, "cols": 3, "rows": 49 } [/block]

User Information

Try It Out

get
{{ tryResults.results }}
Method{{ tryResults.method }}
Request Headers
{{ tryResults.requestHeaders }}
URL{{ tryResults.url }}
Request Data
{{ tryResults.data }}
Status
Response Headers
{{ tryResults.responseHeaders }}

Definition

{{ api_url }}{{ page_api_url }}

Examples


Result Format



[block:api-header] { "type": "basic", "title": "Response" } [/block] Calling the `candidates/:id` will return the full job JSON object of a specific `candidate` [block:parameters] { "data": { "h-0": "key", "h-1": "type", "h-2": "description", "0-0": "id", "0-1": "`string`", "0-2": "The candidate identifier", "1-0": "name", "2-0": "firstname", "3-0": "lastname", "4-0": "headline", "5-0": "image_url", "6-0": "account/subdomain", "7-0": "account/name", "8-0": "job/shortcode", "9-0": "job/title", "10-0": "stage", "11-0": "disqualified", "12-0": "disqualified_at", "13-0": "disqualification_reason", "14-0": "sourced", "15-0": "profile_url", "16-0": "address", "17-0": "phone", "18-0": "email", "19-0": "outbound_mailbox", "20-0": "domain", "21-0": "uploader_id", "22-0": "created_at", "23-0": "updated_at", "24-0": "cover_letter", "25-0": "summary", "26-0": "education_entries", "32-0": "experience_entries", "40-0": "skills", "41-0": "answers", "42-0": "resume_url", "43-0": "social_profiles", "47-0": "tags", "1-1": "`string`", "2-1": "`string`", "3-1": "`string`", "4-1": "`string`", "5-1": "`string`", "6-1": "`string`", "7-1": "`string`", "8-1": "`string`", "9-1": "`string`", "10-1": "`string`", "11-1": "`boolean`", "12-1": "`timestamp`", "13-1": "`string`", "14-1": "`boolean`", "15-1": "`string`", "16-1": "`string`", "17-1": "`string`", "18-1": "`string`", "19-1": "`string`", "20-1": "`string`", "21-1": "`string`", "22-1": "`timestamp`", "23-1": "`timestamp`", "24-1": "`string`", "25-1": "`string`", "26-1": "`array`", "32-1": "`array`", "40-1": "`array`", "41-1": "`array`", "42-1": "`string`", "43-1": "`array`", "47-1": "`array`", "1-2": "The full name of the candidate", "2-2": "The first name of the candidate", "3-2": "The last name of the candidate", "4-2": "The headline of the candidate", "5-2": "Url of candidate's avatar. Available only if provided by the candidate", "6-2": "The subdomain of the account", "7-2": "The name of the account", "8-2": "The shortcode of the job", "9-2": "The title of the job", "10-2": "The name of the current stage. See [stages endpoint](/docs/stages)", "11-2": "Indicates if the candidate is disqualified", "12-2": "The timestamp the candidate was disqualified", "13-2": "The reason the candidate was disqualified", "14-2": "Indicates if the candidate is sourced `true` or applied `false`", "15-2": "Url to the candidate's profile", "16-2": "The address of the candidate", "17-2": "The phone number of the candidate", "18-2": "The email address of the candidate", "19-2": "Mailbox that can be used to communicate with the candidate and inform the recruitment team of the job as well", "21-2": "The id of the member uploaded the candidate.", "22-2": "The timestamp the candidate created", "23-2": "The timestamp the candidate last updated", "24-2": "The cover letter provided when candidate applied", "25-2": "The summary of the candidate", "26-2": "A collection with education entries", "32-2": "A collection with working experience entries", "27-0": "education_entries/degree", "28-0": "education_entries/school", "29-0": "education_entries/field_of_study", "30-0": "education_entries/start_date", "31-0": "education_entries/start_date", "27-1": "`string`", "28-1": "`string`", "29-1": "`string`", "30-1": "`date`", "31-1": "`date`", "27-2": "The graduation degree", "28-2": "The name of the school graduated", "29-2": "The field of study", "30-2": "The date started", "31-2": "The date ended", "33-0": "experience_entries/title", "34-0": "experience_entries/summary", "35-0": "experience_entries/start_date", "36-0": "experience_entries/end_date", "37-0": "experience_entries/company", "38-0": "experience_entries/industry", "39-0": "experience_entries/current", "33-1": "`string`", "34-1": "`string`", "35-1": "`date`", "36-1": "`date`", "37-1": "`string`", "38-1": "`string`", "39-1": "`boolean`", "33-2": "The title of the experience entry", "34-2": "The summary of the experience entry", "35-2": "The date started", "36-2": "The date ended", "37-2": "The company name", "38-2": "The industry of the company", "39-2": "Indicates if currently works there", "40-2": "A collection with skill names", "41-2": "A collection with the answers provided", "42-2": "Url to the candidate resume", "43-2": "A collection with social profiles of the candidate", "44-0": "social_profiles/type", "44-1": "`string`", "44-2": "The slug name of the social profile. It can be one of the following types: `academiaedu`, `angellist`, `behance`, `bitbucket`, `blogger`, `crunchbase`, `dandyid`, `delicious`, `deviantart`, `digg`, `doyoubuzz`, `dribble`, `dribbble`, `econsultancy`, `facebook`, `flavorsme`, `flickr`, `fullcontact`, `getglue`, `gist`, `github`, `goodreads`, `googleplus`, `gravatar`, `hackernews`, `hiim`, `klout`, `lanyrd`, `linkedin`, `myspace`, `ohloh`, `orkut`, `pinterest`, `quora`, `reddit`, `scribd`, `skype`, `slideshare`, `stackexchange`, `stackoverflow`, `tumblr`, `twitter`, `typepad`, `vk`, `wordpress`, `xing`", "45-0": "social_profiles/name", "45-1": "`string`", "45-2": "The full name of the social profile", "46-0": "social_profiles/url", "46-1": "`string`", "46-2": "Url to the candidate's social profile page", "47-2": "A collection with tags", "20-2": "The domain of the referrer site that linked to the job page or the job board the job advertised", "48-0": "hired_at", "48-1": "`date`", "48-2": "The date the candidate was moved to the hired stage" }, "cols": 3, "rows": 49 } [/block]
{"_id":"587c9c192f1c741b0067e910","type":"patch","user":"55111100318f8c170023787a","version":"587395fe11b3ec1900d3b6db","__v":1,"createdAt":"2017-01-16T10:10:33.911Z","next":{"pages":[],"description":""},"sync_unique":"","category":"587395fe11b3ec1900d3b6dd","excerpt":"Partially updates a candidate","isReference":false,"title":"/candidates/:id","parentDoc":null,"project":"551111444878730d00220ecb","slug":"update-candidate","api":{"auth":"required","examples":{"codes":[{"language":"curl","code":"curl \t-X PATCH \\\n\t\t\t-H \"Content-Type: application/json\" \\\n\t\t\t-H \"Authorization:Bearer <Access Token>\" \\\n      -H 'Accept: application/json' \\\n      https://<subdomain>.workable.com/spi/v3/candidates/<id> \\\n\t\t\t--data '{\"candidate\": { \"firstname\": \"Jj\", \"lastname\": \"Botha\", \"email\": \"jj_botha@fakemail.com\"} }'"}]},"method":"patch","params":[{"default":"","type":"string","name":"subdomain","_id":"559e7d1fc713ef0d00028260","ref":"","in":"path","required":true,"desc":"The account's subdomain"},{"default":"","type":"string","name":"id","_id":"587ca5e180491d190042add7","ref":"","in":"path","required":true,"desc":"The candidate's id"}],"results":{"codes":[{"status":200,"name":"","code":"{\n  \"candidate\": {\n    \"id\": \"3fc9a80f\",\n    \"name\": \"Jj Botha\",\n    \"firstname\": null,\n    \"lastname\": null,\n    \"headline\": \"Professional Administration Manager\",\n    \"image_url\": null,\n    \"account\": {\n      \"subdomain\": \"groove-tech\",\n      \"name\": \"Groove Tech\"\n    },\n    \"job\": {\n      \"shortcode\": \"GROOV005\",\n      \"title\": \"Office Manager\"\n    },\n    \"stage\": \"Sourced\",\n    \"disqualified\": false,\n    \"disqualified_at\": null,\n    \"disqualification_reason\": null,\n    \"sourced\": true,\n    \"profile_url\": \"https://groove-tech.workable.com/backend/jobs/376844767/candidates/1070179133\",\n    \"address\": \"25772 Gustave Shore, Iowa, USA\",\n    \"phone\": \"1-859-557-6573\",\n    \"email\": \"jj_botha@fakemail.com\",\n    \"outbound_mailbox\": \"b-6adwdc@outbound.dev-workable.mailgun.org\",\n    \"domain\": null,\n    \"uploader_id\": null,\n    \"created_at\": \"2015-07-09T10:55:53Z\",\n    \"updated_at\": \"2015-07-09T10:55:53Z\",\n    \"cover_letter\": \"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.\",\n    \"summary\": \"A focussed, results-driven team player with many year experience in the field. Working my way up to management level, I have experience of every aspect of this role. I understand the challenges it brings, and have a proven track record of providing solutions.\",\n    \"education_entries\": [\n      {\n        \"id\": \"3fcbeee1\",\n        \"degree\": \"MBA\",\n        \"school\": \"University of Pennsylvania\",\n        \"field_of_study\": null,\n        \"start_date\": \"2008-03-01\",\n        \"end_date\": \"2011-03-30\"\n      },\n      {\n        \"id\": \"3fcbeee2\",\n        \"degree\": \"B.S.\",\n        \"school\": \"University of Chicago\",\n        \"field_of_study\": \"Marketing Communication & Economics\",\n        \"start_date\": \"2004-09-01\",\n        \"end_date\": \"2007-03-30\"\n      }\n    ],\n    \"experience_entries\": [\n      {\n        \"id\": \"3fdbfd10\",\n        \"title\": \"Sales Director\",\n        \"summary\": null,\n        \"start_date\": \"2011-03-01\",\n        \"end_date\": \"2014-03-30\",\n        \"company\": \"Vox Mobile\",\n        \"industry\": \"Telecommunications\",\n        \"current\": false\n      }\n    ],\n    \"skills\": [\n      {\n        \"name\": \"travel planning\"\n      },\n      {\n        \"name\": \"problem solving\"\n      }\n    ],\n    \"answers\": [\n      {\n        \"question\": {\n          \"body\": \"Explain one aspect of this role you believe you will excel at.\"\n        },\n        \"answer\": {\n          \"body\": \"<p>Planning</p>\"\n        }\n      },\n      {\n        \"question\": {\n          \"body\": \"How many years administrative experience do you have?\"\n        },\n        \"answer\": {\n          \"choices\": [\n            {\n              \"body\": \"Over 5 years\"\n            }\n          ]\n        }\n      }\n    ],\n    \"resume_url\": null,\n    \"social_profiles\": [\n      {\n        \"type\": \"twitter\",\n        \"username\": \"jj_botha\",\n        \"url\": \"http://www.twitter.com/jj_botha\"\n      },\n      {\n        \"type\": \"linkedin\",\n        \"url\": \"http://www.linkedin.com/in/jj_botha\"\n      },\n      {\n        \"type\": \"googleplus\",\n        \"url\": \"https://plus.google.com/6908286706342698\"\n      }\n    ],\n    \"tags\": [\"globetrotter\", \"adventurer\"]\n  }\n}","language":"json"},{"name":"","code":"{\n  \"error\": \"Validation failed: Email candidate already exists\",\n  \"validation_errors\": {\n    \"email\": [\n      \"candidate already exists\"\n    ]\n  }\n}","language":"json","status":422},{"status":404,"language":"json","code":"{\n  \"error\": \"Not found\"\n}"},{"status":401,"language":"json","code":"{\n  \"error\": \"Not authorized\"\n}"}]},"settings":"58739d5a3af3bc0f003ef40a","url":"/candidates"},"link_url":"","order":13,"updates":[],"body":"This can help a user keep the candidate DB in sync with another system.\n\nHere is a list of fields that can be provided:\n[block:parameters]\n{\n  \"data\": {\n    \"h-0\": \"key\",\n    \"h-1\": \"type\",\n    \"h-2\": \"description\",\n    \"0-0\": \"firstname\",\n    \"0-1\": \"`string`\",\n    \"0-2\": \"The candidate's first name\",\n    \"1-0\": \"lastname\",\n    \"1-1\": \"`string`\",\n    \"1-2\": \"The candidate's last name\",\n    \"2-0\": \"email\",\n    \"2-1\": \"`string`\",\n    \"2-2\": \"The candidate's email\",\n    \"3-0\": \"headline\",\n    \"3-1\": \"`string`\",\n    \"3-2\": \"One line description as provided by the candidate or you\",\n    \"4-0\": \"summary\",\n    \"4-1\": \"`string`\",\n    \"4-2\": \"The profile summary provided by the candidate\",\n    \"5-0\": \"address\",\n    \"5-1\": \"`string`\",\n    \"5-2\": \"The candidate's address\",\n    \"6-0\": \"phone\",\n    \"6-1\": \"`string`\",\n    \"6-2\": \"The candidate's phone number\",\n    \"7-0\": \"cover_letter\",\n    \"7-1\": \"`string`\",\n    \"7-2\": \"The candidate's cover letter\",\n    \"12-0\": \"skills\",\n    \"12-1\": \"`string` (list)\",\n    \"12-2\": \"The candidate's skills.\",\n    \"10-0\": \"education_entries\",\n    \"10-1\": \"`array`\",\n    \"10-2\": \"Explained [below](update-candidate#how-can-i-update-the-candidates-education)\",\n    \"11-0\": \"experience_entries\",\n    \"11-1\": \"`array`\",\n    \"11-2\": \"Explained [below](update-candidate#how-can-i-update-the-candidates-experience)\",\n    \"14-0\": \"social_profiles\",\n    \"14-1\": \"`array`\",\n    \"14-2\": \"Explained [below](update-candidate#can-i-also-update-candidates-the-social-profiles)\",\n    \"8-0\": \"resume\",\n    \"8-1\": \"`object`\",\n    \"8-2\": \"Explained [below](update-candidate#how-can-i-update-the-candidates-resume-along-with-)\",\n    \"9-0\": \"image\",\n    \"9-1\": \"`object`\",\n    \"9-2\": \"Explained [below](update-candidate#how-can-i-update-the-candidates-image-along-with-t)\",\n    \"13-0\": \"tags\",\n    \"13-1\": \"`array`\",\n    \"13-2\": \"A list of the candidate's tags\"\n  },\n  \"cols\": 3,\n  \"rows\": 15\n}\n[/block]\n\n[block:callout]\n{\n  \"type\": \"danger\",\n  \"title\": \"Attention!\",\n  \"body\": \"For all array keys (`education_entries`, `experience_entries`, `social_profiles`, `tags`) this works like a `PUT` request; i.e the end result will match exactly your input. **Any pre-existing entries or values that are not included in the request will be deleted**. If you provide an empty array as a value, all entries will be deleted. **If you don't provide the top level keys, their values will remain as is**.\"\n}\n[/block]\nHere is the structure of a complete example:\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"{\\n  \\\"candidate\\\": {\\n    \\\"firstname\\\": \\\"Jj\\\",\\n    \\\"lastname\\\": \\\"Botha\\\",\\n    \\\"headline\\\": \\\"Professional Administration Manager\\\",\\n    \\\"summary\\\": \\\"A focussed, results-driven team player with many year experience in the field. Working my way up to management level, I have experience of every aspect of this role. I understand the challenges it brings, and have a proven track record of providing solutions.\\\",\\n    \\\"address\\\": \\\"25772 Gustave Shore, Iowa, USA\\\",\\n    \\\"phone\\\": \\\"1-859-557-6573\\\",\\n    \\\"email\\\": \\\"jj_botha@fakemail.com\\\",\\n    \\\"cover_letter\\\": \\\"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.\\\",\\n\\n    \\\"resume\\\": { \\\"name\\\": \\\"jjBotha.rtf\\\", data: \\\"SGVsbG8h\\\" },\\n    \\\"image\\\": { \\\"name\\\": \\\"me.jpg\\\", data: \\\"SGVsbG8h\\\" },\\n    \\n    \\\"education_entries\\\": [\\n      { \\\"degree\\\": \\\"MBA\\\", \\\"school\\\": \\\"University of Pennsylvania\\\", \\\"field_of_study\\\": null, \\\"start_date\\\": \\\"2008-03-01\\\", \\\"end_date\\\": \\\"2011-03-30\\\" },\\n      { \\\"degree\\\": \\\"B.S.\\\", \\\"school\\\": \\\"University of Chicago\\\", \\\"field_of_study\\\": \\\"Marketing Communication & Economics\\\", \\\"start_date\\\": \\\"2004-09-01\\\", \\\"end_date\\\": \\\"2007-03-30\\\" }\\n    ],\\n\\n    \\\"experience_entries\\\": [\\n      {\\n        \\\"title\\\": \\\"Sales Director\\\",\\n        \\\"summary\\\": null,\\n        \\\"start_date\\\": \\\"2011-03-01\\\",\\n        \\\"end_date\\\": \\\"2014-03-30\\\",\\n        \\\"current\\\": false,\\n        \\\"company\\\": \\\"Vox Mobile\\\",\\n        \\\"industry\\\": \\\"Telecommunications\\\"\\n      }\\n    ],\\n\\n    \\\"tags\\\": [ \\\"globetrotter\\\", \\\"adventurer\\\" ],\\n    \\n    \\\"skills\\\": [ \\\"Travel Planning\\\", \\\"Problem Solving\\\"],\\n    \\\"social_profiles\\\": [\\n        {\\n          \\\"type\\\": \\\"twitter\\\",\\n          \\\"name\\\": \\\"Twitter\\\",\\n          \\\"username\\\": \\\"jj_botha\\\",\\n          \\\"url\\\": \\\"http://www.twitter.com/jj_botha\\\"\\n        },\\n        {\\n          \\\"type\\\": \\\"linkedin\\\",\\n          \\\"name\\\": \\\"LinkedIn\\\",\\n          \\\"url\\\": \\\"http://www.linkedin.com/in/jj_botha\\\"\\n        },\\n        {\\n          \\\"type\\\": \\\"googleplus\\\",\\n          \\\"url\\\": \\\"https://plus.google.com/6908286706342698\\\"\\n        }\\n    ]\\n  }\\n}\\n\",\n      \"language\": \"json\"\n    }\n  ]\n}\n[/block]\n\n[block:api-header]\n{\n  \"type\": \"basic\",\n  \"title\": \"How can I update the candidate’s resume along with the candidate information?\"\n}\n[/block]\nYou can update the candidate’s resume in `.pdf`, `.doc`, `.docx`, `.rtf` format. The API accepts one of the following:\n[block:parameters]\n{\n  \"data\": {\n    \"h-0\": \"key\",\n    \"h-1\": \"type\",\n    \"h-2\": \"description\",\n    \"0-0\": \"resume_url\",\n    \"0-1\": \"`string`\",\n    \"0-2\": \"a url pointing to the candidate’s resume\"\n  },\n  \"cols\": 3,\n  \"rows\": 1\n}\n[/block]\nAlternatively, you can post the resume encoded in base64 by including a 'resume' key with an object as a value, that has the following keys:\n[block:parameters]\n{\n  \"data\": {\n    \"h-0\": \"key\",\n    \"h-1\": \"type\",\n    \"h-2\": \"description\",\n    \"0-0\": \"name\",\n    \"0-1\": \"`string`\",\n    \"1-0\": \"data\",\n    \"1-1\": \"`string`\",\n    \"0-2\": \"the candidate’s resume name\",\n    \"1-2\": \"the candidate’s resume encoded in base64\"\n  },\n  \"cols\": 3,\n  \"rows\": 2\n}\n[/block]\nHere is an example including a resume encoded in base64 format:\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"{\\n  \\\"candidate\\\": {\\n    \\\"name\\\": \\\"Jj Botha\\\",\\n    \\\"firstname\\\": \\\"Jj\\\",\\n    \\\"lastname\\\": \\\"Botha\\\",\\n    \\\"headline\\\": \\\"Professional Administration Manager\\\",\\n    \\\"summary\\\": \\\"A focussed, results-driven team player with many year experience in the field. Working my way up to management level, I have experience of every aspect of this role. I understand the challenges it brings, and have a proven track record of providing solutions.\\\",\\n    \\\"address\\\": \\\"25772 Gustave Shore, Iowa, USA\\\",\\n    \\\"phone\\\": \\\"1-859-557-6573\\\",\\n    \\\"email\\\": \\\"jj_botha@fakemail.com\\\",\\n    \\\"resume\\\": {\\n      \\\"name\\\": \\\"jj_botha.doc\\\",\\n      \\\"data\\\": \\\"6622116356e175ed0394b0d==\\\"\\n    }\\n  }\\n}\",\n      \"language\": \"json\"\n    }\n  ]\n}\n[/block]\n\n[block:api-header]\n{\n  \"type\": \"basic\",\n  \"title\": \"How can I update the candidate’s image along with the candidate information?\"\n}\n[/block]\n\n[block:parameters]\n{\n  \"data\": {\n    \"h-0\": \"key\",\n    \"h-1\": \"type\",\n    \"h-2\": \"description\",\n    \"0-0\": \"image_url\",\n    \"0-1\": \"`string`\",\n    \"0-2\": \"a url pointing to the candidate's image\",\n    \"1-0\": \"image_source\",\n    \"1-1\": \"`string`\",\n    \"1-2\": \"If the image is not provided by the candidate (e.g. collected from a social network profile), you can also send the image_source. It can be one of the following types: `academiaedu`, `angellist`, `behance`, `bitbucket`, `blogger`, `crunchbase`, `dandyid`, `delicious`, `deviantart`, `digg`, `doyoubuzz`, `dribble`, `dribbble`, `econsultancy`, `facebook`, `flavorsme`, `flickr`, `fullcontact`, `getglue`, `gist`, `github`, `goodreads`, `googleplus`, `gravatar`, `hackernews`, `hiim`, `klout`, `lanyrd`, `linkedin`, `myspace`, `ohloh`, `orkut`, `pinterest`, `quora`, `reddit`, `scribd`, `skype`, `slideshare`, `stackexchange`, `stackoverflow`, `tumblr`, `twitter`, `typepad`, `vk`, `wordpress`, `xing`\"\n  },\n  \"cols\": 3,\n  \"rows\": 2\n}\n[/block]\nor alternatively\n[block:parameters]\n{\n  \"data\": {\n    \"h-0\": \"key\",\n    \"h-1\": \"type\",\n    \"h-2\": \"description\",\n    \"0-0\": \"image/name\",\n    \"0-1\": \"`string`\",\n    \"0-2\": \"the candidate's image name\",\n    \"1-0\": \"image/data\",\n    \"1-1\": \"`string`\",\n    \"1-2\": \"the candidate's image encoded in base64\",\n    \"2-0\": \"image/source\",\n    \"2-1\": \"`string`\",\n    \"2-2\": \"The source of the candidate's image\"\n  },\n  \"cols\": 3,\n  \"rows\": 3\n}\n[/block]\n\n[block:api-header]\n{\n  \"type\": \"basic\",\n  \"title\": \"How can I update the candidate’s education?\"\n}\n[/block]\n\n[block:callout]\n{\n  \"type\": \"danger\",\n  \"title\": \"Attention!\",\n  \"body\": \"This works like a `PUT` request; i.e. the end result will match exactly your input. **Any pre-existing entries or values that are not included in the request will be deleted**.\"\n}\n[/block]\nCandidate’s education is a list of entries. To update an entry you *must* use the id. Each entry may contain the following fields:\n[block:parameters]\n{\n  \"data\": {\n    \"h-0\": \"key\",\n    \"h-1\": \"type\",\n    \"h-2\": \"description\",\n    \"0-0\": \"id (optional)\",\n    \"0-1\": \"`string`\",\n    \"0-2\": \"The education id. If it is provided, the corresponding education entry will be updated. If not, a new entry will be created.\",\n    \"2-0\": \"degree\",\n    \"2-1\": \"`string`\",\n    \"2-2\": \"The candidate's degree\",\n    \"3-0\": \"field_of_study\",\n    \"3-1\": \"`string`\",\n    \"3-2\": \"The candidate's field of study\",\n    \"4-0\": \"start_date\",\n    \"4-1\": \"`string`\",\n    \"4-2\": \"In ISO 8601 format (YYYY-MM-DD)\",\n    \"5-0\": \"end_date\",\n    \"5-1\": \"`string`\",\n    \"5-2\": \"In ISO 8601 format (YYYY-MM-DD)\",\n    \"1-0\": \"school (required)\",\n    \"1-1\": \"`string`\",\n    \"1-2\": \"The candidate's school\"\n  },\n  \"cols\": 3,\n  \"rows\": 6\n}\n[/block]\n\n[block:api-header]\n{\n  \"type\": \"basic\",\n  \"title\": \"How can I update the candidate’s experience?\"\n}\n[/block]\n\n[block:callout]\n{\n  \"type\": \"danger\",\n  \"body\": \"This works like a `PUT` request; i.e. the end result will match exactly your input. **Any pre-existing entries or values that are not included in the request will be deleted**.\",\n  \"title\": \"Important!\"\n}\n[/block]\nCandidate’s experience is a list of entries. To update an entry you *must* use the id key. Each entry may contain the following fields:\n[block:parameters]\n{\n  \"data\": {\n    \"h-0\": \"key\",\n    \"h-1\": \"type\",\n    \"h-2\": \"description\",\n    \"2-0\": \"summary\",\n    \"2-1\": \"`string`\",\n    \"2-2\": \"A summary of the candidate's experience\",\n    \"3-0\": \"company\",\n    \"3-1\": \"`string`\",\n    \"3-2\": \"The candidate's company\",\n    \"4-0\": \"industry\",\n    \"4-1\": \"`string`\",\n    \"4-2\": \"The candidate's working industry\",\n    \"5-0\": \"start_date\",\n    \"5-1\": \"`string`\",\n    \"5-2\": \"In ISO 8601 format (YYYY-MM-DD)\",\n    \"6-0\": \"end_date\",\n    \"6-1\": \"`string`\",\n    \"6-2\": \"In ISO 8601 format (YYYY-MM-DD)\",\n    \"7-0\": \"current\",\n    \"7-1\": \"`boolean`\",\n    \"7-2\": \"True if candidate still works there\",\n    \"0-0\": \"id (optional)\",\n    \"0-1\": \"`string`\",\n    \"0-2\": \"The experience id. If it is provided the corresponding experience entry will be updated. If not, a new entry will be created.\",\n    \"1-0\": \"title (required)\",\n    \"1-1\": \"`string`\",\n    \"1-2\": \"The candidate's title\"\n  },\n  \"cols\": 3,\n  \"rows\": 8\n}\n[/block]\n\n[block:api-header]\n{\n  \"type\": \"basic\",\n  \"title\": \"Can I also update the candidate's social profiles?\"\n}\n[/block]\n\n[block:callout]\n{\n  \"type\": \"danger\",\n  \"title\": \"Attention!\",\n  \"body\": \"This works like a `PUT` request; i.e. the end result will match exactly your input. **Any pre-existing entries or values that are not included in the request will be deleted**.\"\n}\n[/block]\nYes, you can provide social profiles by including the ‘social_profiles’ section:\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"{\\n   \\\"candidate\\\":{\\n      \\\"name\\\":\\\"John Doe\\\",\\n      \\\"email\\\":\\\"john.doe@samplemail.com\\\",\\n      \\\"headline\\\":\\\"Superhero developer\\\",\\n      \\\"summary\\\":\\\"\\\",\\n      \\\"address\\\":\\\"\\\",\\n      \\\"phone\\\":\\\"\\\",\\n\\n      ....\\n\\n      \\\"social_profiles\\\":[\\n         {\\n            \\\"type\\\":\\\"twitter\\\",\\n            \\\"username\\\":\\\"Workable\\\",\\n            \\\"url\\\":\\\"https://twitter.com/workable\\\" \\n         }\\n      ]\\n\\n      ....\\n\\n}\",\n      \"language\": \"json\"\n    }\n  ]\n}\n[/block]\n‘social_profiles’ is a list of social profiles, and you can provide one social profile url for each social network type. Each entry contains the following fields:\n[block:parameters]\n{\n  \"data\": {\n    \"h-0\": \"key\",\n    \"h-1\": \"type\",\n    \"h-2\": \"description\",\n    \"0-0\": \"type (required)\",\n    \"0-1\": \"`string`\",\n    \"0-2\": \"One of the following types: `academiaedu`, `angellist`, `behance`, `bitbucket`, `blogger`, `crunchbase`, `dandyid`, `delicious`, `deviantart`, `digg`, `doyoubuzz`, `dribble`, `dribbble`, `econsultancy`, `facebook`, `flavorsme`, `flickr`, `fullcontact`, `getglue`, `gist`, `github`, `goodreads`, `googleplus`, `gravatar`, `hackernews`, `hiim`, `klout`, `lanyrd`, `linkedin`, `myspace`, `ohloh`, `orkut`, `pinterest`, `quora`, `reddit`, `scribd`, `skype`, `slideshare`, `stackexchange`, `stackoverflow`, `tumblr`, `twitter`, `typepad`, `vk`, `wordpress`, `xing`\",\n    \"1-0\": \"username\",\n    \"1-1\": \"`string`\",\n    \"1-2\": \"The candidate's username\",\n    \"2-0\": \"url (required)\",\n    \"2-1\": \"`string`\",\n    \"2-2\": \"The candidate's URL\"\n  },\n  \"cols\": 3,\n  \"rows\": 3\n}\n[/block]","githubsync":"","hidden":false,"link_external":false,"childrenPages":[]}

patch/candidates/:id

Partially updates a candidate

Path Params

subdomain:
required
string
The account's subdomain
id:
required
string
The candidate's id
This can help a user keep the candidate DB in sync with another system. Here is a list of fields that can be provided: [block:parameters] { "data": { "h-0": "key", "h-1": "type", "h-2": "description", "0-0": "firstname", "0-1": "`string`", "0-2": "The candidate's first name", "1-0": "lastname", "1-1": "`string`", "1-2": "The candidate's last name", "2-0": "email", "2-1": "`string`", "2-2": "The candidate's email", "3-0": "headline", "3-1": "`string`", "3-2": "One line description as provided by the candidate or you", "4-0": "summary", "4-1": "`string`", "4-2": "The profile summary provided by the candidate", "5-0": "address", "5-1": "`string`", "5-2": "The candidate's address", "6-0": "phone", "6-1": "`string`", "6-2": "The candidate's phone number", "7-0": "cover_letter", "7-1": "`string`", "7-2": "The candidate's cover letter", "12-0": "skills", "12-1": "`string` (list)", "12-2": "The candidate's skills.", "10-0": "education_entries", "10-1": "`array`", "10-2": "Explained [below](update-candidate#how-can-i-update-the-candidates-education)", "11-0": "experience_entries", "11-1": "`array`", "11-2": "Explained [below](update-candidate#how-can-i-update-the-candidates-experience)", "14-0": "social_profiles", "14-1": "`array`", "14-2": "Explained [below](update-candidate#can-i-also-update-candidates-the-social-profiles)", "8-0": "resume", "8-1": "`object`", "8-2": "Explained [below](update-candidate#how-can-i-update-the-candidates-resume-along-with-)", "9-0": "image", "9-1": "`object`", "9-2": "Explained [below](update-candidate#how-can-i-update-the-candidates-image-along-with-t)", "13-0": "tags", "13-1": "`array`", "13-2": "A list of the candidate's tags" }, "cols": 3, "rows": 15 } [/block] [block:callout] { "type": "danger", "title": "Attention!", "body": "For all array keys (`education_entries`, `experience_entries`, `social_profiles`, `tags`) this works like a `PUT` request; i.e the end result will match exactly your input. **Any pre-existing entries or values that are not included in the request will be deleted**. If you provide an empty array as a value, all entries will be deleted. **If you don't provide the top level keys, their values will remain as is**." } [/block] Here is the structure of a complete example: [block:code] { "codes": [ { "code": "{\n \"candidate\": {\n \"firstname\": \"Jj\",\n \"lastname\": \"Botha\",\n \"headline\": \"Professional Administration Manager\",\n \"summary\": \"A focussed, results-driven team player with many year experience in the field. Working my way up to management level, I have experience of every aspect of this role. I understand the challenges it brings, and have a proven track record of providing solutions.\",\n \"address\": \"25772 Gustave Shore, Iowa, USA\",\n \"phone\": \"1-859-557-6573\",\n \"email\": \"jj_botha@fakemail.com\",\n \"cover_letter\": \"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.\",\n\n \"resume\": { \"name\": \"jjBotha.rtf\", data: \"SGVsbG8h\" },\n \"image\": { \"name\": \"me.jpg\", data: \"SGVsbG8h\" },\n \n \"education_entries\": [\n { \"degree\": \"MBA\", \"school\": \"University of Pennsylvania\", \"field_of_study\": null, \"start_date\": \"2008-03-01\", \"end_date\": \"2011-03-30\" },\n { \"degree\": \"B.S.\", \"school\": \"University of Chicago\", \"field_of_study\": \"Marketing Communication & Economics\", \"start_date\": \"2004-09-01\", \"end_date\": \"2007-03-30\" }\n ],\n\n \"experience_entries\": [\n {\n \"title\": \"Sales Director\",\n \"summary\": null,\n \"start_date\": \"2011-03-01\",\n \"end_date\": \"2014-03-30\",\n \"current\": false,\n \"company\": \"Vox Mobile\",\n \"industry\": \"Telecommunications\"\n }\n ],\n\n \"tags\": [ \"globetrotter\", \"adventurer\" ],\n \n \"skills\": [ \"Travel Planning\", \"Problem Solving\"],\n \"social_profiles\": [\n {\n \"type\": \"twitter\",\n \"name\": \"Twitter\",\n \"username\": \"jj_botha\",\n \"url\": \"http://www.twitter.com/jj_botha\"\n },\n {\n \"type\": \"linkedin\",\n \"name\": \"LinkedIn\",\n \"url\": \"http://www.linkedin.com/in/jj_botha\"\n },\n {\n \"type\": \"googleplus\",\n \"url\": \"https://plus.google.com/6908286706342698\"\n }\n ]\n }\n}\n", "language": "json" } ] } [/block] [block:api-header] { "type": "basic", "title": "How can I update the candidate’s resume along with the candidate information?" } [/block] You can update the candidate’s resume in `.pdf`, `.doc`, `.docx`, `.rtf` format. The API accepts one of the following: [block:parameters] { "data": { "h-0": "key", "h-1": "type", "h-2": "description", "0-0": "resume_url", "0-1": "`string`", "0-2": "a url pointing to the candidate’s resume" }, "cols": 3, "rows": 1 } [/block] Alternatively, you can post the resume encoded in base64 by including a 'resume' key with an object as a value, that has the following keys: [block:parameters] { "data": { "h-0": "key", "h-1": "type", "h-2": "description", "0-0": "name", "0-1": "`string`", "1-0": "data", "1-1": "`string`", "0-2": "the candidate’s resume name", "1-2": "the candidate’s resume encoded in base64" }, "cols": 3, "rows": 2 } [/block] Here is an example including a resume encoded in base64 format: [block:code] { "codes": [ { "code": "{\n \"candidate\": {\n \"name\": \"Jj Botha\",\n \"firstname\": \"Jj\",\n \"lastname\": \"Botha\",\n \"headline\": \"Professional Administration Manager\",\n \"summary\": \"A focussed, results-driven team player with many year experience in the field. Working my way up to management level, I have experience of every aspect of this role. I understand the challenges it brings, and have a proven track record of providing solutions.\",\n \"address\": \"25772 Gustave Shore, Iowa, USA\",\n \"phone\": \"1-859-557-6573\",\n \"email\": \"jj_botha@fakemail.com\",\n \"resume\": {\n \"name\": \"jj_botha.doc\",\n \"data\": \"6622116356e175ed0394b0d==\"\n }\n }\n}", "language": "json" } ] } [/block] [block:api-header] { "type": "basic", "title": "How can I update the candidate’s image along with the candidate information?" } [/block] [block:parameters] { "data": { "h-0": "key", "h-1": "type", "h-2": "description", "0-0": "image_url", "0-1": "`string`", "0-2": "a url pointing to the candidate's image", "1-0": "image_source", "1-1": "`string`", "1-2": "If the image is not provided by the candidate (e.g. collected from a social network profile), you can also send the image_source. It can be one of the following types: `academiaedu`, `angellist`, `behance`, `bitbucket`, `blogger`, `crunchbase`, `dandyid`, `delicious`, `deviantart`, `digg`, `doyoubuzz`, `dribble`, `dribbble`, `econsultancy`, `facebook`, `flavorsme`, `flickr`, `fullcontact`, `getglue`, `gist`, `github`, `goodreads`, `googleplus`, `gravatar`, `hackernews`, `hiim`, `klout`, `lanyrd`, `linkedin`, `myspace`, `ohloh`, `orkut`, `pinterest`, `quora`, `reddit`, `scribd`, `skype`, `slideshare`, `stackexchange`, `stackoverflow`, `tumblr`, `twitter`, `typepad`, `vk`, `wordpress`, `xing`" }, "cols": 3, "rows": 2 } [/block] or alternatively [block:parameters] { "data": { "h-0": "key", "h-1": "type", "h-2": "description", "0-0": "image/name", "0-1": "`string`", "0-2": "the candidate's image name", "1-0": "image/data", "1-1": "`string`", "1-2": "the candidate's image encoded in base64", "2-0": "image/source", "2-1": "`string`", "2-2": "The source of the candidate's image" }, "cols": 3, "rows": 3 } [/block] [block:api-header] { "type": "basic", "title": "How can I update the candidate’s education?" } [/block] [block:callout] { "type": "danger", "title": "Attention!", "body": "This works like a `PUT` request; i.e. the end result will match exactly your input. **Any pre-existing entries or values that are not included in the request will be deleted**." } [/block] Candidate’s education is a list of entries. To update an entry you *must* use the id. Each entry may contain the following fields: [block:parameters] { "data": { "h-0": "key", "h-1": "type", "h-2": "description", "0-0": "id (optional)", "0-1": "`string`", "0-2": "The education id. If it is provided, the corresponding education entry will be updated. If not, a new entry will be created.", "2-0": "degree", "2-1": "`string`", "2-2": "The candidate's degree", "3-0": "field_of_study", "3-1": "`string`", "3-2": "The candidate's field of study", "4-0": "start_date", "4-1": "`string`", "4-2": "In ISO 8601 format (YYYY-MM-DD)", "5-0": "end_date", "5-1": "`string`", "5-2": "In ISO 8601 format (YYYY-MM-DD)", "1-0": "school (required)", "1-1": "`string`", "1-2": "The candidate's school" }, "cols": 3, "rows": 6 } [/block] [block:api-header] { "type": "basic", "title": "How can I update the candidate’s experience?" } [/block] [block:callout] { "type": "danger", "body": "This works like a `PUT` request; i.e. the end result will match exactly your input. **Any pre-existing entries or values that are not included in the request will be deleted**.", "title": "Important!" } [/block] Candidate’s experience is a list of entries. To update an entry you *must* use the id key. Each entry may contain the following fields: [block:parameters] { "data": { "h-0": "key", "h-1": "type", "h-2": "description", "2-0": "summary", "2-1": "`string`", "2-2": "A summary of the candidate's experience", "3-0": "company", "3-1": "`string`", "3-2": "The candidate's company", "4-0": "industry", "4-1": "`string`", "4-2": "The candidate's working industry", "5-0": "start_date", "5-1": "`string`", "5-2": "In ISO 8601 format (YYYY-MM-DD)", "6-0": "end_date", "6-1": "`string`", "6-2": "In ISO 8601 format (YYYY-MM-DD)", "7-0": "current", "7-1": "`boolean`", "7-2": "True if candidate still works there", "0-0": "id (optional)", "0-1": "`string`", "0-2": "The experience id. If it is provided the corresponding experience entry will be updated. If not, a new entry will be created.", "1-0": "title (required)", "1-1": "`string`", "1-2": "The candidate's title" }, "cols": 3, "rows": 8 } [/block] [block:api-header] { "type": "basic", "title": "Can I also update the candidate's social profiles?" } [/block] [block:callout] { "type": "danger", "title": "Attention!", "body": "This works like a `PUT` request; i.e. the end result will match exactly your input. **Any pre-existing entries or values that are not included in the request will be deleted**." } [/block] Yes, you can provide social profiles by including the ‘social_profiles’ section: [block:code] { "codes": [ { "code": "{\n \"candidate\":{\n \"name\":\"John Doe\",\n \"email\":\"john.doe@samplemail.com\",\n \"headline\":\"Superhero developer\",\n \"summary\":\"\",\n \"address\":\"\",\n \"phone\":\"\",\n\n ....\n\n \"social_profiles\":[\n {\n \"type\":\"twitter\",\n \"username\":\"Workable\",\n \"url\":\"https://twitter.com/workable\" \n }\n ]\n\n ....\n\n}", "language": "json" } ] } [/block] ‘social_profiles’ is a list of social profiles, and you can provide one social profile url for each social network type. Each entry contains the following fields: [block:parameters] { "data": { "h-0": "key", "h-1": "type", "h-2": "description", "0-0": "type (required)", "0-1": "`string`", "0-2": "One of the following types: `academiaedu`, `angellist`, `behance`, `bitbucket`, `blogger`, `crunchbase`, `dandyid`, `delicious`, `deviantart`, `digg`, `doyoubuzz`, `dribble`, `dribbble`, `econsultancy`, `facebook`, `flavorsme`, `flickr`, `fullcontact`, `getglue`, `gist`, `github`, `goodreads`, `googleplus`, `gravatar`, `hackernews`, `hiim`, `klout`, `lanyrd`, `linkedin`, `myspace`, `ohloh`, `orkut`, `pinterest`, `quora`, `reddit`, `scribd`, `skype`, `slideshare`, `stackexchange`, `stackoverflow`, `tumblr`, `twitter`, `typepad`, `vk`, `wordpress`, `xing`", "1-0": "username", "1-1": "`string`", "1-2": "The candidate's username", "2-0": "url (required)", "2-1": "`string`", "2-2": "The candidate's URL" }, "cols": 3, "rows": 3 } [/block]

User Information

Try It Out

patch
{{ tryResults.results }}
Method{{ tryResults.method }}
Request Headers
{{ tryResults.requestHeaders }}
URL{{ tryResults.url }}
Request Data
{{ tryResults.data }}
Status
Response Headers
{{ tryResults.responseHeaders }}

Definition

{{ api_url }}{{ page_api_url }}

Examples


Result Format



This can help a user keep the candidate DB in sync with another system. Here is a list of fields that can be provided: [block:parameters] { "data": { "h-0": "key", "h-1": "type", "h-2": "description", "0-0": "firstname", "0-1": "`string`", "0-2": "The candidate's first name", "1-0": "lastname", "1-1": "`string`", "1-2": "The candidate's last name", "2-0": "email", "2-1": "`string`", "2-2": "The candidate's email", "3-0": "headline", "3-1": "`string`", "3-2": "One line description as provided by the candidate or you", "4-0": "summary", "4-1": "`string`", "4-2": "The profile summary provided by the candidate", "5-0": "address", "5-1": "`string`", "5-2": "The candidate's address", "6-0": "phone", "6-1": "`string`", "6-2": "The candidate's phone number", "7-0": "cover_letter", "7-1": "`string`", "7-2": "The candidate's cover letter", "12-0": "skills", "12-1": "`string` (list)", "12-2": "The candidate's skills.", "10-0": "education_entries", "10-1": "`array`", "10-2": "Explained [below](update-candidate#how-can-i-update-the-candidates-education)", "11-0": "experience_entries", "11-1": "`array`", "11-2": "Explained [below](update-candidate#how-can-i-update-the-candidates-experience)", "14-0": "social_profiles", "14-1": "`array`", "14-2": "Explained [below](update-candidate#can-i-also-update-candidates-the-social-profiles)", "8-0": "resume", "8-1": "`object`", "8-2": "Explained [below](update-candidate#how-can-i-update-the-candidates-resume-along-with-)", "9-0": "image", "9-1": "`object`", "9-2": "Explained [below](update-candidate#how-can-i-update-the-candidates-image-along-with-t)", "13-0": "tags", "13-1": "`array`", "13-2": "A list of the candidate's tags" }, "cols": 3, "rows": 15 } [/block] [block:callout] { "type": "danger", "title": "Attention!", "body": "For all array keys (`education_entries`, `experience_entries`, `social_profiles`, `tags`) this works like a `PUT` request; i.e the end result will match exactly your input. **Any pre-existing entries or values that are not included in the request will be deleted**. If you provide an empty array as a value, all entries will be deleted. **If you don't provide the top level keys, their values will remain as is**." } [/block] Here is the structure of a complete example: [block:code] { "codes": [ { "code": "{\n \"candidate\": {\n \"firstname\": \"Jj\",\n \"lastname\": \"Botha\",\n \"headline\": \"Professional Administration Manager\",\n \"summary\": \"A focussed, results-driven team player with many year experience in the field. Working my way up to management level, I have experience of every aspect of this role. I understand the challenges it brings, and have a proven track record of providing solutions.\",\n \"address\": \"25772 Gustave Shore, Iowa, USA\",\n \"phone\": \"1-859-557-6573\",\n \"email\": \"jj_botha@fakemail.com\",\n \"cover_letter\": \"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.\",\n\n \"resume\": { \"name\": \"jjBotha.rtf\", data: \"SGVsbG8h\" },\n \"image\": { \"name\": \"me.jpg\", data: \"SGVsbG8h\" },\n \n \"education_entries\": [\n { \"degree\": \"MBA\", \"school\": \"University of Pennsylvania\", \"field_of_study\": null, \"start_date\": \"2008-03-01\", \"end_date\": \"2011-03-30\" },\n { \"degree\": \"B.S.\", \"school\": \"University of Chicago\", \"field_of_study\": \"Marketing Communication & Economics\", \"start_date\": \"2004-09-01\", \"end_date\": \"2007-03-30\" }\n ],\n\n \"experience_entries\": [\n {\n \"title\": \"Sales Director\",\n \"summary\": null,\n \"start_date\": \"2011-03-01\",\n \"end_date\": \"2014-03-30\",\n \"current\": false,\n \"company\": \"Vox Mobile\",\n \"industry\": \"Telecommunications\"\n }\n ],\n\n \"tags\": [ \"globetrotter\", \"adventurer\" ],\n \n \"skills\": [ \"Travel Planning\", \"Problem Solving\"],\n \"social_profiles\": [\n {\n \"type\": \"twitter\",\n \"name\": \"Twitter\",\n \"username\": \"jj_botha\",\n \"url\": \"http://www.twitter.com/jj_botha\"\n },\n {\n \"type\": \"linkedin\",\n \"name\": \"LinkedIn\",\n \"url\": \"http://www.linkedin.com/in/jj_botha\"\n },\n {\n \"type\": \"googleplus\",\n \"url\": \"https://plus.google.com/6908286706342698\"\n }\n ]\n }\n}\n", "language": "json" } ] } [/block] [block:api-header] { "type": "basic", "title": "How can I update the candidate’s resume along with the candidate information?" } [/block] You can update the candidate’s resume in `.pdf`, `.doc`, `.docx`, `.rtf` format. The API accepts one of the following: [block:parameters] { "data": { "h-0": "key", "h-1": "type", "h-2": "description", "0-0": "resume_url", "0-1": "`string`", "0-2": "a url pointing to the candidate’s resume" }, "cols": 3, "rows": 1 } [/block] Alternatively, you can post the resume encoded in base64 by including a 'resume' key with an object as a value, that has the following keys: [block:parameters] { "data": { "h-0": "key", "h-1": "type", "h-2": "description", "0-0": "name", "0-1": "`string`", "1-0": "data", "1-1": "`string`", "0-2": "the candidate’s resume name", "1-2": "the candidate’s resume encoded in base64" }, "cols": 3, "rows": 2 } [/block] Here is an example including a resume encoded in base64 format: [block:code] { "codes": [ { "code": "{\n \"candidate\": {\n \"name\": \"Jj Botha\",\n \"firstname\": \"Jj\",\n \"lastname\": \"Botha\",\n \"headline\": \"Professional Administration Manager\",\n \"summary\": \"A focussed, results-driven team player with many year experience in the field. Working my way up to management level, I have experience of every aspect of this role. I understand the challenges it brings, and have a proven track record of providing solutions.\",\n \"address\": \"25772 Gustave Shore, Iowa, USA\",\n \"phone\": \"1-859-557-6573\",\n \"email\": \"jj_botha@fakemail.com\",\n \"resume\": {\n \"name\": \"jj_botha.doc\",\n \"data\": \"6622116356e175ed0394b0d==\"\n }\n }\n}", "language": "json" } ] } [/block] [block:api-header] { "type": "basic", "title": "How can I update the candidate’s image along with the candidate information?" } [/block] [block:parameters] { "data": { "h-0": "key", "h-1": "type", "h-2": "description", "0-0": "image_url", "0-1": "`string`", "0-2": "a url pointing to the candidate's image", "1-0": "image_source", "1-1": "`string`", "1-2": "If the image is not provided by the candidate (e.g. collected from a social network profile), you can also send the image_source. It can be one of the following types: `academiaedu`, `angellist`, `behance`, `bitbucket`, `blogger`, `crunchbase`, `dandyid`, `delicious`, `deviantart`, `digg`, `doyoubuzz`, `dribble`, `dribbble`, `econsultancy`, `facebook`, `flavorsme`, `flickr`, `fullcontact`, `getglue`, `gist`, `github`, `goodreads`, `googleplus`, `gravatar`, `hackernews`, `hiim`, `klout`, `lanyrd`, `linkedin`, `myspace`, `ohloh`, `orkut`, `pinterest`, `quora`, `reddit`, `scribd`, `skype`, `slideshare`, `stackexchange`, `stackoverflow`, `tumblr`, `twitter`, `typepad`, `vk`, `wordpress`, `xing`" }, "cols": 3, "rows": 2 } [/block] or alternatively [block:parameters] { "data": { "h-0": "key", "h-1": "type", "h-2": "description", "0-0": "image/name", "0-1": "`string`", "0-2": "the candidate's image name", "1-0": "image/data", "1-1": "`string`", "1-2": "the candidate's image encoded in base64", "2-0": "image/source", "2-1": "`string`", "2-2": "The source of the candidate's image" }, "cols": 3, "rows": 3 } [/block] [block:api-header] { "type": "basic", "title": "How can I update the candidate’s education?" } [/block] [block:callout] { "type": "danger", "title": "Attention!", "body": "This works like a `PUT` request; i.e. the end result will match exactly your input. **Any pre-existing entries or values that are not included in the request will be deleted**." } [/block] Candidate’s education is a list of entries. To update an entry you *must* use the id. Each entry may contain the following fields: [block:parameters] { "data": { "h-0": "key", "h-1": "type", "h-2": "description", "0-0": "id (optional)", "0-1": "`string`", "0-2": "The education id. If it is provided, the corresponding education entry will be updated. If not, a new entry will be created.", "2-0": "degree", "2-1": "`string`", "2-2": "The candidate's degree", "3-0": "field_of_study", "3-1": "`string`", "3-2": "The candidate's field of study", "4-0": "start_date", "4-1": "`string`", "4-2": "In ISO 8601 format (YYYY-MM-DD)", "5-0": "end_date", "5-1": "`string`", "5-2": "In ISO 8601 format (YYYY-MM-DD)", "1-0": "school (required)", "1-1": "`string`", "1-2": "The candidate's school" }, "cols": 3, "rows": 6 } [/block] [block:api-header] { "type": "basic", "title": "How can I update the candidate’s experience?" } [/block] [block:callout] { "type": "danger", "body": "This works like a `PUT` request; i.e. the end result will match exactly your input. **Any pre-existing entries or values that are not included in the request will be deleted**.", "title": "Important!" } [/block] Candidate’s experience is a list of entries. To update an entry you *must* use the id key. Each entry may contain the following fields: [block:parameters] { "data": { "h-0": "key", "h-1": "type", "h-2": "description", "2-0": "summary", "2-1": "`string`", "2-2": "A summary of the candidate's experience", "3-0": "company", "3-1": "`string`", "3-2": "The candidate's company", "4-0": "industry", "4-1": "`string`", "4-2": "The candidate's working industry", "5-0": "start_date", "5-1": "`string`", "5-2": "In ISO 8601 format (YYYY-MM-DD)", "6-0": "end_date", "6-1": "`string`", "6-2": "In ISO 8601 format (YYYY-MM-DD)", "7-0": "current", "7-1": "`boolean`", "7-2": "True if candidate still works there", "0-0": "id (optional)", "0-1": "`string`", "0-2": "The experience id. If it is provided the corresponding experience entry will be updated. If not, a new entry will be created.", "1-0": "title (required)", "1-1": "`string`", "1-2": "The candidate's title" }, "cols": 3, "rows": 8 } [/block] [block:api-header] { "type": "basic", "title": "Can I also update the candidate's social profiles?" } [/block] [block:callout] { "type": "danger", "title": "Attention!", "body": "This works like a `PUT` request; i.e. the end result will match exactly your input. **Any pre-existing entries or values that are not included in the request will be deleted**." } [/block] Yes, you can provide social profiles by including the ‘social_profiles’ section: [block:code] { "codes": [ { "code": "{\n \"candidate\":{\n \"name\":\"John Doe\",\n \"email\":\"john.doe@samplemail.com\",\n \"headline\":\"Superhero developer\",\n \"summary\":\"\",\n \"address\":\"\",\n \"phone\":\"\",\n\n ....\n\n \"social_profiles\":[\n {\n \"type\":\"twitter\",\n \"username\":\"Workable\",\n \"url\":\"https://twitter.com/workable\" \n }\n ]\n\n ....\n\n}", "language": "json" } ] } [/block] ‘social_profiles’ is a list of social profiles, and you can provide one social profile url for each social network type. Each entry contains the following fields: [block:parameters] { "data": { "h-0": "key", "h-1": "type", "h-2": "description", "0-0": "type (required)", "0-1": "`string`", "0-2": "One of the following types: `academiaedu`, `angellist`, `behance`, `bitbucket`, `blogger`, `crunchbase`, `dandyid`, `delicious`, `deviantart`, `digg`, `doyoubuzz`, `dribble`, `dribbble`, `econsultancy`, `facebook`, `flavorsme`, `flickr`, `fullcontact`, `getglue`, `gist`, `github`, `goodreads`, `googleplus`, `gravatar`, `hackernews`, `hiim`, `klout`, `lanyrd`, `linkedin`, `myspace`, `ohloh`, `orkut`, `pinterest`, `quora`, `reddit`, `scribd`, `skype`, `slideshare`, `stackexchange`, `stackoverflow`, `tumblr`, `twitter`, `typepad`, `vk`, `wordpress`, `xing`", "1-0": "username", "1-1": "`string`", "1-2": "The candidate's username", "2-0": "url (required)", "2-1": "`string`", "2-2": "The candidate's URL" }, "cols": 3, "rows": 3 } [/block]
{"_id":"5873b5a8a90f73230023e2dc","isReference":false,"link_external":false,"title":"/candidates/:id/activities","updates":[],"user":"55111100318f8c170023787a","slug":"candidate-activities","sync_unique":"","api":{"results":{"codes":[{"status":200,"language":"json","code":"{\n  \"activities\": [\n    {\n      \"action\": \"applied\",\n      \"stage_name\": \"Applied\",\n      \"created_at\": \"2016-09-29T00:00:00.000Z\",\n      \"body\": null\n    },\n    {\n      \"action\": \"comment\",\n      \"stage_name\": null,\n      \"created_at\": \"2016-10-01T00:00:00.000Z\",\n      \"member\": {\n        \"id\": \"13e0eb0e\",\n        \"name\": \"Eduardo Vallente\"\n      },\n      \"body\": \"Sure, looks very promising. Let’s schedule a phone interview\"\n    },\n    {\n      \"action\": \"phone-screen\",\n      \"stage_name\": \"Phone Screen\",\n      \"created_at\": \"2016-10-02T00:00:00.000Z\",\n      \"member\": {\n        \"id\": \"3f8918be\",\n        \"name\": \"Natalie Sung\"\n      },\n      \"body\": null\n    },\n    {\n      \"action\": \"message\",\n      \"stage_name\": null,\n      \"created_at\": \"2016-10-03T00:00:00.000Z\",\n      \"body\": \"<p>Hi, Natalie</p>\\n<p>Thank you for your email. It would be great to speak to you and I am available any time this week for a call at your convenience.<p>\\n<p>Many, thanks,</p>\\nSteve Parks\\n\"\n    },\n    {\n      \"action\": \"event\",\n      \"stage_name\": null,\n      \"created_at\": \"2016-10-03T01:00:00.000Z\",\n      \"member\": {\n        \"id\": \"3f8918be\",\n        \"name\": \"Natalie Sung\"\n      },\n      \"body\": null\n    }\n  ]\n}","name":""},{"language":"json","code":"{\n  \"error\":\"Not found\"\n}","status":404},{"status":401,"code":"{\n  \"error\":\"Not authorized\"\n}","language":"json"}]},"settings":"58739d5a3af3bc0f003ef40a","url":"/candidates/:id/activities","auth":"required","examples":{"codes":[{"language":"curl","code":"curl \t-H \"Content-Type: application/json\" \\\n\t\t\t-H \"Authorization:Bearer <Access Token>\" \\\n      https://<subdomain>.workable.com/spi/v3/candidates/<id>/activities"}]},"method":"get","params":[{"desc":"The account's subdomain","default":"","type":"string","name":"subdomain","_id":"559e34888371c50d0052f06e","ref":"","in":"path","required":true},{"_id":"559e7cc9be7abc0d00507f05","ref":"","in":"path","required":true,"desc":"The candidate's id","default":"","type":"string","name":"id"},{"name":"limit","_id":"587cf36080491d190042ae56","ref":"","in":"query","required":false,"desc":"Specifies the number of members to try and retrieve per page (optional)","default":"50","type":"int"},{"required":false,"type":"string","_id":"587cf36080491d190042ae55","default":"","desc":"Returns results with an ID greater than or equal to the specified ID. (optional)","in":"query","name":"since_id","ref":""},{"desc":"Returns results with an ID less than or equal to the specified ID. (optional)","default":"","type":"string","name":"max_id","_id":"587cf36080491d190042ae54","ref":"","in":"query","required":false}]},"body":"[block:api-header]\n{\n  \"type\": \"basic\",\n  \"title\": \"Results\"\n}\n[/block]\nCalling the `/candidates/:id/activities` endpoint returns a JSON array of the candidate's activities.\n[block:parameters]\n{\n  \"data\": {\n    \"h-0\": \"key\",\n    \"h-1\": \"description\",\n    \"h-2\": \"description\",\n    \"0-0\": \"activities\",\n    \"0-1\": \"array of activities\"\n  },\n  \"cols\": 2,\n  \"rows\": 1\n}\n[/block]\nEach activity has the following keys:\n[block:parameters]\n{\n  \"data\": {\n    \"h-0\": \"key\",\n    \"h-1\": \"type\",\n    \"h-2\": \"description\",\n    \"0-0\": \"action\",\n    \"0-1\": \"`string`\",\n    \"0-2\": \"The action/type of the activity\",\n    \"1-0\": \"stage_name\",\n    \"1-1\": \"`string`\",\n    \"1-2\": \"The stage the candidate was in when the activity was created (if applicable)\",\n    \"2-0\": \"created_at\",\n    \"2-1\": \"`string`\",\n    \"2-2\": \"The creation timestamp of the activity\",\n    \"3-0\": \"member\",\n    \"3-1\": \"`object`\",\n    \"3-2\": \"The member that created the activity (if applicable), contains id and name of the member\",\n    \"4-0\": \"body\",\n    \"4-1\": \"`string`\",\n    \"4-2\": \"The body of the activity, available if action is `comment`, `rating`, `message` or `disqualification`\"\n  },\n  \"cols\": 3,\n  \"rows\": 5\n}\n[/block]","link_url":"","next":{"pages":[],"description":""},"parentDoc":null,"project":"551111444878730d00220ecb","type":"get","version":"587395fe11b3ec1900d3b6db","order":14,"__v":1,"category":"587395fe11b3ec1900d3b6dd","createdAt":"2017-01-09T16:09:12.854Z","excerpt":"Returns the activity stream of the given candidate","githubsync":"","hidden":false,"childrenPages":[]}

get/candidates/:id/activities

Returns the activity stream of the given candidate

Path Params

subdomain:
required
string
The account's subdomain
id:
required
string
The candidate's id

Query Params

limit:
integer50
Specifies the number of members to try and retrieve per page (optional)
since_id:
string
Returns results with an ID greater than or equal to the specified ID. (optional)
max_id:
string
Returns results with an ID less than or equal to the specified ID. (optional)
[block:api-header] { "type": "basic", "title": "Results" } [/block] Calling the `/candidates/:id/activities` endpoint returns a JSON array of the candidate's activities. [block:parameters] { "data": { "h-0": "key", "h-1": "description", "h-2": "description", "0-0": "activities", "0-1": "array of activities" }, "cols": 2, "rows": 1 } [/block] Each activity has the following keys: [block:parameters] { "data": { "h-0": "key", "h-1": "type", "h-2": "description", "0-0": "action", "0-1": "`string`", "0-2": "The action/type of the activity", "1-0": "stage_name", "1-1": "`string`", "1-2": "The stage the candidate was in when the activity was created (if applicable)", "2-0": "created_at", "2-1": "`string`", "2-2": "The creation timestamp of the activity", "3-0": "member", "3-1": "`object`", "3-2": "The member that created the activity (if applicable), contains id and name of the member", "4-0": "body", "4-1": "`string`", "4-2": "The body of the activity, available if action is `comment`, `rating`, `message` or `disqualification`" }, "cols": 3, "rows": 5 } [/block]

User Information

Try It Out

get
{{ tryResults.results }}
Method{{ tryResults.method }}
Request Headers
{{ tryResults.requestHeaders }}
URL{{ tryResults.url }}
Request Data
{{ tryResults.data }}
Status
Response Headers
{{ tryResults.responseHeaders }}

Definition

{{ api_url }}{{ page_api_url }}

Examples


Result Format



[block:api-header] { "type": "basic", "title": "Results" } [/block] Calling the `/candidates/:id/activities` endpoint returns a JSON array of the candidate's activities. [block:parameters] { "data": { "h-0": "key", "h-1": "description", "h-2": "description", "0-0": "activities", "0-1": "array of activities" }, "cols": 2, "rows": 1 } [/block] Each activity has the following keys: [block:parameters] { "data": { "h-0": "key", "h-1": "type", "h-2": "description", "0-0": "action", "0-1": "`string`", "0-2": "The action/type of the activity", "1-0": "stage_name", "1-1": "`string`", "1-2": "The stage the candidate was in when the activity was created (if applicable)", "2-0": "created_at", "2-1": "`string`", "2-2": "The creation timestamp of the activity", "3-0": "member", "3-1": "`object`", "3-2": "The member that created the activity (if applicable), contains id and name of the member", "4-0": "body", "4-1": "`string`", "4-2": "The body of the activity, available if action is `comment`, `rating`, `message` or `disqualification`" }, "cols": 3, "rows": 5 } [/block]
{"_id":"5873c19b0953ef19007342cc","parentDoc":null,"project":"551111444878730d00220ecb","slug":"comment-on-candidate","type":"post","version":"587395fe11b3ec1900d3b6db","user":"55111100318f8c170023787a","__v":4,"api":{"method":"post","params":[{"_id":"559e7d1fc713ef0d00028260","ref":"","in":"path","required":true,"desc":"The account's subdomain","default":"","type":"string","name":"subdomain"},{"_id":"5873c1d29cd5c725004f672d","ref":"","in":"path","required":true,"desc":"The candidate's id","default":"","type":"string","name":"id"},{"_id":"5873c4f6656cf42500c60d45","ref":"","in":"body","required":true,"desc":"","default":"","type":"string","name":"member_id"},{"_id":"5873c4f6656cf42500c60d46","ref":"","in":"body","required":true,"desc":"","default":"","type":"object","name":"comment"}],"results":{"codes":[{"name":"","code":" ","language":"text","status":201},{"language":"json","code":"{\n  \"error\": \"Not found\"\n}","status":404},{"code":"{\n  \"error\": \"Not authorized\"\n}","status":401,"language":"json"}]},"settings":"58739d5a3af3bc0f003ef40a","url":"/candidates/:id/comments","auth":"required","examples":{"codes":[{"code":"curl \t-X POST \\\n\t\t\t-H \"Content-Type: application/json\" \\\n\t\t\t-H \"Authorization:Bearer <Access Token>\" \\\n      -H 'Accept: application/json' \\\n\t\t\thttps://<subdomain>.workable.com/spi/v3/candidates/<id>/comments \\\n\t\t\t--data '{\"member_id\": \"3247e8c7\", \"comment\": {\"body\": \"He is really good\"}}'","language":"json"}]}},"category":"587395fe11b3ec1900d3b6dd","excerpt":"Creates a comment on the candidate's timeline","hidden":false,"body":"Here is a list of fields that can be provided for the comment object:\n[block:parameters]\n{\n  \"data\": {\n    \"h-0\": \"key\",\n    \"h-1\": \"type\",\n    \"h-2\": \"description\",\n    \"0-0\": \"body (required)\",\n    \"0-1\": \"`string`\",\n    \"0-2\": \"The comment's text\",\n    \"1-0\": \"policy\",\n    \"1-1\": \"`string`\",\n    \"1-2\": \"This sets the view rights of the comment. See [below](comment-on-candidate#comment-policy)\",\n    \"2-0\": \"attachment\",\n    \"2-1\": \"`object`\",\n    \"2-2\": \"This can include an attachment for the comment to be created\"\n  },\n  \"cols\": 3,\n  \"rows\": 3\n}\n[/block]\nThe attachment field should have 2 attributes:\n[block:parameters]\n{\n  \"data\": {\n    \"h-0\": \"key\",\n    \"h-1\": \"type\",\n    \"h-2\": \"description\",\n    \"0-0\": \"name (required)\",\n    \"0-1\": \"`string`\",\n    \"0-2\": \"The filename of the attachment\",\n    \"1-0\": \"data (required)\",\n    \"1-1\": \"`string`\",\n    \"1-2\": \"The payload of the attachment, encoded in base64\"\n  },\n  \"cols\": 3,\n  \"rows\": 2\n}\n[/block]\n\n[block:api-header]\n{\n  \"type\": \"basic\",\n  \"title\": \"Comment Policy\"\n}\n[/block]\nComment policy defines the visibility of the new comment. There are 3 categories for members: `simple`, `recruiter` and `admin`. The comments are always visible to admins. Depending on the values provided in this array you can have more fine grained visibility settings. The following table displays the possible outcomes:\n\n[block:parameters]\n{\n  \"data\": {\n    \"h-0\": \"Field Value\",\n    \"h-1\": \"Member\",\n    \"h-2\": \"Recruiter\",\n    \"h-3\": \"Admin\",\n    \"0-0\": \"`[]`\",\n    \"0-3\": \":fa-eye:\",\n    \"0-1\": \":fa-eye-slash:\",\n    \"0-2\": \":fa-eye-slash:\",\n    \"1-0\": \"`[\\\"simple\\\"]`\",\n    \"1-2\": \":fa-eye-slash:\",\n    \"1-3\": \":fa-eye:\",\n    \"1-1\": \":fa-eye:\",\n    \"2-0\": \"`[\\\"simple\\\", \\\"recruiter\\\"]`\",\n    \"2-1\": \":fa-eye:\",\n    \"2-2\": \":fa-eye:\",\n    \"2-3\": \":fa-eye:\"\n  },\n  \"cols\": 4,\n  \"rows\": 3\n}\n[/block]\nA complete request would be:\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"{\\n\\t\\\"member_id\\\": \\\"3247e8c7\\\",\\n  \\\"comment\\\": {\\n    \\\"body\\\": \\\"He is really good\\\",\\n    \\\"policy\\\": [\\\"recruiter\\\"],\\n    \\\"attachment\\\": {\\n      \\\"name\\\": \\\"tiny.gif\\\",\\n      \\\"data\\\": \\\"R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs=\\\"\\n    }\\n  }\\n}\",\n      \"language\": \"json\"\n    }\n  ]\n}\n[/block]","isReference":false,"link_external":false,"next":{"pages":[],"description":""},"order":15,"createdAt":"2017-01-09T17:00:11.918Z","githubsync":"","link_url":"","sync_unique":"","title":"/candidates/:id/comments","updates":[],"childrenPages":[]}

post/candidates/:id/comments

Creates a comment on the candidate's timeline

Path Params

subdomain:
required
string
The account's subdomain
id:
required
string
The candidate's id

Body Params

member_id:
required
string
comment:
required
object
Here is a list of fields that can be provided for the comment object: [block:parameters] { "data": { "h-0": "key", "h-1": "type", "h-2": "description", "0-0": "body (required)", "0-1": "`string`", "0-2": "The comment's text", "1-0": "policy", "1-1": "`string`", "1-2": "This sets the view rights of the comment. See [below](comment-on-candidate#comment-policy)", "2-0": "attachment", "2-1": "`object`", "2-2": "This can include an attachment for the comment to be created" }, "cols": 3, "rows": 3 } [/block] The attachment field should have 2 attributes: [block:parameters] { "data": { "h-0": "key", "h-1": "type", "h-2": "description", "0-0": "name (required)", "0-1": "`string`", "0-2": "The filename of the attachment", "1-0": "data (required)", "1-1": "`string`", "1-2": "The payload of the attachment, encoded in base64" }, "cols": 3, "rows": 2 } [/block] [block:api-header] { "type": "basic", "title": "Comment Policy" } [/block] Comment policy defines the visibility of the new comment. There are 3 categories for members: `simple`, `recruiter` and `admin`. The comments are always visible to admins. Depending on the values provided in this array you can have more fine grained visibility settings. The following table displays the possible outcomes: [block:parameters] { "data": { "h-0": "Field Value", "h-1": "Member", "h-2": "Recruiter", "h-3": "Admin", "0-0": "`[]`", "0-3": ":fa-eye:", "0-1": ":fa-eye-slash:", "0-2": ":fa-eye-slash:", "1-0": "`[\"simple\"]`", "1-2": ":fa-eye-slash:", "1-3": ":fa-eye:", "1-1": ":fa-eye:", "2-0": "`[\"simple\", \"recruiter\"]`", "2-1": ":fa-eye:", "2-2": ":fa-eye:", "2-3": ":fa-eye:" }, "cols": 4, "rows": 3 } [/block] A complete request would be: [block:code] { "codes": [ { "code": "{\n\t\"member_id\": \"3247e8c7\",\n \"comment\": {\n \"body\": \"He is really good\",\n \"policy\": [\"recruiter\"],\n \"attachment\": {\n \"name\": \"tiny.gif\",\n \"data\": \"R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs=\"\n }\n }\n}", "language": "json" } ] } [/block]

User Information

Try It Out

post
{{ tryResults.results }}
Method{{ tryResults.method }}
Request Headers
{{ tryResults.requestHeaders }}
URL{{ tryResults.url }}
Request Data
{{ tryResults.data }}
Status
Response Headers
{{ tryResults.responseHeaders }}

Definition

{{ api_url }}{{ page_api_url }}

Examples


Result Format



Here is a list of fields that can be provided for the comment object: [block:parameters] { "data": { "h-0": "key", "h-1": "type", "h-2": "description", "0-0": "body (required)", "0-1": "`string`", "0-2": "The comment's text", "1-0": "policy", "1-1": "`string`", "1-2": "This sets the view rights of the comment. See [below](comment-on-candidate#comment-policy)", "2-0": "attachment", "2-1": "`object`", "2-2": "This can include an attachment for the comment to be created" }, "cols": 3, "rows": 3 } [/block] The attachment field should have 2 attributes: [block:parameters] { "data": { "h-0": "key", "h-1": "type", "h-2": "description", "0-0": "name (required)", "0-1": "`string`", "0-2": "The filename of the attachment", "1-0": "data (required)", "1-1": "`string`", "1-2": "The payload of the attachment, encoded in base64" }, "cols": 3, "rows": 2 } [/block] [block:api-header] { "type": "basic", "title": "Comment Policy" } [/block] Comment policy defines the visibility of the new comment. There are 3 categories for members: `simple`, `recruiter` and `admin`. The comments are always visible to admins. Depending on the values provided in this array you can have more fine grained visibility settings. The following table displays the possible outcomes: [block:parameters] { "data": { "h-0": "Field Value", "h-1": "Member", "h-2": "Recruiter", "h-3": "Admin", "0-0": "`[]`", "0-3": ":fa-eye:", "0-1": ":fa-eye-slash:", "0-2": ":fa-eye-slash:", "1-0": "`[\"simple\"]`", "1-2": ":fa-eye-slash:", "1-3": ":fa-eye:", "1-1": ":fa-eye:", "2-0": "`[\"simple\", \"recruiter\"]`", "2-1": ":fa-eye:", "2-2": ":fa-eye:", "2-3": ":fa-eye:" }, "cols": 4, "rows": 3 } [/block] A complete request would be: [block:code] { "codes": [ { "code": "{\n\t\"member_id\": \"3247e8c7\",\n \"comment\": {\n \"body\": \"He is really good\",\n \"policy\": [\"recruiter\"],\n \"attachment\": {\n \"name\": \"tiny.gif\",\n \"data\": \"R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs=\"\n }\n }\n}", "language": "json" } ] } [/block]
{"_id":"58778cf1e1d2bd3d002a74c9","isReference":false,"link_external":false,"user":"55111100318f8c170023787a","category":"587395fe11b3ec1900d3b6dd","excerpt":"Updates candidate's tags","link_url":"","next":{"pages":[],"description":""},"order":16,"sync_unique":"","type":"put","__v":1,"hidden":false,"title":"/candidates/:id/tags","updates":[],"version":"587395fe11b3ec1900d3b6db","api":{"examples":{"codes":[{"language":"curl","code":"curl  -X PUT \\\n      -H \"Content-Type: application/json\" \\\n      -H \"Authorization:Bearer <Access Token>\" \\\n      -H 'Accept: application/json' \\\n      https://<subdomain>.workable.com/spi/v3/candidates/<id>/tags \\\n      --data '{\"tags\": [\"globetrotter\", \"adventurer\"]}'"}]},"method":"put","params":[{"desc":"The account's subdomain","default":"","type":"string","name":"subdomain","_id":"559e7d1fc713ef0d00028260","ref":"","in":"path","required":true},{"_id":"5873c1d29cd5c725004f672d","ref":"","in":"path","required":true,"desc":"The candidate's id","default":"","type":"string","name":"id"},{"name":"tags","_id":"5873c4f6656cf42500c60d45","ref":"","in":"body","required":true,"desc":"","default":"","type":"array_string"}],"results":{"codes":[{"code":"{\n  \"tags\": [\n\t\t\"globetrotter\", \n    \"adventurer\"\n  ]\n}","name":"","status":202,"language":"json"},{"code":"{\n  \"error\": \"Not found\"\n}","language":"json","status":404},{"code":"{\n  \"error\": \"Not authorized\"\n}","language":"json","status":401}]},"settings":"58739d5a3af3bc0f003ef40a","url":"/candidates/:id/tags","auth":"required"},"createdAt":"2017-01-12T14:04:33.771Z","githubsync":"","parentDoc":null,"project":"551111444878730d00220ecb","slug":"tag-candidate","body":"The tags list will be assigned to a candidate as is. If the array is empty, all tags of the candidate will be deleted.\n\nA complete request would be:\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"{\\n  \\\"tags\\\": [\\n\\t\\t\\\"globetrotter\\\", \\n    \\\"adventurer\\\"\\n  ]\\n}\",\n      \"language\": \"json\"\n    }\n  ]\n}\n[/block]","childrenPages":[]}

put/candidates/:id/tags

Updates candidate's tags

Path Params

subdomain:
required
string
The account's subdomain
id:
required
string
The candidate's id

Body Params

tags:
required
array of strings
The tags list will be assigned to a candidate as is. If the array is empty, all tags of the candidate will be deleted. A complete request would be: [block:code] { "codes": [ { "code": "{\n \"tags\": [\n\t\t\"globetrotter\", \n \"adventurer\"\n ]\n}", "language": "json" } ] } [/block]

User Information

Try It Out

put
{{ tryResults.results }}
Method{{ tryResults.method }}
Request Headers
{{ tryResults.requestHeaders }}
URL{{ tryResults.url }}
Request Data
{{ tryResults.data }}
Status
Response Headers
{{ tryResults.responseHeaders }}

Definition

{{ api_url }}{{ page_api_url }}

Examples


Result Format



The tags list will be assigned to a candidate as is. If the array is empty, all tags of the candidate will be deleted. A complete request would be: [block:code] { "codes": [ { "code": "{\n \"tags\": [\n\t\t\"globetrotter\", \n \"adventurer\"\n ]\n}", "language": "json" } ] } [/block]
{"_id":"587790b5511a4e2500f91cbd","isReference":false,"project":"551111444878730d00220ecb","updates":[],"body":"A complete request would be:\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"{ \\n  \\\"member_id\\\": \\\"13e0eb0e\\\", \\n  \\\"disqualification_reason\\\": \\\"Very tardy\\\" \\n}\",\n      \"language\": \"json\"\n    }\n  ]\n}\n[/block]","category":"587395fe11b3ec1900d3b6dd","excerpt":"Disqualifies a candidate","githubsync":"","hidden":false,"link_url":"","next":{"pages":[],"description":""},"order":17,"api":{"auth":"required","examples":{"codes":[{"code":"curl  -X POST \\\n      -H \"Content-Type: application/json\" \\\n      -H \"Authorization:Bearer <Access Token>\" \\\n      -H 'Accept: application/json' \\\n      https://<subdomain>.workable.com/spi/v3/candidates/<id>/disqualify \\\n      --data '{ \"member_id\": \"13e0eb0e\", \"disqualification_reason\": \"Very tardy\" }'","language":"curl"}]},"method":"post","params":[{"default":"","type":"string","name":"subdomain","_id":"559e7d1fc713ef0d00028260","ref":"","in":"path","required":true,"desc":"The account's subdomain"},{"in":"path","required":true,"desc":"The candidate's id","default":"","type":"string","name":"id","_id":"5873c1d29cd5c725004f672d","ref":""},{"desc":"The id of the member performing the disqualification","default":"","type":"string","name":"member_id","_id":"5873c4f6656cf42500c60d45","ref":"","in":"body","required":true},{"name":"disqualification_reason","_id":"587790b5511a4e2500f91cbe","ref":"","in":"body","required":false,"desc":"A short description of why the candidate should be disqualified","default":"","type":"string"}],"results":{"codes":[{"status":200,"language":"text","code":" ","name":""},{"code":"{\n  \"error\": \"Not found\"\n}","language":"json","status":404},{"code":"{\n  \"error\": \"Not authorized\"\n}","language":"json","status":401}]},"settings":"58739d5a3af3bc0f003ef40a","url":"/candidates/:id/disqualify"},"version":"587395fe11b3ec1900d3b6db","parentDoc":null,"slug":"disqualify-candidate","type":"post","createdAt":"2017-01-12T14:20:37.526Z","link_external":false,"title":"/candidates/:id/disqualify","user":"55111100318f8c170023787a","__v":0,"sync_unique":"","childrenPages":[]}

post/candidates/:id/disqualify

Disqualifies a candidate

Path Params

subdomain:
required
string
The account's subdomain
id:
required
string
The candidate's id

Body Params

member_id:
required
string
The id of the member performing the disqualification
disqualification_reason:
string
A short description of why the candidate should be disqualified
A complete request would be: [block:code] { "codes": [ { "code": "{ \n \"member_id\": \"13e0eb0e\", \n \"disqualification_reason\": \"Very tardy\" \n}", "language": "json" } ] } [/block]

User Information

Try It Out

post
{{ tryResults.results }}
Method{{ tryResults.method }}
Request Headers
{{ tryResults.requestHeaders }}
URL{{ tryResults.url }}
Request Data
{{ tryResults.data }}
Status
Response Headers
{{ tryResults.responseHeaders }}

Definition

{{ api_url }}{{ page_api_url }}

Examples


Result Format



A complete request would be: [block:code] { "codes": [ { "code": "{ \n \"member_id\": \"13e0eb0e\", \n \"disqualification_reason\": \"Very tardy\" \n}", "language": "json" } ] } [/block]
{"_id":"587791b6204d5439009d9f4b","isReference":false,"parentDoc":null,"user":"55111100318f8c170023787a","project":"551111444878730d00220ecb","category":"587395fe11b3ec1900d3b6dd","githubsync":"","link_external":false,"link_url":"","order":18,"title":"/candidates/:id/revert","type":"post","updates":[],"__v":0,"api":{"auth":"required","examples":{"codes":[{"language":"curl","code":"curl  -X POST \\\n      -H \"Content-Type: application/json\" \\\n      -H \"Authorization:Bearer <Access Token>\" \\\n      -H 'Accept: application/json' \\\n      https://<subdomain>.workable.com/spi/v3/candidates/<id>/revert \\\n      --data '{ \"member_id\": \"13e0eb0e\" }'"}]},"method":"post","params":[{"desc":"The account's subdomain","default":"","type":"string","name":"subdomain","_id":"559e7d1fc713ef0d00028260","ref":"","in":"path","required":true},{"name":"id","_id":"5873c1d29cd5c725004f672d","ref":"","in":"path","required":true,"desc":"The candidate's id","default":"","type":"string"},{"default":"","desc":"The id of the member reverting the disqualification","in":"body","name":"member_id","ref":"","required":true,"type":"string","_id":"5873c4f6656cf42500c60d45"}],"results":{"codes":[{"status":200,"language":"text","code":" ","name":""},{"code":"{\n  \"error\": \"Not found\"\n}","language":"json","status":404},{"code":"{\n  \"error\": \"Not authorized\"\n}","language":"json","status":401}]},"settings":"58739d5a3af3bc0f003ef40a","url":"/candidates/:id/revert"},"createdAt":"2017-01-12T14:24:54.490Z","hidden":false,"next":{"pages":[],"description":""},"version":"587395fe11b3ec1900d3b6db","body":"A complete request would be:\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"{ \\n  \\\"member_id\\\": \\\"13e0eb0e\\\"\\n}\",\n      \"language\": \"json\"\n    }\n  ]\n}\n[/block]","excerpt":"Reverts a candidate's disqualification","slug":"revert-disqualification-candidate","sync_unique":"","childrenPages":[]}

post/candidates/:id/revert

Reverts a candidate's disqualification

Path Params

subdomain:
required
string
The account's subdomain
id:
required
string
The candidate's id

Body Params

member_id:
required
string
The id of the member reverting the disqualification
A complete request would be: [block:code] { "codes": [ { "code": "{ \n \"member_id\": \"13e0eb0e\"\n}", "language": "json" } ] } [/block]

User Information

Try It Out

post
{{ tryResults.results }}
Method{{ tryResults.method }}
Request Headers
{{ tryResults.requestHeaders }}
URL{{ tryResults.url }}
Request Data
{{ tryResults.data }}
Status
Response Headers
{{ tryResults.responseHeaders }}

Definition

{{ api_url }}{{ page_api_url }}

Examples


Result Format



A complete request would be: [block:code] { "codes": [ { "code": "{ \n \"member_id\": \"13e0eb0e\"\n}", "language": "json" } ] } [/block]
{"_id":"58779371204d5439009d9f51","api":{"auth":"required","examples":{"codes":[{"code":"curl  -X POST \\\n      -H \"Content-Type: application/json\" \\\n      -H \"Authorization:Bearer <Access Token>\" \\\n      -H 'Accept: application/json' \\\n      https://<subdomain>.workable.com/spi/v3/candidates/<id>/copy \\\n      --data '{ \"member_id\": \"13e0eb0e\", \"target_job_shortcode\": \"GROOV005\", \"target_stage\": \"applied\" }'","language":"curl"}]},"method":"post","params":[{"name":"subdomain","_id":"559e7d1fc713ef0d00028260","ref":"","in":"path","required":true,"desc":"The account's subdomain","default":"","type":"string"},{"ref":"","in":"path","required":true,"desc":"The candidate's id","default":"","type":"string","name":"id","_id":"5873c1d29cd5c725004f672d"},{"in":"body","required":true,"desc":"The member perfoming the copy","default":"","type":"string","name":"member_id","_id":"5873c4f6656cf42500c60d45","ref":""},{"name":"target_job_shortcode","ref":"","required":true,"type":"string","_id":"5873c4f6656cf42500c60d46","default":"","desc":"The shortcode of the job that the candidate will be copied to","in":"body"},{"_id":"58779371204d5439009d9f52","ref":"","in":"body","required":false,"desc":"The stage the candidate should be copied to","default":"","type":"string","name":"target_stage"}],"results":{"codes":[{"name":"","code":"{\n  \"candidate\": {\n    \"id\": \"3fc9a80e\",\n    \"url\": \"https://groove-tech.workable.com/spi/v3/candidates/3fc9a80e\"\n  }\n}","language":"json","status":201},{"language":"json","code":"{\n  \"error\": \"Not found\"\n}","status":404},{"code":"{\n  \"error\": \"Not authorized\"\n}","status":401,"language":"json"}]},"settings":"58739d5a3af3bc0f003ef40a","url":"/candidates/:id/copy"},"next":{"pages":[],"description":""},"title":"/candidates/:id/copy","link_url":"","sync_unique":"","githubsync":"","link_external":false,"isReference":false,"project":"551111444878730d00220ecb","slug":"copy-candidate","type":"post","version":"587395fe11b3ec1900d3b6db","body":"[block:callout]\n{\n  \"type\": \"info\",\n  \"title\": \"Want to retrieve the created candidate?\",\n  \"body\": \"This endpoint creates a new candidate on the specified job and stage. To get the new candidate, follow the URL from the body of the response.\"\n}\n[/block]\nA complete request would be:\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"{ \\n  \\\"member_id\\\": \\\"13e0eb0e\\\", \\n  \\\"target_job_shortcode\\\": \\\"GROOV005\\\", \\n  \\\"target_stage\\\": \\\"applied\\\" \\n}\",\n      \"language\": \"json\"\n    }\n  ]\n}\n[/block]","category":"587395fe11b3ec1900d3b6dd","excerpt":"Copies a candidate to another job","order":19,"parentDoc":null,"updates":[],"user":"55111100318f8c170023787a","__v":0,"createdAt":"2017-01-12T14:32:17.126Z","hidden":false,"childrenPages":[]}

post/candidates/:id/copy

Copies a candidate to another job

Path Params

subdomain:
required
string
The account's subdomain
id:
required
string
The candidate's id

Body Params

member_id:
required
string
The member perfoming the copy
target_job_shortcode:
required
string
The shortcode of the job that the candidate will be copied to
target_stage:
string
The stage the candidate should be copied to
[block:callout] { "type": "info", "title": "Want to retrieve the created candidate?", "body": "This endpoint creates a new candidate on the specified job and stage. To get the new candidate, follow the URL from the body of the response." } [/block] A complete request would be: [block:code] { "codes": [ { "code": "{ \n \"member_id\": \"13e0eb0e\", \n \"target_job_shortcode\": \"GROOV005\", \n \"target_stage\": \"applied\" \n}", "language": "json" } ] } [/block]

User Information

Try It Out

post
{{ tryResults.results }}
Method{{ tryResults.method }}
Request Headers
{{ tryResults.requestHeaders }}
URL{{ tryResults.url }}
Request Data
{{ tryResults.data }}
Status
Response Headers
{{ tryResults.responseHeaders }}

Definition

{{ api_url }}{{ page_api_url }}

Examples


Result Format



[block:callout] { "type": "info", "title": "Want to retrieve the created candidate?", "body": "This endpoint creates a new candidate on the specified job and stage. To get the new candidate, follow the URL from the body of the response." } [/block] A complete request would be: [block:code] { "codes": [ { "code": "{ \n \"member_id\": \"13e0eb0e\", \n \"target_job_shortcode\": \"GROOV005\", \n \"target_stage\": \"applied\" \n}", "language": "json" } ] } [/block]
{"_id":"587793b1511a4e2500f91cd0","isReference":false,"sync_unique":"","title":"/candidates/:id/relocate","updates":[],"parentDoc":null,"__v":0,"githubsync":"","link_url":"","next":{"pages":[],"description":""},"order":20,"createdAt":"2017-01-12T14:33:21.021Z","user":"55111100318f8c170023787a","link_external":false,"project":"551111444878730d00220ecb","slug":"relocate-candidates","api":{"url":"/candidates/:id/reloacate","auth":"required","examples":{"codes":[{"code":"curl  -X POST \\\n      -H \"Content-Type: application/json\" \\\n      -H \"Authorization:Bearer <Access Token>\" \\\n      -H 'Accept: application/json' \\\n      https://<subdomain>.workable.com/spi/v3/candidates/<id>/relocate \\\n      --data '{ \"member_id\": \"13e0eb0e\", \"target_job_shortcode\": \"GROOV005\", \"target_stage\": \"applied\" }'","language":"curl"}]},"method":"post","params":[{"required":true,"desc":"The account's subdomain","default":"","type":"string","name":"subdomain","_id":"559e7d1fc713ef0d00028260","ref":"","in":"path"},{"type":"string","name":"id","_id":"5873c1d29cd5c725004f672d","ref":"","in":"path","required":true,"desc":"The candidate's id","default":""},{"required":true,"desc":"The member perfoming the relocation","default":"","type":"string","name":"member_id","_id":"5873c4f6656cf42500c60d45","ref":"","in":"body"},{"default":"","desc":"The shortcode of the job that the candidate will be moved to","in":"body","name":"target_job_shortcode","ref":"","required":true,"type":"string","_id":"5873c4f6656cf42500c60d46"},{"in":"body","required":false,"desc":"The stage the candidate should be moved to","default":"","type":"string","name":"target_stage","_id":"58779371204d5439009d9f52","ref":""}],"results":{"codes":[{"name":"","code":"{\n  \"candidate\": {\n    \"id\": \"3fc9a80f\",\n    \"url\": \"https://groove-tech.workable.com/spi/v3/candidates/3fc9a80f\"\n  }\n}","language":"json","status":201},{"status":404,"language":"json","code":"{\n  \"error\": \"Not found\"\n}"},{"status":401,"language":"json","code":"{\n  \"error\": \"Not authorized\"\n}"}]},"settings":"58739d5a3af3bc0f003ef40a"},"body":"[block:callout]\n{\n  \"type\": \"danger\",\n  \"title\": \"Copy vs Relocate\",\n  \"body\": \"The only difference between these two endpoints is that the Copy method preserves the source candidate while the Relocate method deletes it.\"\n}\n[/block]\n\n[block:callout]\n{\n  \"type\": \"info\",\n  \"title\": \"Want to retrieve the created candidate?\",\n  \"body\": \"This endpoint creates a new candidate on the specified job and stage. To get the new candidate follow the URL from the body of the response.\"\n}\n[/block]\nA complete request would be\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"{ \\n  \\\"member_id\\\": \\\"13e0eb0e\\\", \\n  \\\"target_job_shortcode\\\": \\\"GROOV005\\\", \\n  \\\"target_stage\\\": \\\"applied\\\" \\n}\",\n      \"language\": \"json\"\n    }\n  ]\n}\n[/block]","category":"587395fe11b3ec1900d3b6dd","excerpt":"Moves a candidate to another job","hidden":false,"type":"post","version":"587395fe11b3ec1900d3b6db","childrenPages":[]}

post/candidates/:id/relocate

Moves a candidate to another job

Path Params

subdomain:
required
string
The account's subdomain
id:
required
string
The candidate's id

Body Params

member_id:
required
string
The member perfoming the relocation
target_job_shortcode:
required
string
The shortcode of the job that the candidate will be moved to
target_stage:
string
The stage the candidate should be moved to
[block:callout] { "type": "danger", "title": "Copy vs Relocate", "body": "The only difference between these two endpoints is that the Copy method preserves the source candidate while the Relocate method deletes it." } [/block] [block:callout] { "type": "info", "title": "Want to retrieve the created candidate?", "body": "This endpoint creates a new candidate on the specified job and stage. To get the new candidate follow the URL from the body of the response." } [/block] A complete request would be [block:code] { "codes": [ { "code": "{ \n \"member_id\": \"13e0eb0e\", \n \"target_job_shortcode\": \"GROOV005\", \n \"target_stage\": \"applied\" \n}", "language": "json" } ] } [/block]

User Information

Try It Out

post
{{ tryResults.results }}
Method{{ tryResults.method }}
Request Headers
{{ tryResults.requestHeaders }}
URL{{ tryResults.url }}
Request Data
{{ tryResults.data }}
Status
Response Headers
{{ tryResults.responseHeaders }}

Definition

{{ api_url }}{{ page_api_url }}

Examples


Result Format



[block:callout] { "type": "danger", "title": "Copy vs Relocate", "body": "The only difference between these two endpoints is that the Copy method preserves the source candidate while the Relocate method deletes it." } [/block] [block:callout] { "type": "info", "title": "Want to retrieve the created candidate?", "body": "This endpoint creates a new candidate on the specified job and stage. To get the new candidate follow the URL from the body of the response." } [/block] A complete request would be [block:code] { "codes": [ { "code": "{ \n \"member_id\": \"13e0eb0e\", \n \"target_job_shortcode\": \"GROOV005\", \n \"target_stage\": \"applied\" \n}", "language": "json" } ] } [/block]
{"_id":"587794c9204d5439009d9f59","sync_unique":"","version":"587395fe11b3ec1900d3b6db","category":"587395fe11b3ec1900d3b6dd","hidden":false,"isReference":false,"link_url":"","next":{"pages":[],"description":""},"createdAt":"2017-01-12T14:38:01.707Z","githubsync":"","link_external":false,"project":"551111444878730d00220ecb","slug":"move-candidate","title":"/candidates/:id/move","__v":0,"excerpt":"Moves the candidate to another stage","parentDoc":null,"api":{"auth":"required","examples":{"codes":[{"language":"curl","code":"curl  -X POST \\\n      -H \"Content-Type: application/json\" \\\n      -H \"Authorization:Bearer <Access Token>\" \\\n      -H 'Accept: application/json' \\\n      https://<subdomain>.workable.com/spi/v3/candidates/<id>/move \\\n      --data '{ \"member_id\": \"13e0eb0e\", \"target_stage\": \"applied\" }'"}]},"method":"post","params":[{"_id":"559e7d1fc713ef0d00028260","ref":"","in":"path","required":true,"desc":"The account's subdomain","default":"","type":"string","name":"subdomain"},{"_id":"5873c1d29cd5c725004f672d","ref":"","in":"path","required":true,"desc":"The candidate's id","default":"","type":"string","name":"id"},{"_id":"5873c4f6656cf42500c60d45","default":"","desc":"The member perfoming the move","in":"body","name":"member_id","ref":"","required":true,"type":"string"},{"_id":"58779371204d5439009d9f52","ref":"","in":"body","required":false,"desc":"The stage the candidate should be moved to","default":"","type":"string","name":"target_stage"}],"results":{"codes":[{"name":"","code":" ","language":"text","status":202},{"status":404,"language":"json","code":"{\n  \"error\": \"Not found\"\n}"},{"status":401,"language":"json","code":"{\n  \"error\": \"Not authorized\"\n}"}]},"settings":"58739d5a3af3bc0f003ef40a","url":"/candidates/:id/move"},"body":"A complete request would be:\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"{ \\n  \\\"member_id\\\": \\\"13e0eb0e\\\",  \\n  \\\"target_stage\\\": \\\"applied\\\" \\n}\",\n      \"language\": \"json\"\n    }\n  ]\n}\n[/block]","order":21,"type":"post","updates":[],"user":"55111100318f8c170023787a","childrenPages":[]}

post/candidates/:id/move

Moves the candidate to another stage

Path Params

subdomain:
required
string
The account's subdomain
id:
required
string
The candidate's id

Body Params

member_id:
required
string
The member perfoming the move
target_stage:
string
The stage the candidate should be moved to
A complete request would be: [block:code] { "codes": [ { "code": "{ \n \"member_id\": \"13e0eb0e\", \n \"target_stage\": \"applied\" \n}", "language": "json" } ] } [/block]

User Information

Try It Out

post
{{ tryResults.results }}
Method{{ tryResults.method }}
Request Headers
{{ tryResults.requestHeaders }}
URL{{ tryResults.url }}
Request Data
{{ tryResults.data }}
Status
Response Headers
{{ tryResults.responseHeaders }}

Definition

{{ api_url }}{{ page_api_url }}

Examples


Result Format



A complete request would be: [block:code] { "codes": [ { "code": "{ \n \"member_id\": \"13e0eb0e\", \n \"target_stage\": \"applied\" \n}", "language": "json" } ] } [/block]
{"_id":"58779535204d5439009d9f5c","isReference":false,"link_external":false,"link_url":"","title":"/candidates/:id/ratings","version":"587395fe11b3ec1900d3b6db","githubsync":"","parentDoc":null,"sync_unique":"","body":"A complete request would be:\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"{ \\n  \\\"member_id\\\": \\\"13e0eb0e\\\", \\n  \\\"comment\\\": \\\"Good, I guess\\\", \\n  \\\"score\\\": \\\"positive\\\" \\n}\",\n      \"language\": \"json\"\n    }\n  ]\n}\n[/block]","excerpt":"Creates a rating for a candidate","next":{"pages":[],"description":""},"type":"post","updates":[],"user":"55111100318f8c170023787a","category":"587395fe11b3ec1900d3b6dd","api":{"method":"post","params":[{"required":true,"desc":"The account's subdomain","default":"","type":"string","name":"subdomain","_id":"559e7d1fc713ef0d00028260","ref":"","in":"path"},{"ref":"","in":"path","required":true,"desc":"The candidate's id","default":"","type":"string","name":"id","_id":"5873c1d29cd5c725004f672d"},{"desc":"The member adding the rating","in":"body","name":"member_id","ref":"","required":true,"type":"string","_id":"5873c4f6656cf42500c60d45","default":""},{"desc":"A comment about the scoring of the candidate","default":"","type":"string","name":"comment","_id":"58779371204d5439009d9f52","ref":"","in":"body","required":false},{"_id":"5877969eb8e8fb1900608f2a","ref":"","in":"body","required":false,"desc":"One of `negative`, `positive` or `definitely`","default":"","type":"string","name":"score"}],"results":{"codes":[{"name":"","code":" ","language":"text","status":201},{"language":"json","code":"{\n  \"error\": \"Not found\"\n}","status":404},{"status":401,"language":"json","code":"{\n  \"error\": \"Not authorized\"\n}"}]},"settings":"58739d5a3af3bc0f003ef40a","url":"/candidates/:id/ratings","auth":"required","examples":{"codes":[{"language":"curl","code":"curl \t-X POST \\\n\t\t\t-H \"Content-Type: application/json\" \\\n\t\t\t-H \"Authorization:Bearer <Access Token>\" \\\n      -H 'Accept: application/json' \\\n\t\t\thttps://<subdomain>.workable.com/spi/v3/candidates/<id>/ratings \\\n\t\t\t--data '{ \"member_id\": \"13e0eb0e\", \"comment\": \"Good I guess\", \"score\": \"positive\" }'"}]}},"createdAt":"2017-01-12T14:39:49.937Z","hidden":false,"order":22,"project":"551111444878730d00220ecb","slug":"rate-candidate","__v":1,"childrenPages":[]}

post/candidates/:id/ratings

Creates a rating for a candidate

Path Params

subdomain:
required
string
The account's subdomain
id:
required
string
The candidate's id

Body Params

member_id:
required
string
The member adding the rating
comment:
string
A comment about the scoring of the candidate
score:
string
One of `negative`, `positive` or `definitely`
A complete request would be: [block:code] { "codes": [ { "code": "{ \n \"member_id\": \"13e0eb0e\", \n \"comment\": \"Good, I guess\", \n \"score\": \"positive\" \n}", "language": "json" } ] } [/block]

User Information

Try It Out

post
{{ tryResults.results }}
Method{{ tryResults.method }}
Request Headers
{{ tryResults.requestHeaders }}
URL{{ tryResults.url }}
Request Data
{{ tryResults.data }}
Status
Response Headers
{{ tryResults.responseHeaders }}

Definition

{{ api_url }}{{ page_api_url }}

Examples


Result Format



A complete request would be: [block:code] { "codes": [ { "code": "{ \n \"member_id\": \"13e0eb0e\", \n \"comment\": \"Good, I guess\", \n \"score\": \"positive\" \n}", "language": "json" } ] } [/block]
{"_id":"58779794204d5439009d9f67","createdAt":"2017-01-12T14:49:56.499Z","isReference":false,"order":23,"slug":"events","title":"/events","type":"get","__v":2,"link_external":false,"next":{"pages":[],"description":""},"project":"551111444878730d00220ecb","updates":["590aa00aea58b32500ab628d"],"api":{"results":{"codes":[{"status":200,"language":"json","code":"{\n  \"events\": [\n    {\n      \"id\": \"4770c5c\",\n      \"title\": \"Interview with\",\n      \"description\": null,\n      \"type\": \"InterviewEvent\",\n      \"starts_at\": \"2017-01-17T22:00:00.000Z\",\n      \"ends_at\": \"2017-01-17T22:30:00.000Z\",\n      \"job\": {\n        \"shortcode\": \"GROOV001\",\n        \"title\": \"Operations Manager\"\n      },\n      \"members\": [\n        {\n          \"id\": \"3f8918be\",\n          \"name\": \"Natalie Sung\",\n          \"status\": \"accepted\"\n        },\n        {\n          \"id\": \"13e0eb0e\",\n          \"name\": \"Eduardo Vallente\",\n          \"status\": \"accepted\"\n        }\n      ],\n      \"candidate\": {\n        \"id\": \"3189bacb\",\n        \"name\": \"Lakita Marrero\"\n      }\n    },\n    {\n      \"id\": \"47fdddd\",\n      \"title\": \"Interview with\",\n      \"description\": null,\n      \"type\": \"InterviewEvent\",\n      \"starts_at\": \"2017-01-17T22:00:00.000Z\",\n      \"ends_at\": \"2017-01-17T22:30:00.000Z\",\n      \"job\": {\n        \"shortcode\": \"GROOV001\",\n        \"title\": \"Operations Manager\"\n      },\n      \"members\": [\n        {\n          \"id\": \"3f8918be\",\n          \"name\": \"Natalie Sung\",\n          \"status\": \"accepted\"\n        },\n        {\n          \"id\": \"13e0eb0e\",\n          \"name\": \"Eduardo Vallente\",\n          \"status\": \"accepted\"\n        }\n      ],\n      \"candidate\": {\n        \"id\": \"2b50e243\",\n        \"name\": \"Wayne Walsh\"\n      }\n    }\n  ]\n}","name":""},{"language":"json","status":404,"code":"{\n  \"error\":\"Not found\"\n}"},{"code":"{\n  \"error\":\"Not authorized\"\n}","language":"json","status":401}]},"settings":"58739d5a3af3bc0f003ef40a","url":"/events","auth":"required","examples":{"codes":[{"code":"curl \t-H \"Content-Type: application/json\" \\\n   \t\t-H \"Authorization:Bearer <Access Token>\" \\ \n   \t\thttps://<subdomain>.workable.com/spi/v3/events","language":"curl"}]},"method":"get","params":[{"type":"string","name":"type","_id":"559d0e34b107590d00c65ec8","ref":"","in":"query","required":false,"desc":"Returns events of the provided type. Available types are (call, interview & meeting)","default":""},{"desc":"Specifies the number of jobs to try and retrieve per page (optional)","default":"50","type":"int","name":"limit","_id":"559a5fbf1b009a0d00a0053c","ref":"","in":"query","required":false},{"type":"string","_id":"559a5ff7fd47a80d00abf3d1","default":"","desc":"Returns results with an ID greater than or equal to the specified ID. (optional)","in":"query","name":"since_id","ref":"","required":false},{"ref":"","in":"query","required":false,"desc":"Returns results with an ID less than or equal to the specified ID. (optional)","default":"","type":"string","name":"max_id","_id":"559d01070a817c0d001a05c5"},{"default":"","type":"timestamp","name":"start_date","_id":"559d01070a817c0d001a05c4","ref":"","in":"query","required":false,"desc":"Returns events that are scheduled for after the specified date"},{"in":"query","required":false,"desc":"Returns events that are scheduled for before the specified date","default":"","type":"timestamp","name":"end_date","_id":"559d01070a817c0d001a05c3","ref":""},{"required":false,"desc":"The account's subdomain","default":"","type":"string","name":"subdomain","_id":"57d2abea106224200096d17a","ref":"","in":"path"},{"ref":"","in":"query","required":false,"desc":"Filters events for specified candidate","default":"","type":"string","name":"candidate_id","_id":"587cf45f80491d190042ae5a"},{"ref":"","required":false,"type":"string","_id":"587cf45f80491d190042ae59","default":"","desc":"Filters events for specified job shortcode","in":"query","name":"shortcode"},{"in":"query","required":false,"desc":"Filters events for specified member","default":"","type":"string","name":"member_id","_id":"587cf45f80491d190042ae58","ref":""}]},"body":"[block:api-header]\n{\n  \"type\": \"basic\",\n  \"title\": \"Results\"\n}\n[/block]\nEach event will have the following keys:\n[block:parameters]\n{\n  \"data\": {\n    \"h-0\": \"key\",\n    \"h-1\": \"type\",\n    \"h-2\": \"description\",\n    \"0-0\": \"id\",\n    \"0-1\": \"`string`\",\n    \"0-2\": \"The id of the event\",\n    \"1-0\": \"title\",\n    \"1-1\": \"`string`\",\n    \"1-2\": \"The title of the event\",\n    \"2-0\": \"description\",\n    \"2-1\": \"`string`\",\n    \"2-2\": \"A description of the event\",\n    \"3-0\": \"type\",\n    \"3-1\": \"`string`\",\n    \"3-2\": \"The type of the event. One of (`call`, `interview` & `meeting`)\",\n    \"4-0\": \"starts_at\",\n    \"4-1\": \"`string`\",\n    \"4-2\": \"The start of the event\",\n    \"5-0\": \"ends_at\",\n    \"5-1\": \"`string`\",\n    \"5-2\": \"The end of the event\",\n    \"6-0\": \"job\",\n    \"6-1\": \"`object`\",\n    \"6-2\": \"Contains the `id` and the `title` of the job\",\n    \"7-0\": \"members\",\n    \"7-1\": \"`array`\",\n    \"7-2\": \"An array of the members participating in the event. Each member object contains the `id` and `name` of the member as well as the status of their RSVP.\",\n    \"8-0\": \"candidate\",\n    \"8-1\": \"`object`\",\n    \"8-2\": \"Contains the `id` and the `name` of the candidate participating in the event\"\n  },\n  \"cols\": 3,\n  \"rows\": 9\n}\n[/block]","link_url":"","version":"587395fe11b3ec1900d3b6db","category":"587395fe11b3ec1900d3b6dd","excerpt":"Returns a collection of your events","githubsync":"","hidden":false,"parentDoc":null,"sync_unique":"","user":"55111100318f8c170023787a","childrenPages":[]}

get/events

Returns a collection of your events

Path Params

subdomain:
string
The account's subdomain

Query Params

type:
string
Returns events of the provided type. Available types are (call, interview & meeting)
limit:
integer50
Specifies the number of jobs to try and retrieve per page (optional)
since_id:
string
Returns results with an ID greater than or equal to the specified ID. (optional)
max_id:
string
Returns results with an ID less than or equal to the specified ID. (optional)
start_date:
timestamp
Returns events that are scheduled for after the specified date
end_date:
timestamp
Returns events that are scheduled for before the specified date
candidate_id:
string
Filters events for specified candidate
shortcode:
string
Filters events for specified job shortcode
member_id:
string
Filters events for specified member
[block:api-header] { "type": "basic", "title": "Results" } [/block] Each event will have the following keys: [block:parameters] { "data": { "h-0": "key", "h-1": "type", "h-2": "description", "0-0": "id", "0-1": "`string`", "0-2": "The id of the event", "1-0": "title", "1-1": "`string`", "1-2": "The title of the event", "2-0": "description", "2-1": "`string`", "2-2": "A description of the event", "3-0": "type", "3-1": "`string`", "3-2": "The type of the event. One of (`call`, `interview` & `meeting`)", "4-0": "starts_at", "4-1": "`string`", "4-2": "The start of the event", "5-0": "ends_at", "5-1": "`string`", "5-2": "The end of the event", "6-0": "job", "6-1": "`object`", "6-2": "Contains the `id` and the `title` of the job", "7-0": "members", "7-1": "`array`", "7-2": "An array of the members participating in the event. Each member object contains the `id` and `name` of the member as well as the status of their RSVP.", "8-0": "candidate", "8-1": "`object`", "8-2": "Contains the `id` and the `name` of the candidate participating in the event" }, "cols": 3, "rows": 9 } [/block]

User Information

Try It Out

get
{{ tryResults.results }}
Method{{ tryResults.method }}
Request Headers
{{ tryResults.requestHeaders }}
URL{{ tryResults.url }}
Request Data
{{ tryResults.data }}
Status
Response Headers
{{ tryResults.responseHeaders }}

Definition

{{ api_url }}{{ page_api_url }}

Examples


Result Format



[block:api-header] { "type": "basic", "title": "Results" } [/block] Each event will have the following keys: [block:parameters] { "data": { "h-0": "key", "h-1": "type", "h-2": "description", "0-0": "id", "0-1": "`string`", "0-2": "The id of the event", "1-0": "title", "1-1": "`string`", "1-2": "The title of the event", "2-0": "description", "2-1": "`string`", "2-2": "A description of the event", "3-0": "type", "3-1": "`string`", "3-2": "The type of the event. One of (`call`, `interview` & `meeting`)", "4-0": "starts_at", "4-1": "`string`", "4-2": "The start of the event", "5-0": "ends_at", "5-1": "`string`", "5-2": "The end of the event", "6-0": "job", "6-1": "`object`", "6-2": "Contains the `id` and the `title` of the job", "7-0": "members", "7-1": "`array`", "7-2": "An array of the members participating in the event. Each member object contains the `id` and `name` of the member as well as the status of their RSVP.", "8-0": "candidate", "8-1": "`object`", "8-2": "Contains the `id` and the `name` of the candidate participating in the event" }, "cols": 3, "rows": 9 } [/block]
{"_id":"587797fe511a4e2500f91cde","__v":0,"category":"587395fe11b3ec1900d3b6dd","link_url":"","sync_unique":"","excerpt":"Returns date for the identified event","title":"/events/:id","user":"55111100318f8c170023787a","version":"587395fe11b3ec1900d3b6db","type":"get","api":{"auth":"required","examples":{"codes":[{"code":"curl \t-H \"Content-Type: application/json\" \\\n   \t\t-H \"Authorization:Bearer <Access Token>\" \\ \n   \t\thttps://<subdomain>.workable.com/spi/v3/events/<id>","language":"curl"}]},"method":"get","params":[{"_id":"57d2abea106224200096d17a","ref":"","in":"path","required":false,"desc":"The account's subdomain","default":"","type":"string","name":"subdomain"},{"_id":"587797fe511a4e2500f91cdf","ref":"","in":"path","required":false,"desc":"The id of the event","default":"","type":"string","name":"id"}],"results":{"codes":[{"name":"","code":"{\n  \"id\": \"3ed9b6ad\",\n  \"title\": \"Call with Steve Parks\",\n  \"description\": \"We will call you on your cell\",\n  \"type\": \"CallEvent\",\n  \"starts_at\": \"2016-12-28T22:00:00.000Z\",\n  \"ends_at\": \"2016-12-28T22:30:00.000Z\",\n  \"job\": {\n    \"shortcode\": \"GROOV005\",\n    \"title\": \"Office Manager\"\n  },\n  \"members\": [\n    {\n      \"id\": \"3f8918be\",\n      \"name\": \"Natalie Sung\",\n      \"status\": \"needs-action\"\n    },\n    {\n      \"id\": \"3247e8c7\",\n      \"name\": \"Alexia Middleton\",\n      \"status\": \"declined\"\n    },\n    {\n      \"id\": \"13e0eb0e\",\n      \"name\": \"Eduardo Vallente\",\n      \"status\": \"accepted\"\n    }\n  ],\n  \"candidate\": {\n    \"id\": \"34bc3e59\",\n    \"name\": \"Steve Parks\"\n  }\n}","language":"json","status":200},{"language":"json","code":"{\n  \"error\":\"Not found\"\n}","status":404},{"status":401,"language":"json","code":"{\n  \"error\":\"Not authorized\"\n}"}]},"settings":"58739d5a3af3bc0f003ef40a","url":"/events/:id"},"createdAt":"2017-01-12T14:51:42.696Z","hidden":false,"next":{"pages":[],"description":""},"parentDoc":null,"order":24,"project":"551111444878730d00220ecb","slug":"events-show","body":"[block:api-header]\n{\n  \"type\": \"basic\",\n  \"title\": \"Response\"\n}\n[/block]\nThe event has the following keys:\n[block:parameters]\n{\n  \"data\": {\n    \"0-0\": \"id\",\n    \"0-1\": \"`string`\",\n    \"0-2\": \"The id of the event\",\n    \"1-0\": \"title\",\n    \"1-1\": \"`string`\",\n    \"1-2\": \"The title of the event\",\n    \"2-0\": \"description\",\n    \"2-1\": \"`string`\",\n    \"2-2\": \"A description of the event\",\n    \"3-0\": \"type\",\n    \"3-1\": \"`string`\",\n    \"3-2\": \"The type of the event. One of (`call`, `interview` & `meeting`)\",\n    \"4-0\": \"starts_at\",\n    \"4-1\": \"`string`\",\n    \"4-2\": \"The start of the event\",\n    \"5-0\": \"ends_at\",\n    \"5-1\": \"`string`\",\n    \"5-2\": \"The end of the event\",\n    \"6-0\": \"job\",\n    \"6-1\": \"`object`\",\n    \"6-2\": \"Contains the `id` and the `title` of the job\",\n    \"7-2\": \"An array of the members participating in the event. Each member object contains the `id` and `name` of the member as well as the status of their RSVP.\",\n    \"8-2\": \"Contains the `id` and the `name` of the candidate participating in the event\",\n    \"7-0\": \"members\",\n    \"7-1\": \"`array`\",\n    \"8-0\": \"candidate\",\n    \"8-1\": \"`object`\"\n  },\n  \"cols\": 3,\n  \"rows\": 9\n}\n[/block]","githubsync":"","isReference":false,"link_external":false,"updates":[],"childrenPages":[]}

get/events/:id

Returns date for the identified event

Path Params

subdomain:
string
The account's subdomain
id:
string
The id of the event
[block:api-header] { "type": "basic", "title": "Response" } [/block] The event has the following keys: [block:parameters] { "data": { "0-0": "id", "0-1": "`string`", "0-2": "The id of the event", "1-0": "title", "1-1": "`string`", "1-2": "The title of the event", "2-0": "description", "2-1": "`string`", "2-2": "A description of the event", "3-0": "type", "3-1": "`string`", "3-2": "The type of the event. One of (`call`, `interview` & `meeting`)", "4-0": "starts_at", "4-1": "`string`", "4-2": "The start of the event", "5-0": "ends_at", "5-1": "`string`", "5-2": "The end of the event", "6-0": "job", "6-1": "`object`", "6-2": "Contains the `id` and the `title` of the job", "7-2": "An array of the members participating in the event. Each member object contains the `id` and `name` of the member as well as the status of their RSVP.", "8-2": "Contains the `id` and the `name` of the candidate participating in the event", "7-0": "members", "7-1": "`array`", "8-0": "candidate", "8-1": "`object`" }, "cols": 3, "rows": 9 } [/block]

User Information

Try It Out

get
{{ tryResults.results }}
Method{{ tryResults.method }}
Request Headers
{{ tryResults.requestHeaders }}
URL{{ tryResults.url }}
Request Data
{{ tryResults.data }}
Status
Response Headers
{{ tryResults.responseHeaders }}

Definition

{{ api_url }}{{ page_api_url }}

Examples


Result Format



[block:api-header] { "type": "basic", "title": "Response" } [/block] The event has the following keys: [block:parameters] { "data": { "0-0": "id", "0-1": "`string`", "0-2": "The id of the event", "1-0": "title", "1-1": "`string`", "1-2": "The title of the event", "2-0": "description", "2-1": "`string`", "2-2": "A description of the event", "3-0": "type", "3-1": "`string`", "3-2": "The type of the event. One of (`call`, `interview` & `meeting`)", "4-0": "starts_at", "4-1": "`string`", "4-2": "The start of the event", "5-0": "ends_at", "5-1": "`string`", "5-2": "The end of the event", "6-0": "job", "6-1": "`object`", "6-2": "Contains the `id` and the `title` of the job", "7-2": "An array of the members participating in the event. Each member object contains the `id` and `name` of the member as well as the status of their RSVP.", "8-2": "Contains the `id` and the `name` of the candidate participating in the event", "7-0": "members", "7-1": "`array`", "8-0": "candidate", "8-1": "`object`" }, "cols": 3, "rows": 9 } [/block]
{"_id":"58b945b90884220f00504564","slug":"webhooks","sync_unique":"","title":"Webhook Subscriptions","updates":[],"version":"587395fe11b3ec1900d3b6db","__v":0,"excerpt":"How they work","githubsync":"","link_external":false,"hidden":false,"type":"basic","next":{"pages":[],"description":""},"api":{"url":"/subscriptions","auth":"required","examples":{"codes":[]},"method":"endpoint","params":[],"results":{"codes":[{"status":200,"language":"json","code":"{}","name":""},{"status":400,"language":"json","code":"{}","name":""}]},"settings":"58739d5a3af3bc0f003ef40a"},"body":"You can subscribe to an event and Workable will notify you when it's triggered. To do this:\n\n1. Use the subscriptions endpoint to register your endpoint. You can further filter by job and/or stage.\n2. When the event is triggered, Workable will POST to the registered endpoint with the associated resource.\n\nFor example, a webhook created to get notifications on candidate creation would work as follows:\n[block:image]\n{\n  \"images\": [\n    {\n      \"image\": [\n        \"https://files.readme.io/31622c8-webhook_candidate_created.png\",\n        \"webhook_candidate_created.png\",\n        855,\n        445,\n        \"#090708\"\n      ]\n    }\n  ]\n}\n[/block]\nList of available events:\n[block:parameters]\n{\n  \"data\": {\n    \"h-0\": \"Events\",\n    \"h-1\": \"Registration label\",\n    \"h-2\": \"Resource\",\n    \"0-0\": \"Candidate Created\",\n    \"0-1\": \"candidate_created\",\n    \"0-2\": \"Candidate\",\n    \"1-0\": \"Candidate Moved\",\n    \"1-1\": \"candidate_moved\",\n    \"1-2\": \"Candidate\"\n  },\n  \"cols\": 3,\n  \"rows\": 2\n}\n[/block]\nWorkable will POST a Candidate object when the event is triggered, with a payload similar to [candidate details](doc:job-candidates-show) endpoint. The payload will reflect the state at the time of the request and not the state of the resource from when the event fired. In most cases this state will be the same, but there are some race conditions that might cause a slightly different payload.\n\n> Response status should be `200` so that Workable won't consider it an error and replays the request.\n[block:api-header]\n{\n  \"title\": \"Encryption\"\n}\n[/block]\n>The requests from Workable to your system will be signed. The key for the signature will be either the account token or the authorization token, depending on the type of the integration. The algorithm used for creating the signature is HMAC SHA256 on the payload of the request and the signature itself is sent on the `X-Workable-Signature` header.","category":"58b9925d405f732300f433f1","createdAt":"2017-03-03T10:30:17.618Z","isReference":false,"link_url":"","order":0,"parentDoc":null,"project":"551111444878730d00220ecb","user":"55111100318f8c170023787a","childrenPages":[]}

Webhook Subscriptions

How they work

You can subscribe to an event and Workable will notify you when it's triggered. To do this: 1. Use the subscriptions endpoint to register your endpoint. You can further filter by job and/or stage. 2. When the event is triggered, Workable will POST to the registered endpoint with the associated resource. For example, a webhook created to get notifications on candidate creation would work as follows: [block:image] { "images": [ { "image": [ "https://files.readme.io/31622c8-webhook_candidate_created.png", "webhook_candidate_created.png", 855, 445, "#090708" ] } ] } [/block] List of available events: [block:parameters] { "data": { "h-0": "Events", "h-1": "Registration label", "h-2": "Resource", "0-0": "Candidate Created", "0-1": "candidate_created", "0-2": "Candidate", "1-0": "Candidate Moved", "1-1": "candidate_moved", "1-2": "Candidate" }, "cols": 3, "rows": 2 } [/block] Workable will POST a Candidate object when the event is triggered, with a payload similar to [candidate details](doc:job-candidates-show) endpoint. The payload will reflect the state at the time of the request and not the state of the resource from when the event fired. In most cases this state will be the same, but there are some race conditions that might cause a slightly different payload. > Response status should be `200` so that Workable won't consider it an error and replays the request. [block:api-header] { "title": "Encryption" } [/block] >The requests from Workable to your system will be signed. The key for the signature will be either the account token or the authorization token, depending on the type of the integration. The algorithm used for creating the signature is HMAC SHA256 on the payload of the request and the signature itself is sent on the `X-Workable-Signature` header.
You can subscribe to an event and Workable will notify you when it's triggered. To do this: 1. Use the subscriptions endpoint to register your endpoint. You can further filter by job and/or stage. 2. When the event is triggered, Workable will POST to the registered endpoint with the associated resource. For example, a webhook created to get notifications on candidate creation would work as follows: [block:image] { "images": [ { "image": [ "https://files.readme.io/31622c8-webhook_candidate_created.png", "webhook_candidate_created.png", 855, 445, "#090708" ] } ] } [/block] List of available events: [block:parameters] { "data": { "h-0": "Events", "h-1": "Registration label", "h-2": "Resource", "0-0": "Candidate Created", "0-1": "candidate_created", "0-2": "Candidate", "1-0": "Candidate Moved", "1-1": "candidate_moved", "1-2": "Candidate" }, "cols": 3, "rows": 2 } [/block] Workable will POST a Candidate object when the event is triggered, with a payload similar to [candidate details](doc:job-candidates-show) endpoint. The payload will reflect the state at the time of the request and not the state of the resource from when the event fired. In most cases this state will be the same, but there are some race conditions that might cause a slightly different payload. > Response status should be `200` so that Workable won't consider it an error and replays the request. [block:api-header] { "title": "Encryption" } [/block] >The requests from Workable to your system will be signed. The key for the signature will be either the account token or the authorization token, depending on the type of the integration. The algorithm used for creating the signature is HMAC SHA256 on the payload of the request and the signature itself is sent on the `X-Workable-Signature` header.
{"_id":"58b961aee064951900641aef","user":"55111100318f8c170023787a","__v":6,"createdAt":"2017-03-03T12:29:34.779Z","link_url":"","order":1,"type":"post","body":"You can use this endpoint to register your service. The arguments object can be used to further filter which events you want to receive. \n\n>The target URLs should be unique. If a target URL is already registered, the service will respond with `409 - Conflict`.","isReference":false,"link_external":false,"version":"587395fe11b3ec1900d3b6db","api":{"auth":"required","examples":{"codes":[{"language":"curl","code":"curl  -X POST \\\n      -H \"Content-Type: application/json\" \\\n      -H \"Authorization:Bearer <Access Token>\" \\\n      -H 'Accept: application/json' \\\n      https://<subdomain>.workable.com/spi/v3/subscriptions \\\n      --data '{\"target\": \"https://host/endpoint\", \"event\": \"candidate_moved\",\" \"args\": { \"account_id\": \"<subdomain>\", \"job_shortcode\": \"\", \"stage_slug\": \"\" } }'"}]},"method":"post","params":[{"type":"string","name":"subdomain","_id":"58b9639c759c201900abfe19","ref":"","in":"path","required":true,"desc":"The account's subdomain","default":""},{"name":"target","ref":"","required":true,"type":"string","_id":"58b97d05759c201900abfe96","default":"","desc":"The URL of the endpoint to push notifications at","in":"body"},{"type":"string","_id":"58b99d3d1116b52300db2b19","default":"","desc":"One of candidate_created, candidate_moved","in":"body","name":"event","ref":"","required":true},{"required":true,"type":"object","_id":"58b99e7d2111842300c8c0ca","default":"","desc":"Arguments for the subscription","in":"body","name":"args","ref":""},{"name":"args.account_id","ref":"","required":true,"type":"string","_id":"58b96f0a3893cc2f00ec986c","default":"","desc":"The subdomain of the account, must be included in args","in":"body"},{"_id":"58b9639c759c201900abfe18","default":"","desc":"Get notifications only for one job. If used, it must be included in args","in":"body","name":"args.job_shortcode","ref":"","required":false,"type":"string"},{"type":"string","_id":"58b96cc63893cc2f00ec9862","default":"","desc":"Get notifications for specific stages. e.g. 'hired'. If used, it must be included in args","in":"body","name":"args.stage_slug","ref":"","required":false}],"results":{"codes":[{"status":201,"language":"json","code":"{\n  \"id\": 42\n}","name":""},{"code":"{}","name":"","status":400,"language":"json"},{"status":409,"language":"json","code":"{}"}]},"settings":"58739d5a3af3bc0f003ef40a","url":"/subscriptions"},"githubsync":"","next":{"pages":[],"description":""},"slug":"webhook-subscriptions","title":"/subscriptions","project":"551111444878730d00220ecb","sync_unique":"","updates":[],"category":"58b9925d405f732300f433f1","excerpt":"Subscribe to an event","hidden":false,"parentDoc":null,"childrenPages":[]}

post/subscriptions

Subscribe to an event

Path Params

subdomain:
required
string
The account's subdomain

Body Params

target:
required
string
The URL of the endpoint to push notifications at
event:
required
string
One of candidate_created, candidate_moved
args:
required
object
Arguments for the subscription
args.account_id:
required
string
The subdomain of the account, must be included in args
args.job_shortcode:
string
Get notifications only for one job. If used, it must be included in args
args.stage_slug:
string
Get notifications for specific stages. e.g. 'hired'. If used, it must be included in args
You can use this endpoint to register your service. The arguments object can be used to further filter which events you want to receive. >The target URLs should be unique. If a target URL is already registered, the service will respond with `409 - Conflict`.

User Information

Try It Out

post
{{ tryResults.results }}
Method{{ tryResults.method }}
Request Headers
{{ tryResults.requestHeaders }}
URL{{ tryResults.url }}
Request Data
{{ tryResults.data }}
Status
Response Headers
{{ tryResults.responseHeaders }}

Definition

{{ api_url }}{{ page_api_url }}

Examples


Result Format



You can use this endpoint to register your service. The arguments object can be used to further filter which events you want to receive. >The target URLs should be unique. If a target URL is already registered, the service will respond with `409 - Conflict`.
{"_id":"58b97045759c201900abfe53","api":{"auth":"required","examples":{"codes":[{"language":"curl","code":"curl  -X DELETE \\\n      -H \"Content-Type: application/json\" \\\n      -H \"Authorization:Bearer <Access Token>\" \\\n      -H 'Accept: application/json' \\\n      https://<subdomain>.workable.com/spi/v3/subscriptions/<id>"}]},"method":"delete","params":[{"type":"string","name":"subdomain","_id":"58b9639c759c201900abfe19","ref":"","in":"path","required":true,"desc":"The account's subdomain","default":""},{"desc":"The ID of the webhook subscription","default":"","type":"string","name":"id","_id":"58b971963893cc2f00ec9876","ref":"","in":"path","required":true}],"results":{"codes":[{"name":"","code":"{}","language":"json","status":200},{"name":"","code":"{}","language":"json","status":404}]},"settings":"58739d5a3af3bc0f003ef40a","url":"/subscriptions"},"sync_unique":"","user":"55111100318f8c170023787a","type":"delete","category":"58b9925d405f732300f433f1","createdAt":"2017-03-03T13:31:49.638Z","link_external":false,"link_url":"","version":"587395fe11b3ec1900d3b6db","__v":2,"body":"Use this endpoint for deleting subscriptions. It's recommended to delete obsolete subscriptions if you're a third party.","githubsync":"","isReference":false,"order":2,"parentDoc":null,"project":"551111444878730d00220ecb","slug":"subscriptionsid","excerpt":"Unsubscribe from an event","hidden":false,"next":{"pages":[],"description":""},"title":"/subscriptions/:id","updates":[],"childrenPages":[]}

delete/subscriptions/:id

Unsubscribe from an event

Path Params

subdomain:
required
string
The account's subdomain
id:
required
string
The ID of the webhook subscription
Use this endpoint for deleting subscriptions. It's recommended to delete obsolete subscriptions if you're a third party.

User Information

Try It Out

delete
{{ tryResults.results }}
Method{{ tryResults.method }}
Request Headers
{{ tryResults.requestHeaders }}
URL{{ tryResults.url }}
Request Data
{{ tryResults.data }}
Status
Response Headers
{{ tryResults.responseHeaders }}

Definition

{{ api_url }}{{ page_api_url }}

Examples


Result Format



Use this endpoint for deleting subscriptions. It's recommended to delete obsolete subscriptions if you're a third party.
{"_id":"58e21ef2fde0990f0008970c","body":"The data that Workable pushes when an event gets triggered is similar to [candidate details](doc:job-candidates-show) endpoint.\n[block:parameters]\n{\n  \"data\": {\n    \"0-0\": \"data\",\n    \"h-0\": \"key\",\n    \"h-1\": \"type\",\n    \"h-2\": \"description\",\n    \"0-1\": \"`object`\",\n    \"1-0\": \"data.account\",\n    \"1-1\": \"`object`\",\n    \"2-0\": \"data.account.name\",\n    \"2-1\": \"`string`\",\n    \"3-0\": \"data.account.subdomain\",\n    \"3-1\": \"`string`\",\n    \"4-0\": \"data.address\",\n    \"4-1\": \"`string`\",\n    \"5-0\": \"data.cover_letter\",\n    \"5-1\": \"`string`\",\n    \"6-0\": \"data.created_at\",\n    \"6-1\": \"`timestamp`\",\n    \"8-0\": \"data.disqualification_reason\",\n    \"8-1\": \"`string`\",\n    \"9-0\": \"data.disqualified_at\",\n    \"9-1\": \"`timestamp`\",\n    \"10-0\": \"data.domain\",\n    \"10-1\": \"`string`\",\n    \"11-0\": \"data.education_entries\",\n    \"11-1\": \"`array`\",\n    \"18-0\": \"data.email\",\n    \"18-1\": \"`string`\",\n    \"19-0\": \"data.experience_entries\",\n    \"27-0\": \"data.firstname\",\n    \"27-1\": \"`string`\",\n    \"19-1\": \"`array`\",\n    \"28-0\": \"data.headline\",\n    \"28-1\": \"`string`\",\n    \"29-0\": \"data.id\",\n    \"29-1\": \"`string`\",\n    \"30-0\": \"data.image_url\",\n    \"30-1\": \"`url`\",\n    \"31-0\": \"data.job\",\n    \"31-1\": \"`object`\",\n    \"32-0\": \"data.job.shortcode\",\n    \"32-1\": \"`string`\",\n    \"33-0\": \"data.job.title\",\n    \"33-1\": \"`string`\",\n    \"34-0\": \"data.lastname\",\n    \"35-0\": \"data.name\",\n    \"34-1\": \"`string`\",\n    \"36-0\": \"data.outbound_mailbox\",\n    \"37-0\": \"data.phone\",\n    \"38-0\": \"data.profile_url\",\n    \"39-0\": \"data.resume_url\",\n    \"40-0\": \"data.skills\",\n    \"41-0\": \"data.social_profiles\",\n    \"45-0\": \"data.sourced\",\n    \"46-0\": \"data.stage\",\n    \"47-0\": \"data.summary\",\n    \"48-0\": \"data.tags\",\n    \"51-0\": \"event_type\",\n    \"52-0\": \"fired_at\",\n    \"53-0\": \"id\",\n    \"54-0\": \"resource_type\",\n    \"35-1\": \"`string`\",\n    \"36-1\": \"`string`\",\n    \"37-1\": \"`string`\",\n    \"38-1\": \"`url`\",\n    \"39-1\": \"`url`\",\n    \"40-1\": \"`array`\",\n    \"41-1\": \"`array`\",\n    \"45-1\": \"`boolean`\",\n    \"46-1\": \"`string`\",\n    \"47-1\": \"`string`\",\n    \"48-1\": \"`array`\",\n    \"49-0\": \"data.updated_at\",\n    \"49-1\": \"`timestamp`\",\n    \"51-1\": \"`string`\",\n    \"52-1\": \"`timestamp`\",\n    \"53-1\": \"`id`\",\n    \"54-1\": \"`string`\",\n    \"29-2\": \"The candidate identifier\",\n    \"53-2\": \"The event identifier\",\n    \"27-2\": \"The first name of the candidate\",\n    \"34-2\": \"The last name of the candidate\",\n    \"28-2\": \"The headline of the candidate\",\n    \"30-2\": \"Url of candidate's avatar. Available only if provided by the candidate\",\n    \"3-2\": \"The subdomain of the account\",\n    \"2-2\": \"The name of the account\",\n    \"32-2\": \"The shortcode of the job\",\n    \"33-2\": \"The title of the job\",\n    \"46-2\": \"The name of the current stage. See [stages endpoint](/docs/stages)\",\n    \"7-0\": \"data.disqualified\",\n    \"7-1\": \"`boolean`\",\n    \"7-2\": \"Indicates if the candidate is disqualified\",\n    \"9-2\": \"The timestamp the candidate  was disqualified\",\n    \"8-2\": \"The reason the candidate was disqualified\",\n    \"45-2\": \"Indicates if the candidate is sourced `true` or applied `false`\",\n    \"38-2\": \"Url to the candidate's profile\",\n    \"4-2\": \"The address of the candidate\",\n    \"37-2\": \"The phone number of the candidate\",\n    \"18-2\": \"The email address of the candidate\",\n    \"36-2\": \"Mailbox that can be used to communicate with the candidate and inform the recruitment team of the job as well\",\n    \"10-2\": \"The domain of the referrer site that linked to the job page or the job board the job advertised\",\n    \"50-0\": \"data.uploader_id\",\n    \"50-1\": \"`string`\",\n    \"50-2\": \"The id of the member uploaded the candidate.\",\n    \"39-2\": \"Url to the candidate resume\",\n    \"47-2\": \"The summary of the candidate\",\n    \"48-2\": \"A collection with tags\",\n    \"49-2\": \"The timestamp the candidate  last updated\",\n    \"40-2\": \"A collection with skill names\",\n    \"41-2\": \"A collection with social profiles of the candidate\",\n    \"5-2\": \"The cover letter provided when candidate applied\",\n    \"6-2\": \"The timestamp the candidate  created\",\n    \"11-2\": \"A collection with education entries\",\n    \"19-2\": \"A collection with working experience entries\",\n    \"0-2\": \"Data wrapper\",\n    \"1-2\": \"Account wrapper\",\n    \"31-2\": \"Job wrapper\",\n    \"35-2\": \"The full name of the candidate\",\n    \"51-2\": \"The type of the event\",\n    \"52-2\": \"The date the event was triggered\",\n    \"54-2\": \"The type of the payload resource\",\n    \"13-0\": \"data.education_entry.degree\",\n    \"14-0\": \"data.education_entry.school\",\n    \"15-0\": \"data.education_entry.field_of_study\",\n    \"16-0\": \"data.education_entry.start_date\",\n    \"17-0\": \"data.education_entry.end_date\",\n    \"12-0\": \"data.education_entry.id\",\n    \"12-1\": \"`string`\",\n    \"12-2\": \"Education entry identifier\",\n    \"13-1\": \"`string`\",\n    \"13-2\": \"The graduation degree\",\n    \"14-1\": \"`string`\",\n    \"14-2\": \"The name of the school graduated\",\n    \"15-1\": \"`string`\",\n    \"15-2\": \"The field of study\",\n    \"16-1\": \"`date`\",\n    \"16-2\": \"The date started\",\n    \"17-1\": \"`date`\",\n    \"17-2\": \"The date ended\",\n    \"20-0\": \"data.experience_entry.title\",\n    \"21-0\": \"data.experience_entry.company\",\n    \"22-0\": \"data.experience_entry.summary\",\n    \"23-0\": \"data.experience_entry.industry\",\n    \"24-0\": \"data.experience_entry.start_date\",\n    \"25-0\": \"data.experience_entry.end_date\",\n    \"26-0\": \"data.experience_entry.current\",\n    \"20-1\": \"`string`\",\n    \"21-1\": \"`string`\",\n    \"22-1\": \"`string`\",\n    \"23-1\": \"`string`\",\n    \"24-1\": \"`date`\",\n    \"25-1\": \"`date`\",\n    \"26-1\": \"`boolean`\",\n    \"20-2\": \"The title of the experience entry\",\n    \"21-2\": \"The company name\",\n    \"22-2\": \"The summary of the experience entry\",\n    \"24-2\": \"The date started\",\n    \"25-2\": \"The date ended\",\n    \"23-2\": \"The industry of the company\",\n    \"26-2\": \"Indicates if currently works there\",\n    \"42-0\": \"data.social_profile.type\",\n    \"42-1\": \"`string`\",\n    \"42-2\": \"The slug name of the social profile. It can be one of the following types: `academiaedu`, `angellist`, `behance`, `bitbucket`, `blogger`, `crunchbase`, `dandyid`, `delicious`, `deviantart`, `digg`, `doyoubuzz`, `dribble`, `dribbble`, `econsultancy`, `facebook`, `flavorsme`, `flickr`, `fullcontact`, `getglue`, `gist`, `github`, `goodreads`, `googleplus`, `gravatar`, `hackernews`, `hiim`, `klout`, `lanyrd`, `linkedin`, `myspace`, `ohloh`, `orkut`, `pinterest`, `quora`, `reddit`, `scribd`, `skype`, `slideshare`, `stackexchange`, `stackoverflow`, `tumblr`, `twitter`, `typepad`, `vk`, `wordpress`, `xing`\",\n    \"43-0\": \"data.social_profile.name\",\n    \"43-1\": \"`string`\",\n    \"44-0\": \"data.social_profile.url\",\n    \"44-1\": \"`url`\",\n    \"43-2\": \"The full name of the social profile\",\n    \"44-2\": \"Url to the candidate's social profile page\"\n  },\n  \"cols\": 3,\n  \"rows\": 55\n}\n[/block]\n## Example Payload\n```\n{\n  \"data\": {\n    \"account\": {\n      \"name\": \"Groove Tech\",\n      \"subdomain\": \"groove-tech\"\n    },\n    \"address\": \"25772 Gustave Shore, Iowa, USA\",\n    \"cover_letter\": \"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.\",\n    \"created_at\": \"2015-07-09T10:55:53Z\",\n    \"disqualification_reason\": null,\n    \"disqualified\": false,\n    \"disqualified_at\": null,\n    \"domain\": null,\n    \"education_entries\": [\n      {\n        \"degree\": \"MBA\",\n        \"end_date\": \"2011-03-30\",\n        \"field_of_study\": null,\n        \"school\": \"University of Pennsylvania\",\n        \"start_date\": \"2008-03-01\"\n      },\n      {\n        \"degree\": \"B.S.\",\n        \"end_date\": \"2007-03-30\",\n        \"field_of_study\": \"Marketing Communication & Economics\",\n        \"school\": \"University of Chicago\",\n        \"start_date\": \"2004-09-01\"\n      }\n    ],\n    \"email\": \"jj_botha@fakemail.com\",\n    \"experience_entries\": [\n      {\n        \"company\": \"Vox Mobile\",\n        \"current\": false,\n        \"end_date\": \"2014-03-30\",\n        \"industry\": \"Telecommunications\",\n        \"start_date\": \"2011-03-01\",\n        \"summary\": null,\n        \"title\": \"Sales Director\"\n      }\n    ],\n    \"firstname\": null,\n    \"headline\": \"Professional Administration Manager\",\n    \"id\": \"3fc9a80f\",\n    \"image_url\": null,\n    \"job\": {\n      \"shortcode\": \"GROOV005\",\n      \"title\": \"Office Manager\"\n    },\n    \"lastname\": null,\n    \"name\": \"Jj Botha\",\n    \"outbound_mailbox\": \"b-6adwdc@outbound.dev-workable.mailgun.org\",\n    \"phone\": \"1-859-557-6573\",\n    \"profile_url\": \"https://groove-tech.workable.com/backend/jobs/376844767/candidates/1070179133\",\n    \"resume_url\": null,\n    \"skills\": [\n      {\n        \"name\": \"travel planning\"\n      },\n      {\n        \"name\": \"problem solving\"\n      }\n    ],\n    \"social_profiles\": [\n      {\n        \"type\": \"twitter\",\n        \"url\": \"http://www.twitter.com/jj_botha\",\n        \"username\": \"jj_botha\"\n      },\n      {\n        \"type\": \"linkedin\",\n        \"url\": \"http://www.linkedin.com/in/jj_botha\"\n      },\n      {\n        \"type\": \"googleplus\",\n        \"url\": \"https://plus.google.com/6908286706342698\"\n      }\n    ],\n    \"sourced\": true,\n    \"stage\": \"Hired\",\n    \"summary\": \"A focused, results-driven team player with many year experience in the field. Working my way up to management level, I have experience in every aspect of this role. I understand the challenges it brings, and have a proven track record of providing solutions.\",\n    \"tags\": [],\n    \"updated_at\": \"2015-07-09T10:55:53Z\",\n    \"uploader_id\": null\n  },\n  \"event_type\": \"candidate_moved\",\n  \"fired_at\": \"2017-03-27T09:32:45Z\",\n  \"id\": \"1b1c8399\",\n  \"resource_type\": \"candidate\"\n}\n```","link_external":false,"link_url":"","slug":"candidate-events","title":"Candidate Events","api":{"params":[],"url":"","results":{"codes":[{"name":"","status":200,"language":"json","code":"{}"},{"status":400,"language":"json","code":"{}","name":""}]},"settings":"","auth":"required"},"isReference":false,"order":3,"sync_unique":"","__v":0,"createdAt":"2017-04-03T10:07:46.124Z","next":{"pages":[],"description":""},"project":"551111444878730d00220ecb","user":"55111100318f8c170023787a","version":"587395fe11b3ec1900d3b6db","category":"58b9925d405f732300f433f1","excerpt":"","githubsync":"","hidden":false,"parentDoc":null,"type":"basic","updates":[],"childrenPages":[]}

Candidate Events


The data that Workable pushes when an event gets triggered is similar to [candidate details](doc:job-candidates-show) endpoint. [block:parameters] { "data": { "0-0": "data", "h-0": "key", "h-1": "type", "h-2": "description", "0-1": "`object`", "1-0": "data.account", "1-1": "`object`", "2-0": "data.account.name", "2-1": "`string`", "3-0": "data.account.subdomain", "3-1": "`string`", "4-0": "data.address", "4-1": "`string`", "5-0": "data.cover_letter", "5-1": "`string`", "6-0": "data.created_at", "6-1": "`timestamp`", "8-0": "data.disqualification_reason", "8-1": "`string`", "9-0": "data.disqualified_at", "9-1": "`timestamp`", "10-0": "data.domain", "10-1": "`string`", "11-0": "data.education_entries", "11-1": "`array`", "18-0": "data.email", "18-1": "`string`", "19-0": "data.experience_entries", "27-0": "data.firstname", "27-1": "`string`", "19-1": "`array`", "28-0": "data.headline", "28-1": "`string`", "29-0": "data.id", "29-1": "`string`", "30-0": "data.image_url", "30-1": "`url`", "31-0": "data.job", "31-1": "`object`", "32-0": "data.job.shortcode", "32-1": "`string`", "33-0": "data.job.title", "33-1": "`string`", "34-0": "data.lastname", "35-0": "data.name", "34-1": "`string`", "36-0": "data.outbound_mailbox", "37-0": "data.phone", "38-0": "data.profile_url", "39-0": "data.resume_url", "40-0": "data.skills", "41-0": "data.social_profiles", "45-0": "data.sourced", "46-0": "data.stage", "47-0": "data.summary", "48-0": "data.tags", "51-0": "event_type", "52-0": "fired_at", "53-0": "id", "54-0": "resource_type", "35-1": "`string`", "36-1": "`string`", "37-1": "`string`", "38-1": "`url`", "39-1": "`url`", "40-1": "`array`", "41-1": "`array`", "45-1": "`boolean`", "46-1": "`string`", "47-1": "`string`", "48-1": "`array`", "49-0": "data.updated_at", "49-1": "`timestamp`", "51-1": "`string`", "52-1": "`timestamp`", "53-1": "`id`", "54-1": "`string`", "29-2": "The candidate identifier", "53-2": "The event identifier", "27-2": "The first name of the candidate", "34-2": "The last name of the candidate", "28-2": "The headline of the candidate", "30-2": "Url of candidate's avatar. Available only if provided by the candidate", "3-2": "The subdomain of the account", "2-2": "The name of the account", "32-2": "The shortcode of the job", "33-2": "The title of the job", "46-2": "The name of the current stage. See [stages endpoint](/docs/stages)", "7-0": "data.disqualified", "7-1": "`boolean`", "7-2": "Indicates if the candidate is disqualified", "9-2": "The timestamp the candidate was disqualified", "8-2": "The reason the candidate was disqualified", "45-2": "Indicates if the candidate is sourced `true` or applied `false`", "38-2": "Url to the candidate's profile", "4-2": "The address of the candidate", "37-2": "The phone number of the candidate", "18-2": "The email address of the candidate", "36-2": "Mailbox that can be used to communicate with the candidate and inform the recruitment team of the job as well", "10-2": "The domain of the referrer site that linked to the job page or the job board the job advertised", "50-0": "data.uploader_id", "50-1": "`string`", "50-2": "The id of the member uploaded the candidate.", "39-2": "Url to the candidate resume", "47-2": "The summary of the candidate", "48-2": "A collection with tags", "49-2": "The timestamp the candidate last updated", "40-2": "A collection with skill names", "41-2": "A collection with social profiles of the candidate", "5-2": "The cover letter provided when candidate applied", "6-2": "The timestamp the candidate created", "11-2": "A collection with education entries", "19-2": "A collection with working experience entries", "0-2": "Data wrapper", "1-2": "Account wrapper", "31-2": "Job wrapper", "35-2": "The full name of the candidate", "51-2": "The type of the event", "52-2": "The date the event was triggered", "54-2": "The type of the payload resource", "13-0": "data.education_entry.degree", "14-0": "data.education_entry.school", "15-0": "data.education_entry.field_of_study", "16-0": "data.education_entry.start_date", "17-0": "data.education_entry.end_date", "12-0": "data.education_entry.id", "12-1": "`string`", "12-2": "Education entry identifier", "13-1": "`string`", "13-2": "The graduation degree", "14-1": "`string`", "14-2": "The name of the school graduated", "15-1": "`string`", "15-2": "The field of study", "16-1": "`date`", "16-2": "The date started", "17-1": "`date`", "17-2": "The date ended", "20-0": "data.experience_entry.title", "21-0": "data.experience_entry.company", "22-0": "data.experience_entry.summary", "23-0": "data.experience_entry.industry", "24-0": "data.experience_entry.start_date", "25-0": "data.experience_entry.end_date", "26-0": "data.experience_entry.current", "20-1": "`string`", "21-1": "`string`", "22-1": "`string`", "23-1": "`string`", "24-1": "`date`", "25-1": "`date`", "26-1": "`boolean`", "20-2": "The title of the experience entry", "21-2": "The company name", "22-2": "The summary of the experience entry", "24-2": "The date started", "25-2": "The date ended", "23-2": "The industry of the company", "26-2": "Indicates if currently works there", "42-0": "data.social_profile.type", "42-1": "`string`", "42-2": "The slug name of the social profile. It can be one of the following types: `academiaedu`, `angellist`, `behance`, `bitbucket`, `blogger`, `crunchbase`, `dandyid`, `delicious`, `deviantart`, `digg`, `doyoubuzz`, `dribble`, `dribbble`, `econsultancy`, `facebook`, `flavorsme`, `flickr`, `fullcontact`, `getglue`, `gist`, `github`, `goodreads`, `googleplus`, `gravatar`, `hackernews`, `hiim`, `klout`, `lanyrd`, `linkedin`, `myspace`, `ohloh`, `orkut`, `pinterest`, `quora`, `reddit`, `scribd`, `skype`, `slideshare`, `stackexchange`, `stackoverflow`, `tumblr`, `twitter`, `typepad`, `vk`, `wordpress`, `xing`", "43-0": "data.social_profile.name", "43-1": "`string`", "44-0": "data.social_profile.url", "44-1": "`url`", "43-2": "The full name of the social profile", "44-2": "Url to the candidate's social profile page" }, "cols": 3, "rows": 55 } [/block] ## Example Payload ``` { "data": { "account": { "name": "Groove Tech", "subdomain": "groove-tech" }, "address": "25772 Gustave Shore, Iowa, USA", "cover_letter": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.", "created_at": "2015-07-09T10:55:53Z", "disqualification_reason": null, "disqualified": false, "disqualified_at": null, "domain": null, "education_entries": [ { "degree": "MBA", "end_date": "2011-03-30", "field_of_study": null, "school": "University of Pennsylvania", "start_date": "2008-03-01" }, { "degree": "B.S.", "end_date": "2007-03-30", "field_of_study": "Marketing Communication & Economics", "school": "University of Chicago", "start_date": "2004-09-01" } ], "email": "jj_botha@fakemail.com", "experience_entries": [ { "company": "Vox Mobile", "current": false, "end_date": "2014-03-30", "industry": "Telecommunications", "start_date": "2011-03-01", "summary": null, "title": "Sales Director" } ], "firstname": null, "headline": "Professional Administration Manager", "id": "3fc9a80f", "image_url": null, "job": { "shortcode": "GROOV005", "title": "Office Manager" }, "lastname": null, "name": "Jj Botha", "outbound_mailbox": "b-6adwdc@outbound.dev-workable.mailgun.org", "phone": "1-859-557-6573", "profile_url": "https://groove-tech.workable.com/backend/jobs/376844767/candidates/1070179133", "resume_url": null, "skills": [ { "name": "travel planning" }, { "name": "problem solving" } ], "social_profiles": [ { "type": "twitter", "url": "http://www.twitter.com/jj_botha", "username": "jj_botha" }, { "type": "linkedin", "url": "http://www.linkedin.com/in/jj_botha" }, { "type": "googleplus", "url": "https://plus.google.com/6908286706342698" } ], "sourced": true, "stage": "Hired", "summary": "A focused, results-driven team player with many year experience in the field. Working my way up to management level, I have experience in every aspect of this role. I understand the challenges it brings, and have a proven track record of providing solutions.", "tags": [], "updated_at": "2015-07-09T10:55:53Z", "uploader_id": null }, "event_type": "candidate_moved", "fired_at": "2017-03-27T09:32:45Z", "id": "1b1c8399", "resource_type": "candidate" } ```
The data that Workable pushes when an event gets triggered is similar to [candidate details](doc:job-candidates-show) endpoint. [block:parameters] { "data": { "0-0": "data", "h-0": "key", "h-1": "type", "h-2": "description", "0-1": "`object`", "1-0": "data.account", "1-1": "`object`", "2-0": "data.account.name", "2-1": "`string`", "3-0": "data.account.subdomain", "3-1": "`string`", "4-0": "data.address", "4-1": "`string`", "5-0": "data.cover_letter", "5-1": "`string`", "6-0": "data.created_at", "6-1": "`timestamp`", "8-0": "data.disqualification_reason", "8-1": "`string`", "9-0": "data.disqualified_at", "9-1": "`timestamp`", "10-0": "data.domain", "10-1": "`string`", "11-0": "data.education_entries", "11-1": "`array`", "18-0": "data.email", "18-1": "`string`", "19-0": "data.experience_entries", "27-0": "data.firstname", "27-1": "`string`", "19-1": "`array`", "28-0": "data.headline", "28-1": "`string`", "29-0": "data.id", "29-1": "`string`", "30-0": "data.image_url", "30-1": "`url`", "31-0": "data.job", "31-1": "`object`", "32-0": "data.job.shortcode", "32-1": "`string`", "33-0": "data.job.title", "33-1": "`string`", "34-0": "data.lastname", "35-0": "data.name", "34-1": "`string`", "36-0": "data.outbound_mailbox", "37-0": "data.phone", "38-0": "data.profile_url", "39-0": "data.resume_url", "40-0": "data.skills", "41-0": "data.social_profiles", "45-0": "data.sourced", "46-0": "data.stage", "47-0": "data.summary", "48-0": "data.tags", "51-0": "event_type", "52-0": "fired_at", "53-0": "id", "54-0": "resource_type", "35-1": "`string`", "36-1": "`string`", "37-1": "`string`", "38-1": "`url`", "39-1": "`url`", "40-1": "`array`", "41-1": "`array`", "45-1": "`boolean`", "46-1": "`string`", "47-1": "`string`", "48-1": "`array`", "49-0": "data.updated_at", "49-1": "`timestamp`", "51-1": "`string`", "52-1": "`timestamp`", "53-1": "`id`", "54-1": "`string`", "29-2": "The candidate identifier", "53-2": "The event identifier", "27-2": "The first name of the candidate", "34-2": "The last name of the candidate", "28-2": "The headline of the candidate", "30-2": "Url of candidate's avatar. Available only if provided by the candidate", "3-2": "The subdomain of the account", "2-2": "The name of the account", "32-2": "The shortcode of the job", "33-2": "The title of the job", "46-2": "The name of the current stage. See [stages endpoint](/docs/stages)", "7-0": "data.disqualified", "7-1": "`boolean`", "7-2": "Indicates if the candidate is disqualified", "9-2": "The timestamp the candidate was disqualified", "8-2": "The reason the candidate was disqualified", "45-2": "Indicates if the candidate is sourced `true` or applied `false`", "38-2": "Url to the candidate's profile", "4-2": "The address of the candidate", "37-2": "The phone number of the candidate", "18-2": "The email address of the candidate", "36-2": "Mailbox that can be used to communicate with the candidate and inform the recruitment team of the job as well", "10-2": "The domain of the referrer site that linked to the job page or the job board the job advertised", "50-0": "data.uploader_id", "50-1": "`string`", "50-2": "The id of the member uploaded the candidate.", "39-2": "Url to the candidate resume", "47-2": "The summary of the candidate", "48-2": "A collection with tags", "49-2": "The timestamp the candidate last updated", "40-2": "A collection with skill names", "41-2": "A collection with social profiles of the candidate", "5-2": "The cover letter provided when candidate applied", "6-2": "The timestamp the candidate created", "11-2": "A collection with education entries", "19-2": "A collection with working experience entries", "0-2": "Data wrapper", "1-2": "Account wrapper", "31-2": "Job wrapper", "35-2": "The full name of the candidate", "51-2": "The type of the event", "52-2": "The date the event was triggered", "54-2": "The type of the payload resource", "13-0": "data.education_entry.degree", "14-0": "data.education_entry.school", "15-0": "data.education_entry.field_of_study", "16-0": "data.education_entry.start_date", "17-0": "data.education_entry.end_date", "12-0": "data.education_entry.id", "12-1": "`string`", "12-2": "Education entry identifier", "13-1": "`string`", "13-2": "The graduation degree", "14-1": "`string`", "14-2": "The name of the school graduated", "15-1": "`string`", "15-2": "The field of study", "16-1": "`date`", "16-2": "The date started", "17-1": "`date`", "17-2": "The date ended", "20-0": "data.experience_entry.title", "21-0": "data.experience_entry.company", "22-0": "data.experience_entry.summary", "23-0": "data.experience_entry.industry", "24-0": "data.experience_entry.start_date", "25-0": "data.experience_entry.end_date", "26-0": "data.experience_entry.current", "20-1": "`string`", "21-1": "`string`", "22-1": "`string`", "23-1": "`string`", "24-1": "`date`", "25-1": "`date`", "26-1": "`boolean`", "20-2": "The title of the experience entry", "21-2": "The company name", "22-2": "The summary of the experience entry", "24-2": "The date started", "25-2": "The date ended", "23-2": "The industry of the company", "26-2": "Indicates if currently works there", "42-0": "data.social_profile.type", "42-1": "`string`", "42-2": "The slug name of the social profile. It can be one of the following types: `academiaedu`, `angellist`, `behance`, `bitbucket`, `blogger`, `crunchbase`, `dandyid`, `delicious`, `deviantart`, `digg`, `doyoubuzz`, `dribble`, `dribbble`, `econsultancy`, `facebook`, `flavorsme`, `flickr`, `fullcontact`, `getglue`, `gist`, `github`, `goodreads`, `googleplus`, `gravatar`, `hackernews`, `hiim`, `klout`, `lanyrd`, `linkedin`, `myspace`, `ohloh`, `orkut`, `pinterest`, `quora`, `reddit`, `scribd`, `skype`, `slideshare`, `stackexchange`, `stackoverflow`, `tumblr`, `twitter`, `typepad`, `vk`, `wordpress`, `xing`", "43-0": "data.social_profile.name", "43-1": "`string`", "44-0": "data.social_profile.url", "44-1": "`url`", "43-2": "The full name of the social profile", "44-2": "Url to the candidate's social profile page" }, "cols": 3, "rows": 55 } [/block] ## Example Payload ``` { "data": { "account": { "name": "Groove Tech", "subdomain": "groove-tech" }, "address": "25772 Gustave Shore, Iowa, USA", "cover_letter": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.", "created_at": "2015-07-09T10:55:53Z", "disqualification_reason": null, "disqualified": false, "disqualified_at": null, "domain": null, "education_entries": [ { "degree": "MBA", "end_date": "2011-03-30", "field_of_study": null, "school": "University of Pennsylvania", "start_date": "2008-03-01" }, { "degree": "B.S.", "end_date": "2007-03-30", "field_of_study": "Marketing Communication & Economics", "school": "University of Chicago", "start_date": "2004-09-01" } ], "email": "jj_botha@fakemail.com", "experience_entries": [ { "company": "Vox Mobile", "current": false, "end_date": "2014-03-30", "industry": "Telecommunications", "start_date": "2011-03-01", "summary": null, "title": "Sales Director" } ], "firstname": null, "headline": "Professional Administration Manager", "id": "3fc9a80f", "image_url": null, "job": { "shortcode": "GROOV005", "title": "Office Manager" }, "lastname": null, "name": "Jj Botha", "outbound_mailbox": "b-6adwdc@outbound.dev-workable.mailgun.org", "phone": "1-859-557-6573", "profile_url": "https://groove-tech.workable.com/backend/jobs/376844767/candidates/1070179133", "resume_url": null, "skills": [ { "name": "travel planning" }, { "name": "problem solving" } ], "social_profiles": [ { "type": "twitter", "url": "http://www.twitter.com/jj_botha", "username": "jj_botha" }, { "type": "linkedin", "url": "http://www.linkedin.com/in/jj_botha" }, { "type": "googleplus", "url": "https://plus.google.com/6908286706342698" } ], "sourced": true, "stage": "Hired", "summary": "A focused, results-driven team player with many year experience in the field. Working my way up to management level, I have experience in every aspect of this role. I understand the challenges it brings, and have a proven track record of providing solutions.", "tags": [], "updated_at": "2015-07-09T10:55:53Z", "uploader_id": null }, "event_type": "candidate_moved", "fired_at": "2017-03-27T09:32:45Z", "id": "1b1c8399", "resource_type": "candidate" } ```
{"_id":"58e518198f4ecc2d00b953a3","body":"This section describes: \n\n- How an Assessment Provider can integrate with Workable to inject assessments directly into the candidates' timeline.\n\n- How a Video Interview Provider can integrate with Workable to inject video interviews directly into the candidates' timeline.\n\n[block:html]\n{\n  \"html\": \"&nbsp;\"\n}\n[/block]\n[Assessment Providers](page:assessment-providers) \n\n[Video Interview Providers](page:video-interview-providers)","createdAt":"2017-04-05T16:15:21.760Z","slug":"assessments-video-interviews-api","type":"basic","version":"587395fe11b3ec1900d3b6db","category":"58da62fbf204ec0f002c5f6a","excerpt":"","hidden":false,"link_external":false,"next":{"pages":[],"description":""},"order":0,"parentDoc":null,"api":{"params":[],"url":"","results":{"codes":[{"status":200,"language":"json","code":"{}","name":""},{"status":400,"language":"json","code":"{}","name":""}]},"settings":"","auth":"required"},"updates":["59b13c1d5b22a3003a27f33c"],"title":"Assessments & Video Interviews API","link_url":"","project":"551111444878730d00220ecb","sync_unique":"","__v":1,"isReference":false,"user":"55111100318f8c170023787a","githubsync":"","childrenPages":[]}

Assessments & Video Interviews API


This section describes: - How an Assessment Provider can integrate with Workable to inject assessments directly into the candidates' timeline. - How a Video Interview Provider can integrate with Workable to inject video interviews directly into the candidates' timeline. [block:html] { "html": "&nbsp;" } [/block] [Assessment Providers](page:assessment-providers) [Video Interview Providers](page:video-interview-providers)
This section describes: - How an Assessment Provider can integrate with Workable to inject assessments directly into the candidates' timeline. - How a Video Interview Provider can integrate with Workable to inject video interviews directly into the candidates' timeline. [block:html] { "html": "&nbsp;" } [/block] [Assessment Providers](page:assessment-providers) [Video Interview Providers](page:video-interview-providers)
{"_id":"58e51e400ab7b03b00f4a688","api":{"results":{"codes":[{"status":200,"language":"json","code":"{}","name":""},{"status":400,"language":"json","code":"{}","name":""}]},"settings":"","auth":"required","params":[],"url":""},"type":"basic","user":"55111100318f8c170023787a","version":"587395fe11b3ec1900d3b6db","body":"For any questions or support required for the API, feel free to [Contact us](https://www.workable.com/contact).","category":"587395fe11b3ec1900d3b6df","githubsync":"","link_external":false,"parentDoc":null,"sync_unique":"","title":"API Support","updates":[],"__v":0,"hidden":false,"link_url":"","project":"551111444878730d00220ecb","slug":"api-support","createdAt":"2017-04-05T16:41:36.616Z","excerpt":"","isReference":false,"next":{"pages":[],"description":""},"order":0,"childrenPages":[]}

API Support


For any questions or support required for the API, feel free to [Contact us](https://www.workable.com/contact).
For any questions or support required for the API, feel free to [Contact us](https://www.workable.com/contact).