Getting Started

Welcome to the Documentation for PCR's Rest API. It is important to answer the following questions as it will determine how access is granted for the API. In many cases PCR Clients will need to supply you with credentials for access to their database depending on the path of the API usage.

How will you use the API?

Developing an Application for a Specific Client

This path may be used to code a job board or custom application for a specific PCR client. The client in question will need to sign up for an API account to generate Application Ids as well as API Keys. These keys along with login credentials and a database will be supplied by the client.

Developing an Integration to be made available for PCRecruiter Clients

If you are looking to use our API for a third party integration to make available for one or more clients please sign up and you will be contacted to set up the next steps.

To sign up for the API please visit

If it is your first time using our REST API please visit the General REST Concepts section otherwise just visit the API Endpoints Section to see what is currently available in the API.

How our documentation works

API Endpoints

The API Endpoints section will provide all of the API endpoints and methods accepted by each. Clicking each endpont and method will reveal the available parameters and the datatype that will be sent or is expected to be sent to the API.

Endpoint Definitions

The Endpoint Definitions section goes more in-depth into each endpoint, describing what that endpoint data is and what it is used for. This section also covers each parameter, explaining what that parameter means in PCRecruiuter. Inside each article, you will find example API calls that can be used as a bassis for learning the API.

General Rest Concepts

Supported HTTP Methods

PCRecruiter's makes use of or plans to make use of the following http Methods in the REST web service.

Additional implementation information can be found with each resource as to what methods are supported for that item. For the initial release we are only allowing data to be read through GET requests with functionality to update, create, or remove data on its way in upcoming releases.

  • POST

    Use of this method will tell the web service to CREATE a new record.

  • GET

    Use of this method will tell the web service to READ data for a record or multiple records.

  • PUT

    Use of this method will tell the web service to UPDATE a record.

  • DELETE

    Use of this method will tell the web service to DELETE a record.

API Endpoints

Click on the resources below to view the available resources, field documentation and build sample requests. In order to run the API calls you will need valid credentials as well as valid api keys/app ids.

How to Authorize

To be able to make sample API calls on this page, you will need to create a session id. This can be done by expanding the POST call for the access-token endpoint and clicking the "Try it out" button. Once you have done this, you will need to enter the below information and click the "Execute" button.

  • Username - Username for the PCRecruiter database. This will be provided by the PCRecruiter user
  • Password - Password for the PCRecruiter Username. This will be provided with the Username
  • DatabaseId - This will be the location for the PCRecruiter database. This will be provided by the user
  • ApiKey - The ApiKey can be found on our 3scale API website once an account has been created
  • AppId - The ApiKey can be found on our 3scale API website once an account has been created

Once you have executed the POST call to the access-token endpoint you will find your session id in the response area. Copy the session id value and click the authorize button to paste the session id. Once you have authorized, future sample calls on this page will use that session id to authorize the API calls. These sample calls will use real data based on the credentials used to create the session id so ensure data is correct before attempting any PUT, POST or DELETE calls.

Reference Guide

Base URL Endpoint

The following URL is the base endpoint for the REST API.

  • PCRecruiter v9:https://www2.pcrecruiter.net/rest/api

Content Types

The Rest API accepts both JSON and XML content Types. JSON is the Default Content type.

Accept Types

The Rest API can return both JSON and XML data. The default is JSON. The desired type can be set by passing the Accept header.

Compression

The Rest API supports gzip. It can be enabled using the Accept-Encoding header. (Accept-Encoding: gzip)

Date Field Format

Dates should be sent (and will be returned) in ISO-8601 format for all non-custom fields.

Custom fields will be returned in the format based on the accept-language submitted in the header. If no accept-language is submitted then the default en-US en-US will be applied which is MM-DD-YYYY.

Custom Fields

Custom fields will be returned with a field type value to help with determining what data has been placed in them. It is possible for date fields to be returned in a MM-DD-YYYY format or with alpha characters such as December 2, 1992.

Custom currency values will generally return numbers with the possibility of the three-digit currency code appended on the end such as 100 EUR.

Custom Fields Marked as Hashed/Encrypted will not be returned in the initial release of the API due to their sensitive nature. The following format can be expected with the values just returned as ["***************"].

{
     "CandidateId": 1234567890,
     "CustomFields": [ {
          "FieldName": "custom hashencrypt",
          "FieldType": "HashedEncrypted",
          "Values": ["***************"]
     }]
}

Special URL Encoding Cases

In some cases, the custom field names or values for a field may contain characters which are used for other purposes in the API. These values will need to be URL encoded once prior to general URL encoding.

  • (
  • )
  • ,
  • %
Parenthesis

INCORRECT ../candidates?query=state eq OH AND Title(functional) = Sales Manager

CORRECT ../candidates?query=state eq OH AND Title%28functional%29 = Sales Manager

Comma

INCORRECT ../candidates?query=state eq OH AND Title = Marketing,Sales Director

CORRECT ../candidates?query=state eq OH AND Title = Marketing%2CSales Director

Percent Sign

INCORRECT ../candidates?query=state eq OH AND % Travel eq 50

CORRECT ../candidates?query=state eq OH AND %25 Travel eq 50

Additional Information

The url parameters,fields, and values are case insensitive. For example, searching Status eq Candidate is equivalent to status eq candidate.

Searching References

Relational Operators

The following relational operators are supported when using the query parameter in a GET request.

  • eq (equal)
  • ne (not equal)
  • gt (greater-than)
  • lt (less-than)
  • ge (greater-than-equal)
  • le (less-than-equal)
  • sw (starts with)
  • ew (ends with)
  • co (contains)

Below are some samples of simple queries using the various operators.

Find all name records with a status equal to candidate

../candidates?query=status eq candidate

Find all name records entered greater-than-equal a specified date

../candidates?query=DateEntered ge 2013-01-01T10:07:40.840

Find all name records which have a title which starts with sales

../candidates?query=Title sw sales

Find all name records which have a title which starts with sales

../candidates?query=Title sw sales

Find all name records which have a title which contains manager

../candidates?query=Title sw manager

Logical Operators

The following relational operators are supported when using the query parameter in a GET request.

logical
  • AND
  • OR

../candidates?query=status eq candidate AND title sw sales

../candidates?query=status eq candidate OR status eq unverified

Grouping

Grouping in queries is done with parenthesis. When used for grouping parenthesis only need to be given standard URL encoding.

../candidates?query=status eq candidate AND (state eq ohio OR state eq new york)

Finding Records on a Rollup List

In order to search for all of the names on a rollup list in PCRecruiter just include the Rollup field name followed by the value in the query parameter. Initially these values will need to be supplied by the client from the PCR database.

../candidates?query=Rollup eq ADMIN.0002

Special Cases

If a search contains a field or value which is one of the logical operators it should be escaped with a backslash.

../candidates?query=State eq \OR

../candidates?query=CompanyName eq Smith \AND Smith

Job Board Parameters

OnJobBoard

When requesting distinct field counts to create a search filter for a user interface the OnJobBoard parameter can be added to the URL to specify which PCR Job board the positions are configured for. The External value would be for a Careers Page available to the Public. An Internal value would be for a position available only for employees on an intranet site.

The following samples would return all distinct city and state values for the filtered positions along with a count of how many occurrences of the city or state.

Internal and External Job Boards

../positions/distinctfields?fields=state,city & OnJobBoard = External,Internal

Internal Job Board

../positions/distinctfields?fields=state,city & OnJobBoard = Internal

External Job Boards

../positions/distinctfields?fields=state,city & OnJobBoard = External

Access-Token

Description

The access-token endpoint is used to create and delete session tokens that can be used in subsequent calls to other endpoints using the API.

The retrieved session token can be used with an Authorization header as a BEARER token or can be included in the URL with the SessionID parameter.

Required parameters when retrieving an access token

  • Username
  • Password
  • DatabaseId
  • ApiKey
  • AppId

To create a session token, you can use a POST call to the access-token endpoint with the required parameters. The session token will be present in the response body. A DELETE call can also be sent to the access-token endpoint with the SessionId parameter to remove an active session.

Reusing access-tokens

To keep things efficient, make sure to reuse your access-tokens throughout the day.

If you need to access multiple databases with the API, associate each access-token acquired with the DatabaseId. (i.e. store the access-token in a dictionary with the key being the DatabaseId).

We recommend creating each access-token only once per day per database.

This not only cuts the number of API calls in half, but we also begin to rate limit creating access-tokens for the following thresholds:

  • Above 1 access-token every 10 seconds, the rate limit begins by simply adding a one second pause
  • Above 2 access-tokens every 10 seconds, the administrator will be sent an automatic notification via email (this is the 3-scale email address used when signing up)
  • After thirty days, thresholds that continue above 2 access-tokens every 10 seconds will result in the refusal to create those excess access-tokens
Don't worry, this will only be an issue for customers that continue to acquire an access-token for every call they make.

Examples

------------------ REQUEST -------------------

POST /rest/api/acess-token

{
"Username": {Username},
"Password": ***********,
"DatabaseId": {Database.Id},
"ApiKey": ***********,
"AppId":**********
}

------------------ RESPONSE ------------------

SessionId: {SessionId here}

This API call is to the access-token endpoint and requests an access token which can be used to authorize subsequent API calls to other endpoints.

------------------ REQUEST -------------------

DELETE /rest/api/acess-token
SessionId={SessionId here}

------------------ RESPONSE ------------------

Success: true

This API call is to the access-token endpoint and is used to remove the active session for the sessionId provided in the DELETE call.

Attachments

Description

The attachments endpoint is used to view attachments for the 3 primary record types in PCRecruiter, Candidates, Companies and Positions. This endpoint can be used to view a list of attachments for a specific record and retrieve the attachment id of a specific attachment. When querying the attachments endpoint, you will want to ensure to include the record type for attachments you are searching for. The available record types are Candidates, Companies and Positions. Ex: /Candidates/attachments

Once the id of an attachment has been retrieved, another call to the attachments endpoint can be made to retrieve the data within the attachment. All attachments in the response will be a base64 encoded URL where the attachment can be viewed.

Available query parameters

  • AttachmentId
  • JobId
  • CandidateId
  • CompanyId
  • Name
  • Type
  • Description
  • Size
  • Date
  • Data

Data parameters

  • AttachmentId - This is the unique id for the attachment returned
  • JobId - This is the unique id for the position when retrieving position attachments
  • CandidateId - This is the unique id for the candidate when retrieving candidate attachments
  • CompanyId - This is the unique id for the company when retrieving company attachments
  • Name - This is the name for the attachment. This is commonly the exact file name
  • Type - This is the type of attachment. Current options include HTML, Profile, Upload and CAPROFILE2
  • Description - The description of the attachment. This can often mirror the name parameter
  • Size - This parameter represents the size of the attachment in bytes
  • Date - The data parameter represents the date the attachment was added or last modified
  • Data - Data will be the actual attachment data. This will be base64 encoded

Examples

------------------ REQUEST -------------------

GET /rest/api/Candidates/{record id}/attachments
Authorization: BEARER {SessionId}

------------------ RESPONSE ------------------

{
"TotalRecords": 1,
"Results":[
{
"AttachmentId": {attachment Id},
"Name": "File_name",
"Type": "Resume",
"Description": "Attachment Description",
"Size": 456263,
"Date": "2018-12-05T16:54:10"
}
]
}

