Staffing Exchange Protocol TM

Recommendation, 2007 April 15

 

Editors:

Kim Bartkus, HR-XML Consortium

 

Contributors:

Member of HR-XML Recruiting Workgroup

                                                                                               

Copyright © 2007 HR-XML Consortium, Inc.

Abstract

This document describes the Staffing Exchange Document types and related business processes.

Table of Contents

1     Overview.. 5

1.1      Objective. 5

1.2      New In This Version. 5

1.3      Specification Enhancements and Corrections. 6

1.4      Terminology. 6

1.4.1        Resume vs. Candidate Profile. 6

1.4.2        Shared Modules. 7

1.4.3        Matching Modules. 7

1.5      Design Requirements. 7

1.5.1        Items Within the Design Scope. 7

1.5.2        Items Outside of Design Scope. 8

2     Business Use Cases. 9

2.1      Use Case 1 – “The Standard Funnel”. 10

2.2      Use Case 2 – “The Reverse Funnel”. 12

3     Candidate Schema Design. 13

3.1      Candidate. 13

3.1.1        Diagram.. 14

3.1.2        Definitions. 14

3.2      Candidate Profile. 18

3.2.1        Diagram.. 19

3.2.2        Definitions. 20

3.3      Preferred Position. 22

3.3.1        Diagram.. 23

3.3.2        Definitions. 23

4     Position Opening Schema Design. 25

4.1      PositionOpening. 25

4.1.1        Diagram.. 25

4.1.2        Definitions. 25

4.2      Position Profile. 28

4.2.1        Diagram.. 30

4.2.2        Definitions. 31

4.3      Position Detail 33

4.3.1        Diagram.. 34

4.3.2        Definitions. 34

5     Resume. 36

6     Matching Modules. 37

6.1      Position Matching Type. 37

6.1.1        Diagram.. 38

6.1.2        Definitions. 38

6.2      Physical Location. 42

6.2.1        Diagram.. 43

6.2.2        Definitions. 43

6.3      Remuneration Package. 45

6.3.1        Diagram.. 46

6.3.2        Definitions. 46

6.4      Shift 51

6.4.1        Diagram.. 52

6.4.2        Definitions. 52

6.5      Job Category. 54

6.5.1        Diagram.. 55

6.5.2        Definitions. 55

7     Shared Modules. 56

7.1      DistributionGuidelines. 56

7.2      SupplierType. 56

7.3      PositionSupplierType. 57

7.4      Associations. 57

7.5      SupportingMaterials. 57

7.6      PersonDescriptors. 58

7.7      EmploymentHistory. 58

7.8      EducationHistory. 58

7.9      MilitaryHistory. 58

8     Implementation Considerations. 58

8.1      Formatted Position Description. 58

8.2      Country, Currency, and Language Codes. 59

8.3      Posting Multiple Identical Vacancies. 60

8.4      Exchanging Common Tracking IDs. 60

8.4.1        Use of PositionRecordInfo ID.. 60

8.4.2        Use of PositionPosting ID.. 60

8.5      Use of Competency. 61

8.6      Position Classification. 61

8.6.1        United States Localization. 61

8.6.2        Germany Localization. 63

8.7      Specifying Where a Person Will Work. 63

8.8      How to Apply for a Position Opening. 64

8.9      Exchanging Minimum Education and Work Experience Structures in UserArea. 65

8.9.1        Draft Schema: 65

8.9.2        Xml Instance Example - MinimumEducationLevel: 66

8.9.3        Xml Instance Example - RequiredWorkExperience: 66

8.10    Use of Travel Structure. 67

8.11    Data Privacy. 68

9     Appendix A - Document Version History. 68

10       Appendix B – Related Documents. 69

 


 

ERRATA: An error existed in the version of Candidate.xsd originally included in the 2_5 release. RelatedPositionPostings is an optional element. By error it was required in the version released on 2007-04-15. This has been corrected within the 2_5 release package. RelatedPositionPostings is optional as it was in prior releases. An instance valid against the uncorrected version will still be valid against the corrected version.  

