Upload Recruiting Document V1 API Guide for ADP Recruiting Management
CHAPTER 2

Use Case: Uploading a Recruiting Document

Use Case Description

This use case allows user to upload a document, one at a time, against a Job Application or against an Applicant.

The following are the recruiting document types that can be uploaded currently:

  • Resume
  • Attachment

API Usage

Method

URI

Description

GitHub Sample Request Payload

GitHub Sample Response Payload

POST

events/staffing/v1/work-fulfillment/document.upload

Upload a document.

Upload-recruiting-document-http-200-request.json

Upload-recruiting-document-http-200-response.json

Application Scope

The canonical URI corresponding to the Upload Recruiting Document API needs to be added in the Consumer Application Registry (CAR) for the subscription following which a user can access this API and make successful API calls.

The following canonical needs to be added to your CAR application scopes in order to enable this use case:
 /staffing/staffingManagement/positionSeekerManagement/documentManagement/document.upload

Request Header Parameters

Key 

Value

Content-Type multipart/mixed

For more information on how to use the headers and how to pass the request payload along with the file you want to upload, import the Postman Collection provided in the Postman Collection section in Chapter 1 - About this API.

After importing the collection into Postman, go to Body > form Data.

Supported Actors

Request Parameter roleCode Value

Usage

Practitioner Uploads a document. A system user is considered a Practitioner.

Data Dictionary

 On the ADP Recruiting Management application you can find the documents uploaded through this API by navigating any Candidate > Candidate Gear (icon next to candidate's name) > Documents.

Schema Location

Field Name in ADP Recruiting Management

Description

Supported codeValues

/events/data/eventContext/associatedObject/objectID/idValue

Not Displayed

 

The job application item ID, for which you want to upload the document.

This can be obtained by calling the /staffing/v2/job-applications" API.

For example, a numeric ID such as 6602284584.

/events/data/eventContext/associatedObject/objectID/schemeCode/codeValue

Not Displayed

 

The code for the ID scheme.

*-adp-rm-applicationID

/events/data/eventContext/documentTypeCode/codeValue

Not Displayed

 

Document's Business Type.

One of the following:

  • applicant.resume
  • applicant.attachment
/events/data/eventContext/sourceApplicationFeatureID

Not Displayed

 

The type of entity against which the document is uploaded. applicant

/events/data/transform/document/documentTitle

Not Displayed

 

Title of the document uploaded.

Can be given anything.

/events/data/transform/document/documentTypeCode/codeValue

Resume

     or 

Attachments

Document Category.

One of the following:

  • applicant.resume
  • applicant.attachment

/events/data/transform/document/fileName

Attachments

Document File name.

For example, Linus_Torvalds_resume.txt.

/events/data/transform/document/fileTypeCode/codeValue

Not Displayed

 

Document file or media type.

.txt, .pdf, .doc, and so on

/events/eventNameCode/codeValue

Not Displayed

 

 
/events/eventNameCode/codeValue

Not Displayed

 

Code for the event. document.upload
/events/serviceCategoryCode/codeValue

Not Displayed

 

Code for the service category. staffing

Responses

You may encounter exceptions outside your common success scenarios. You must account for the following exceptions during your initial development.

For more information, see API Common Exceptions and Tips for Handling.

Response Code

Condition

messageTxt

GitHub Sample Request Payload

GitHub Sample Response Payload

Tips to Handle

200 OK Uploading a recruiting document with documentTypeCode as "applicant.resume".   Upload-recruiting-document-http-200-request.json

Upload-recruiting-document-http-200-response.json

 
200 OK Uploading a recruiting document with documentTypeCode as "applicant.attachment"  

Upload-recruiting-document-attachment-http-200-request.json
 

Upload-recruiting-document-attachment-http-200-response.json
 

 
200 OK Uploading a document without serviceCategoryCode and eventNameCode.  

Upload-recruiting-document-without-categoryCode-http-200-request.json

 

Upload-recruiting-document-without-categoryCode-http-200-response.json

 
200 OK Uploading a document with invalid application itemID.

"developerMessage": {
"title": "Error",
"messageTxt": "No rows returned for query. SELECT c.address1,c.address2,c.city,c.clientID,c.country,c.county,c.dedupeCrc32,c.dedupeKey,

c.dedupeValue,c.eeoEthnicity,c.eeoGender,c.eeoVeteran,c.emailAddress,c.externalID,c.firstName,c.id,c.isa,c.isaID,c.jobTitle,

c.lastName,c.maritalStatus,c.middleName,c.mode,c.nameSuffix,c.phone,c.phone2,c.phone2Type,c.phoneType,c.refIsa,c.refIsaID,

c.soSecNum,c.state,c.status,c.timestampCreation,c.timestampDateOfBirth,c.timestampLastUpdate,c.timeZoneID,c.type,c.zip FROM portal.SourcingCandidate$$009 AS c INNER JOIN portal.RTiAssignment AS a ON c.id = a.candidateID WHERE a.clientID = ? AND a.id = ? "
}

Upload-document-with-invalid-applicationID-request.json
 

Upload-document-with-invalid-applicationID-response.json
 

400 Bad Request instead of 200 OK should be returned for this case status code.

This is a known issue. See Chapter 3 - Known Issues and Limitations for more information.

200 OK Uploading a document with invalid documentTypeCode

"developerMessage": {
"title": "Error",
"messageTxt": "DocumentUploadEvent is invalid or missing required information: found 'applicant.resume1', expected one of applicant.attachment,applicant.coverletter,applicant.resume,application.attachment,application.taxform"
}

Upload-document-with-invalid-documentTypeCode-request.json

Upload-document-with-invalid-documentTypeCode-response.json

400 Bad Request instead of 200 OK should be returned for this case status code.

This is a known issue. See Chapter 3 - Known Issues and Limitations for more information.

400 Bad Request

The json text/request payload is missing as one of the parameters.

The json has all the details of the upload such as:

the applicationID, file name etc.

"userMessage": {
                        "links": [],
                        "messageTxt": "unsupported Content-Type for parameter 'jsonParam': Caused by - Invalid mime type \"null\": 'mimeType' must not be empty"
                    }

NA

Upload-document-with-missing-request-json-response.json

Check that the JSON is supplied.
400 Bad Request

When the syntax of request payload is malformed.

 

"userMessage": {
                        "links": [],
                        "messageTxt": "unsupported Content-Type for parameter 'jsonParam': Caused by - Invalid mime type \"null\": 'mimeType' must not be empty"
                    }

Upload-document-with-malformed-json-http-400-request.json

Upload-document-with-malformed-json-http-400-response.json

Check that the JSON is well formed.
500 Internal Server Error When document file is not attached for upload.

"userMessage": {
                            "messageTxt": "Error parsing file"
                        },

Upload-recruiting-document-http-request.json

 

Upload-document-with-missing-attachment-http-500-response.json

Check that the file is attached.