1. Endpoints
Recruspace
  • Welcome
  • Get API Key
  • Authentication
  • Rate Limit
  • Pagination
  • Endpoints
    • Get Candidate
      GET
    • Create Candidate
      POST
    • Add Note to Candidate
      POST
    • Add Tag to Candidate
      POST
    • Add Candidate to Job Post or Talent Pool
      POST
    • Search Candidate by Email
      GET
    • List Company Offices
      GET
    • List Company Users
      GET
    • List Job Posts
      GET
    • Get Job Post
      GET
    • Apply to Job Post
      POST
    • List Job Post Questions
      GET
    • List Talent Pools
      GET
    • Update Talent Pool
      PATCH
    • Delete Talent Pool
      DELETE
    • List Talent Pool Candidates
      GET
    • Create Talent Pool
      POST
    • Upload File
      POST
  1. Endpoints

Apply to Job Post

POST
/api/v1/client/job-posts/{job_post_id}/apply/
Last modified:2026-07-28 11:05:53
Allows a candidate to apply for a specific job post by submitting application details and required information.
Files (CV, photo, any file_upload answer) are never posted to this endpoint directly. Upload them first via
utilities/upload-file/ and send the returned document ID here.
Arguments
job_post_id (string, as path parameter, required) : The unique identifier (hash) of the job post to apply for.
Example: job_post_id="d82f9a7c91b041b7b2b7612e"
email (string, as body parameter, required) : Candidate's email address.
Example: "johndoe@example.com"
first_name (string, as body parameter, required) : Candidate's first name.
Example: "John"
last_name (string, as body parameter, required) : Candidate's last name.
Example: "Doe"
cv (integer, as body parameter, required) : Document ID of the uploaded candidate CV, returned by utilities/upload-file/.
Example: 20170
terms_of_use (boolean, as body parameter, required) : Whether the candidate accepted the terms of use. The request is
rejected with 400 Bad Request unless this is true.
educations (array, as body parameter, required) : Array of candidate educations. Send an empty array if the candidate has none.
    [
        {
            "school_name": "string",
            "degree": "bachelor | master | phd | associate | high_school | other",
            "major": "string",
            "start_date": "2014-04-07",
            "end_date": "2014-04-07",
            "currently_pursuing": true | false
        }
    ]
experiences (array, as body parameter, required) : Array of candidate experiences. Send an empty array if the candidate has none.
    [
        {
            "company_name": "string",
            "position_title": "string",
            "employment_type": "full_time | part_time | contract | intern",
            "start_date": "2014-04-07",
            "end_date": "2014-04-07",
            "currently_employed": true | false
        }
    ]
answers (array, as body parameter, optional) : Answers to the job post questions returned by
job-posts/{job_post_id}/questions/. Every question with is_required: true must be answered, otherwise the request is
rejected with 400 Bad Request. Each item holds the question ID plus either answer (text) or answer_file (document ID).
    [
        {
            "job_post_question": 91,
            "answer": "Your answer"
        },
        {
            "job_post_question": 92,
            "answer_file": 20171
        }
    ]
Default application fields (photo, phone number, address)
Photo, phone number and address are not separate body fields. They are delivered as regular job post questions and are
submitted inside answers, exactly like any other question. Identify them by the question_type of the question
returned from job-posts/{job_post_id}/questions/:
question_typeHow to answerStored on the candidate as
photoanswer_file : document ID from utilities/upload-file/photo
phoneanswer : phone number as textphone_number
addressanswer : free text location, resolved by the APIaddress, city, country
Answers of these three types are consumed by the API and are not stored as question answers. Every other question is
stored as an answer, and any URL found inside the answer text is additionally saved as a candidate link.
Education and work experience are the only application fields sent as dedicated body fields (educations,
experiences); they are no longer submitted through answers.
Sample request
{
    "email": "johndoe@example.com",
    "first_name": "John",
    "last_name": "Doe",
    "cv": 20170,
    "terms_of_use": true,
    "educations": [
        {
            "school_name": "Middle East Technical University",
            "degree": "bachelor",
            "major": "Computer Engineering",
            "start_date": "2014-09-01",
            "end_date": "2018-06-30",
            "currently_pursuing": false
        }
    ],
    "experiences": [
        {
            "company_name": "Recruspace",
            "position_title": "Backend Developer",
            "employment_type": "full_time",
            "start_date": "2019-01-15",
            "end_date": null,
            "currently_employed": true
        }
    ],
    "answers": [
        { "job_post_question": 91, "answer_file": 20171 },
        { "job_post_question": 92, "answer": "+905551112233" },
        { "job_post_question": 93, "answer": "Ankara, Turkey" },
        { "job_post_question": 94, "answer": "https://github.com/johndoe" }
    ]
}
Returns
201 Created : The application was submitted successfully.
{
    "success": "OK",
    "content": { "message": "Successfully Applied" }
}
400 Bad Request : Validation error, e.g. a required question was not answered, terms_of_use is not true, or an
answer belongs to a question of another job post.
404 Not Found : The job post does not exist, is not live, or does not belong to the authenticated company.
409 Conflict : This email has already applied to this job post.

Request

Authorization
Bearer Token
Provide your bearer token in the
Authorization
header when making requests to protected resources.
Example:
Authorization: Bearer ********************
or
Path Params

Body Params
application/json
Required

Examples

Responses

🟢201
application/json
Bodyapplication/json

🟠400
🟠403
🟠404
🟠409
🟠423
🔴500
Request Request Example
Shell
JavaScript
Java
Swift
curl --location 'https://api.recruspace.com/api/v1/client/job-posts//apply/' \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data-raw '{
    "email": "user@example.com",
    "first_name": "string",
    "last_name": "string",
    "cv": 0,
    "experiences": [
        {
            "company_name": "string",
            "position_title": "string",
            "employment_type": "full_time",
            "start_date": "2019-08-24",
            "end_date": "2019-08-24",
            "currently_employed": true
        }
    ],
    "educations": [
        {
            "school_name": "string",
            "degree": "bachelor",
            "major": "string",
            "start_date": "2019-08-24",
            "end_date": "2019-08-24",
            "currently_pursuing": true
        }
    ],
    "answers": [
        {
            "answer": "string",
            "job_post_question": 0,
            "answer_file": 0
        }
    ],
    "terms_of_use": true
}'
Response Response Example
201 - Example 1
{
    "success": "OK",
    "content": {
        "message": "string"
    }
}
Modified at 2026-07-28 11:05:53
Previous
Get Job Post
Next
List Job Post Questions
Built with