From f2de9b51d5c00721c3fe46e44e03ae6b0005e4b6 Mon Sep 17 00:00:00 2001 From: Martin Perry Date: Sun, 10 Jun 2018 16:58:53 -0400 Subject: [PATCH 1/5] Add files via upload --- candidatestatus.md | 316 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 316 insertions(+) create mode 100644 candidatestatus.md diff --git a/candidatestatus.md b/candidatestatus.md new file mode 100644 index 0000000..c788795 --- /dev/null +++ b/candidatestatus.md @@ -0,0 +1,316 @@ + +#Overview +The candidate status API provides a key value store for storing ATS status values for a candidate. + +#Schema + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FieldReq’dTypeComment
accountYString(20)CB Account DID
candidate_emailYString(255)255 is not a typo.
vendor_keyNString(20)Type of source system(Bullhorn, Luceo, TEE…)
clientNString(20)System calling this service
+(MyCandidates, CandidateStream)
requisition_idNString(1024)Job this status applies to (can be null)
requisition_titleNString(256)
level_idNString(64)ID of Candidate/Application
statusYString(100)The raw status as recorded by source system
status_dateYDate/time

UTC Date/time of status change

+

Format: YYYY-MM-DDTHH:MM:SSZ

+

1776-07-04T19:04:01Z

