job_post and talent_pool_id are both optional and can be combined. If neither is given, the candidate is created foremail (string, as body parameter, required) : Candidate's email address. Must not already exist in the given job post"johndoe@example.com"first_name (string, as body parameter, required) : Candidate's first name."John"last_name (string, as body parameter, required) : Candidate's last name."Doe"cv (integer, as body parameter, required) : Document ID of the uploaded candidate CV, returned by utilities/upload-file/.20170job_post (string, as body parameter, optional) : The unique identifier (hash) of the job post to which the candidate should be added."ab8fefa4e436e9462f2952f53cd8c"talent_pool_id (integer, as body parameter, optional): The unique identifier of the talent pool to which the candidate should be added.123source_platform (string, as body parameter, optional) : Where the candidate came from. One of api | bulk_import | manually_added | linkedin_easyapply | recruspace | extension | linkedin_post | google | twitter_post | facebook_post.api when omitted."manually_added"{
"email": "johndoe@example.com",
"first_name": "John",
"last_name": "Doe",
"cv": 20170,
"talent_pool_id": 123
}201 Created: A JSON object representing the newly created candidate with full detail, including presigned URLs for CV/photo if available.400 Bad Request : If validation fails, or if a candidate with the same email already exists in the specified job posterror_code: 10003 and the existing candidate ID undererrors.exist_candidate_id. An unknown job_post hash is also a validation error and therefore returns 400.404 Not Found : If the given talent_pool_id does not exist.curl --location 'https://api.recruspace.com/api/v1/client/candidates/manual-add/' \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data-raw '{
"job_post": "string",
"talent_pool_id": 0,
"first_name": "string",
"last_name": "string",
"email": "user@example.com",
"cv": 0,
"source_platform": "api"
}'{
"success": "OK",
"content": {
"id": 0,
"company": "string",
"user": {
"id": 0,
"email": "user@example.com",
"first_name": "string",
"last_name": "string",
"profile_img": {
"id": 0,
"path": "string",
"name": "string",
"type": "string",
"file_size": -2147483648,
"base": "string",
"presigned_url": "string",
"uploaded_at": "2019-08-24T14:15:22.123Z"
}
},
"job_post": {
"hash": "string",
"title": "string",
"status": "draft",
"pipeline": 0
},
"initial_applied_job_post": {
"hash": "string",
"title": "string",
"status": "draft",
"pipeline": 0
},
"substage": {
"id": 0,
"stage": {
"id": 0,
"name": "string",
"key": "string",
"created_at": "2019-08-24T14:15:22.123Z",
"pipeline": 0
},
"name": "string",
"queue": -2147483648,
"is_visible": true,
"created_at": "2019-08-24T14:15:22.123Z",
"email_template": 0
},
"email": "user@example.com",
"first_name": "string",
"last_name": "string",
"cv": {
"id": 0,
"path": "string",
"name": "string",
"type": "string",
"file_size": -2147483648,
"base": "string",
"presigned_url": "string",
"uploaded_at": "2019-08-24T14:15:22.123Z"
},
"photo": {
"id": 0,
"path": "string",
"name": "string",
"type": "string",
"file_size": -2147483648,
"base": "string",
"presigned_url": "string",
"uploaded_at": "2019-08-24T14:15:22.123Z"
},
"phone_number": "string",
"address": "string",
"city": "string",
"country": "string",
"education": [
{
"school_name": "string",
"degree": "bachelor",
"major": "string",
"start_date": "2019-08-24",
"end_date": "2019-08-24",
"currently_pursuing": true
}
],
"work_experience": [
{
"company_name": "string",
"position_title": "string",
"employment_type": "full_time",
"start_date": "2019-08-24",
"end_date": "2019-08-24",
"currently_employed": true
}
],
"links": [
{
"platform": "linkedin",
"url": "string"
}
],
"tags": [
{
"id": 0,
"title": "string"
}
],
"suitability": "suitable",
"is_pinned": true,
"score": 0,
"skills": [
"string"
],
"total_work_experience": 0,
"seniority": "string",
"is_seen": true,
"rejected_mail_sended": true,
"source_platform": "api",
"entry_method": "applied",
"extraction_status": "not_started",
"parse_status": "not_started",
"score_status": "not_started",
"is_errored": true,
"created_at": "2019-08-24T14:15:22.123Z",
"updated_at": "2019-08-24T14:15:22.123Z"
}
}