1         Overview

The landscape that defines the Recruiting and Staffing world today is vastly more fragmented and complex than the landscape of even five years ago. Every part of the hiring process has been broken apart, enhanced and web-enabled to allow greater efficiencies to be realized. It also allows the possibility that a wide variety of technology and service providers can be involved in a single hire. Job boards, staffing company systems, applicant tracking systems, resume parsers, assessment systems, employment screening – and of course the hiring company’s ERP, HRIS or Procurement systems---all are potential points of data exchange in the hiring process. Since every one of these systems is configured somewhat differently, the need for standards in the data exchanged is clear.

1.1        Objective

The Staffing Exchange Protocol (SEP) is a set of XML specifications that support many types of recruiting and staffing related transactions. Transactions supported by the Staffing Exchange Protocol include the posting of job or position opportunities to job boards and the exchange of a candidate resume and/or profile data independent of or related to those postings to other recruiting and sourcing venues.

SEP 2.0 was designed with multi-national input from a variety of stakeholder groups including hiring organizations, staffing companies, job boards/career portal sites, applicant tracking systems and service providers, assessment providers and HRIS vendors.

Staffing Exchange Protocol consists of the following document types and outlines the transactions they facilitate:

·         Resume

·         Candidate

·         Position Opening

1.2        New In This Version

To enable the end-to-end tracking of search metadata throughout the  recruiting process and to support compliance with U.S. Office of Contract Compliance Programs (OFCCP) recruiting record keeping requirements optional elements have been added to the PositionOpening and Candidate schemas. 

SearchCriteria has been added as an optional element within the PositionDetail node:

PositionOpening/PositionProfile/PositionDetail/SearchCriteria

Optional SearchCriteria and SearchResult elements also have been added to the optional and repeatable PositionPosting node:

Candidate/RelatedPositionPostings/PositionPosting/SearchCriteria
Candidate/RelatedPositionPostings/PositionPosting/SearchResult

These changes are fully described in the separate Search Types specification. See Appendix B – Related Documents.

1.3        Specification Enhancements and Corrections

As this specification was implemented with various trading partners, the implementers identified possible errors and enhancements. The Recruiting workgroup collected and reviewed these issues, resulting in a list of changes. Some of the issues require modeling, detailed analysis, and non-backwards compatible changes. Those issues will be resolved in a future version of Staffing Exchange Protocol. This current version will only include minor, backwards compatible changes.

SharedStaffingModules, Organization, and EducationHistory are Cross-Process Objects residing in the CPO folder. Details on Organization and EducationHistory changes are covered in their respective documents. All other details will be handled in this document. Note that changes were also made to Resume, which are defined in the Resume document. See Appendix A - Document Version History for changes.

1.4        Terminology

1.4.1          Resume vs. Candidate Profile

A Candidate Profile may be described as a set of data pertaining to a job seeker that has been compiled and structured in a way to optimize automated matching of supply and demand for talent. Candidate profiles are created to capture overall work related preferences, skills and historical information that are not specific to a particular position. A resume, however, is frequently customized to particular positions, so that the most relevant information is emphasized. There is usually a core intersection of common data between a Resume and a Candidate Profile. However, a resume can include some data not included in a corresponding Candidate Profile and vice versa. For instance, a resume may include “avocational” information (hobbies, and personal interests) and histories of publications, patents, presentations, awards, or similar information not generally used for matching against position requirements. A resume on the other hand, would not typically include details on the job seeker’s work preferences and salary requirements. While a Candidate profile may exclude some of the information included in a corresponding Resume or CV, it might support the ability to link to or retrieve the full Resume/CV.

Another way that Resumes and Candidate Profiles differ is that Resumes more commonly are a “formatted” representation of job seeker qualifications. One of the goals of a job seeker in creating a Resume is to have a formatted document (paper, HTML, Flash™, Portable Document Format (HTML), or other means of online presentation). Data within a Candidate Profile may be flexibly formatted (even formatted as a “Resume”).  However, formatting and display are typically not the primary reason for creating Candidate Profiles.