status_levelYString(20)Candidate/Application
status_detailNString(4096)free form string
+ +#Usage + +####Unique Key + + - account + - candidate_email + - vendor_key + - requisition_id + - status_level + +This assumes that we are: + + - Combining step and status for TEE + - Only storing 1 translation (TSR has translations for each status + value) + +####Bullhorn + +Three possible status entries – +candidate, jobsubmission, and placement.  It looks like placement can +replace jobsubmission status, so that we could just have one status for +a job requisition. + + - Candidate->Status + - Candidate->JobSubmission(s)->JobOrder and Status + - Candidate->Placement(s)-> JobOrder and Status + - Candidate->Placement(s)->JobSubmission->JobOrder and Status + +####TEE + +Candidate status and application +status entries. + + - Candidate->Step and Status + - Candidate->Application(s)->Requisition, Step and Status + +Each step has a status.  Step is like New, Reviewed, First Interview, +Second Interview, Third Interview, Testing, Offer, Hired, Rejected, +Declined, Pipeline, Inactive.  Status is like not started, in progress, +completed. + +####Campaign Mgt. +Status per campaign + +####TSR +Candidate status and application status entries (~4 translations per status) + +#Resource URI +/Corporate/CandidateStatus + +#Actions +##GET + +Retrieve all statuses for a single email. + +GET /Corporate/CandidateStatus/{account}/{candidate_email} + +Optional query string parameters: + - Results_per_page (Defaults to 10) + - Status_date (only statuses that have dates after the value provided are returned.) + +GET /Corporate/CandidateStatus/AAAA_1234/testEmail@123.com?results_per_page=15&status_date=2017-02-18T19:04:01Z + +Sample result: +```json +[{ + "requisition_id": "1", + "vendor_key": "test_vendor_key", + "status_detail": "Test status detail", + "status_level": "application", + "status_date": "2017-03-19T23:04:01Z", + "level_id": "test_level_id", + "status": "test_status", + "client": "test_client", + "requisition_title": "test_req_title", + "account": "AAAA_1234", + "candidate_email": "testEmail@123.com" +}, +{ + "requisition_id": "2", + "vendor_key": "test_vendor_key", + "status_detail": "Test status detail", + "status_level": "application", + "status_date": "2017-03-19T23:04:01Z", + "level_id": "test_level_id", + "status": "test_status", + "client": "test_client", + "requisition_title": "test_req_title", + "account": "AAAA_1234", + "candidate_email": "testEmail@123.com" +}, +{ + "requisition_id": "3", + "vendor_key": "test_vendor_key", + "status_detail": "Test status detail", + "status_level": "application", + "status_date": "2017-03-19T23:04:01Z", + "level_id": "test_level_id", + "status": "test_status", + "client": "test_client", + "requisition_title": "test_req_title", + "account": "AAAA_1234", + "candidate_email": "testEmail@123.com" +}] +``` + +##PUT +Insert a status + +PUT /Corporate/CandidateStatus + +Requirements: + - account + - email + - status + - status_date + - status_level (must be either candidate or application) + - if candidate: requisition_id and requisition_title must be + left off + + - if application: requisition_id is required. Requisition_title + is still optional. + +Sample request 1 (application): +```json +{ +"account": "AAAA_1234", +"candidate_email": "testEmail@123.com", +"vendor_key": "test_vendor_key", +"client": "test_client", +"requisition_id": "123", +"level_id": "test_level_id", +"status": "test_status", +"status_date": "2017-03-19T19:04:01Z", +"status_level": "application", +"status_detail": "Test status detail" +} +``` +Sample request 2 (candidate): +```json +{ +"account": "AAAA_1234", +"candidate_email": "testEmail@123.com", +"vendor_key": "test_vendor_key", +"client": "test_client", +"level_id": "test_level_id", +"status": "test_status", +"status_date": "2017-03-19T19:04:01Z", +"status_level": "candidate", +"status_detail": "Test status detail" +} +``` + +Sample response +``` +"Created/updated status." +``` + +##POST +Retrieve multiple emails or multiple requisition_ids + +POST /Corporate/CandidateStatus + +Requirements: +- account +- either a list of candidate emails or a list of requisition ids. + +Optional: +- Status_date (only statuses that have dates after the value provided are returned.) + +Sample request 1: +```json +{ + "account": "aaaa_1234", + "candidate_email": ["testEmail@123.com", "testEmail@1234.com"], + "status_date": "2017-03-18T19:04:01Z" +} +``` +Sample request 2: +```json +{ + "account": "aaaa_1234", + "requisition_id": ["1", "2", "123"], + "status_date": "2017-03-18T19:04:01Z" +} +``` + +Sample response:   +```json +[{ + "requisition_id": "1", + "vendor_key": "test_vendor_key", + "status_detail": "Test status detail", + "status_level": "application", + "status_date": "2017-03-19T23:04:01Z", + "level_id": "test_level_id", + "status": "test_status", + "client": "test_client", + "requisition_title": "test_req_title", + "account": "AAAA_1234", + "candidate_email": "testEmail@123.com" +}, +{ + "requisition_id": "2", + "vendor_key": "test_vendor_key", + "status_detail": "Test status detail", + "status_level": "application", + "status_date": "2017-03-19T23:04:01Z", + "level_id": "test_level_id", + "status": "test_status", + "client": "test_client", + "requisition_title": "test_req_title", + "account": "AAAA_1234", + "candidate_email": "testEmail@123.com" +}, +{ + "requisition_id": "123", + "vendor_key": "test_vendor_key", + "status_detail": "Test status detail", + "status_level": "application", + "status_date": "2017-03-19T23:04:01Z", + "level_id": "test_level_id", + "status": "test_status", + "client": "test_client", + "account": "AAAA_1234", + "candidate_email": "testEmail@123.com" +}] +``` \ No newline at end of file From ac7c9b82e636a48dc16dd596394764c7376c5144 Mon Sep 17 00:00:00 2001 From: Martin Perry Date: Sun, 10 Jun 2018 16:59:43 -0400 Subject: [PATCH 2/5] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 982b7a0..583ea08 100644 --- a/README.md +++ b/README.md @@ -10,7 +10,7 @@ CDS APIs are concentrated into two areas: Candidate Data & Candidate Search. Used to create and manipulate Candidate Data. * [Candidate Upload API](/UploadAPI.md) * [Client API](/ClientAPI.md) -* Candidate Status API +* [Candidate Status API](/CandidateStatusAPI.md) * [Recruiter Actions API](/ActionsAPI.md) ## Candidate Search From baf49021b9aec593790ebfa5a05b66248885518b Mon Sep 17 00:00:00 2001 From: Martin Perry Date: Sun, 10 Jun 2018 17:00:24 -0400 Subject: [PATCH 3/5] Rename candidatestatus.md to CandidateStatusAPI.md --- candidatestatus.md => CandidateStatusAPI.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename candidatestatus.md => CandidateStatusAPI.md (99%) diff --git a/candidatestatus.md b/CandidateStatusAPI.md similarity index 99% rename from candidatestatus.md rename to CandidateStatusAPI.md index c788795..d482e35 100644 --- a/candidatestatus.md +++ b/CandidateStatusAPI.md @@ -313,4 +313,4 @@ Sample response:   "account": "AAAA_1234", "candidate_email": "testEmail@123.com" }] -``` \ No newline at end of file +``` From 2efa7db20b22080b2c1bdbb2c85c2e7ec618cd1f Mon Sep 17 00:00:00 2001 From: Martin Perry Date: Sun, 10 Jun 2018 17:02:06 -0400 Subject: [PATCH 4/5] Update CandidateStatusAPI.md --- CandidateStatusAPI.md | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/CandidateStatusAPI.md b/CandidateStatusAPI.md index d482e35..15ecf4c 100644 --- a/CandidateStatusAPI.md +++ b/CandidateStatusAPI.md @@ -1,8 +1,8 @@ -#Overview +# Overview The candidate status API provides a key value store for storing ATS status values for a candidate. -#Schema +# Schema @@ -86,9 +86,9 @@ The candidate status API provides a key value store for storing ATS status value
-#Usage +# Usage -####Unique Key +#### Unique Key - account - candidate_email @@ -102,7 +102,7 @@ This assumes that we are: - Only storing 1 translation (TSR has translations for each status value) -####Bullhorn +#### Bullhorn Three possible status entries – candidate, jobsubmission, and placement.  It looks like placement can @@ -114,7 +114,7 @@ a job requisition. - Candidate->Placement(s)-> JobOrder and Status - Candidate->Placement(s)->JobSubmission->JobOrder and Status -####TEE +#### TEE Candidate status and application status entries. @@ -127,17 +127,17 @@ Second Interview, Third Interview, Testing, Offer, Hired, Rejected, Declined, Pipeline, Inactive.  Status is like not started, in progress, completed. -####Campaign Mgt. +#### Campaign Mgt. Status per campaign -####TSR +#### TSR Candidate status and application status entries (~4 translations per status) -#Resource URI +# Resource URI /Corporate/CandidateStatus -#Actions -##GET +# Actions +## GET Retrieve all statuses for a single email. @@ -152,9 +152,9 @@ GET /Corporate/CandidateStatus/AAAA_1234/testEmail@123.com?results_per_page=15&s Sample result: ```json [{ - "requisition_id": "1", - "vendor_key": "test_vendor_key", - "status_detail": "Test status detail", + "requisition_id":"1", + "vendor_key":"test_vendor_key", + "status_detail":"Test status detail", "status_level": "application", "status_date": "2017-03-19T23:04:01Z", "level_id": "test_level_id", @@ -192,7 +192,7 @@ Sample result: }] ``` -##PUT +## PUT Insert a status PUT /Corporate/CandidateStatus @@ -244,7 +244,7 @@ Sample response "Created/updated status." ``` -##POST +## POST Retrieve multiple emails or multiple requisition_ids POST /Corporate/CandidateStatus From 5dee16e5d5682dd29ae34041c63005824e5bcca8 Mon Sep 17 00:00:00 2001 From: mperry Date: Sun, 10 Jun 2018 17:06:01 -0400 Subject: [PATCH 5/5] formatting --- CandidateStatusAPI.md | 176 +++++++++++++++++++++--------------------- 1 file changed, 88 insertions(+), 88 deletions(-) diff --git a/CandidateStatusAPI.md b/CandidateStatusAPI.md index 15ecf4c..b58f961 100644 --- a/CandidateStatusAPI.md +++ b/CandidateStatusAPI.md @@ -155,40 +155,40 @@ Sample result: "requisition_id":"1", "vendor_key":"test_vendor_key", "status_detail":"Test status detail", - "status_level": "application", - "status_date": "2017-03-19T23:04:01Z", - "level_id": "test_level_id", - "status": "test_status", - "client": "test_client", - "requisition_title": "test_req_title", - "account": "AAAA_1234", - "candidate_email": "testEmail@123.com" + "status_level":"application", + "status_date":"2017-03-19T23:04:01Z", + "level_id":"test_level_id", + "status":"test_status", + "client":"test_client", + "requisition_title":"test_req_title", + "account":"AAAA_1234", + "candidate_email":"testEmail@123.com" }, { - "requisition_id": "2", - "vendor_key": "test_vendor_key", - "status_detail": "Test status detail", - "status_level": "application", - "status_date": "2017-03-19T23:04:01Z", - "level_id": "test_level_id", - "status": "test_status", - "client": "test_client", - "requisition_title": "test_req_title", - "account": "AAAA_1234", - "candidate_email": "testEmail@123.com" + "requisition_id":"2", + "vendor_key":"test_vendor_key", + "status_detail":"Test status detail", + "status_level":"application", + "status_date":"2017-03-19T23:04:01Z", + "level_id":"test_level_id", + "status":"test_status", + "client":"test_client", + "requisition_title":"test_req_title", + "account":"AAAA_1234", + "candidate_email":"testEmail@123.com" }, { - "requisition_id": "3", - "vendor_key": "test_vendor_key", - "status_detail": "Test status detail", - "status_level": "application", - "status_date": "2017-03-19T23:04:01Z", - "level_id": "test_level_id", - "status": "test_status", - "client": "test_client", - "requisition_title": "test_req_title", - "account": "AAAA_1234", - "candidate_email": "testEmail@123.com" + "requisition_id":"3", + "vendor_key":"test_vendor_key", + "status_detail":"Test status detail", + "status_level":"application", + "status_date":"2017-03-19T23:04:01Z", + "level_id":"test_level_id", + "status":"test_status", + "client":"test_client", + "requisition_title":"test_req_title", + "account":"AAAA_1234", + "candidate_email":"testEmail@123.com" }] ``` @@ -203,7 +203,7 @@ Requirements: - status - status_date - status_level (must be either candidate or application) - - if candidate: requisition_id and requisition_title must be + - if candidate:requisition_id and requisition_title must be left off - if application: requisition_id is required. Requisition_title @@ -212,30 +212,30 @@ Requirements: Sample request 1 (application): ```json { -"account": "AAAA_1234", -"candidate_email": "testEmail@123.com", -"vendor_key": "test_vendor_key", -"client": "test_client", -"requisition_id": "123", -"level_id": "test_level_id", -"status": "test_status", -"status_date": "2017-03-19T19:04:01Z", -"status_level": "application", -"status_detail": "Test status detail" +"account":"AAAA_1234", +"candidate_email":"testEmail@123.com", +"vendor_key":"test_vendor_key", +"client":"test_client", +"requisition_id":"123", +"level_id":"test_level_id", +"status":"test_status", +"status_date":"2017-03-19T19:04:01Z", +"status_level":"application", +"status_detail":"Test status detail" } ``` Sample request 2 (candidate): ```json { -"account": "AAAA_1234", -"candidate_email": "testEmail@123.com", -"vendor_key": "test_vendor_key", -"client": "test_client", -"level_id": "test_level_id", -"status": "test_status", -"status_date": "2017-03-19T19:04:01Z", -"status_level": "candidate", -"status_detail": "Test status detail" +"account":"AAAA_1234", +"candidate_email":"testEmail@123.com", +"vendor_key":"test_vendor_key", +"client":"test_client", +"level_id":"test_level_id", +"status":"test_status", +"status_date":"2017-03-19T19:04:01Z", +"status_level":"candidate", +"status_detail":"Test status detail" } ``` @@ -259,58 +259,58 @@ Optional: Sample request 1: ```json { - "account": "aaaa_1234", - "candidate_email": ["testEmail@123.com", "testEmail@1234.com"], - "status_date": "2017-03-18T19:04:01Z" + "account":"aaaa_1234", + "candidate_email":["testEmail@123.com", "testEmail@1234.com"], + "status_date":"2017-03-18T19:04:01Z" } ``` Sample request 2: ```json { - "account": "aaaa_1234", - "requisition_id": ["1", "2", "123"], - "status_date": "2017-03-18T19:04:01Z" + "account":"aaaa_1234", + "requisition_id":["1", "2", "123"], + "status_date":"2017-03-18T19:04:01Z" } ``` Sample response:   ```json [{ - "requisition_id": "1", - "vendor_key": "test_vendor_key", - "status_detail": "Test status detail", - "status_level": "application", - "status_date": "2017-03-19T23:04:01Z", - "level_id": "test_level_id", - "status": "test_status", - "client": "test_client", - "requisition_title": "test_req_title", - "account": "AAAA_1234", - "candidate_email": "testEmail@123.com" + "requisition_id":"1", + "vendor_key":"test_vendor_key", + "status_detail":"Test status detail", + "status_level":"application", + "status_date":"2017-03-19T23:04:01Z", + "level_id":"test_level_id", + "status":"test_status", + "client":"test_client", + "requisition_title":"test_req_title", + "account":"AAAA_1234", + "candidate_email":"testEmail@123.com" }, { - "requisition_id": "2", - "vendor_key": "test_vendor_key", - "status_detail": "Test status detail", - "status_level": "application", - "status_date": "2017-03-19T23:04:01Z", - "level_id": "test_level_id", - "status": "test_status", - "client": "test_client", - "requisition_title": "test_req_title", - "account": "AAAA_1234", - "candidate_email": "testEmail@123.com" + "requisition_id":"2", + "vendor_key":"test_vendor_key", + "status_detail":"Test status detail", + "status_level":"application", + "status_date":"2017-03-19T23:04:01Z", + "level_id":"test_level_id", + "status":"test_status", + "client":"test_client", + "requisition_title":"test_req_title", + "account":"AAAA_1234", + "candidate_email":"testEmail@123.com" }, { - "requisition_id": "123", - "vendor_key": "test_vendor_key", - "status_detail": "Test status detail", - "status_level": "application", - "status_date": "2017-03-19T23:04:01Z", - "level_id": "test_level_id", - "status": "test_status", - "client": "test_client", - "account": "AAAA_1234", - "candidate_email": "testEmail@123.com" + "requisition_id":"123", + "vendor_key":"test_vendor_key", + "status_detail":"Test status detail", + "status_level":"application", + "status_date":"2017-03-19T23:04:01Z", + "level_id":"test_level_id", + "status":"test_status", + "client":"test_client", + "account":"AAAA_1234", + "candidate_email":"testEmail@123.com" }] ```