Csod APIsimon-kucher.csod.com ↗
Retrieve the full structure of any Simon-Kucher job application form: every step, field, pre-screening question, and disclaimer, keyed by requisition ID.
What is the Csod API?
The Simon-Kucher career site API exposes 1 endpoint — get_application_form — that returns the complete, ordered workflow for any open job requisition on simon-kucher.csod.com. A single call with a requisition ID yields every page in sequence, along with all form blocks: contact fields, pre-screening questions (including type and answer options), resume and attachment requirements, and disclaimer configuration. The response contains more than 15 distinct field-level attributes across those block types.
curl -X GET 'https://api.parse.bot/scraper/8eadbbe3-eb35-46c0-bbce-35e17b4a9f69/get_application_form?requisition_id=4384' \ -H 'X-API-Key: $PARSE_API_KEY'
Returns the complete blank application workflow for one open job requisition on the Simon-Kucher career site: every step (page) in order, and within each step the ordered actions — contact-information fields, informational notes, pre-screening question sections (each question with its type, required flag and answer options), the resume/attachment step (contact-detail fields, cover letter and additional-attachment requirements), the disclaimer and the submit step. All steps are fetched in one call (one request per step plus one page load), so cost grows with the number of steps (typically 3-5). HTML in titles, instructions and notes is stripped to plain text. A requisition id that does not exist, or one that is not currently open for applications, returns a stale_input error with the site's own message. No form is filled or submitted.
| Param | Type | Description |
|---|---|---|
| requisition_idrequired | string | Numeric job requisition id as it appears in the job posting URL (the number after /requisition/). |
{
"type": "object",
"fields": {
"pages": "array of steps in order; each has page (integer step number) and actions (ordered array of form blocks)",
"total_pages": "integer number of steps in the application workflow",
"requisition_id": "the requested requisition id, echoed as a string",
"pages[].actions[].type": "block kind observed: contactInformation, note, prescreeningQuestions, resume, disclaimer, submit",
"pages[].actions[].fields": "contactInformation only: array of {name,label,is_required} for the first name / last name / email inputs",
"pages[].actions[].questions": "prescreeningQuestions only: array of {question_id, type (e.g. YesNo, MultipleChoiceSingleAnswer, NumericValue, ShortText), text, is_required, hidden, options[{response_id,text}]}; free-text questions carry a single option with a null text",
"pages[].actions[].input_type": "disclaimer only: how agreement is captured (e.g. yesOrNo), with continue_if_disagree and error_message",
"pages[].actions[].cover_letter": "resume only: {is_visible, is_required}",
"pages[].actions[].contact_details": "resume only: field names collected, whether phone is required, and the number of selectable countries",
"pages[].actions[].additional_attachments": "resume only: array of {attachment_id, title, instructions, is_required}"
},
"sample": {
"data": {
"pages": [
{
"page": 1,
"actions": [
{
"note": "",
"type": "contactInformation",
"title": "Contact Information",
"fields": [
{
"name": "first_name",
"label": "First Name",
"is_required": true
},
{
"name": "last_name",
"label": "Last Name",
"is_required": true
},
{
"name": "email",
"label": "Email",
"is_required": true
}
],
"action_id": 0,
"instruction": ""
},
{
"note": "Please answer the following questions:",
"type": "note",
"title": "General Recruiting Questions",
"action_id": 27612,
"instruction": ""
}
]
},
{
"page": 2,
"actions": [
{
"note": "",
"type": "prescreeningQuestions",
"title": "Do you currently have the legal right to work in the European Union (EU)?",
"action_id": 27616,
"questions": [
{
"text": "Do you currently have the legal right to work in the European Union (EU)?",
"type": "YesNo",
"hidden": false,
"options": [
{
"text": "Yes",
"response_id": "1211-True"
},
{
"text": "No",
"response_id": "1211-False"
}
],
"is_required": true,
"question_id": 1211
},
{
"text": "What could be your start date?",
"type": "ShortText",
"hidden": false,
"options": [
{
"text": null,
"response_id": "460-open"
}
],
"is_required": true,
"question_id": 460
}
],
"section_id": 8238,
"instruction": ""
}
]
},
{
"page": 3,
"actions": [
{
"note": "",
"type": "resume",
"title": "Resume",
"action_id": 27618,
"instruction": "",
"is_required": true,
"cover_letter": {
"is_visible": true,
"is_required": false
},
"contact_details": {
"fields": [
"addressLine1",
"addressLine2",
"city",
"state",
"countryCode",
"zipCode",
"phoneNumber"
],
"country_count": 251,
"is_phone_required": true
},
"additional_attachments": [
{
"title": "Additional Attachment",
"is_required": false,
"instructions": "",
"attachment_id": 2103
}
]
}
]
},
{
"page": 4,
"actions": [
{
"note": "",
"type": "disclaimer",
"title": "Disclaimer",
"action_id": 27619,
"input_type": "yesOrNo",
"instruction": "Please confirm that all information provided is accurate and up to date before submitting your application.",
"error_message": "Please confirm that all information you provide is accurate and up to date.",
"continue_if_disagree": false
},
{
"note": "",
"type": "submit",
"title": "Everything filled out correctly?",
"action_id": 27620,
"instruction": "You can now submit your application."
}
]
}
],
"total_pages": 4,
"requisition_id": "4384"
},
"status": "success"
}
}About the Csod API
What the endpoint returns
get_application_form accepts a single required parameter, requisition_id, which is the numeric ID found in the job posting URL after /requisition/. The response echoes that ID back as requisition_id (string), reports total_pages, and returns a pages array. Each page object carries a page integer and an actions array listing every form block on that step in order.
Form block types and their fields
Each action in pages[].actions[] has a type field that identifies the block: contactInformation, note, prescreeningQuestions, resume, disclaimer, or submit. The contactInformation block exposes a fields array of objects with name, label, and is_required. The prescreeningQuestions block exposes a questions array where each entry includes question_id, type (e.g. YesNo, MultipleChoiceSingleAnswer, NumericValue, ShortText), and the question text along with any defined answer options.
Resume, disclaimer, and submit blocks
The resume block carries three sub-objects: cover_letter (is_visible, is_required), contact_details (field names collected, whether phone is required, and the number of selectable countries), and additional_attachments (an array of objects with attachment_id, title, instructions, and is_required). The disclaimer block describes how agreement is captured via input_type (e.g. yesOrNo), and includes continue_if_disagree and error_message fields. The submit block marks the final step of the workflow.
Coverage scope
This API covers the Simon-Kucher career site hosted on Cornerstone OnDemand (simon-kucher.csod.com), specifically the career site with ID 6. Any requisition ID that corresponds to an active posting can be queried. The endpoint returns the blank form structure — it does not submit applications or return data about specific candidates or existing application state.
The Csod API is a managed, monitored endpoint for simon-kucher.csod.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when simon-kucher.csod.com changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official simon-kucher.csod.com API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Pre-populate an application preparation checklist by reading all
prescreeningQuestionstypes and texts before a candidate sits down to apply. - Audit which Simon-Kucher roles require additional attachments beyond a resume by checking
additional_attachments[].is_requiredacross requisitions. - Build an internal tool that maps all
YesNoandMultipleChoiceSingleAnswerpre-screening questions for a given role to flag potential disqualifiers. - Detect when a new requisition adds a
disclaimerblock withcontinue_if_disagree: falseto flag mandatory-consent roles in an HR compliance workflow. - Compare form complexity across multiple requisition IDs by comparing
total_pagesand counting actions per page. - Programmatically verify that required
contactInformationfields (name, email) are consistent across different job postings on the same career site. - Integrate form metadata into a recruiting CRM so candidates know exactly which documents (
additional_attachments) to prepare before starting an application.
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 200 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
| Team | $300/mo | 20,000 | 300 req/min |
| Company | $1,000/mo | 100,000 | 500 req/min |
Each endpoint has a fixed posted price per successful call — most fall between 1 and 10 credits — shown on this API's page before you run it. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does Simon-Kucher offer an official public developer API for its career site?+
What exactly does `get_application_form` return for the `prescreeningQuestions` block?+
questions array. Each question object includes a question_id, a type field identifying the answer format (YesNo, MultipleChoiceSingleAnswer, NumericValue, or ShortText), the question text, and any defined answer options where applicable. The endpoint returns the form structure only — it does not return previously submitted answers or candidate-specific data.Does the API return a list of all open requisitions on the Simon-Kucher career site?+
requisition_id you supply. It does not include a listing or search endpoint to enumerate available job postings. You can fork this API on Parse and revise it to add a requisition-listing endpoint.Can I retrieve the filled-in responses from a submitted application?+
Are there quirks or limitations specific to this source I should be aware of?+
note and submit block types return no additional structured fields beyond their type identifier — they serve as positional markers in the workflow rather than data-bearing blocks.