Resumes and Candidate Profiles also differ in the way they are created and maintained. Resumes commonly are created within word processing software or desktop office software and stored locally. In a Profile-based system, candidates are provided the ability to create and maintain a personal profile on a career website or company’s employment portal. The Candidate Profile is stored in a database, accessible through the career web site or portal by the job seeker using a password. The job seeker can login to modify and update the information on file.

A Resume can serve as a source for some of the data necessary to build a Candidate Profile, although it often has to be “manually integrated” from the Resume into the Profile. For instance, the job seeker or a recruiter keys the data from the Resume into a Web-based form. In other cases, a resume extraction tool (a piece of software that lexically parses and interprets a resume file) takes information from the Resume and populates appropriate fields within a Candidate Profile. It may not be possible to complete the Candidate Profile from the Resume. A recruiter may follow up with the job seeker in an initial screening interview or the job seeker might be asked to provide the additional information through a web-based interface. Information in a Resume or a Candidate Profile is commonly verified through assessments and other screening processes.

1.4.2          Shared Modules

Many of the modules used in the SEP may also be useful in other schemas. These reusable schemas are part of the SharedStaffingModules file stored in the CPO library and may be included in other HR-XML schemas. Examples include Distribution Guidelines, Associations, Supporting Materials, etc.

1.4.3          Matching Modules

There is a collection of elements that share the same structure when describing the attributes of a position. From the candidate side, they describe the type of position a candidate requires or desires. On the hiring company side, they describe specifics that a position offers or requires. Examples of this include shift and schedule information, remuneration packages and travel considerations. These shared structures are a key component in SEP that facilitates the ultimate goal of all staffing transactions - better matching between a candidate and an open position.

1.5        Design Requirements

This specification was developed to enable global use and therefore, contains (optional) information that is acceptable to collect in one location and unlawful to collect in another location. It is the responsibility of the implementers to understand and comply with the appropriate regulatory requirements for each transaction.

1.5.1          Items Within the Design Scope

Enables data interchange among:

1.5.2          Items Outside of Design Scope


2         Business Use Cases

The Staffing Exchange Protocol can be used within a variety of contexts. The current Internet recruiting and staffing environment involves a diverse range of end-users and intermediaries, which can vary significantly and may be subject to change as new staffing and business models emerge.

Two of the most common models used today are:

The Standard Funnel – This process begins with an open position based on a specific need, and many candidates are sourced then filtered or screened out to find the best fit for that position. It is generally demand driven and buyer-centric. This approach is most common in a down economic cycle, where supply is greater than demand.

The Reverse Funnel – This process begins with a candidate who is profiled based on their experience and interests, and many positions are sourced then filtered or screened out to find the best fit for that candidate. It is generally supply driven and seller-centric. This approach is most common in a high growth economic cycle, where demand is greater than the supply of available labor. 


2.1        Use Case 1 – “The Standard Funnel”

This methodology is requirements-based and begins when a manager or Human Resource representative identifies and internally communicates a need for additional resource.  The employer creates an open position (requisition) usually based on a pre-existing job description or profile.  Once the deployment related details are added, the position is usually submitted for authorization. When approved, it is entered into a commercial or proprietary HRIS-type system, a public system or both, for distribution to a third party, publication and/or other sourcing venue.

Next, as candidates apply, recruiters begin to use the position-specific characteristics and requirements to reduce the number of people who will progress through the evaluation process.  Various filtering and screening and interviewing procedures may be implemented, until a final candidate is chosen. The position may be considered filled either after an offer has been made and accepted or possibly when the person actually begins the job.


 

Sample process flow for the standard funnel model



2.2        Use Case 2 – “The Reverse Funnel”

In this candidate oriented model, staffing professionals proactively recruit candidates with a variety of in-demand skills-sets that can either be pooled in reserve for anticipated need, marketed to potential employers, matched to general occupations or matched to specific current positions.  The candidate’s experience, qualifications, career interests and availabilities are profiled. Based on the initial profile they are interviewed (generally with a structured format or general behavioral model), and their skills are assessed.