This API call is used to retrieve a full list of the attachments for the record id specified in the query. The response includes the AttachmentId which can be used to retrieve the base64 URL for an exact attachment. The record id will be the CandidateId, CompanyId or JobId based on which record type you are looking for. You can view the resources for Candidates, Companies and Positions to view more on how to retrieve the record id for a specific record.

------------------ REQUEST -------------------

GET /rest/api/Candidates/{record id}/attachments/{attachment id}
Authorization: BEARER {SessionId}

------------------ RESPONSE ------------------

{
"AttachmentId": {attachment id},
"Name": "{attachment name}",
"Type": "Resume",
"Description": "Attachment Description",
"Size": 456263,
"Date": "2018-12-05T16:54:10",
"Data": "aHR0cHM6Ly93d3cucGNyZWNydWl0ZXIubmV0L2FwaWRvY3NfdjIv
IyEvYXR0YWNobWVudHMvR2V0QXR0YWNobWVudF9nZXRfMA=="
}

This API call is similar to the first with the addition of the attachment id appended to the end of the request. This tells PCRecruiter to retrieve data for only that specific attachment. Included in the response is the data parameter which will be the base64 URL of the attachment which can be viewed once decoded.

------------------ REQUEST -------------------

GET /rest/api/Candidates/attachments/
Authorization: BEARER {SessionId}

------------------ RESPONSE ------------------

{
"TotalRecords": 2,
"Results":[
{
"AttachmentId": {attachment id},
"Name": "{attachment name}",
"Type": "HTML",
"Description": "Attachment Description",
"Size": 3261,
"Date": "2018-08-28T15:14:36"
},
{
"AttachmentId": {attachment id},
"Name": File_name,
"Type": "Profile",
"Description": "Attachment Description",
"Size": 19850,
"Date": "2018-10-12T15:44:52"
}
]
}

This call to attachments does not specify a record id but does specify a record type. This will return all attachments for that record type. This does not return a record id in the response, so it is suggested to retrieve the record id from the corresponding record type endpoint if this information is needed.

------------------ REQUEST -------------------

POST /rest/api/Candidates/{record id}/attachments
Authorization: BEARER {SessionId}

{
"Name": "{attachment name}",
"Type": "Upload",
"Description": "{attachment description}",
"Date": "",
"Data": "UENSZWNydWl0ZXIKTWFpbiBTZXF1ZW5jZSBUZWNobm9sb2d5C
jQ0MjAgU2hlcndpbiBSb2FkCldpbGxvdWdoYnksIE9
oaW8gNDQwOTQKKDQ0MCkgOTQ2LTUyMTQ="
}

------------------ RESPONSE ------------------

{
"AttachmentId": "{attachment id}"
}

This call creates a new attachment for the record id listed in the API call URL. You can similarly use a PUT call to update an attachment using the same parameters and adding the attachment id to the end of the URL. It should be noted that the data should be base64 encoded in the data parameter. When retrieving an attachment that was added via POST, the base64 result will be the attachment instead of a URL that can be used to view the attachment.

Automations

Description

Calendar

Description

The calendar endpoint can be used to retrieve or create new calendar appointments on the schedule in PCRecruiter. This endpoint can also be used to update an existing calendar record using PUT call and including the unique TaskId that every calendar record has. In addition to creating, updating and searching for calendar records, this endpoint allows the ability to delete an existing calendar record, as well as the ability to create the contents of an .ics file from an existing scheduled item.

This endpoint will return appointments for multiple users based on the permissions of the username that created the SessionId.

Data parameters

  • TaskId - The unique id for each calendar record
  • UserId - The username this calendar record belongs to
  • Date - The start date and time of the appointment in ISO-8601 format.
  • EndDate - The end date and time of the appointment in ISO-8601 format.
  • Duration - Duration of the appointment in minutes
  • Subject - The subject or title of the appointment
  • Notes - The body of the appointment
  • Location - Location of appointment, if specified
  • Alarms - A value of "Y" indicates an alarm was selected, otherwise the value is null
  • LinkType - Used to link records to appointments. Values are Candidate, Company or Position
  • LinkId - Unique id for the record linked using LinkId
  • AlarmBeforeMins - Indicates in minutes when the alarm will appear before the appointment
  • Snooze - If the appointment has passed, this will show the date appointment was snoozed
  • IsSnoozed - Boolean value to indicate if appointment has been snoozed
  • LastModified - ISO-8601 date of when this appointment was last modified
  • RecurringId - RecurringId shows the id of the original appointment if this is a recurring appointment
  • OutlookId - Unique id of an Outlook calendar item. This happens if an item was synced from Outlook
  • Planner - An object of the below items indicating if this appointment is a plan created from a Rollup
    • Rollup - The unique id and Rollup name separated by $$ (Ex: ADMIN.0001$$Marketing List)
    • Type - The type of Rollup the plan was created from
    • Ids - An array of unique ids that the plan contains
  • ActivityType - If item is linked to a record, this is used to indicate the activity type written to the record
  • Result - Result code for the above activity type
  • Stage - Rollup style stage assigned to this appointment item
  • Attendees - List of any attendees selected for the appointment
  • EventTypeColorCode - Hex color code selected for the appointment item. Used to show distinct type of appointments
  • EventTypeDescription - Description of appointment type used with EventTypeColorCode
  • RecurringPattern - If appointment is recurring, this will indicate the recurring pattern
  • RecurringEnd - ISO-8601 date for when the recurring appointments end
  • RecurringDay - If recurring is set to weekly, this indicates which day of the week it occurs on
  • RecurringCount - Number of times this appointment recurred
  • RecurringType - Indicates whether this is the original appointment or recurring appointment
  • CalendarId - If the user has more than one PCRecruiter calendar, this is the unique id of the calendar
  • IsAllDayAppointment - Boolean value to indicate if this appointment lasts all day. Typically used for events, time off or vacation

Examples

------------------ REQUEST -------------------

GET /rest/api/calendar/{TaskId}

------------------ RESPONSE ------------------