At this point depending on the business processes being employed, the candidate’s employment history and eligibility to work may be verified. Finally, a list of job titles that the person is interested and qualified for is produced. If they are interested in finding immediate work, they are matched to open positions. If they are interested in career development, a skills gap analysis may be done and a training curriculum devised to help the candidate reach their employment goals.  


 

 

Sample process flow for the reverse funnel model


 

 

3         Candidate Schema Design

3.1        Candidate

Candidate is a comprehensive and flexible set of modules designed to include detailed information about a person within the context of the hiring process. While some information may also be useful once a person has begun their employment engagement, its primary purpose is to capture the nature and level of detail appropriate to support recruiting and staffing activities.

The specification was structured so that information relating to the nature of the transaction is at the higher levels of the schema. Examples of transactional information include: references to job/position postings that the Candidate document may be a response to, references to an agent in the event the candidate is being represented, and distribution guidelines that allow specific entities to be named if there are restrictions on where the candidate document should or should not be sent. Detailed, structured information about the candidate (person) is captured at the lower levels in the CandidateProfile and PreferredPosition modules, however, Resume is also included as an option, so that implementers can send the most appropriate set of information to meet the needs of their systems and processes.

3.1.1          Diagram

3.1.2          Definitions

Elements and Attributes

[Global types listed alphabetically in following table.]

ContentModel*
Data type
Occurrence:
Sequence | Choice | All
(minOccurs/maxOccurs)
Attributes

Definition

/
Candidate

- CandidateType - (1/1)

xml:lang - -
CandidateRecordInfo - RecordInfoType - S (0/1)
RelatedPositionPostings - PositionPostingsType - S (0/1)
CandidateSupplier - SupplierType - S (0/*)
DistributionGuidelines - DistributionGuidelinesType - S (0/*)
CandidateProfile - CandidateProfileType - S (0/*)
Resume - [see include/import] - S (0/1)
UserArea - [see include/import] - S (0/1)

A person who is actively pursuing or passively interested in a work engagement.

/ Candidate/
CandidateRecordInfo

- RecordInfoType - S (0/1)

Container for overall information about the candidate document.

/ [CandidateType]/
RelatedPositionPostings

PositionPosting - PositionPostingSearchInfoType - S (0/*)

Contains information about one or more specific job posting(s) in which the candidate has expressed interest.

/ Candidate/
CandidateSupplier

- SupplierType - S (0/*)

Reference information about the person or entity that is acting on behalf of a candidate.

/ Candidate/
DistributionGuidelines

- DistributionGuidelinesType - S (0/*)

Allows guidelines to be specified for distributing the resume or profile information.

/ Candidate/
CandidateProfile

- CandidateProfileType - S (0/*)

Contains (a unique version of) structured information about a candidate.



Global types
(alphabetically listed)

ContentModel*
Data type
Occurrence:
Sequence | Choice | All
(minOccurs/maxOccurs)
Attributes

Definition

/
[RecordInfoType]

Id - EntityIdType - S (0/*)
Status - ExtendedBasicStatusType - S (0/1)

Globally scoped data type. See element or attribute declaration for definition.

/ [RecordInfoType]/
Id

- EntityIdType - S (0/*)

A unique identifier used to reference the entity. The Id is associated with the higher level element.

/ [RecordInfoType]/
Status

xsd:extension base: ExtendedBasicStatusType
validFrom - AnyDateTimeNkNaType -
validTo - AnyDateTimeNkNaType -

The status of the associated item. If the status isn't specified, the implementer may place the record in whatever status seems appropriate given the context of the data.

/ [RecordInfoType]/ Status/
validFrom

- AnyDateTimeNkNaType -

The date the event begins, is active or valid.

/ [RecordInfoType]/ Status/
validTo

- AnyDateTimeNkNaType -

The date through which the event is active or valid.  

/
[BasicStatusType]

xsd:restriction base: xsd:string [Enumerations]: Active, Inactive, Pending

Globally scoped data type. See element or attribute declaration for definition.

/
[ExtendedBasicStatusType]

- [Union]: BasicStatusType,xStringPatternExtensionType

Globally scoped data type. See element or attribute declaration for definition.

/
[PositionPostingsType]

PositionPosting - [complexType] - S (0/*)

Globally scoped data type. See element or attribute declaration for definition.

/
[PositionPostingSearchInfoType]

xsd:extension base: PositionPostingType
SearchCriteria - [see include/import] - S (0/1)
SearchResult - [see include/import] - S (0/1)

Globally scoped data type. See element or attribute declaration for definition.

/ [PositionPostingsType]/
PositionPosting

Id - EntityIdType - S (0/1)
Title - xsd:string - S (0/1)
Link - InternetWebAddressType - S (0/1)

Reference information about a specific job posting that an organization has generated or candidate has expressed interest in.

/ [PositionPostingsType]/ PositionPosting/
Id

- EntityIdType - S (0/1)

A unique identifier used to reference the entity. The Id is associated with the higher level element.

/ [PositionPostingsType]/ PositionPosting/
Title

- xsd:string - S (0/1)

The name or title within a given context. [Synonym(s): JobTitle, PositionTitle ]

/ [PositionPostingsType]/ PositionPosting/
Link

- InternetWebAddressType - S (0/1)

Contains a URL or link to the job ad or posting.

/
[SearchCriteriaType]

SearchCriteriaId - EntityIdType - S (0/1)
SearchTarget - xsd:string - S (0/*)
UserId - EntityIdType - S (0/1)
SearchTimeStamp - xsd:dateTime - S (0/1)
SearchString - xsd:anyURI - S (0/1)
OtherSearchCriteria - OtherSearchCriteriaType - S (0/*)
UserArea - [see include/import] - S (0/1)

Globally scoped data type. See element or attribute declaration for definition.

/
[SearchResultType]

SearchResultId - EntityIdType - S (0/1)
SearchTarget - xsd:string - S (0/*)
UserId - EntityIdType - S (0/1)
SearchTimeStamp - xsd:dateTime - S (0/1)
MatchedObjectId - EntityIdType - S (0/1)
SearchRelevanceScore - xsd:string - S (0/1)
SearchRelevanceRank - xsd:int - S (0/1)
SearchResultCount - xsd:int - S (0/1)
RankedSearchResults - RankedSearchResultsType - S (0/1)
UserArea - [see include/import] - S (0/1)

Globally scoped data type. See element or attribute declaration for definition.

/
[SourceTypeType]

StandardValue - SourceEnumType - C (1/1)
NonStandardValue - xsd:string - C (1/1)

Globally scoped data type. See element or attribute declaration for definition.

[SourceTypeType]/ SourceType/
StandardValue

- SourceEnumType - C (1/1)

A list of standard values.

/ [SourceTypeType]/ SourceType/
NonStandardValue

- xsd:string - C (1/1)

A string used to extend a list of non-standard values.

/
[SourceEnumType]

xsd:restriction base: xsd:string [Enumerations]: JobBoard, PrintedMedia, StaffingAgency, PublicEmploymentService, Referrer, Self

Job Board - An Internet site offering a service of job search, resume management and more.

Printed Media - A printed publication offering a service of job advertising.

Staffing Agency - An organization whose mission is to provide permanent, part time or temporary candidates to an organization in exchange of a fee.

Public Employment Service - A public organization whose mission is to help unemployed individuals finding a job.

Referrer - An individual who referred the candidate for the position.

Self - The candidate.

 

/
[SupplierType]

relationship - RelationshipsType - optional
SupplierId - EntityIdType - S (0/1)
EntityName - xsd:string - S (0/1) ContactName - PersonNameType - S (0/1)
ContactMethod - ContactMethodType - S (0/*)
SourceType - SourceTypeType - S (0/1)

Globally scoped data type. See element or attribute declaration for definition.