{
"TaskId": {TaskID},
"UserId": "SAMPLE",
"Date": "2020-03-15T13:00:00",
"EndDate": "2020-03-15T14:00:00",
"Duration": 60,
"Subject": "In-office Interview",
"Notes": "Location: ;\r\nDescription: Sample Candidate \r\nCompany Name
\r\nh (440) 946-5214 In-office interview for new candidate;\r\n
(Mon Mar-15 '21 12:28p/ADMIN)",
"Location": "Conference Room",
"Alarms": "Y",
"LinkType": "NONE",
"LinkId": null,
"AlarmBeforeMins": 5,
"Snooze": "0001-01-01T00:00:00",
"IsSnoozed": false,
"LastModified": "2021-03-15T12:28:10.587",
"RecurringId": {recurring TaskId},
"OutlookId": null,
"Planner": null,
"ActivityType": null,
"Result": null,
"Stage": null,
"Attendees": "<meeting_attendance><organizer>sample@email.net</organizer>
<attendee><name>support@mainsequence.net</name><status>None</status></attendee>
</meeting_attendance>",
"EventTypeColorCode": "#898763",
"EventTypeDescription": "Interview",
"RecurringPattern": "FREQ=DAILY;WKST=SU;COUNT=1",
"RecurringEnd": "2021-03-15T00:00:00",
"RecurringDay": null,
"RecurringCount": 1,
"RecurringType": "MASTER",
"CalendarId": null,
"IsAllDayAppointment": false
}

This API call is used to return one appointment based on the task id specified in the URL. If no task id is specified in the URL, then this call would return all appointments.

------------------ REQUEST -------------------

GET /rest/api/calendar/events?FromDate=2020-03-14&ToDate=2020-03-16

------------------ RESPONSE ------------------

{
"TotalRecords": 3,
"Results":[
{
"TaskId": 131426775224395, "UserId": "SAMPLE",
"Date": "2020-03-15T10:30:00", "EndDate": "2020-03-15T11:00:00",…
},
{
"TaskId": 141735280434186, "UserId": "SAMPLE",
"Date": "2020-03-16T12:45:00", "EndDate": "2020-03-16T12:45:00",…
},
{"TaskId": 109180637029109, "UserId": "SAMPLE",
"Date": "2020-03-16T12:45:00", "EndDate": "2020-03-16T12:45:00",…
}
]
}

This API call is used to return all appointments found between the FromDate and ToDate specified in the URL. The parameters for each appointment will match the first example from the previous GET above. These responses were shortened in this example to show the entire object.

------------------ REQUEST -------------------

PUT /rest/api/calendar/{TaskId}/meetingrequest?fromEmail=sample.email.net&toEmail=support@mainsequence.net

------------------ RESPONSE ------------------

{
"icsAttachment":
"BEGIN:VCALENDAR\r\nPRODID:-//Emulation Microsoft Corporation//Outlook 9.0
MIMEDIR//EN\r\nVERSION:2.0\r\nMETHOD:REQUEST
\r\nBEGIN:VTIMEZONE\r\nTZID:GMT\r\nBEGIN:STANDARD
\r\nTZOFFSETFROM:-0000\r\nTZOFFSETTO:-0000
\r\nTZNAME:GMT\r\nDTSTART:16010101T000000
\r\nEND:STANDARD\r\nEND:VTIMEZONE\r\nBEGIN:VEVENT
\r\nATTENDEE;CN=supporte@mainsequence.net;
ROLE=REQ-PARTICIPANT;RSVP=TRUE:MAILTO:supporte@mainsequence.net
\r\nORGANIZER:
MAILTO:sample@email.net\r\nDTSTART;TZID=GMT:20210316T164500
\r\nDTEND;
TZID=GMT:20210316T164500\r\nLOCATION:\r\nTRANSP:OPAQUE
\r\nSEQUENCE:0\r\nUID:109180637029109
\r\nDTSTAMP:20210315T181701Z\r\nDESCRIPTION:
\r\nPRIORITY:5\r\nCLASS:PUBLIC\r\nBEGIN:VALARM
\r\nTRIGGER:-PT15M\r\nACTION:DISPLAY\r\nDESCRIPTION:Reminder
\r\nEND:VALARM\r\nEND:VEVENT
\r\nEND:VCALENDAR\r\n"
}

This API call is used to return the contents of an .ics file which for an existing PCRecruiter scheduled item. This can then be used in an attachment for an email to send a meeting request with the details of the PCRecruiter appointment. Any changes to the .ics will not be synced back to PCRecruiter once the meeting request is sent out.

Candidates

Description

The candidates endpoint is used to retrieve, update and create data for candidate records. Candidates are names within the database, which can include candidates, hiring authorities and contacts alike. This endpoint has various available parameters, including candidate record data, activities, notes, resumes and adding the record to Rollup lists.

Candidates

The base candidates endpoint is used to retrieve, update, create or delete actual candidate record data. This data includes name, email, address and all field level data in regards to the candidate record.

Data parameters

  • CandidateId - Unique id for the candidate record
  • CompanyId - Unique id for the company this record is attached to
  • CompanyName - Company name assigned to the CompanyId
  • CompanyUserName - Username for the company record
  • FirstName - First name of the candidate record
  • LastName - Last name of the candidate record
  • MiddleInitial
  • Title
  • Address
  • Address2
  • City
  • State
  • PostalCode
  • PostalCodeExtension - Additional 4-digit postal code if used
  • County
  • Country
  • HomePhone
  • FaxPhone
  • MobilePhone
  • WorkPhone
  • CurrentSalary
    • CurrencyCode - Currency Code for the current salary field
    • Value - Value of the current salary field
  • DesiredSalary
    • CurrencyCode - Currency code for the desired salary field
    • Value - Value of the current salary field
  • DateEntered - The date and time the candidate record was created
  • EmailAddress - Primary email address field for candidate records
  • Industry
  • Specialty
  • Status - Status field indicates whether this record is a candidate, hiring authority, placed etc.
  • HasResume - Boolean value to indicate if this candidate has a resume attached to their record
  • Keywords - Keyword values for the candidate
  • Notes - Notes section for the candidate
  • LastActivity - Date and time for the last activity that occurred
  • LastModified - Date and time for the last modification to this record
  • UserName - The username this record is assigned to

Examples

------------------ REQUEST -------------------

GET /rest/api/candidates/{CandidateId}

------------------ RESPONSE ------------------

{
"CandidateId": {CandidateId},
"CompanyId": {CompanyId},
"FirstName": "Jane",
"LastName": "Smith",
"Title": "Marketing Analyst",
"Address": "111 Sample Street",
"City": "Cleveland",
"State": "OH",
"PostalCode": "44114",
"PostalCodeExtension": null,
"County": Lake,
"Country": United States of America,
"HomePhone": null,
"MobilePhone": null,
"WorkPhone": null,
"CurrentSalary":{
"CurrencyCode": null,
"Value": null
},
"DesiredSalary":{
"CurrencyCode": null,
"Value": null
},
"DateEntered": "2016-09-16T15:31:44",
"EmailAddress": null,
"Industry": null,
"Status": "Candidate",
"HasResume": false,
"DefaultCurrency": null,
"UserName": "SAMPLE"
}

This API call will return the details for the specific candidate record specified in the URL. Additional parameters can be added by using the FieldsPlus= parameter followed by the additional candidate fields comma separated. Custom fields can also be retrieved using the Custom= parameter with each field name comma separated.

Candidate Activities

The candidate activities endpoint can be used to retrieve, create, update or delete activities for a specific candidate record. The endpoint format for this would be /candidates/{CandidateId}/activities. Activities in PCRecruiter are actions and the details of those actions record to the activities screen for a record.

Data parameters

  • ActivityId - Unique id for the activity record
  • CandidateId - Unique id for the candidate this activity record is for
  • UserName - Username that created the activity
  • ActivityDate - Date and time the activity was created or set to take place
  • ActivityText - The text/body of the activity
  • ActivityType - The type of activity for the activity record
  • ActivityResult - Result is a sub-type of activity type. This is not always used
  • InterviewId - InterviewId is the unique id for the interview if this activity originated from an interview record

Examples

------------------ REQUEST -------------------

GET /rest/api/candidates/{CandidateId}/activities/{ActivityId}?FieldsPlus=ActivityText

------------------ RESPONSE ------------------

{
"CandidateId": {CandidateId},
"ActivityId": {ActivityId},
"UserName": "SAMPLE",
"ActivityDate": "2017-05-17T14:03:02",
"ActivityText": "Candidate was created via API. (Wed May-17 '17 2:03p/SAMPLE)",
"ActivityType": "ADDNAME",
"ActivityResult": null
}

This API call will return the details of a single activity record defined by the candidate id and activity id specified in the example URL. By default, the text of the activity is not included. This can be added by including the parameter and value FieldsPlus=ActivityText.

Candidate Notes

Candidate notes are notes about a candidate record created by a user in PCRecruiter. The candidate notes endpoint can be used to retrieve, create, update and delete notes for a candidate record. This endpoint can only be used to retrieve the notes for one specified candidate per call.

Data parameters

  • CandidateId - Unique id for the candidate this note is attached to
  • Date - Date and time this note was created
  • UserName - Username that created this note
  • Method - Method used to create this note. Options are CGI and API
  • Text - Content of the note
  • NoteId - Id for the specific note
  • Bookmarked - Boolean parameter to show whether this note is bookmarked or not
  • DateBookmarked - Date and time this note was bookmarked
  • Edited - Boolean value to indicate if this note has been edited before

Examples

------------------ REQUEST -------------------

GET /rest/api/candidates/{CandidateId}/notes

------------------ RESPONSE ------------------

{
"TotalRecords": 2,
"Results":[
{
"CandidateId": {CandidateId},
"Date": "2020-09-18T10:34:02",
"UserName": "SAMPLE",
"Method": "(CGI)",
"Text": "Candidate is available to start anytime after providing 2 weeks notice.",
"NoteId": {NoteId},
"Bookmarked": true,
"DateBookmarked": "2021-03-17T15:38:52",
"Edited": true,
"AggregateCount": null
},
{
"CandidateId": {CandidateId},
"Date": "2020-08-18T13:19:24",
"UserName": "SAMPLE",
"Method": "(CGI)",
"Text": "First interview with client scheduled for next Monday",
"NoteId": {NoteId},
"Bookmarked": false,
"DateBookmarked": "0001-01-01T00:00:00",
"Edited": false,
"AggregateCount": null
}
]
}

This API call will return all of the notes for the candidate id specified in the URL. Each note is saved separately and so it will return an array of each note when using this endpoint.

------------------ REQUEST -------------------

DELETE /rest/api/candidates/{CandidateId}/notes/{NoteId}

------------------ RESPONSE ------------------

{
"Success": true
}

This API call will delete only the note that matches the note id and candidate id provided in the URL. This will return a boolean success parameter to indicate if that note was successfully deleted.

Candidate Resume

The candidate resume endpoint allows for retrieving, updating, creating and deleting resumes for a specific candidate. This endpoint can only retrieve the resume for one particular candidate per call. There are two types of resumes in PCRecruiter, resumes and blinded resumes. A regular resume is the main resume stored in PCRecruiter and is what the user will see. A blinded resume is often created by the user to remove identifiying information for the candidate for external use or sending to clients. A candidate may not always have a blinded resume but it is typcial to have the blinded resume used by default if the resume will be seen outside of PCRecruiter.
The resume content will be returned in a base64 encoded format and will not be present in plain text.

Data parameters

  • Resume - Base64 contents of the resume
  • FileName - File name listed for the saved resume

Examples

------------------ REQUEST -------------------

GET /rest/api/candidates/{CandidateId}/resumes

------------------ RESPONSE ------------------

{
"Resume": "U2FtcGxlIENhbmRpZGF0ZQ
pTdXBwb3J0QG1haW5zZXF1ZW5jZS5u
ZXQKKDQ0MCkgOTQ2LTUyMTQ=",
"FileName": "Currentresume.docx"
}

This API call will return the resume file name and the base64 encoded contents of the main resume for the candidate specified in the URL.

------------------ REQUEST -------------------

GET /rest/api/candidates/{CandidateId}/blindedresumes

------------------ RESPONSE ------------------

{
"Resume": "U3VwcG9ydEBtYWluc2VxdWVuY2
UubmV0Cig0NDApIDk0Ni01MjE0",
"FileName": "Blindedresume.docx"
}

This API call will return the resume file name and the base64 encoded contents of the blinded resume for the candidate specified in the URL.

Candidate Rolluplists

Rollup lists are a way to keep a list of records grouped together in PCRecruiter. Records can be put onto multiple Rollup lists and each Rollup can contain each record type of names, companies and positions. The Candidate Rolluplists endpoint allows for adding, updating and removing candidate records from Rollups.

Data parameters

  • CandidateId - The unique id for the candidate record
  • RollupCode - The unique id for the Rollup list
  • Stage - An assignable stage that shows the records progress through the list
  • Rank - A value of 0-100 used with the Rank column which can be added to a Rollup layout
  • DateEntered - Date the record was added to the Rollup
  • DateRead - Date the record was opened within the Rollup
  • Description - Description of the Rollup list. This will be the name of the Rollup
  • LastModified - Date the record was last modified on this Rollup
  • Comments - A small notes section that is contained per candidate and per Rollup

Examples

------------------ REQUEST -------------------

GET /rest/api/candidates/Rolluplists/{RollupCode}

------------------ RESPONSE ------------------

{
"TotalRecords": 1,
"Results":[
{
"CandidateId": {CandidateId},
"RollupCode": {RollupCode},
"Stage": "Stage7",
"DateEntered": "2020-03-11T10:45:07",
"DateRead": "2020-03-22T12:31:22",
"Description": "Candidate Follow up list",
"LastModified": "2020-03-22T12:31:22"
}
]
}

This API call will return all records within the Rollup list specified in the URL.

------------------ REQUEST -------------------

POST /rest/api/candidates/Rolluplists/{RollupCode}
{
"CandidateId": {CandidateId},
"Rank": "100",
"Comments": "Candidate was added via API"
}

------------------ RESPONSE ------------------

{
"Success": "true"
}

This API call will add the listed candidate id to the Rollup list. You can include other parameters including stage, but the default use case it just sending the candidate id to add the record to the list.

Companies

Description

The companies endpoint is used to create, update, retrieve and delete company records in PCRecruiter. Companies are the focal point of PCRecruiter. All candidate and position records will be attached to a company record. It is common to have a default company to associate candidates with if no specific company data is tracked. This endpoint has various options to retrieve the company record and field level data, along with options to retrieve notes, activities and even add or remove the record from rollup lists.

Data parameters

  • CompanyId - Unique id for the company record
  • CompanyName - Name of the company
  • UserName - Username assigned to the company record
  • Address
  • Address2
  • City
  • State
  • PostalCode
  • PostalCodeExtension
  • County
  • Country
  • Phone - Phone number listed for the company record
  • Fax - Fax number lsited for the company record
  • DefaultCurrency - Default Currency that this company uses
  • DatEntered - The date and time this company was added to PCRecruiter
  • NumberofEmployees - The number of employees listed for this company
  • AnnualRevenue - Annual revenue listed
    • CurrencyCode - Currency code type for the annual revenue field
    • Value- Value of the annual revenue field
  • CompanyType - Company type field. This is similar to the status field for candidates
  • Industry - The industry this company is listed under
  • Specialty - Specialty is a sub-type of industry to indicate a more precise part of an industry
  • LastActivity - Date and time for the last activity recorded
  • LastModified - Date and time this record was last modified or changed

Examples

------------------ REQUEST -------------------

GET /rest/api/companies/{CompanyId}

------------------ RESPONSE ------------------

{
"CompanyId": {CompanyId},
"CompanyName": "Main Sequence Technology",
"UserName": "SAMPLE",
"Address": "4420 Sherwin Road",
"Address2": null,
"City": "Willoughby",
"State": "OH",
"PostalCode": "44094",
"PostalCodeExtension": null,
"County": null,
"Country": null,
"Phone": "(440) 946-5214",
"Fax": null,
"DefaultCurrency": "USD",
"NumberOfEmployees": null,
"AnnualRevenue":{
"CurrencyCode": "USD",
"Value": null
},
"CompanyType": "Available",
"Industry": "Software",
"Specialty": "Recruiting",
"LastActivity": "2020-03-22T12:35:52",
"LastModified": "2020-03-22T09:17:32"
}

This API call will return the field level data for the company record specified in the URL.

------------------ REQUEST -------------------

PUT /rest/api/companies/{CompanyId}
{
"Address": "4420 Sherwin Road",
"Address2": null,
"City": "Willoughby",
"State": "OH",
"PostalCode": "44094",
"Phone": "(440) 946-5214",
}

------------------ RESPONSE ------------------

{
"CompanyId": {CompanyId}
}

This API call will update the fields provided in the body for the company id specified in the URL. This example updates the address info and phone number for that company. A successful response is the company id.

Company Activities

The company activities endpoint can be used to retrieve, create, update or delete activities for a specific company record. The endpoint format for this would be /companies/{CompanyId}/activities. Activities in PCRecruiter are actions and the details of those actions record to the activities screen for a record.

Data parameters

  • ActivityId - Unique id for the activity record
  • CompanyId - Unique id for the company this activity record is for
  • UserName - Username that created the activity
  • ActivityDate - Date and time the activity was created or set to take place
  • ActivityText - The text/body of the activity
  • ActivityType - The type of activity for the activity record
  • ActivityResult - Result is a sub-type of activity type. This is not always used
------------------ REQUEST -------------------

GET /rest/api/companies/{CompanyId}/activities/{ActivityId}?FieldsPlus=ActivityText

------------------ RESPONSE ------------------

{
"CompanyId": {CompanyId},
"ActivityId": {ActivityId},
"UserName": "SAMPLE",
"ActivityDate": "2017-05-17T14:03:02",
"ActivityText": "Company was created via API. (Wed May-17 '17 2:03p/SAMPLE)",
"ActivityType": "ADDCOM",
"ActivityResult": null
}

This API call will return the details of a single activity record defined by the company id and activity id specified in the example URL. By default, the text of the activity is not included. This can be added by including the parameter and value FieldsPlus=ActivityText.

Company Notes

Company notes are notes about a company record created by a user in PCRecruiter. The company notes endpoint can be used to retrieve, create, update and delete notes for a company record. This endpoint can only be used to retrieve the notes for one specified company per call.

Data parameters

  • CompanyId - Unique id for the company this note is attached to
  • Date - Date and time this note was created
  • UserName - Username that created this note
  • Method - Method used to create this note. Options are CGI and API
  • Text - Content of the note
  • NoteId - Id for the specific note
  • Bookmarked - Boolean parameter to show whether this note is bookmarked or not
  • DateBookmarked - Date and time this note was bookmarked
  • Edited - Boolean value to indicate if this note has been edited before

Examples

------------------ REQUEST -------------------

GET /rest/api/companies/{CompanyId}/notes

------------------ RESPONSE ------------------

{
"TotalRecords": 2,
"Results":[
{
"CompanyId": {CompanyId},
"Date": "2020-09-18T10:34:02",
"UserName": "SAMPLE",
"Method": "(CGI)",
"Text": "Company is currently looking for a senior software developer.",
"NoteId": {NoteId},
"Bookmarked": true,
"DateBookmarked": "2021-03-17T15:38:52",
"Edited": true,
"AggregateCount": null
},
{
"CompanyId": {CompanyId},
"Date": "2020-08-18T13:19:24",
"UserName": "SAMPLE",
"Method": "(CGI)",
"Text": "Company has 2 interested internal candidates for their open position.",
"NoteId": {NoteId},
"Bookmarked": false,
"DateBookmarked": "0001-01-01T00:00:00",
"Edited": false,
"AggregateCount": null
}
]
}

This API call will return all of the notes for the company id specified in the URL. Each note is saved separately and so it will return an array of each note when using this endpoint.

------------------ REQUEST -------------------

DELETE /rest/api/companies/{CompanyId}/notes/{NoteId}

------------------ RESPONSE ------------------

{
"Success": true
}

This API call will delete only the note that matches the note id and company id provided in the URL. This will return a boolean success parameter to indicate if that note was successfully deleted.

Company Rolluplists

Rollup lists are a way to keep a list of records grouped together in PCRecruiter. Records can be put onto multiple Rollup lists and each Rollup can contain each record type of names, companies and positions. The company Rolluplists endpoint allows for adding, updating and removing company records from Rollups.

Data parameters

  • CompanyId - The unique id for the company record
  • RollupCode - The unique id for the Rollup list
  • Stage - An assignable stage that shows the records progress through the list
  • DateEntered - Date the record was added to the Rollup
  • DateRead - Date the record was opened within the Rollup
  • Description - Description of the Rollup list. This will be the name of the Rollup
  • LastModified - Date the record was last modified on this Rollup
  • Comments - A small notes section that is contained per company and per Rollup. This can be retrieved using FieldsPlus=Comments to a call.

Examples

------------------ REQUEST -------------------

GET /rest/api/companies/Rolluplists/{RollupCode}?FieldsPlus=Comments

------------------ RESPONSE ------------------

{
"TotalRecords": 1,
"Results":[
{
"CompanyId": {CompanyId},
"RollupCode": {RollupCode},
"Stage": "Stage2",
"DateEntered": "2020-03-11T10:45:07",
"DateRead": "2020-03-22T12:31:22",
"Description": "Company Follow up list",
"LastModified": "2020-03-22T12:31:22",
"Comments": "Company is has 2 openings currently"
}
]
}

This API call will return all company records within the Rollup list specified in the URL.

------------------ REQUEST -------------------

POST /rest/api/companies/Rolluplists/{RollupCode}
{
"CompanyId": {CompanyId},
}

------------------ RESPONSE ------------------

{
"Success": "true"
}

This API call will add the listed company id to the Rollup list. You can include other parameters including stage, but the default use case it just sending the company id to add the record to the list.

Forms

Description

Inhaler

Description

The inhaler endpoint is used to easily parse a candidate record into the database using a resume or object created from a form. This is mostly used with a job board integration where the candidate object can be filled out via an apply form or automatically parsed from the resume or file sent in the API call. Using the candidate object gives you greater control over the data as you are manually setting the values for each field parameter. If a form was not filled out to supply this data, you can use the parsing ability to extract candidate field data via the file attached to the call.

When Attaching a file to this API call, you will use a base64 encoded string in the FileContents parameter. This file will serve as the active resume for the candidate record being added. You are not required to parse the data when attaching a file so you may manually set the candidate object and attach a file to be used as the active resume.

Data parameters

  • FileName - FileName serves as the name of the file that will be attached to the candidate record. This will be what the resume is named in the attachments section.
  • FileContents - FileContents are the actual contents of the resume being attached or parsed. This will need to be a base64 encoded string of the resume.
  • EncodingType - This is not a required parameter but will use the value "BASE64" if used.
  • Src - Src is the value for the source field on the candidate record. This is often used for applicants to show which job board, website, or method this candidate used to enter the database.
  • Duplicate - This is returned in the response to display how many duplicates exist from the data you supplied.
  • DupeId - DupeId is returned with the unique candidate id for any candidates that are already in the database with the data you supplied. This matches the resume or file contents in the POST
  • AddId - If there are no duplicates found, then the candidate is added. The AddId is the unique candidiate id for the newly added candidate
  • rolluplist - This can be used with a unique rollup code to add the new candidate record to a rollup in the database
  • useAddr - This is a boolean value to determine whether the call will parse the information from the FileContents parameter or using the supplied candidate object. Setting this to true will skip file parsing and only use the candidate object to fill out the candidate name fields.
  • errorMessage - This parameter is returned if there are any issues in creating the candidate record.
  • status - Status is included in the response to supply the status of the call. A status of "SUCCESS" means the record was created successfully.
  • NameInfo - NameInfo is the candidate object that can be included when the useAddr parameter is set to true. The available object fields will be outlined below.

NameInfo object parameters

  • firstname - This is the first name for the candidate record.
  • lastname - This is the last name for the candidate record.
  • middlename - This represents the middle initial field for the candidate.
  • address - This parameter represents the address of the candidate.
  • city - This will be the city for the address parameter listed above.
  • state - This will be the state for the city and address parameters listed above.
  • zip - This is the 5 digit zip code for the address parameter above.
  • country - This parameter represents the Country field for the candidate record.
  • emailaddress - The emailaddress parameter is used to set the default email address field.
  • mobilephone - mobilephone is used to set the cell phone field for this candidate.
  • homephone - homephone is used to set the home phone field for this candidate
  • faxphone - faxphone is used to set the fax phone field for this candidate.
  • title - The title parameter is used to set the title field.
  • coid - coid is a parameter used to set the company id for the candidate. Company id is a unique value for each company and can be used to link candidates to a specific company.

Examples

------------------ REQUEST -------------------

POST /rest/api/Candidates/inhaler
Authorization: BEARER {SessionId}

{
"FileName": "Current Resume",
"FileContents": "{Base64 encoded string}",
"useAddr": false,
}

------------------ RESPONSE ------------------

{
"FileName": null,
"FileContents": null,
"EncodingType": null,
"Src": null,
"JobId": null,
"Duplicate": false,
"DupeId": 0,
"AddId": {CandidateId},
"rolluplist": null,
"useAddr": false,
"errorMessage": "",
"status": "SUCCESS",
"NameInfo":{
"AggregateCount": null
}
}

This API call uses the inhaler endpoint to pass the file name and base 64 encoded file contents and use the parsing capability to create the candidate record and fill out the candidate field from the parsed information found within the file contents. This method is not as accurate as setting your own nameinfo parameters but can be used in the absence of that data outside of the file contents.

------------------ REQUEST -------------------

POST /rest/api/Candidates/inhaler
Authorization: BEARER {SessionId}

{
"FileName": "Current Resume",
"FileContents": "{Base64 encoded string}",
"useAddr": true,
"NameInfo": {
"firstname":"Jane",
"lastname":"Smith",
"address":"4420 Sherwin Road",
"city":"Willoughby",
"state":"Ohio",
"zip":"44094",
"country":"United States",
"emailaddress":"support@mainsequence.net",
"mobilephone":"(440) 946-5214",
"title":"QA Analyst",
"coid":"{CompanyId}"
}
}

------------------ RESPONSE ------------------

{
"FileName": null,
"FileContents": null,
"EncodingType": null,
"Src": null,
"JobId": null,
"Duplicate": false,
"DupeId": 0,
"AddId": {CandidateId},
"rolluplist": null,
"useAddr": false,
"errorMessage": "",
"status": "SUCCESS",
"NameInfo":{
"AggregateCount": null
}
}

This API call uses the inhaler endpoint to pass the file name and base 64 encoded file contents but uses the NameInfo object to assign exact values to each field. This will create a candidate with the NameInfo candidate object and have the file attached as the current resume.

Interviews

Description

The interviews endpoint is used to retrieve, create or delete interview records in PCRecruiter. Interviews are the actions taken with a candidate attached to a specific position record in PCRecruiter. This endpoint is essentially a basic version of the newer pipeline endpoint.

Data parameters

  • InterviewId - unique id for each interview record
  • CompanyId - unique id for the company that the position is attached to
  • JobId - unique id for the company the interview is attached to
  • CandidateId - unique id for the candidate that the interview record is for
  • WrittenBy - Username of the user who created this interview record
  • InterviewStatus - Interview Status is used as a sub-type of InterviewType (Ex: 1st Phone Interview, 2nd In-person Interview)
  • CandidateName - First and last name for the candidate attached to the CandidateId
  • BillRate - The rate for billing a client for this interview record
    • CurrenyCode - Currency code for the BillRate object
    • Value - The value of the bill rate
  • PayRate - The rate for paying a candidate for this interview record
    • CurrencyCode - Currency code for the PayRate object
    • Value - The value of the pay rate
  • InterviewType - Interview Type is used to indicate the type of interview of interview (Ex: Phone interview, In-person interview)
  • AppointmentDate - Date the interview was set to take place
  • ArrangedDate - Date the interview was set up or arranged

Examples

------------------ REQUEST -------------------

GET /rest/api/interviews/{InterviewId}


------------------ RESPONSE ------------------

{
"InterviewId": {InterviewId},
"CompanyId": {CompanyId},
"JobId": {JobId},
"CandidateId": {CandidateId},
"WrittenBy": "SAMPLE",
"InterviewStatus": null,
"CandidateName": "John Doe",
"BillRate":{
"CurrencyCode": "USD",
"Value": 25.00
},
"PayRate":{
"CurrencyCode": "USD",
"Value": 15.00
},
"InterviewType": "Presentation",
"AppointmentDate": "2020-01-01T09:00:00",
"ArrangedDate": "2020-12-30T13:35:12"
}

This API call is used to return the details of a specific interview record based on the InterviewId provided in the URL.

------------------ REQUEST -------------------

POST /rest/api/interviews/

{
"JobId": {JobId},
"CandidateId": {CandidateId},
"WrittenBy": "USERNAME",
"Notes": "First Candidate phone interview",
"InterviewStatus": "1st Phone",
"CurrentInterviewStatus": "1st Phone",
"CandidateName": "Sample Candidate Name",
"CurrentInterviewType": "Phone Interview",
"InterviewType": "Phone Interview",
"AppointmentDate": "2020-01-01T09:00:00",
"ArrangedDate": "2020-12-30T13:35:12"
"Interviewer": [
{
"CandidateId": "{CandidateId of Interviewer}",
"Name": "Sample Interviewer"
}
],
}

------------------ RESPONSE ------------------

{
"InterviewId": {InterviewId}
}

This API call is used to return the details of a specific interview record based on the InterviewId provided in the URL.

Null

Description

The null endpoint is an endpoint which returns no results. This endpoint is typically used when also requesting the X-CHANGETRACKING header. Since this endpoint returns no results, it is useful to use when retrieving the X-CHANGETRACKING header without receiving information in the response body.

Example

------------------ REQUEST -------------------

GET /rest/api/null
X-CHANGETRACKING: GET

------------------ RESPONSE ------------------

X-CHANGETRACKING: 1234567890

This API call is to the null endpoint and requests the current Change Tracking Version, which will be returned in an X-CHANGETRACKING header. This number can be used to manually set the Change Tracking Version by simply passing the value into the header on future API calls.

NOTE: keep in mind that Change Tracking is usually only retained for up to seven days. After that the changes will be lost and a full resync check will have to be performed.

Pipeline

Description

The pipeline endpoint is used to retrieve, edit, create and delete interview records in PCRecruiter. Interviews are a way to associate an interview or action with a position record and candidate. This allows for full tracking of the hiring process for a candidate attached to a position in the database.

Pipeline Interviews

This is the main portion of the pipeline endpoint. This allows for retrieving, updating, creating and deleting actual interview records.

Data parameters

  • SendoutId - Unique id for the interview record
  • JobId - Unique id for the job associated with the interview
  • CandidateId - Unique id for the candidate this interview is for
  • CandidateName - Full name for the candidate id
  • CompanyId - Unique id for the company attached to the job id
  • AppointmentDate - Date and time for when this interview took place
  • ArrangedDate - Date and time the interview was set up in PCRecruiter
  • InterviewType - The type of interview
  • InterviewStatus - Status is a sub-type for the interview type
  • BillRate - Bill rate is the rate per hour the client is billed for the interview
    • CurrencyCode - Currency code for the bill rate
    • Value - Value for the bill rate field
  • PayRate - Pay rate is the rate per hour the candidate will be paid for the interview
    • CurrencyCode - Currency code for the pay rate
    • Value - Value for the pay rate field
  • Notes - Free text field which contains basic interview information and any user typed interview notes
  • Feedback - Feedback is a free text field for a user to provide feedback after the interview
  • Guarantee - Free text field to explain the guarantee for minimum employment requirements for this position
  • NotesPublic
  • UserName - User name that created this interview record
  • InterviewerIds - If selected interviewer is a name record in PCRecruiter, this will be the candidate id for the interviewer
  • InterviewerNames - Full name of the interviewer(s)
  • CurrentInterviewType - The current interview type in this pipeline for the candidate id
  • CurrentInterviewStatus - The current interview status in this pipeline for the candidate id
  • CurrentRollupStage
  • VisibleOnWeb - Boolean value to determine if managers can see this interview in the manager portal
  • LastModified - Date and time this interview was last modified
  • Rank - 0-100 rank for this candidate for this position and interview
  • Position - The position this interview record is for
    • JobTitle - The title of the position for the above position parameter

Examples

------------------ REQUEST -------------------

GET /rest/api/pipelineinterviews/{SendoutId}

------------------ RESPONSE ------------------

{
"SendoutId": {SendoutId},
"JobId": {JobId},
"CandidateId": {CandidateId},
"CandidateName": "Sample Candidate",
"CompanyId": {CompanyId},
"AppointmentDate": "2021-03-19T16:42:51.587",
"ArrangedDate": "2021-03-19T16:42:51.587",
"InterviewType": "PRESENTATION",
"InterviewStatus": "LINKNAME",
"BillRate":{
"CurrencyCode": "USD",
"Value": 0.0
},
"PayRate":{
"CurrencyCode": "USD",
"Value": 0.0
},
"Notes": "** Status: LINKNAME\r\n** Position With: Main Sequence Technology
\r\n** Name:Sample Candidate\r\n** Job Title: Sample Open Position
\r\n** Position Id: EB-5384351406\r\n** City: \r\n** State:
\r\n** Contact Name: \r\n** Contact Phone:",
"Feedback": null,
"Guarantee": null,
"NotesPublic": null,
"UserName": "SAMPLE",
"InterviewerIds": null,
"InterviewerNames": "Sample Interviewer",
"CurrentInterviewType": "PRESENTATION",
"CurrentInterviewStatus": "LINKNAME",
"CurrentRollupStage": null,
"VisibleOnWeb": true,
"LastModified": "2021-03-19T16:42:51.587",
"Rank": null,
"Position":[
{
"JobTitle": "Sample Open Position"
}
]
}

This API call will create a placement using the information provided in the body of the POST. The parameters listed in the example call should be the minimum parameters used to keep correct data in the database.

Pipeline Placements

Pipeline placements are an alternate way to the placements endpoint to create placements for a candidate in a position pipeline.

Data parameters

  • PlacementId - Unique id for the placement
  • JobId - Unique id for the position this placement is for
  • CandidateId - Unique id for the candidate that is being placed
  • CandidateName - Full name for the candidate being placed
  • CompanyId - Unique id for the company the job id is attached to
  • StartDate - Date and time the candidate will start at this placement
  • PlacementDate - Date and time this placement was created in PCRecruiter
  • PlacementType - Type of placement, i.e., contract/temp, permanent
  • PlacementStatus - Used to more precisely define what type of contract or permanent placement type
  • BillRate - Bill rate for the client for contract placements
    • CurrencyCode - Currency code for the bill rate field
    • Value - Value for the bill rate
  • PayRate - Pay rate for the candidate being placed
    • CurrencyCode - Currency code for the pay rate field
    • Value - Value for the pay rate
  • Notes - Free text field which contains basic placement information and any user typed placement notes
  • Feedback - Feedback is a free text field for a user to provide feedback after the placement
  • Guarantee - Free text field to explain the guarantee for minimum employment requirements for this position
  • NotesPublic
  • InterviewerNames - Full name of the interviewer(s)
  • CurrentInterviewType - The current interview type in this pipeline for the candidate id
  • CurrentInterviewStatus - The current interview status in this pipeline for the candidate id
  • CurrentRollupStage
  • VisibleOnWeb - Boolean value to determine if managers can see this placement in the manager portal
  • LastModified - Date and time this placement was last modified
  • Rank
  • OvertimeBillRate - Rate at which the client is billed for overtime hours
  • OvedrtimePayRate - Rate at which the candidate will be paid for overtime hours
  • OnCallBillRate - Rate at which the client is billed for on-call hours
  • OnCallPayRate - Rate at which the candidate will be paid for on-call hours
  • HolidayBillRate - Rate at which the client will be billed for holiday hours
  • HolidayPayRate - Rate at which the candidate will be paid for holiday hours
  • DoubleTimeBillRate - Rate at which the client will be billed for double-time hours
  • DoubleTimePayRate - Rate at which the candidate will be paid for double-time hours
  • DailyPerDiem - Daily per diem this candidate will receive during the contract
  • HourlyPerDiem - Hourly per diem this candidate will receive during the contract, if tracked hourly
  • BurdenRate - Burden rate includes billing to the client for billable work for the hiring process
  • BurdenState - State where the burden rate taxes will be calculated for
  • PONumber
  • PlacementFee - Fee the client will be billed for this placement
    • CurrencyCode - Currency code for the placement fee
    • Value - Value of the placement fee field
  • FeePercentage - Percentage of salary that is collected from the client for this placement
  • StartingSalary - Starting salary for this candidate for the position being placed
    • CurrencyCode - Currency code for the starting salary field
    • Value - Value for the starting salary field
  • ApproveList - List of approvers for time sheets if placement is a contract and timesheets will be entered via PCRecruiter
  • PayFrequency - The frequency the payment to the candidate for the contract placement
  • StartingWeekday - Day of the week, time sheet collection starts on
  • TimeclockVisible - Determines if the candidate will be able to submit via a time clock or by tryping hours worked
  • EndDate - For contract placements, this is the date and time the contract ends
  • EstimatedWeeksWorked - Estimate of weeks worked for the contract placement
  • EstimatedTotalRevenue - Estimate of total revenue from a contract placement
    • CurrencyCode - Currency code for the estimated total revenue field
    • Value - Value of the estimated total revenue field
  • EstimatedTotalCost - Estimated total cost of the contract placement
    • CurrencyCode - Currency code for the estimated total cost field
    • Value - Value of the estimated total cost field
  • EstimatedTotalProfit - Estimate of the total profit from the contract placement
    • CurrencyCode - Currency code for the estimated total profit field
    • Value - Value of the estimated total profit field
  • Position - Position this placement is for
    • JobTitle - Job title for the above placement position field

Examples

------------------ REQUEST -------------------

POST /rest/api/pipelineplacements

{
"JobId": {JobId},
"CandidateId": {CandidateId},
"CandidateName": "Sample Candidate",
"StartDate": "2020-12-18T17:02:00",
"PlacementDate": "2020-12-10T17:02:00",
"PlacementType": "PLACEMENT_PERM",
"PlacementStatus": "Permanent",
"PlacementFee":{
"CurrencyCode": "USD",
"Value": 15000
},
"FeePercentrage": 15,
"StartingSalary":{
"CurrencyCode": "USD",
"Value": 100000
}
}

------------------ RESPONSE ------------------

{
"PlacementId": {PlacementId}
}

This API call will create a placement using the information provided in the body of the POST.

Placements

Description

The placements endpoint is used to retrieve, create, edit and delete placements and placement related data in PCRecruiter. Placements are a way to associate the hiring of a candidate with a position record in PCRecruiter. There are a few endpoints where placements can be created, however the placements endpoint deals more directly to only placement data.

Data parameters

  • PlacementId - Unique id for each placement
  • StartDate - Date and time the candidates starts at the position
  • EndDate - If this is contract placement, this is the end of the contract
  • PlacementDate - Date the placement was created in PCRecruiter
  • PlacementType - Type of placement, i.e., contract/temp, permanent
  • CompanyId - Unique id for the company associated with the position
  • JobId - Unique id for the position associated with the placement
  • CandidateName - The full name of the candidate being placed
  • CandidateId - Unique id for the candidate being placed
  • PlacedBy - User name in PCRecruiter that created the placement
  • BillRate - Bill rate for the client for contract placements
    • CurrencyCode - Currency code for the bill rate field
    • Value - Value for the bill rate
  • PayRate - Pay rate for the candidate being placed
    • CurrencyCode - Currency code for the pay rate field
    • Value - Value for the pay rate
  • PlacementStatus - Used to more precisely define what type of contract or permanent placement type
  • StartingSalary - Starting Salary for this placement
    • CurrencyCode - Currency code for the starting salary
    • Value - Value of the starting salary field
  • PlacementFee - Placement fee for making this placement
    • CurrencyCode - Currency code for the placement fee
    • Value - Value for the placement fee field
  • FeePercentage - Percentage of the salary field that will make the placement fee
  • LastModified - Date and time this placement was last modified

Examples

------------------ REQUEST -------------------

POST /rest/api/placements

{
"CandidateId": {CandidateId},
"StartDate": "2020-10-05T12:00:00",
"PlacementDate": "2020-10-01T10:45:00"
"PlacedBy": "SAMPLE",
"PlacementType": "PermanentPlacement",
"JobId": {JobId},
"CandidateName": "Sample Candidate",
"PlacementStatus": "Permanent",
"PlacementFee": {
"CurrencyCode": "USD",
"Value": "10000"
},
"FeePercentage": "15"
}

------------------ RESPONSE ------------------

{
"PlacementId": {PlacementId}
}

This API call will create a placement using the information provided in the body of the POST. The parameters listed in the example call should be the minimum parameters used to keep correct data in the database.

------------------ REQUEST -------------------

GET /rest/api/placements/{PlacementId}
------------------ RESPONSE ------------------

{
"PlacementId": {PlacementId}, "StartDate": "2020-05-15T16:12:57", "EndDate": "2020-12-31T18:00:00", "PlacementDate": "2020-04-10T16:30:00", "PlacementType": "ContractTemp", "CompanyId": {CompanyId}, "JobId": {JobId}, "CandidateName": "Sample Candidate", "CandidateId": {CandidateId}, "PlacedBy": "SAMPLE", "BillRate":{ "CurrencyCode": null, "Value": null }, "PayRate":{ "CurrencyCode": null, "Value": null }, "PlacementStatus": null, "StartingSalary":{ "CurrencyCode": "USD", "Value": "95000" }, "PlacementFee":{ "CurrencyCode": "USD", "Value": "10000" }, "FeePercentage": null, "LastModified": "2020-04-10T16:30:00" }

This API call will return the placement specified by the placement id sent in the URL. You can return all placements by excluding the placement id in the call.

Positions

Description

The positions endpoint is used to retrieve, update and create data for position records. Positions are jobs within the database. This endpoint has various available parameters, including position record data, activities, notes and adding the record to Rollup lists.

Positions

The base positions endpoint is used to retrieve, update, create or delete actual position record data. This data includes job title, contact information, address and all field level data in regards to the position record.

Data parameters

  • JobId - Unique id for the position record
  • CompanyId - Unique id for the company this record is attached to
  • CompanyName - Company name assigned to the CompanyId
  • Industry - The type of industry for the position
  • JobType - Field describing whether this job is full time, part time, contract, etc.
  • JobTitle - Name of the position record
  • DegreeRequired - Type of education required for a candidate to be considered
  • MinYearsExp - Number in years of minimum expected experience
  • MaxYearsExp - Number in years of maximum expected experience
  • Job Description - HTML value text field for the description of the job. This can include images
  • City
  • State
  • PostalCode
  • PostalCodeExtension - Additional 4-digit postal code if used
  • County
  • Country
  • Specialty - A more precise break down of the industry for this position
  • NumberOfOpenings - Number of current openings for this position
  • BeginDate - Date the candidate is expected to start
  • EndDate - For a contract position, this is the date the contract ends
  • MaxSalary - The maximum salary that can be earned with this position
    • CurrencyCode - Currency Code for the maximum salary field
    • Value - Value of the maximum salary field
  • MinSalary - The minimum salary that can be earned with this position
    • CurrencyCode - Currency code for the minimum salary field
    • Value - Value of the minimum salary field
  • Benefits - A small text field describing the benefits for this position
  • Guarantee - A field typically used to represent the guaranteed minimum employment length for placement
  • ContactName- The name of the contact with the client for this position
  • ContactPhone - Phone number for the position contact
  • ContactEmail - Email address for the position contact
  • DatePosted - Date and time this position record was created
  • Status - A field for designating if this position is available, filled, closed, etc.
  • ContactId - This will be the candidate id for the position contact if they exist in the database
  • LastActivity - Date and time for the last activity that occurred
  • LastModified - Date and time for the last modification to this record
  • UserName - The username this record is assigned to
  • WhyOpen - small text field describing why this position is hiring
  • ShowOnWeb - Boolean value to determine if this job should be visible outside of PCRecruiter, i.e., PCRecruiter web extensions job posting
  • InternalExpiration - Date and time for internal use to show when this job opening will expire
  • StartHold - Date and time showing when this position went on hold for placements
  • EndHold - Date and time showing when this position stopped being put on hold for placements

Examples

------------------ REQUEST -------------------

GET /rest/api/positions/{JobId}

------------------ RESPONSE ------------------

{
"JobId": {JobId},
"CompanyId": {ComapnyId},
"CompanyName": "Main Sequence Technology",
"Industry": "Software",
"JobType": "FullTimeRegular",
"JobTitle": "Senior Developer",
"DegreeRequired": null,
"MinYearsExp": 5,
"MaxYearsExp": 0.0,
"JobDescription": "<html><body></body></html>",
"Specialty": "Recruiting",
"NumberOfOpenings": 1.0,
"MaxSalary":{
"CurrencyCode": null,
"Value": null
},
"Guarantee": "120 days",
"ContactName": "Sample Contact",
"ContactPhone": "(440) 946-5214",
"ContactEmail": "support@mainsequence.net",
"DatePosted": "2020-04-03T09:58:50",
"City": "Willoughby",
"State": "OH",
"PostalCode": "44094",
"PostalCodeExtension": null,
"County": null,
"Country": null,
"BeginDate": 2019-03-01T00:00:00,
"EndDate": "2099-01-01T00:00:00",
"Benefits": null,
"Status": "Filled",
"ContactId": {CandidateId},
"MinSalary":{
"CurrencyCode": USD,
"Value": "50,000"
},
"WhyOpen": null,
"HealthCoverage": null,
"Vacation": null,
"EducationAid": null,
"Department": null,
"BillRate":{
"CurrencyCode": "USD",
"Value": 0.00
},
"PayRate":{
"CurrencyCode": "USD",
"Value": 0.00
},
"ShowOnWeb": true,
"PositionId": "EB-2346324121",
"LastActivity": "2021-03-18T17:15:17",
"LastModified": "2021-02-10T11:41:52",
"InternalExpiration": null,
"StartHold": null,
"EndHold": null,
"UserName": "SAMPLE",
"DefaultCurrency": null
}

This API call will return the details for the specific position record specified in the URL. Additional parameters can be added by using the FieldsPlus= parameter followed by the additional position fields comma separated. Custom fields can also be retrieved using the Custom= parameter with each field name comma separated.

Position Activities

The position activities endpoint can be used to retrieve, create, update or delete activities for a specific position record. The endpoint format for this would be /positions/{JobId}/activities. Activities in PCRecruiter are actions and the details of those actions record to the activities screen for a record.

Data parameters

  • ActivityId - Unique id for the activity record
  • JobId - Unique id for the position this activity record is for
  • UserName - Username that created the activity
  • ActivityDate - Date and time the activity was created or set to take place
  • ActivityText - The text/body of the activity
  • ActivityType - The type of activity for the activity record
  • ActivityResult - Result is a sub-type of activity type. This is not always used

Examples

------------------ REQUEST -------------------

GET /rest/api/positions/{JobId}/activities/{ActivityId}?FieldsPlus=ActivityText

------------------ RESPONSE ------------------

{
"JobId": {JobId},
"ActivityId": {ActivityId},
"UserName": "SAMPLE",
"ActivityDate": "2019-03-12T14:03:02",
"ActivityText": "Position was created via API. (Wed March-12 '19 2:03p/SAMPLE)",
"ActivityType": "ADDPOS",
"ActivityResult": null
}

This API call will return the details of a single activity record defined by the job id and activity id specified in the example URL. By default, the text of the activity is not included. This can be added by including the parameter and value FieldsPlus=ActivityText.

Position Notes

Position notes are notes about a position record created by a user in PCRecruiter. The position notes endpoint can be used to retrieve, create, update and delete notes for a position record. This endpoint can only be used to retrieve the notes for one specified position per call.

Data parameters

  • JobIdId - Unique id for the position this note is attached to
  • Date - Date and time this note was created
  • UserName - Username that created this note
  • Method - Method used to create this note. Options are CGI and API
  • Text - Content of the note
  • NoteId - Id for the specific note
  • Bookmarked - Boolean parameter to show whether this note is bookmarked or not
  • DateBookmarked - Date and time this note was bookmarked
  • Edited - Boolean value to indicate if this note has been edited before

Examples

------------------ REQUEST -------------------

GET /rest/api/positions/{JobId}/notes

------------------ RESPONSE ------------------

{
"TotalRecords": 2,
"Results":[
{
"JobId": {JobId},
"Date": "2020-09-18T10:34:02",
"UserName": "SAMPLE",
"Method": "(CGI)",
"Text": "Client will be considering new candidates, starting next week",
"NoteId": {NoteId},
"Bookmarked": true,
"DateBookmarked": "2021-03-17T15:38:52",
"Edited": true,
"AggregateCount": null
},
{
"JobId": {JobId},
"Date": "2020-08-18T13:19:24",
"UserName": "SAMPLE",
"Method": "(CGI)",
"Text": "Spoke to candidates and will send blinded resumes to hiring authority today",
"NoteId": {NoteId},
"Bookmarked": false,
"DateBookmarked": "0001-01-01T00:00:00",
"Edited": false,
"AggregateCount": null
}
]
}

This API call will return all of the notes for the job id specified in the URL. Each note is saved separately and so it will return an array of each note when using this endpoint.

------------------ REQUEST -------------------

DELETE /rest/api/positions/{jobId}/notes/{NoteId}

------------------ RESPONSE ------------------

{
"Success": true
}

This API call will delete only the note that matches the note id and job id provided in the URL. This will return a boolean success parameter to indicate if that note was successfully deleted.

Position Rolluplists

Rollup lists are a way to keep a list of records grouped together in PCRecruiter. Records can be put onto multiple Rollup lists and each Rollup can contain each record type of names, companies and positions. The Position Rolluplists endpoint allows for adding, updating and removing position records from Rollups.

Data parameters

  • JobId - The unique id for the position record
  • RollupCode - The unique id for the Rollup list
  • Stage - An assignable stage that shows the records progress through the list
  • Rank - A value of 0-100 used with the Rank column which can be added to a Rollup layout
  • DateEntered - Date the record was added to the Rollup
  • DateRead - Date the record was opened within the Rollup
  • Description - Description of the Rollup list. This will be the name of the Rollup
  • LastModified - Date the record was last modified on this Rollup
  • Comments - A small notes section that is contained per candidate and per Rollup

Examples

------------------ REQUEST -------------------

GET /rest/api/positions/Rolluplists/{RollupCode}

------------------ RESPONSE ------------------

{
"TotalRecords": 1,
"Results":[
{
"JobId": {JobId},
"RollupCode": {RollupCode},
"Stage": "Stage3",
"DateEntered": "2020-03-11T10:45:07",
"DateRead": "2020-03-22T12:31:22",
"Description": "Client Position Follow up list",
"LastModified": "2020-03-22T12:31:22"
}
]
}

This API call will return all records within the Rollup list specified in the URL.

------------------ REQUEST -------------------

POST /rest/api/positions/Rolluplists/{RollupCode}
{
"JobId": {JobId},
"Rank": "100",
"Comments": "Position was added via API"
}

------------------ RESPONSE ------------------

{
"Success": "true"
}

This API call will add the listed job id to the Rollup list. You can include other parameters including stage, but the default use case it just sending the job id to add the record to the list.

Profile

Description

The profile endpoint is used to create, update, retrieve and delete profiles and profile templates. Profiles are forms in PCRecruiter that can be filled out internally or sent externally to be filled out by a candidate or client. Profiles can be styled with HTML and CSS. This endpoint also allows for accessing the profile templates themselves. Profile templates are the template for the forms that are filled out.

Data parameters

  • HistorySaveOptions - Option for appending new history or replacing existing filled out history sections with new data. Options are AppendHistory, ReplaceHistory, AppendHistoryWithoutXML and ReplaceHistoryWithoutXML
  • Description - Title/name of the profile
  • CreateType - Determines if saves of this profile overwrite or create new. Options are single or multiple
  • TokenId
  • ProfileId - Unique id for the profile form
  • NotifyList - List of emails that will be notified when this form is submitted
    • EmailAddress - The email addresses for the notify list
  • NotifyUser - Boolean value to determine if the notify list is supposed to be notified of submittal
  • RecordType - Record type this profile is for. Options are candidates, companies and positions
  • RecordId - Unique id for the record this profile was submitted for
  • JobId - Unique id for the position if this profile is linked to an apply form
  • SendoutId - Unique id for the interview record for an apply profile form
  • KnockoutPlan - Selected knockout plan. Knockout plans get executed if a knockout answer is submitted
  • SuccessPlan - Selected success plan. Success plans get executed if a success answer is submitted
  • HTMLCustomTemplate - Custom HTML template for the profile. This is where custom HTML and CSS is formatted for the form
  • ProfileDate - Date and time the profile was submitted
  • Questions - List of each question
    • QuestionType - The type of question, i.e., multiple choice, dropdown, text box.
    • QuestionText - The text of the actual question
    • Required - Boolean value to determine if this question is required
    • GUID - Unique id for the question
    • Answer - Answer that was submitted
    • AnswerList - Answer list is the available answers for multiple choice type questions
      • AnswerValue - Answer value is the available answer for the answer list
      • AnswerDescription - Answer description is an alternate answer that is viewed only internally
      • AnswerRollup - If the answer is set to trigger adding to a rollup, this will list the rollup
    • Encrypt - Boolean value to determine if this answer should be encrypted from view
    • KnockoutAnswer - Answer, if selected will execute a knockout plan
    • LinkedField - Displays the field this answer will be linked to. This will populate that field on the record with the answer provided
    • HTMLCustomTemplate
  • WorkHistory - Answers for the profile in the work history section
  • Military - Answers for the profile in the military history section
  • Licensing - Answers for the profile in the licensing section
  • Education - Answers for the profile in the education history section
  • References - List of references and reference data
  • Work_History_Layout - Layout of the questions in the work history section
  • Military_Layout - Layout of the questions in the military history section
  • Licensing_Layout - Layout of the questions in the licensing section
  • Education_Layout - Layout of the questions in the education history section
  • References_Layout - Layout of reference data requested in the references section

Examples

------------------ REQUEST -------------------

GET /rest/api/profile/{ProfileId}


------------------ RESPONSE ------------------

{
"HistorySaveOptions": "ReplaceHistoryWithoutXML",
"Description": "Candidate Application form",
"CreateType": "SINGLE",
"TokenId": null,
"ProfileId": {ProfileId},
"NotifyList":[
{
"EmailAddress": "support@mainsequence.net"
}
],
"NotifyUser": true,
"RecordType": "RECORD_TYPE_CANDIDATES",
"RecordId": {RecordId},
"JobId": null,
"SendoutId": null,
"KnockoutPlan": "",
"SuccessPlan": "",
"HTMLCustomTemplate": "",
"ProfileDate": "2019-03-25T06:56:48",
"Questions":[
{
"QuestionType": "R1",
"QuestionText": "Have you applied for a position at Main Sequence Technology previously?",
"Required": false,
"GUID": "[F31AB984-AC83-4B25-8218-AD06448A1E3A]",
"Answer": "Yes",
"AnswerList":[{"AnswerValue": "Yes", "AnswerDescription": "Yes", "AnswerRollup": null }, {"AnswerValue": "No",…],
"Encrypt": false,
"KnockoutAnswer": "Yes",
"LinkedField": "",
"HTMLCustomTemplate": null
},
{"QuestionType": "R2", "QuestionText": "Multiple Choice (Radio List)", "Required": false, "GUID": "[C1010F7C-C2F6-416C-AB1E-F2A405944056]",…},
{"QuestionType": "M1", "QuestionText": "Multiple Choice (dropdown)", "Required": false, "GUID": "[77F0CC19-ECAD-47F3-8556-8B8512A7FB11]",…},
{"QuestionType": "MSL", "QuestionText": "Multiple Select (list)", "Required": false, "GUID": "[DF2F1A2E-19AB-41C4-9DE3-5CD61C85832A]",…},
{"QuestionType": "MSC", "QuestionText": "Multiple Select (Checkbox)", "Required": false, "GUID": "[1C7F326E-9E59-4D9D-9329-E9FFADE19CE5]",…},
{"QuestionType": "MSCL", "QuestionText": "Multiple Select - (Checkbox List)", "Required": false, "GUID": "[D8C0EA4B-0ABD-4D3F-B368-507B07D4EB99]",…}
],
"WorkHistory":[],
"Military":[],
"Licensing":[],
"Education":[],
"References":[],
"Work_History_Layout": null,
"Military_Layout": null,
"Licensing_Layout": null,
"Education_Layout": null,
"References_Layout": null
}

This API call will retrieve a filled-out profile form using the unique profile id provided in the URL of the API call.

------------------ REQUEST -------------------

GET /rest/api/profile/template/{ProfileId}


------------------ RESPONSE ------------------

{
"ProfileTemplateId": "162186032463626",
"Description": "Internal Candidate Review Form",
"Introduction": "",
"Conclusion": "",
"ProfileFormat": "PROFILE",
"ProfileScore": "PROFILE",
"ProfileDate": "2020-02-03T14:26:45.313",
"Qrollup": "",
"Frollup": "",
"Results": "",
"ProfileActType": "PROFILESUBMIT",
"DefaultMail": "N",
"HTMLCustomTemplate": "",
"AllowUpdate": true,
"CreateType": "MULTIPLE",
"NotifyUser": true,
"xmlurl": "",
"xmlurlsd": "Y",
"SendEmailAttachmentOnCreate": true,
"KnockoutPlan": "",
"SuccessPlan": "",
"RollupRemove": "",
"WrapperOptions": "",
"Questions":[
{
"QuestionText": "Date:",
"QuestionType": "S1",
"AnswerList":[],
"DesiredAnswer": null,
"Required": false,
"Points": null,
"RollupList": null,
"Timer": null,
"LinkedField": "",
"Encrypt": "False",
"Knockout": "D",
"GUID": "[678A3A64-5FAF-4D1A-9C10-3A278A58914C]"
},
{"QuestionText": "Last Name:", "QuestionType": "S1", "AnswerList":[], "DesiredAnswer": null,…},
{"QuestionText": "First Name:", "QuestionType": "S1", "AnswerList":[], "DesiredAnswer": null,…},
{"QuestionText": "Home Phone:", "QuestionType": "PH", "AnswerList":[], "DesiredAnswer": null,…},
{"QuestionText": "Cell Phone:", "QuestionType": "PH", "AnswerList":[], "DesiredAnswer": null,…},
{"QuestionText": "Email Address:", "QuestionType": "S1", "AnswerList":[], "DesiredAnswer": null,…},
{"QuestionText": "Position Applied For:", "QuestionType": "S1", "AnswerList":[], "DesiredAnswer": null,…},
{"QuestionText": "Salary Expectations:", "QuestionType": "S1", "AnswerList":[], "DesiredAnswer": null,…},
{"QuestionText": "Address:", "QuestionType": "S1", "AnswerList":[], "DesiredAnswer": null,…},
{"QuestionText": "Apt/Suite:", "QuestionType": "S1", "AnswerList":[], "DesiredAnswer": null,…},
{"QuestionText": "City:", "QuestionType": "S1", "AnswerList":[], "DesiredAnswer": null,…},
{"QuestionText": "State:", "QuestionType": "S1", "AnswerList":[], "DesiredAnswer": null,…},
{"QuestionText": "Zip:", "QuestionType": "S1", "AnswerList":[], "DesiredAnswer": null,…},
{"QuestionText": "Employment Preference (Select all that apply):", "QuestionType": "MSC", "AnswerList":[{"AnswerValue": "Contract",…},
{"QuestionText": "Eligible to work in US?", "QuestionType": "R1", "AnswerList":[{"AnswerValue": "Yes",…},
{"QuestionText": "Have you previously been employed by Main Sequence", "QuestionType": "R1", "AnswerList":[{"AnswerValue": "Yes",…},
{"QuestionText": "If yes, when?", "QuestionType": "S1", "AnswerList":[], "DesiredAnswer": null,…},
{"QuestionText": "First date available to work?", "QuestionType": "DTASC", "AnswerList":[], "DesiredAnswer": null,…},
{"QuestionText": "How did you hear about Main Sequence?", "QuestionType": "S1", "AnswerList":[], "DesiredAnswer": null,…},
{"QuestionText": "Education", "QuestionType": "HE", "AnswerList":[], "DesiredAnswer": null,…},
{"QuestionText": "Employment History", "QuestionType": "HW", "AnswerList":[], "DesiredAnswer": null,…},
{"QuestionText": "References", "QuestionType": "HR", "AnswerList":[], "DesiredAnswer": null,…},
{"QuestionText": "Have you ever been bonded?", "QuestionType": "R1", "AnswerList":[{"AnswerValue": "Yes",…},
{"QuestionText": "If so, for which positions?", "QuestionType": "S1", "AnswerList":[], "DesiredAnswer": null,…},
{"QuestionText": "Have you ever been convicted of a felony?", "QuestionType": "R1", "AnswerList":[{"AnswerValue": "Yes,…},
{"QuestionText": "If so, what was the nature of the conviction?", "QuestionType": "T2", "AnswerList":[],…},
{"QuestionText": "Initials:", "Que stionType": "S1", "AnswerList":[], "DesiredAnswer": null,…},
{"QuestionText": "Date:", "QuestionType": "DTASC", "AnswerList":[], "DesiredAnswer": null,…},
{"QuestionText": "Full Name:", "QuestionType": "S1", "AnswerList":[], "DesiredAnswer": null,…},
{"QuestionText": "Are you willing to receive bulk texts?", "QuestionType": "R1", "AnswerList":[{"AnswerValue": "Yes",…},
{"QuestionText": "Are you willing to receive bulk emails?", "QuestionType": "R1", "AnswerList":[{"AnswerValue": "Yes",…}
],
"NotifyList":[
{
"EmailAddress": "support@mainsequence.net"
}
]
}

This API call will retrieve the empty profile template. This will help provide the layout of questions, answers, required questions and notification settings to submit a filled-out profile using POST on the /profile endpoint for a record id.

Rolluplists

Description

Rollup lists are a way to group records onto a list. Rollup lists can contain records of each type. The rolluplists endpoint is used to view existing Rollups lists. This can also be used to create a new Rollup list. It is important to note however that this endpoint is not used for adding or removing records from Rollup lists. This is handled within the endpoint for each respective type of record, Candidates, Companies and Positions.

Default data parameters

  • RollupCode - RollupCode is the unique value given to each Rollup. This code is based on username and then in sequential number order.
  • UserName - UserName is the username for the Rollup. This is often the username who created the Rollup, although the value can be altered.
  • Description - The Description parameter is used as the name of the Rollup. This is how the user would see the Rollup within PCRecruiter.
  • Memo - Memo is used as a brief description of the Rollup list contents. This parameter is not required and may appear empty.

Extended data parameters

The extended data parameter options are additional parameters that are not sent by default but can be requested in the response. These can be retrieved by adding a FieldsPlus parameter in the URL and comma separating the extra fields to retrieve Ex: /rolluplist?FieldPlus=DateEntered,CandidateCount,CompanyCount

  • DateEntered - DateEntered is the date that the Rollup list was created.
  • Owner - The Owner parameter is used to denote the username this Rollup was created for. This defaults to the user who created the Rollup.
  • CompanyCount - CompanyCount is the number of Company records present within the Rollup list.
  • CandidateCount - CandidateCount is the number of Candidate records present within the Rollup list.
  • PositionCount - PositionCount is the number of Position records present within the Rollup list.
  • Shared - Shared is a boolean value that determines if other users have access to this value. If shared is set to false, only the username or owner may view this Rollup
  • DefaultActivity - DefaultActivity is a feature that associates a Rollup list with an activity and an alternate set of stages. This feature is not often utilized in recent versions of PCRecruiter

Examples

------------------ REQUEST -------------------

GET /rest/api/rolluplists

------------------ RESPONSE ------------------

{
"TotalRecords": 2,
"Results":[
{
"RollupCode": "SAMPLE.0001",
"UserName": "SAMPLE",
"Description": "Sample Rollup List",
"Memo": null
},
{
"RollupCode": "SAMPLE.0042",
"UserName": "SAMPLE",
"Description": "Marketing List",
"Memo": "This is a Rollup description"
}
]
}

This API call to rolluplists will return all available Rollup lists within the database as part of an array.

------------------ REQUEST -------------------

GET /rest/api/rolluplists?FieldsPlus=DateEntered, CompanyCount,CandidateCount,PositionCount,Shared

------------------ RESPONSE ------------------

{
"TotalRecords": 2,
"Results":[
{
"RollupCode": "SAMPLE.0001",
"UserName": "SAMPLE",
"Description": "Sample Rollup List",
"Memo": null,
"DateEntered": "2010-08-27T14:05:11",
"CompanyCount": "0",
"CandidateCount": "2",
"PositionCount": "0",
"Shared": true
},
{
"RollupCode": "SAMPLE.0042",
"UserName": "SAMPLE",
"Description": "Marketing List",
"Memo": "this is a Rollup description",
"DateEntered": "2016-10-18T12:29:11",
"CompanyCount": "0",
"CandidateCount": "6",
"PositionCount": "1",
"Shared": false
}
]
}

This API call to rolluplists will return all available Rollup lists within the database as part of an array with the additional fields as requested in the URL.

------------------ REQUEST -------------------

POST /rest/api/rolluplists

{
"UserName": "ADMIN",
"Description": {Rollup list name},
"Memo": "This is a brief Rollup list description"
}

------------------ RESPONSE ------------------

{
"RollupCode": "SAMPLE.0171"
}

This API call to rolluplists will return all available Rollup lists within the database as part of an array with the additional fields as requested in the URL.

System

Description

The system endpoint is a GET only endpoint that is used to retrieve various system information. This endpoint is not typically used to as a direct part of an integration but can be used to find values for different types of system settings that can be used within an integration. This information includes what custom fields exist for each record type, activity types, calendar event types, diversity sources and education codes.

Custom Fields

Custom fields are fields for names, companies and positions that were created by a user in PCRecruiter. A user may have a need to track data for something that is not available in PCRecruiter by default, which is the typically scenario for why a custom field is used. You can use this endpoint to find what custom fields exist for each record type. This can be useful when using endpoints and including those custom fields.

Data parameters

  • CustomId - Unique id for the custom field
  • FieldType - Type of record this custom field is for
  • FieldName - Name of the custom field
  • FieldOrder - The order in which this field appears within the custom fields list
  • FieldAction - The type of field for this custom field, i.e., dropdown, multi-select, URL, email, phone, etc.
  • DefaultValues - Field types like drop down and multi-select have default values that show up when using that field
    • Id - Unique id for the default values
    • Name - The name of the default value option
    • Order - The order in which this appears in the field

Examples

------------------ REQUEST -------------------

GET /rest/api/system/candidates/customfields

------------------ RESPONSE ------------------

{
"TotalRecords": 2,
"Results":[
{
"CustomId": {CustomId},
"FieldType": "Candidates",
"FieldName": "Custom Multi Field",
"FieldOrder": 2,
"FieldAction": "MultiSelectCheckbox",
"DefaultValues":[
{
"Id": {Id}, "Name": "Recruiting", "Order": 30
},
{"Id": {Id},…]
},
{
"CustomId": {CustomId},
"FieldType": "Candidates",
"FieldName": "Custom Phone Field",
"FieldOrder": 4,
"FieldAction": "Phone",
"DefaultValues":[{"Id": 0, "Name": null, "Order": 0 }]
}
]
}

This API call will return all custom fields for the candidates record type.

Activity Types

Activity types are the preset activity types that can be used in PCRecruiter. Activity types can be any value, but using a preset list helps with accurate reporting and analytics. Users can create activity types to be used when manually creating activities for names, companies and positions in the database.

Data parameters

  • ActivityId - Unique id for the activity type
  • Code - Code is the actual activity type used in the activity section
  • Description - Short description for what the Code means
  • Category - Category is a way to group activity types in the system menu

Examples

------------------ REQUEST -------------------

GET /rest/api/system/activitytypes

------------------ RESPONSE ------------------

{
"TotalRecords": 2,
"Results":[
{
"ActivityId": {ActivityId},
"Code": "NOSHOW",
"Description": "Did not show for candidate call",
"Category": null
},
{
"ActivityId": {ActivityId},
"Code": "BREAK",
"Description": "Taking a break from the candidate search",
"Category": null
}
]
}

This API call will return all activity custom activity types in the database. Activity types are not record type specific, meaning they can be used for names, companies and positions.

Diversity Sources

Diversity Sources are a way to track how candidates entered PCRecruiter. This allows the user to see if a candidate applied via their website, a 3rd party job board or even an external referrer.

Data parameters

  • DiversitySourceId - Unique id for each source
  • Source - Name of the source. This will be the value of the source field
  • Contact - If the source is a person, this will be their name
  • Address - Address of the contact
  • Phone - Phone number of the contact
  • Vacant - Boolean value to indicate if this person is notified of open vacancies
  • Code - Short hand code for the source name
  • Show - Indicates if this value should be shown on PCR web extensions. 0 = Show, 1 = Internal only

Examples

------------------ REQUEST -------------------

GET /rest/api/system/diversitysources/{DiversitySourceId}

------------------ RESPONSE ------------------

{
"DiversitySourceId": {DiversitySourceId},
"Source": "3rd Party Referrer",
"Category": null,
"Contact": "Sample Contact",
"Address": "4420 Sherwin Rd",
"Phone": "(440) 946-5214",
"Vacant": true,
"Code": null,
"Show": "1"
}

This API call will return the diversity source for the diversity source id provided in the URL. You can find all sources by excluding a diversity source id in your call.

Education Codes

Education codes are codes that can be assigned to keywords by a user in PCRecruiter. This allows a user to track some of their education qualifications in the records keywords section outside of the resume or education history sections.

Data parameters

  • EducationId - Unique id for the education code
  • Code - Short code for the education code
  • Description - longer description for the code parameter.
  • Category - Category is a way to group education codes in the system menu

Examples

------------------ REQUEST -------------------

GET /rest/api/system/educationcodes

------------------ RESPONSE ------------------

{
"TotalRecords": 1,
"Results":[
{
"EducationId": {EducationId},
"Code": "PHD",
"Description": "Doctor of Philosophy",
"Category": "0"
}
]
}

This API call will return all education codes present in the database.

Timesheets

Description

Users

Description

The users endpoint is a GET only endpoint that is used to retrieve data about users within PCRecruiter.

This information is limited to basic contact information, as well as email setup information. This endpoint can be useful to sync any contact information for a user, with the information found in PCRecruiter.

Default data parameters

  • UserName - This is the unique username for the user.
  • FullName - This parameter is the full name for the user in the array.
  • EmailAddress - EmailAddress is the email address registered for this user. This may vary from the email used for outgoing or incoming email within PCRecruiter for this user.
  • Phone - The phone number listed for this username.
  • Phone Ext - The phone extension listed for this username.
  • ReplicationNumber - The ReplicationNumber parameter is used to as an identifier prepended to record id's to signify which username added the record.
  • ActiveUser - ActiveUser is a boolean parameter used for showing when a user is still active in PCRecruiter. A non-active user will not have access to PCRecruiter.

EmailAliases data parameters

The emailaliases section of the users endpoint is used to list the outgoing email setup options for each user. This is just basic information and does not include advanced setup information for each email alias. The email aliases that are returned will only be for the username that was used to create the session token used in the authorization of this call.

  • Description - Description is used as a description for the email alias listed in the array.
  • Email - This is the email address for the listed alias setup
  • Name - Name is used to show which name the "From" portion of an email will have for this user.

Examples

------------------ REQUEST -------------------

GET /rest/api/users

------------------ RESPONSE ------------------

{
"TotalRecords": 2,
"Results":[
{
"UserName": "SAMPLE",
"FullName": "John Doe",
"EmailAddress": "support@mainsequence.net",
"Phone": "(440) 946-5214",
"PhoneExt": null,
"ReplicationNumber": null,
"ActiveUser": true
},
{
"UserName": "APIUSER",
"FullName": "APIUSER",
"EmailAddress": null,
"Phone": null,
"PhoneExt": null,
"ReplicationNumber": null,
"ActiveUser": false
}
]
}

This API call returns all usernames in the database with their contact information listed, as well as their active status in PCRecruiter.

------------------ REQUEST -------------------

GET /rest/api/users/{UserName}

------------------ RESPONSE ------------------

{
"UserName": "SAMPLE",
"FullName": "John Doe",
"EmailAddress": "support@mainsequence.net",
"Phone": "(440) 946-5214",
"PhoneExt": null,
"ReplicationNumber": null,
"ActiveUser": true
}

This API call returns all of the contact information for the username appended to the API call URL.

------------------ REQUEST -------------------

GET /rest/api/users/EmailAliases

------------------ RESPONSE ------------------

{
"Results":[
{
"description": "Primary Email",
"email": "support@mainsequence.net",
"name": "John Doe"
},
{
"description": "Secondary Email",
"email": "lms@mainsequence.net",
"name": "John Doe"
}
]
}

This API call returns all of the outgoing email setup information for the username that was used to create the session token used in the authorization of the API call.