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.3 Specification Enhancements and Corrections
1.4.1 Resume vs. Candidate Profile
1.5.1 Items Within the Design Scope
1.5.2 Items Outside of Design Scope
2.1 Use Case 1 – “The Standard Funnel”
2.2 Use Case 2 – “The Reverse Funnel”
4 Position Opening Schema Design
8 Implementation Considerations
8.1 Formatted Position Description
8.2 Country, Currency, and Language Codes
8.3 Posting Multiple Identical Vacancies
8.4 Exchanging Common Tracking IDs
8.4.1 Use of PositionRecordInfo ID
8.4.2 Use of PositionPosting ID
8.6.1 United States Localization
8.7 Specifying Where a Person Will Work
8.8 How to Apply for a Position Opening
8.9 Exchanging Minimum Education and Work Experience Structures in UserArea.
8.9.2 Xml Instance Example - MinimumEducationLevel:
8.9.3 Xml Instance Example - RequiredWorkExperience:
9 Appendix A - Document Version History
10 Appendix B – Related Documents
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.
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.
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
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.
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.
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.
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.
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.
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.
Enables data interchange among:
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.

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
![]() |
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
![]() |
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.

|
Elements and Attributes [Global types listed alphabetically in following table.] |
ContentModel* |
Definition |
|
/ |
- CandidateType - (1/1) |
A person who is actively pursuing or passively interested in a work engagement. |
|
/
Candidate/ |
- RecordInfoType - S (0/1) |
Container for overall information about the candidate document. |
|
/
[CandidateType]/ |
PositionPosting - PositionPostingSearchInfoType - S (0/*) |
Contains information about one or more specific job posting(s) in which the candidate has expressed interest. |
|
/
Candidate/ |
- SupplierType - S (0/*) |
Reference information about the person or entity that is acting on behalf of a candidate. |
|
/
Candidate/ |
- DistributionGuidelinesType - S (0/*) |
Allows guidelines to be specified for distributing the resume or profile information. |
|
/
Candidate/ |
- CandidateProfileType - S (0/*) |
Contains (a unique version of) structured information about a candidate. |
|
Global types |
ContentModel* |
Definition |
||
|
/ |
Id - EntityIdType - S (0/*) |
Globally scoped data type. See element or attribute declaration for definition. |
||
|
/
[RecordInfoType]/ |
- EntityIdType - S (0/*) |
A unique identifier used to reference the entity. The Id is associated with the higher level element. |
||
|
/
[RecordInfoType]/ |
xsd:extension base: ExtendedBasicStatusType |
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/ |
- AnyDateTimeNkNaType - |
The date the event begins, is active or valid. |
||
|
/
[RecordInfoType]/ Status/ |
- AnyDateTimeNkNaType - |
The date through which the event is active or valid. |
||
|
/ |
xsd:restriction base: xsd:string [Enumerations]: Active, Inactive, Pending |
Globally scoped data type. See element or attribute declaration for definition. |
||
|
/ |
- [Union]: BasicStatusType,xStringPatternExtensionType |
Globally scoped data type. See element or attribute declaration for definition. |
||
|
/ |
PositionPosting - [complexType] - S (0/*) |
Globally scoped data type. See element or attribute declaration for definition. |
||
|
/ |
xsd:extension base: PositionPostingType |
Globally scoped data type. See element or attribute declaration for definition. |
||
|
/
[PositionPostingsType]/ |
Id - EntityIdType - S (0/1) |
Reference information about a specific job posting that an organization has generated or candidate has expressed interest in. |
||
|
/
[PositionPostingsType]/ PositionPosting/ |
- EntityIdType - S (0/1) |
A unique identifier used to reference the entity. The Id is associated with the higher level element. |
||
|
/
[PositionPostingsType]/ PositionPosting/ |
- xsd:string - S (0/1) |
The name or title within a given context. [Synonym(s): JobTitle, PositionTitle ] |
||
|
/
[PositionPostingsType]/ PositionPosting/ |
- InternetWebAddressType - S (0/1) |
Contains a URL or link to the job ad or posting. |
||
|
/ |
SearchCriteriaId
- EntityIdType - S
(0/1) |
Globally scoped data type. See element or attribute declaration for definition. |
||
|
/ |
SearchResultId
- EntityIdType - S
(0/1) |
Globally scoped data type. See element or attribute declaration for definition. |
||
|
/ |
StandardValue
- SourceEnumType - C
(1/1) |
Globally scoped data type. See element or attribute declaration for definition. |
||
|
[SourceTypeType]/
SourceType/ |
- SourceEnumType - C (1/1) |
A list of standard values. |
||
|
/
[SourceTypeType]/ SourceType/ |
- xsd:string - C (1/1) |
A string used to extend a list of non-standard values. |
||
|
/ |
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.
|
||
|
/ |
relationship
- RelationshipsType - optional |
Globally scoped data type. See element or attribute declaration for definition. |
||
|
/
[SupplierType] / |
- RelationshipsType - |
Deprecated for use in CandidateSupplier. Use CandidateSupplier/SourceType. |
||
|
/
[SupplierType]/ |
- EntityIdType - S (0/1) |
A unique identifier for the entity that acts on behalf of a candidate |
||
|
/
[SupplierType]/ |
- xsd:string - S (0/1) |
Name of entity that is contacted. This would typically be the organization. |
||
|
/
[SupplierType]/ |
- ContactMethodType - S (0/*) |
Defines the methods of contacting a person or organizations. |
||
|
[SupplierType]/ |
- PersonNameType - S (0/1) |
The name of the person to contact. |
||
|
[SupplierType]/ |
- SourceTypeType - S (0/1) |
Indicates the type of organization from which the candidate was sourced. |
||
|
/ |
- [Union]: RelationshipType,xStringPatternExtensionType |
Globally scoped data type. See element or attribute declaration for definition. |
||
|
/ |
xsd:restriction base: xsd:string [Enumerations]: agent, broker, self, referer |
Deprecated for use in CandidateSupplier. Use CandidateSupplier/SourceType. |
||
The Candidate Profile module contains both personal and professional information about the candidate. An unlimited number of profiles can be created, identified and exchanged within a single candidate document. The reasons for multiple profiles are many and varied, such as: candidates wanting different profiles for different skill-sets they want to emphasize, or different audiences or, because each profile has a language attribute, they may want profiles in multiple languages. CandidateProfile’s components are flexible enough to accommodate most scenarios.
The key components in CandidateProfile are as follows:
ProfileName and ID – Allows each profile to be uniquely identified
AvailabilityInfo – Captures one or more dates or date ranges as well as the length of notice that must be worked before the candidate can begin a new work engagement. This element is at the profile level, because the candidate may want to alter the information to match the opportunity they are pursuing.
PersonalData – This element identifies the person whose information is being exchanged, captures contact information, and contains a module called PersonDescriptors designed to capture a wide range of personal demographics and other characteristics. This module deals with information that can be extremely sensitive and requires discretion on the part of the implementers. It is also a module that may be reused in other HR related schemas. Because of these factors, a separate document was created so that the issues can be discussed in greater detail.
Distribution Guidelines – See 7.1 DistributionGuidelines.
Employment History – See 7.6 EmploymentHistory.
Education History – See 7.7 EducationHistory.
Military History – See 7.8 MilitaryHistory.
Associations – See 7.3 Associations.
Supporting Materials – See 7.4 SupportingMaterials.

|
Elements and Attributes [Global types listed alphabetically in following table.] |
ContentModel* |
Definition |
|
/
Candidate/ |
CandidateProfileType - S (0/*) xml:lang
- - |
Contains (a unique version of) structured information about a candidate. |
|
/ Candidate/
CandidateProfile/ |
- EntityIdType - S (0/1) |
Unique identifier for a particular instance of a Candidate or Position Opening Profile. |
|
/
Candidate/ CandidateProfile/ |
- xsd:string - S (0/1) |
Name for a particular Candidate or Position Opening Profile. |
|
/
Candidate/ CandidateProfile/ |
AvailabilityDates
- [complexType] - S
(0/*) |
Container for information about a candidate's availability for work. |
|
/
Candidate/ CandidateProfile/ AvailabilityInfo/ |
StartDate
- LocalDateNkNaType - S (0/1) |
The specific (inclusive) dates that a candidate is available for work. |
|
/
Candidate/ CandidateProfile/ AvailabilityInfo/ AvailabilityDates/ |
- LocalDateNkNaType - S (0/1) |
Contains the (inclusive) date, period, or interval the event becomes active or begins. |
|
/
Candidate/ CandidateProfile/ AvailabilityInfo/ AvailabilityDates/ |
- LocalDateNkNaType - S (0/1) |
Contains the (inclusive) date, period, or interval the event becomes inactive or ends. |
|
/
Candidate/ CandidateProfile/ AvailabilityInfo/ |
Value - xsd:integer - S (1/1) |
The length of time that a candidate must serve in their current position before becoming eligible to begin a new work engagement. |
|
/
Candidate/ CandidateProfile/ AvailabilityInfo/ TermOfNotice/ |
- xsd:integer - S (1/1) |
A numerical quantity that is assigned or determined by calculation or measurement. |
|
/
Candidate/ CandidateProfile/ AvailabilityInfo/ TermOfNotice/ |
- NoticeFrequencyType - S (1/1) |
A defined period of time between associated events. |
|
/
Candidate/ CandidateProfile/ |
- DistributionGuidelinesType - S (0/*) |
Allows guidelines to be specified for distributing the resume or profile information. |
|
/
Candidate/ CandidateProfile/ |
CandidatePersonalDataType - S (0/1) PersonId
- EntityIdType - S
(0/1) |
A collection of information containing descriptive elements, demographic and contact information about the person. |
|
/
Candidate/ CandidateProfile/ PersonalData/ |
- EntityIdType - S (0/1) |
A unique identifier for a person. |
|
/
Candidate/ CandidateProfile/ PersonalData/ |
- PersonNameType - S (0/1) |
The name of a person. |
|
/
Candidate/ CandidateProfile/ PersonalData/ |
- ContactMethodType - S (0/*) |
Defines the methods of contacting a person or organizations. |
|
/
Candidate/ CandidateProfile/ PersonalData/ |
- PersonDescriptorsType - S (0/1) |
Contains legal, biological, and demographic descriptors for a person. |
|
/
Candidate/ CandidateProfile/ |
xsd:extension base: PositionMatchingType |
A collection of information about the candidate's job interests and preferences. |
|
/ |
xsd:restriction base: xsd:string [Enumerations]: Hour, Day, Week, Month |
Globally scoped data type. See element or attribute declaration for definition. |
|
/ |
[Union]: BasicNoticeFrequencyType, xStringPatternExtensionType |
Globally scoped data type. See element or attribute declaration for definition. |
This module captures detailed information about the candidate’s interests and preferences as well as specific deployment related information and is one of the key differentiators that separate commonly used resume data from profile data. The PreferredPosition structure is designed primarily to facilitate electronic matching of a candidate to an open position. One of the key ways this is accomplished is that almost every element in this module has an identical counterpart element within PositionOpening. When the information is in Candidate, it represents what a person requires or desires – when it is in PositionOpening, it represents what an open position requires or offers. This is the type of information that can facilitate the gap between candidates that are “qualified” or have the right background and skill sets for an open position and candidates that are the best overall “fit” for the open position.

PreferredPosition uses the PositionMatchingType with an extension for the commute information. The following table only shows the extension. For information and descriptions for PositionMatchingType, see 6.1 Position Matching Type.
|
Elements and Attributes [Global types listed alphabetically in following table.] |
ContentModel* |
Definition |
|
/ |
xsd:extension base: PositionMatchingType |
A collection of information about the candidate's job interests and preferences. |
|
/
PreferredPosition/ |
- CommuteType - S (0/1) |
Container describing the person's commute preferences. |
|
/
[CommuteType]/ |
xsd:extension base: xsd:decimal |
Maximum amount of time the person is willing to commute. |
|
/
[CommuteType]/ TimeMax/ |
- xsd:string - |
Unit in which the quantity is measured. |
|
/
[CommuteType]/ |
xsd:extension base: xsd:decimal |
Maximum amount of distance the person is willing to commute. |
|
/
[CommuteType]/ DistanceMax/ |
- xsd:string - |
Unit in which the quantity is measured. |
|
/
[CommuteType]/ |
- xsd:string - S (0/1) |
Describes the contextual information relating to a group of elements. |
The PositionOpening module is structured similarly to the Candidate module, in that the highest level contains transaction oriented information. In this usage, “transactional” does not refer to the date/time/sender information typically contained in the message envelope, but rather refers to the business process that gives the schema its context.
Examples of transactional information in PositionOpening include: references to job/position postings that the PositionOpening document may provide the content for, references to the entity that is responsible for filling the position if it is other than the hiring company, and distribution guidelines that allow specific entities to be named if there are restrictions on where the PositionOpening document should or should not be sent. Detailed, structured information about the open position is captured at the lower levels in the PositionProfile and PositionDetail modules.
When PositionOpening is used in transactions with job boards or other types of career sites where publication of position information is the objective, the PositionRecordInfo structure can be used to specify the dates of active publication. It contains a repeatable ID as well as a Status element with accompanying date range attributes.

|
Elements and Attributes [Global types listed alphabetically in following table.] |
ContentModel* |
Definition |
|
/ |
PositionOpeningType - (1/1) xml:lang
- - |
A single or specific instance of a job to be filled. |
|
/
PositionOpening/ |
- RecordInfoType - S (0/1) |
Container for overall information about the position document. |
|
/
PositionOpening/ |
- PositionPostingsType - S (0/1) |
Information referencing one or more job advertisements or postings. |
|
/
[PositionOpeningType]/ |
- PositionSupplierType - S (0/*) |
The entity advertising or responsible for filling an open position. |
|
/ PositionOpening/ |
- PositionProfileType - S (0/*) |
Contains (a unique version of) structured information about a position. |
|
/
[PositionOpeningType]/ |
- xsd:integer - S (0/1) |
Allows a
posting to be used for multiple positions. |
|
Global types |
ContentModel* |
Definition |
|
/ |
Id - EntityIdType - S (0/*) |
Globally scoped data type. See element or attribute declaration for definition. |
|
/
[RecordInfoType]/ |
- EntityIdType - S (0/*) |
A unique identifier used to reference the entity. The Id is associated with the higher level element. |
|
/
[RecordInfoType]/ |
xsd:extension base: ExtendedBasicStatusType |
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/ |
- AnyDateTimeNkNaType - |
The date the event begins, is active or valid. |
|
/
[RecordInfoType]/ Status/ |
- AnyDateTimeNkNaType - |
The date through which the event is active or valid. |
|
/ |
xsd:restriction base: xsd:string [Enumerations]: Active, Inactive, Pending |
Globally scoped data type. See element or attribute declaration for definition. |
|
/ |
- [Union]: BasicStatusType,xStringPatternExtensionType |
Globally scoped data type. See element or attribute declaration for definition. |
|
/ |
PositionPosting - [complexType] - S (0/*) |
Globally scoped data type. See element or attribute declaration for definition. |
|
/
[PositionPostingsType]/ |
Id - EntityIdType - S (0/1) |
Reference information about a specific job posting that an organization has generated or candidate has expressed interest in. |
|
/
[PositionPostingsType]/ PositionPosting/ |
- EntityIdType - S (0/1) |
A unique identifier used to reference the entity. The Id is associated with the higher level element. |
|
/
[PositionPostingsType]/ PositionPosting/ |
- xsd:string - S (0/1) |
The name or title within a given context. [Synonym(s): JobTitle, PositionTitle ] |
|
/
[PositionPostingsType]/ PositionPosting/ |
- InternetWebAddressType - S (0/1) |
Contains a URL or link to an e-mail or to an identifier. [Synonym(s): InternetWebAddress, InternetEMailAddress ] |
|
/ |
relationship
- RelationshipsType - optional |
Globally scoped data type. See element or attribute declaration for definition. |
|
/ [PositionSupplierType]
/ |
- RelationshipsType – |
Describes the nature of the relationship or connection between two elements or entities. |
|
/ [PositionSupplierType]/ |
- EntityIdType - S (0/1) |
A unique identifier for the entity that acts on behalf of a candidate |
|
/ [PositionSupplierType]/ |
- xsd:string - S (0/1) |
The name of the supplier. |
|
[PositionSupplierType]/ |
- PersonNameType - S (0/1) |
The name of the person to contact. |
|
/ [PositionSupplierType]/ |
- ContactMethodType - S (0/*) |
Defines the methods of contacting a person or organizations. |
|
[PositionSupplierType]/ |
- SourceTypeType - S (0/1) |
Identifies the type of organization from which the candidate was sourced. |
|
/ |
- [Union]: RelationshipType,xStringPatternExtensionType |
Globally scoped data type. See element or attribute declaration for definition. |
|
/ |
xsd:restriction base: xsd:string [Enumerations]: agent, broker, self, referer |
Globally scoped data type. |
The PositionProfile module contains high-level information about the open position. An unlimited number of profiles can be created, identified and exchanged within a single PositionOpening document. The reasons for multiple profiles are many and varied, such as: a company wanting different content for different audiences (e.g. internal posting, commercial or niche job board, staffing company order, etc.) or, because each profile has a language attribute, they may want profiles in multiple languages. PositionProfile’s components are flexible enough to accommodate most scenarios.
The key components in PositionProfile are as follows:
ProfileName and ID – Allows each profile to be uniquely identified.
PositionDateInfo – Captures any combination of a series of dates that may be appropriate for that specific PositionProfile.
Organization – Uses the CPO Organization structure to provide detailed information about the company who generated the open position, and in most (but not all) cases, controls the day to day activities that govern the work to be done. It can contain details about the company’s organizational structure, departments/business units, work sites, work environments and even staff as they relate to the open position. This is not used to describe an agent organization in the event that responsibility for filling the position has been granted to a third party.
FormattedPositionDescription – This element consists of name/value pairs used to carry verbatim descriptions of a position, primarily for the purpose of a job posting or other advertising-related purpose. It was created as a way of parsing unstructured text and was designed to carry the information in ‘named’ sections (for example: summary description, qualifications, application procedure, etc) so that the data can be directed into the appropriate places based on business partner agreement.
HowToApply – Provides details about how the applicant should apply for the opening. For example, if the person should apply by e-mail and/or post, the e-mail and postal address will be supplied. Available methods are by telephone, fax, e-mail, website, post mail, and in person.
Distribution Guidelines – See 7.1 DistributionGuidelines.
SupportingMaterials – See 7.4 SupportingMaterials.

|
Elements and Attributes [Global types listed alphabetically in following table.] |
ContentModel* |
Definition |
|
/ |
PositionProfileType - S (0/*) xml:lang - - DistributionGuidelines - DistributionGuidelinesType - S (0/*) |
Contains (a unique version of) structured information about a position. |
|
/
PositionProfile/ |
- EntityIdType - S (0/1) |
Unique identifier for a particular instance of a Candidate or Position Opening Profile. |
|
/
PositionProfile/ |
- xsd:string - S (0/1) |
Name for a particular Candidate or Position Opening Profile. |
|
/
PositionProfile/ |
StartAsSoonAsPossible
- xsd:boolean - S
(0/1) |
Container for period of time over which the position is expected to or does exist. This allows for actual and estimated dates. |
|
/
PositionProfile/ PositionDateInfo/ |
- xsd:boolean - S (0/1) |
Indicates an immediate need to have a position filled. |
|
/
PositionProfile/ PositionDateInfo/ |
- AnyDateTimeType - S (0/1) |
Contains the (inclusive) date, period, or interval the event becomes active or begins. |
|
/
PositionProfile/ PositionDateInfo/ |
- AnyDateTimeNkNaType - S (0/1) |
The date the position, assignment, or contract is expected to end. |
|
/
PositionProfile/ PositionDateInfo/ |
- AnyDateTimeNkNaType - S (0/1) |
The maximum acceptable date for an event to begin. |
|
/ PositionProfile/
PositionDateInfo/ |
- AnyDateTimeNkNaType - S (0/1) |
The maximum acceptable date for an event to end. |
|
/
PositionProfile/ |
- OrganizationType - S (0/*) |
Contains information about the organization. |
|
/
PositionProfile/ |
xsd:extension base: PositionMatchingType |
Granular information about the characteristics of a position. |
|
/
PositionProfile/ |
- LocalizedPositionClassificationType - S (0/1) |
Information that is required principally for compliance with governmental labor laws. |
|
/
PositionProfile/ |
Name - xsd:string - S (1/1) |
Specific verbiage used to describe a position, generally in the context of a job advertisement. |
|
/
PositionProfile/ FormattedPositionDescription/ |
xsd:extension base: xsd:string |
A descriptive identifier within the given context. |
|
/
PositionProfile/ FormattedPositionDescription/ |
xsd:extension base: xsd:string |
Verbatim text used for reproduction or publication. For example, advertising a job posting. This element, in this context, is designed for verbiage, so if graphics or formatting information also need to be exchanged, it is recommended that the “SupportingMaterials” structure be used. |
|
/
PositionProfile/ |
PersonName
- [see include/import] - S (0/1) |
Provides the details on how to apply for a job or position. |
|
/
PositionProfile/ HowToApply/ |
- ApplicationMethodType - S
(0/1) |
Contains the phone number, address, e-mail or other pertinent contact information needed to apply for a job or position. |
|
/
PositionProfile/ HowToApply/ ApplicationMethod/ |
TravelDirections
- xsd:string - S
(0/1) |
Identifies
information used to apply for job or position in person. |
|
/
PositionProfile/ HowToApply/ ApplicationMethod/ InPerson/ |
- xsd:string - S (0/1) |
Provides directions to the site. These could include directions by bus, air, car, walking, etc. |
|
/
PositionProfile/ HowToApply/ ApplicationMethod/ InPerson/ |
- InternetWebAddressType - S (0/1) |
An URL to a map or other travel directions. |
|
/
PositionProfile/ HowToApply/ ApplicationMethod/ InPerson/ |
- xsd:string - S (0/1) |
Provides further instructions about applying for a position in person. |
|
/
PositionProfile/ |
- DistributionGuidelinesType - S (0/*) |
Allows guidelines to be specified for distributing the resume or profile information. |
|
/
PositionProfile/ |
- StaffingSupportingMaterialsType - S (0/*) |
Allows
the exchange of supporting information. |
PositionDetail is the equivalent of PreferredPosition on the Candidate side. This module captures detailed information about the open position’s attributes and requirements as well as specific deployment related information. The PositionDetail structure is designed primarily to facilitate electronic matching between a candidate and an open position. One of the key ways this is accomplished is that almost every element in this module has an identically structured counterpart element within Candidate. This allows for true “apples to apples” comparisons, resulting in a cleaner and more equitable basis for candidate filtering.

PositionDetail uses the PositionMatchingType with an extension for the job level information. The following table only shows the extension. For information and descriptions of PositionMatchingType, see 6.1 Position Matching Type.
Although Job Level Information is part of PositionDetail, it is also shared by other staffing schemas. Therefore, JobLevelInfoType resides in the SharedStaffingModules schema.
|
Elements and Attributes [Global types listed alphabetically in following table.] |
ContentModel* |
Definition |
|
/ |
- PositionMatchingExtendedType - S (0/1) |
Granular information about the characteristics of a position. |
|
/
PositionDetail/ |
- JobLevelInfoType - S (0/*) JobPlan
- xsd:string - S
(0/1) |
Contains information about the relative echelon a position has within a salary structure or program. |
|
/
[JobLevelInfoType]/ |
- xsd:string - S (0/1) |
Identifies a specific salary structure or program used either throughout, or in specific segments of an enterprise. |
|
/
[JobLevelInfoType]/ |
- xsd:string - S (0/1) |
Defines the salary range or band that a job falls within, based on the formal structure. |
|
/
[JobLevelInfoType]/ |
- xsd:string - S (0/1) |
Pinpoints a specific level or point within a range or band. |
|
/
[JobLevelInfoType]/ |
- xsd:string - S (0/1) |
Describes the contextual information relating to a group of elements. |
|
/ |
SearchCriteriaId
- EntityIdType - S
(0/1) |
Globally scoped data type. See element or attribute declaration for definition. |
This module captures a summary of a candidate’s skills, experience, and education. It may include information on academic and research experience, publications, inventions (patents), presentations, awards, honors, affiliations, and other details. Full details can be found by following the link in Appendix B.
PositionMatchingType forms the structure for Candidate’s PreferredPosition and Position Opening’s PositionDetail. It is composed of commonly used ‘points of comparison’ that are gathered throughout the course of the candidate selection process. The type and level of detail in this module is more than is commonly found in a job posting alone. Other factors are included that traditionally are captured elsewhere in the hiring process, such as a pre-screening process, an interview or an application. This is one of the primary reasons that the term “Position Opening” was used in SEP 2.0, rather than the previous “JobPositionPosting”.
The definitions section adequately describes most of the less complex elements in this structure, but in the interest of clarity, some of the larger modules in PositionMatchingType are called out and defined in more detail in sections 6.2 through 6.4.
The following scenario illustrates an example of how the data captured in PositionMatchingType could be useful to an implementer who, in this case, is using the Standard Funnel approach described in Section 2.1.)
Scenario:
Company A is a large Auto Manufacturing firm who has a need for a Mechanical Engineer with 10+ years of experience. They post the position on a national site and (times being what they are) they receive 1000 candidates that have 10+ years of experience as a Mechanical Engineer. All 1000 candidates are obviously not going to be right for that position at that company. The data in the PositionMatchingType structure may help Company A determine which ones will be a better fit.
For example, 300 candidates indicated their desire to work in the Automotive Industry (Industry). The position is located in Detroit, Michigan, and Company A will consider relocating their new engineer, so candidates who are not in the Detroit area (PhysicalLocation) and are not willing to relocate (Relocation) are separated out, leaving 75 candidates. The position requires working on alternate weekends and evening hours (Shift). Candidates that have not indicated a willingness or desire for that type of a schedule are also separated out bringing the “best fit” number down to 16. The position offers a reasonable salary, but does not offer the dental or vision insurance coverage, which was important for half of the remaining candidates (RemunerationPackage), so the “best fit” candidate count is down to 8 – a reasonable number to send through to the next round of reference checking, assessments and/or interviewing.
All 1000 of the original candidates were technically qualified to do the work the position required, but through the use of the data in PreferredPosition/PositionDetail, Company A was able to save substantial time and money narrowing the list down to a manageable number of appropriate candidates and increasing the likelihood of finding the right person for that job.

|
Elements and Attributes [Global types listed alphabetically in following table.] |
ContentModel* |
Definition |
|
/ |
- PositionMatchingType - (1/1) |
This element only exists for display purposes. The complex type is used within the PositionOpening and Candidate records. |
|
/
PositionMatching/ |
- EntityReferenceType – S (0/*) |
Contains identifying information about a company. |
|
/
PositionMatching/ |
- ScaleType – S (0/*) |
Defines the relative size of an organization. This is more generic than Headcount. |
|
/
PositionMatching/ |
- IndustryCodeType – S (0/*) |
A code that specifies the type of industry to which the entity belongs. |
|
/
PositionMatching/ |
- SEPPhysicalLocationType – S (0/*) |
Container to describe a physical place. |
|
/
PositionMatching/ |
- OccupationalCategoryType – S (0/*) |
A grouping of jobs under one or more classification schemes that is meaningful to an organization. |
|
/
PositionMatching/ |
- xsd:string – S (0/*) |
A short phrase describing the position the way it would be listed on a business card or in a company directory. |
|
/ PositionMatching/ |
- StaffingPositionClassificationType – S (0/*) |
Describes the category or nature of the position. |
|
/
[PositionMatchingType]/ |
xsd:extension base: PositionScheduleType |
Describes the nature of the schedule associated with the position. |
|
/
[PositionMatchingType]/ PositionSchedule/ |
- xsd:float - |
A
percentage. |
|
/
PositionMatching/ |
- WorkShiftScheduleType – S (0/*) |
Work shift as it pertains to a particular assignment being reported on. |
|
/
PositionMatching/ Shift/ |
- EntityIdType – S (0/1) |
A unique identifier used to reference the entity. The Id is associated with the higher level element. |
|
/
PositionMatching/ Shift/ |
- xsd:string – S (0/1) |
A descriptive identifier within the given context. |
|
/
PositionMatching/ Shift/ |
- xsd:decimal – S (0/1) |
The number of hours specified for an event or work period. |
|
/
PositionMatching/ Shift/ |
- LocalTimeNkNaType – S (0/1) |
The time the interval or event started. |
|
/
PositionMatching/ Shift/ |
- LocalTimeNkNaType – S (0/1) |
The time the interval or event ended. |
|
/
PositionMatching/ Shift/ |
- PayTypeHoursType – S (0/1) |
Specific type of work hours. |
|
/
PositionMatching/ Shift/ |
- xsd:string – S (0/1) |
Describes the contextual information relating to a group of elements. |
|
/
PositionMatching/ |
- PrehireRemunerationPackageType – S (0/1) |
A group of components that relate to pay or other compensatory benefits information associated with a particular job or position. |
|
/
PositionMatching/ |
- WorkStyleType – S (0/*) |
Defines the general work style preferred by a candidate or required by the hiring organization. |
|
/
PositionMatching/ |
- DressCodeType – S (0/*) |
Defines any dress code requirements for the environment. |
|
/
PositionMatching/ |
- StaffingTravelType – S (0/1) |
Information regarding if the person is willing to travel or the position requires travel. |
|
/
PositionMatching/ Travel/ |
- xsd:boolean - C (0/1) |
Indicates if the associated element applies to this transaction. This specifies if travel is applicable to the job or position. |
|
/
PositionMatching/ Travel/ |
- xsd:string – S (0/1) |
Percentage of time the person is willing to travel or the position requires. |
|
/
PositionMatching/ Travel/ |
- xsd:string – S (0/1) |
Describes any special travel considerations. |
|
/
PositionMatching/ |
- StaffingRelocationType – S (0/1) |
Contains Information on whether relocation is an option for the candidate or considered by the hiring company. |
|
/
[StaffingRelocationType] / |
- xsd:boolean - |
True/False. Indicates whether relocation is an option for the candidate or considered by the hiring company. |
|
/
PositionMatching/ Relocation/ |
- xsd:string – S (0/1) |
Describes the contextual information relating to a group of elements. |
|
/
PositionMatching/ |
- LanguageCodeType – S (0/1) |
Specifies the language that is the most desirable or commonly used by a person or in a particular work environment. |
|
Global types |
ContentModel* |
Definition |
|
/ |
xsd:restriction base: xsd:string [Enumerations]: Global, National, Regional, Local |
Globally scoped data type. See element or attribute declaration for definition. |
|
/ |
xsd:restriction base: xsd:string [Enumerations]: Full Time, Part Time, Flex Time, Seasonal, Any |
Globally scoped data type. See element or attribute declaration for definition. |
|
/ |
xsd:restriction base: xsd:string [Enumerations]: Independent, Team |
Globally scoped data type. See element or attribute declaration for definition. |
|
[PositionScheduleType] |
- [Union]: BasicScheduleTypes,xStringPatternExtensionType |
Globally scoped data type. See element or attribute declaration for definition. |
|
/ |
- [Union]: BasicScaleTypes, |
Globally scoped data type. See element or attribute declaration for definition. |
|
/ |
- [Union]: BasicPositionClassification, |
Globally scoped data type. See element or attribute declaration for definition. |
|
/ |
xsd:restriction base: xsd:string [Enumerations]: Direct Hire, Temp to Hire, Contract to Hire, Contract, Temporary, Volunteer, Internship, Apprenticeship, On Call, Remote, Any |
Globally scoped data type. See element or attribute declaration for definition. |
|
/ |
- [Union]: BasicWorkStyleTypes, |
Globally scoped data type. See element or attribute declaration for definition. |
The SEPPhysicalLocation module contains information about the actual location of a particular position, which may be different than the employer's location. In the PositionOpening schema, it specifies where the position is located. In the Candidate schema, it specifies where the candidate would prefer to work. This is key information that is used to assist in the process of matching candidates to open positions.
The structure is both simple and comprehensive. It can be as precise as Latitude/Longitude coordinates, which are useful in pinpointing field locations for Geo coding purposes. Yet it also offers a repeatable, recursive Area structure that will allow for much broader company-specific location groupings to be specified. This is commonly used in Job Boards or Career Websites to facilitate flexible search functionality.
In addition, it still allows for traditional PostalAddress information capture, rounding out the options for implementers to track this type of location information. It is important to remember, that while PhysicalLocation is flexible enough to be used in many contexts, this version is designed to facilitate staffing oriented search and match processes. More details about a position's worksite and employer information are contained in the "Organization" include in PositionProfile (See section 4.2 Position Profile).

|
Elements and Attributes [Global types listed alphabetically in following table.] |
ContentModel* |
Definition |
|
/ |
- SEPPhysicalLocationType - (1/1) |
The complex type is used within the PositionOpening and Candidate records. |
|
/
SEPPhysicalLocation/ |
- EntityIdType - S (0/1) |
A unique identifier used to reference the entity. The Id is associated with the higher level element. |
|
/
SEPPhysicalLocation/ |
- xsd:string - S (0/1) |
A descriptive identifier within the given context. |
|
/
SEPPhysicalLocation/ |
- SpatialLocationType - S
(0/1) |
The location relating to a specific point on the earth. This is determined by a coordinate system. |
|
/
SEPPhysicalLocation/ SpatialLocation/ |
- LatitudeType - S (1/1) |
The angular distance of a place north or south of the earth’s equator. It is expressed in degrees, minutes and seconds, with a range of 0-90 degrees, where 0 is at the equator and 90 is at the poles. |
|
/
SEPPhysicalLocation/ SpatialLocation/ |
- LongitudeType - S (1/1) |
The angular distance of a place east or west of the prime meridian at Greenwich, England. It is generally expressed in degrees, minutes and seconds, with a range of 0-180 degrees. |
|
/
SEPPhysicalLocation/ SpatialLocation/ |
- xsd:decimal - C (0/1) |
The height of an object or point in relation to the earth's surface. This value is expressed in meters. |
|
/ SEPPhysicalLocation/
SpatialLocation/ |
- xsd:decimal - C (0/1) |
The height of an object or point in relation to sea level or above the mean sea level. This value is expressed in meters. |
|
/
SEPPhysicalLocation/ SpatialLocation/ |
- NonNegativeDecimal - S (0/1) |
The margin of error for longitude and latitude coordinates. |
|
/
SEPPhysicalLocation/ SpatialLocation/ |
- NonNegativeDecimal - S (0/1) |
The margin of error for the altitude coordinate. |
|
/
SEPPhysicalLocation/ |
- xsd:string - S (0/*) |
Provides directions to the site. These could include directions by bus, air, car, walking, etc. |
|
/
SEPPhysicalLocation/ |
- AreaType - S (0/*) |
The amount of surface included within a closed figure; a particular piece of ground often set aside for special use. |
|
/
[AreaType] / |
- [Union]: AreaTypeType,xStringPatternExtensionType |
Further defines the associated element in the context provided. |
|
/
SEPPhysicalLocation/ Area/ |
- xsd:string - S (1/1) |
A known description of a physical area, e.g. a name of a municipality, a postcode or a country code. |
|
/
SEPPhysicalLocation/ |
- xsd:string - S (0/1) |
Describes the contextual information relating to a group of elements. |
|
Global types |
ContentModel* |
Definition |
|
/ |
xsd:restriction base: xsd:string |
Globally scoped data type. See element or attribute declaration for definition. |
|
/ |
xsd:restriction base: xsd:string |
Globally scoped data type. See element or attribute declaration for definition. |
|
/ |
xsd:restriction base: xsd:decimal |
Globally scoped data type. See element or attribute declaration for definition. |
RemunerationPackage is both comprehensive and flexible, yet limited in the depth of information it is intended to exchange. The two primary types of data it can convey are “pay” and “benefits”. It is important to note that level of detail was kept consistent with the context of pre-hire recruiting and staffing activities. It is not designed to address jurisdiction-specific payroll or other forms of compensation management.

|
Elements and Attributes [Global types listed alphabetically in following table.] |
ContentModel* |
Definition |
|
/ |
BasePay
- BasePayType - S
(0/*) |
Globally scoped data type. See element or attribute declaration for definition. |
|
/
[PrehireRemunerationPackageType]/ |
- BasePayType - S (0/*) |
Describes the monetary pay structure considered standard for a particular job or position. |
|
/
[BasePayType] / |
- CurrencyCodeType - |
A three-letter code identifying the currency of a monetary amount. |
|
/
[BasePayType] / |
- FrequencyType - |
The interval or increment in which the BasePay is expected to be issued. |
|
/
[PrehireRemunerationPackageType]/ BasePay/ |
- xsd:decimal - S (0/1) |
The lowest amount of a range of BasePay amounts. |
|
/
[PrehireRemunerationPackageType]/ BasePay/ |
- xsd:decimal - S (0/1) |
The highest amount of a range of BasePay amounts. |
|
/
[PrehireRemunerationPackageType]/ |
- OtherPayType - S (0/*) |
Describes the pay structure considered additional, flexible or atypical for a particular job or position. |
|
/
[OtherPayType] / |
- CurrencyCodeType - |
A three-letter code identifying the currency of a monetary amount. |
|
/
[OtherPayType] / |
- OtherIntervalType - |
The interval or increment other than the standard or base interval. |
|
/
[OtherPayType] / |
- OtherPayTypeTypes - |
Types of remuneration that are flexible or atypical. |
|
/
[PrehireRemunerationPackageType]/ OtherPay/ |
- xsd:decimal - S (0/1) |
The lowest amount of a range of OtherPay amounts. |
|
/
[PrehireRemunerationPackageType]/ OtherPay/ |
- xsd:decimal - S (0/1) |
The highest amount of a range of OtherPay amounts. |
|
/
[PrehireRemunerationPackageType]/ OtherPay/ |
- xsd:string - S (0/1) |
Allows expression and/or calculation of variables that determine OtherPay. |
|
/
[PrehireRemunerationPackageType]/ OtherPay/ |
- xsd:string - S (0/1) |
Describes the contextual information relating to a group of elements. |
|
/
[PrehireRemunerationPackageType]/ |
- BenefitsType - S (0/*) |
Describes other forms of compensation or remuneration a person might receive in the context of a work engagement. |
|
/
[PrehireRemunerationPackageType]/ Benefits/ |
xsd:extension base: xsd:boolean |
Indicates whether various insurances are provided by the organization or desired by the candidate. |
|
/
[PrehireRemunerationPackageType]/ Benefits/ Insurance/ |
- InsuranceTypes - |
Further defines the associated element in the context provided. |
|
/
[PrehireRemunerationPackageType]/ Benefits/ |
- xsd:boolean - S (0/1) |
Indicates whether a retirement or savings plan is desired by candidate or offered by the hiring company. |
|
/
[PrehireRemunerationPackageType]/ Benefits/ |
companyOffered - xsd:boolean - |
Indicates whether use of a company vehicle is desired by candidate or offered by the hiring company. |
|
/
[PrehireRemunerationPackageType]/ Benefits/ CompanyVehicle/ |
- xsd:boolean - |
True/False. Specifies if the associated item is offered by the company. |
|
/
[PrehireRemunerationPackageType]/ Benefits/ CompanyVehicle/ |
- xsd:string - S (0/1) |
Describes the contextual information relating to a specific element. |
|
/
[PrehireRemunerationPackageType]/ Benefits/ |
companyOffered - xsd:boolean - |
Contains information about relocation assistance desired by the candidate or provided by the employer. |
|
/
[PrehireRemunerationPackageType]/ Benefits/ RelocationAssistance/ |
- xsd:boolean - |
True/False. Specifies if the associated item is offered by the company. |
|
/
[PrehireRemunerationPackageType]/ Benefits/ RelocationAssistance/ |
- xsd:string - S (0/1) |
Describes the contextual information relating to a specific element. |
|
/
[PrehireRemunerationPackageType]/ Benefits/ |
- xsd:boolean - S (0/1) |
Indicates whether visa sponsorship is desired by candidate or offered by the hiring company. |
|
/
[PrehireRemunerationPackageType]/ Benefits/ |
- TimeOffAllowanceType - S (0/*) |
Contains information about time off allowed by the hiring company or desired by the candidate. |
|
/ [TimeOffAllowanceType] / |
- TimeOffTypes - |
A list of the types of allowed time off desired by candidate or offered by the hiring company. |
|
/
[PrehireRemunerationPackageType]/ Benefits/ TimeOffAllowance/ |
- xsd:string - S (0/1) |
Provides further information about the time off. |
|
/
[PrehireRemunerationPackageType]/ Benefits/ |
- ExpatriateBenefitsType - S
(0/1) |
Contains information about expatriate benefits. |
|
/
[PrehireRemunerationPackageType]/ Benefits/ ExpatriateBenefits/ |
- xsd:boolean - C (0/*) |
True/False. Defines if expatriate benefits are offered as part of employment. |
|
/
[PrehireRemunerationPackageType]/ Benefits/ ExpatriateBenefits/ |
- ExpatriateBenefitTypeTypes - C (0/*) |
Describes the type of benefits that might exist in an expatriate compensation package. |
|
/
[PrehireRemunerationPackageType]/ Benefits/ |
xsd:extension base: xsd:string |
Describes benefits not explicitly defined. |
|
/
[PrehireRemunerationPackageType]/ Benefits/ OtherBenefits/ |
- xsd:string - |
Further defines the associated element in the context provided. |
|
/
[PrehireRemunerationPackageType]/ Benefits/ |
- xsd:string - S (0/1) |
Describes the contextual information relating to a group of elements. |
|
Global types |
ContentModel* |
Definition |
|
/ |
xsd:restriction base: xsd:string [Enumerations]: Relocation Package, School Fees, Vehicle, Professional Service Fees, Language Instruction, Club Membership |
Globally scoped data type. See element or attribute declaration for definition. |
|
/ |
xsd:restriction base: xsd:string [Enumerations]: Medical, Dental, Vision, Life |
Globally scoped data type. See element or attribute declaration for definition. |
|
/ |
xsd:restriction base: xsd:string [Enumerations]: Bonus, Commission, Incentive, Sliding Commission |
Globally scoped data type. See element or attribute declaration for definition. |
|
/ |
xsd:restriction base: xsd:string [Enumerations]: PaidHoliday, UnpaidHoliday, PaidVacation, PaidLeave, UnpaidLeave, PersonalDays, HealthDays |
Globally scoped data type. See element or attribute declaration for definition. |
|
/ |
- [Union]: BasicExpatriateBenefitTypeTypes, |
Globally scoped data type. See element or attribute declaration for definition. |
|
/ |
- [Union]: BasicInsuranceTypes, |
Globally scoped data type. See element or attribute declaration for definition. |
|
/ |
- [Union]: BasicFrequencyType,SignOnType, |
Globally scoped data type. See element or attribute declaration for definition. |
|
/ |
- [Union]: BasicOtherPayTypeTypes, |
Globally scoped data type. See element or attribute declaration for definition. |
|
/ |
xsd:restriction base: xsd:string [Enumerations]: Sign-on |
Globally scoped data type. See element or attribute declaration for definition. |
|
/ |
- [Union]: BasicTimeOffTypes, |
Globally scoped data type. See element or attribute declaration for definition. |
The Shift module contains detailed information about the days (or other increments) and hours associated with a particular position, or that a candidate is willing/able to work. ShiftPeriod is one of the key defining components that sets the interval or time period to which the rest of the elements apply. It can be as specific as a day of the week or as unspecific as “varies”, but if any of the elements do not apply to the entire ShiftPeriod, it is recommended you send as many instances/versions of Shift as necessary to communicate all the variables.
For example, say there is an open position that requires a person to work Monday and Wednesday from 0800 to 1300, and Tuesday, Thursday and Friday from 1200 to 1700. You could send two instances of Shift, one to cover the Monday/Wednesday hours and one to cover the Thursday/Friday hours.
<PositionDetail>
<Shift shiftPeriod="x:Monday, Wednesday">
<Name>Morning Shift</Name>
<Hours>5</Hours>
<StartTime>08:00:00</StartTime>
<EndTime>13:00:00</EndTime>
<PayTypeHours>Regular</PayTypeHours>
<Comments>Morning Shift on Monday and Wednesday</Comments>
</Shift>
<Shift shiftPeriod="x:Tuesday, Thursday, Friday">
<Name>Afternoon Shift</Name>
<Hours>5</Hours>
<StartTime>12:00:00</StartTime>
<EndTime>17:00:00</EndTime>
<PayTypeHours>Regular</PayTypeHours>
<Comments>Afternoon Shift on Tuesday, Thursday, and Friday</Comments>
</Shift>
</PositionDetail>
Alternately, you could send one instance for each shift for a total of 5 shifts.
<PositionDetail>
<Shift shiftPeriod="1">
<Name>Monday Shift</Name>
<Hours>5</Hours>
<StartTime>08:00:00</StartTime>
<EndTime>13:00:00</EndTime>
<PayTypeHours>Regular</PayTypeHours>
</Shift>
<Shift shiftPeriod="2">
<Name>Tuesday Shift</Name>
<Hours>5</Hours>
<StartTime>12:00:00</StartTime>
<EndTime>17:00:00</EndTime>
<PayTypeHours>Regular</PayTypeHours>
</Shift>
<Shift shiftPeriod="3">
<Name>Wednesday Shift</Name>
<Hours>5</Hours>
<StartTime>08:00:00</StartTime>
<EndTime>13:00:00</EndTime>
<PayTypeHours>Regular</PayTypeHours>
</Shift>
<Shift shiftPeriod="4">
<Name>Thursday Shift</Name>
<Hours>5</Hours>
<StartTime>12:00:00</StartTime>
<EndTime>17:00:00</EndTime>
<PayTypeHours>Regular</PayTypeHours>
</Shift>
<Shift shiftPeriod="5">
<Name>Friday Shift</Name>
<Hours>5</Hours>
<StartTime>12:00:00</StartTime>
<EndTime>17:00:00</EndTime>
<PayTypeHours>Regular</PayTypeHours>
</Shift>
</PositionDetail>

|
Elements and Attributes [Global types listed alphabetically in following table.] |
ContentModel* |
Definition |
|
Shift |
- WorkShiftScheduleType - S (0/*) shiftPeriod
- ShiftPeriodType - optional
|
Work shift as it pertains to a particular work engagement. |
|
shiftPeriod |
- ShiftPeriodType - |
The
period the shift occurs. |
|
/ Shift/ |
- EntityIdType - S (0/1) |
A unique
identifier used to reference the entity. The Id is associated with the higher
level element. |
|
/ Shift/ |
- xsd:string - S (0/1) |
A
descriptive identifier within the given context. |
|
/ Shift/ |
- xsd:decimal - S (0/1) |
The number of hours specified for an event or work period. |
|
/ Shift/ |
- LocalTimeNkNaType - S (0/1) |
The time the interval or event started. |
|
/ Shift/ |
- LocalTimeNkNaType - S (0/1) |
The time the interval or event ended. |
|
/ Shift/ |
- xsd:string - S (0/1) |
Describes
the contextual information relating to a group of elements. |
|
Global types |
ContentModel* |
Definition |
|
/ |
- [Union]: BasicShiftPeriodTypes,xStringPatternExtensionType |
Globally scoped data type. See element or attribute declaration for definition. |
|
/ |
xsd:restriction base: xsd:string [Enumerations]: On Call, Annual, Rostered, Variable, Monthly, Weekly, Daily, 1, 2, 3, 4, 5, 6, 7 |
Numeric values conform to: ISO 8601 2nd Edition. 1 = Monday, 2 = Tuesday, 3 = Wednesday, 4 = Thursday, 5 = Friday, 6 = Saturday, 7 = Sunday |
|
[PayTypeHoursType] |
xsd:restriction base: USPayTypeHoursType |
Globally scoped data type. See element or attribute declaration for definition. |
|
[USPayTypeHoursType] |
- [Union]: BasicHoursTypes,xStringPatternExtensionType |
Globally scoped data type. See element or attribute declaration for definition. |
|
/ |
xsd:restriction base: xsd:string [Enumerations]: Regular, Overtime, TimeHalf, DoubleTime, Special, Premium, Per Diem, On Call |
Globally scoped data type. See element or attribute declaration for definition. |
This structure is designed to specify a particular classification or grouping of occupations. It is recursive, allowing, but not requiring the hierarchical structure common to most job classification taxonomies. Implementers have a choice of listing a particular “occupational code” as a stand-alone, or if desired, the entire branch structure can be exchanged.
For example, if a position falls under the category of “Assembler” (using the ISCO v88 classification system). The code could be expressed as 828 [Example A], or if it was more appropriate, the structure could include the progression from CategoryCode “8” (Plant Machine Operator and Assemblers, to CategoryCode “82” (Machine Operators and Assemblers) and finally to CategoryCode “828” (Assemblers) [Example B].
Example A
<JobCategory>
<TaxonomyName version="v88">ISCO</TaxonomyName>
<CategoryCode>828</CategoryCode>
<CategoryDescription>Assemblers</CategoryDescription>
</JobCategory>
Example B
<JobCategory>
<TaxonomyName version="v88">ISCO</TaxonomyName>
<CategoryCode>8</CategoryCode>
<CategoryDescription>Plant Machine Operator and Assemblers</CategoryDescription>
<JobCategory>
<CategoryCode>82</CategoryCode>
<CategoryDescription>Machine Operators and Assemblers</CategoryDescription>
<JobCategory>
<CategoryCode>828</CategoryCode>
<CategoryDescription>Assemblers</CategoryDescription>
</JobCategory>
</JobCategory>
</JobCategory>
JobCategory is taxonomy-neutral, so it can accommodate structures from a wide variety of sources. The schema is also designed to allow multiple taxonomies to be referenced in the same transaction if desired. This can be accomplished either by separate instances of JobCategory, or through the recursive structure although this option is restricted to a single taxonomy reference per hierarchical level.
JobCategory may also be used to handle several category levels, including Job Families such as Executive, Salaried, Administrative, Manager, or Hourly. It also allows for multiple categories for a job. For example, administrative secretary and legal. Note that a job family may be mapped to a JobCategory.
Although JobCategory is defined as a matching piece in PositionMatchingType, the complex type is also shared by other staffing schemas. Therefore, OccupationalCategoryType resides in the SharedStaffingModules schema.

|
Elements and Attributes [Global types listed alphabetically in following table.] |
ContentModel* |
Definition |
|
/ |
- OccupationalCategoryType - S (0/1) |
A grouping of jobs under one or more classification schemes that is meaningful to an organization. |
|
/
JobCategory/ |
xsd:extension base: xsd:string |
Identifies a particular hierarchical classification structure. |
|
/
JobCategory/ TaxonomyName/ |
- xsd:string - |
Identifies the version of the taxonomy. |
|
/
JobCategory/ |
- xsd:string - S (0/1) |
Identifies a specific node or place in a hierarchy or taxonomy. |
|
/
JobCategory/ |
- xsd:string - S (0/1) |
A broad text, title or label that describes a specific node in a hierarchy or taxonomy. |
|
/
JobCategory/ |
- xsd:string - S (0/1) |
Describes the contextual information relating to a group of elements. |
It is common when posting a job, candidate profile or resume to want to either direct the information to a particular entity or entities, or to restrict the information from being distributed to an entity or entities (such as a current employer). This schema allows distribution guidance to be stated, as well as placing the guidance in the context of a date range, if desired. DistributionGuidelines is included from the SharedStaffingModule schema. See Resume Appendix B – Related Documents for further information.
This component is included from the SharedStaffingModules schema. See Resume Appendix B – Related Documents for further information. The SupplierType is used by both the Candidate schemas and in HR-XML’s New Hire schema.

This component is included from the SharedStaffingModules schema. See Resume Appendix B – Related Documents for further information. This allows the capture of information about the source of the position – For example, an employer or contract recruiter working on behalf of an employer.

This schema allows the exchange of information about associations to which an individual belongs, including, but not limited to professional, social, community, non-profit, religious and political organizations.
A person may have several roles while active with an association. For example, the person may be the chair of one committee, and a participant of another committee. This structure allows for the description of multiple roles as well as providing the information specific to the association.
This schema is included from the SharedStaffingModules schema. See Resume Appendix B – Related Documents for further information.
This is a flexible element that allows supplemental, non-standard or non-XML based information or attachments to be referenced. The structure is useful in a variety of contexts when there is a need or desire to include materials outside the scope of the schema.
Examples of SupportingMaterials when used within CandidateProfile might include a cover letter, photograph or other graphic file, or a link to a personal website.
Examples of SupportingMaterials when used within PositionProfile might include a copy of an advertisement or a company logo or a link to a company web page
The schema is included from the SharedStaffingModules schema. See Resume Appendix B – Related Documents for further information.
This module captures legal, biological, and demographic characteristics or identifying information about a person. Full details can be found by following the link in Appendix B.
This module captures detailed information about a candidate’s current or historical work experiences. EmploymentHistory is a shared component, which is “included” in SEP. Full details can be found by following the link in Appendix B.
This module captures detailed information about a candidate’s current or historical educational or formal training experiences. EducationHistory is a shared component, which is “included” in SEP. Full details can be found by following the link in Appendix B.
This module captures detailed information about a candidate’s previous military experience. MilitaryHistory is a shared component, which is “included” in SEP. Full details can be found by following the link in Appendix B.
Specific verbiage used to describe a position, generally in the context of a job advertisement. This list provides examples of commonly used categories to pass unstructured information about a job.
§ preferredQualifications
Exchanges are not restricted to this list. However, if information pertaining to these categories is included in the transaction, it is recommended that the exact terminology in this list be used to further promote consistency and standardization.
Text format example:
<FormattedPositionDescription>
<Name>LongDescriptionNoHTML</Name>
<Value>IT Admin The ideal candidate will have skills that cover everything that might come up while managing the infrastructure of a SME where there is much reliance upon IT for the following areas: email, applications, internet and document management</Value>
</FormattedPositionDescription>
Keyword example:
<FormattedPositionDescription>
<Name>keywords</Name>
<Value>3-5 years, Z $31,000-$88,500, Indiana, null, Quality Assurance, Regulatory Affairs</Value>
</FormattedPositionDescription>
When the Value contains any markup language (html, xml, etc), or any of the following special characters (<, >, &), it is RECOMMENDED the data be included in a CDATA section.
CDATA to include markup language (html):
<FormattedPositionDescription>
<Name>Description</Name>
<Value><![CDATA[<SPAN style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: Verdana; mso-bidi-font-family: Verdana"><?xml:namespace </SPAN>ACME is the largest manufacturer of medical supplies in Europe and has the second largest installed consumer base in the <?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" /><st1:country-region w:st="on"><st1:place w:st="on">United States</st1:place></st1:country-region>. ></P> ]]></Value>
</FormattedPositionDescription>
CDATA to include languages with extended character sets:
(This job is described in Spanish which contains extended characters)
<FormattedPositionDescription>
<Name>Description</Name>
<Value><![CDATA[<B>MAESTRAS </B>para PK-12 y Cuidado Niños. Administración, Educ. Especial, Inglés/Español, Computación, Recepcionista. Profesores extranjeros con credenciales reconocidas y permisos de trabajo bienvenidos. 29 centros en Miami-Dade: Entrevistas: 9 A.M., Lun-Vie, 904 SW 23 Ave. Visit www.licolnmarti.us.com ]]></Value>
</FormattedPositionDescription>
For purposes of identifying countries within HR-XML Consortium specifications, the two-letter codes prescribed by ISO 3166-1 (ISO 3166-1, Codes for the representation of names of countries and their subdivisions) are RECOMMENDED.
For the purpose of indicating currency within HR-XML specifications, three-letter ISO 4217 codes are RECOMMENDED (ISO 4217:2001 Codes for the representation of currencies and funds). ISO's currency codes are based on the ISO country codes. The currency codes are made up of the two-character country code (ISO 3166-1), plus a one-character currency designator.
For the purpose of indicating language (xml:lang) within HR-XML specifications, the language-locale pairings allowed under RFC 1766 (http://rfc.net/rfc1766.html) are RECOMMENDED. For example, fr-CA, fr-FR, fr-CH, en-US, en-GB, es-MX, es-ES).
Many times, an organization will have several identical vacancies and wish to post the vacancies only once. For example, a company has 3 open sales positions in France. This could be handled by creating one PositionOpening record. It would contain one profile describing the job with the NumberToFill set to 3.
Another example might be 7 identical positions in two countries. In this case, the transaction would include two PositionOpening records. The first one would include a profile for Great Britain with the NumberToFill set to 2. The second would include a profile for Germany with the NumberToFill set to 5.
When a client posts an opening to a job board and later wants to modify or expire the posting, a common tracking id must exist. This allows the trading partners to determine which posting is being modified or closed. Additionally, the client, job board (and possibly a job board aggregator) may each have their own internal ids. This section provides guidelines for the use of common tracking and unique internal ids.
The PositionRecordInfo Id may contain the internal id’s for the client, 3rd party, and/or job board.
<PositionRecordInfo>
<Id idOwner="ABC Company">
<IdValue name="Client Id">12345</IdValue>
</Id>
<Id idOwner="The Job Board Agregator">
<IdValue name="3rd party">77441</IdValue>
</Id>
<Id idOwner="My Job Board">
<IdValue name="Job Board">MJB 555</IdValue>
</Id>
<Status validFrom="2005-01-01" validTo="2005-12-31">Active</Status>
</PositionRecordInfo>
The Position Posting Id SHOULD be used when a common tracking id is needed. For example, ABC Company sends a posting directly to My Job Board using an internal client Id (Position Record Id) of 123456 and a PositionPosting id of A12345. When the job board receives the posting, they may assign their own internal Id (MJB 555) and recognize the common tracking id of A12345. When any transactions relating to this particular posting occur, the A12345 PositionPosting id MUST be used to differentiate this posting from other postings.
Note that the PositionPosting id may be the same as one of the PositionRecord Id’s or it may be a completely different Id, based on trading partner agreement.
<PositionRecordInfo>
<Id idOwner="ABC Company">
<IdValue name="Client Id">12345</IdValue>
</Id>
<Status validFrom="2005-01-01" validTo="2005-12-31">Active</Status>
</PositionRecordInfo>
<PositionPostings>
<PositionPosting>
<Id idOwner="ABC Company">
<IdValue name="Common Tracking Id">A12345</IdValue>
</Id>
<Title>Database Administrator</Title>
</PositionPosting>
</PositionPostings>
There are some elements in the new Resume that have previously been accommodated in the Competency schema. For example, Licenses and Certifications have historically been captured in CompetencyEvidence, but because of the unique need for a resume to be both familiar and “format-able” to a job seeker, this element was given its own structure. The same information can still be carried in Competency, but implementers have a choice as to which structure best suits their purpose. Similarly, information about lingual abilities may be passed using either the Language module or the Competency module.
The Competency schema is still included in the Resume for structuring skills and other job related abilities. As a general rule of thumb, the ability-specific modules would be used when the data is more informational or “nice to know” whereas Competencies would be used when relaying a skill, ability or other qualification that is specifically required for an open position, and some type of evidence might be requested to validate the claimed competency. For example, a candidate applying for a customer service position might use the language module to indicate that they are bi-lingual, even though the position description does not require it. If the position required that candidates be bilingual in English and Spanish, the candidate might list it in competency, using an assessment or language degree as evidence of the level of their ability.
This localization is available for exchanging position classification data necessary for a particular government’s laws.
This localized structure contains several items necessary for United States government mandates and laws.

FLSAStatus
FLSA - Federal Labor Standards Act of 1938, as amended (referred to as "the Act" or "FLSA"), is published in law in sections 201-219 of title 29, United States Code. The Act provides for minimum standards for both wages and overtime entitlement, and spells out administrative procedures by which covered worktime must be compensated. Included in the Act are provisions related to child labor, equal pay, and portal-to-portal activities. In addition, the Act exempts specified employees or groups of employees from the application of certain of its provisions.
An FLSA exempt employee is one who is not covered by the minimum wage and overtime provisions of the Fair Labor Standards Act (FLSA or Act).
An FLSA nonexempt employee is one who is covered by the minimum wage and overtime provisions of the Act.
EEOCJobCategory
This is a US localization field containing the appropriate job category from the 9, US Equal Employment Opportunity Commission (EEOC) Job Categories on the Employer Information Report EEO-1 form, also commonly referred to as Standard Form 100 (SF 100). This information may be required of a company as a condition of entering into a federal contract. This US Federal Government specific information is used, in part, to track compliance to Federal mandates; and commonly captured by Jobs Boards whose postings include Government Contracts.
HR-XML SEP implementers may read more details about this Federal Standard at: http://www.eeoc.gov/eeo1survey/jobclassification.html
AffirmativeActionPlanJobGroupId
Affirmative action may be required of your company as a condition of entering into a federal contract. Affirmative action requirements are administered by the U.S. Department of Labor, Office of Federal Contract Compliance Programs (OFCCP).
http://www.dol-union-reports.gov/
This localized structure contains several items necessary for Germany government mandates and laws.

BKZClassification
The BKZ (Berufskennziffern) are a system from the Deutsche Arbeits Agentur for classifying jobs. They consist of the BKZId (integer) and a BKZName. Often only the BKZId is used. The BKZ represent the official job names existing in Germany.
EducationAuthorization
The EducationAuthorisation Boolean value specifies if a company is allowed to educate and train someone for that specific BKZ.
HandicapStatus
Provides information about the restriction for non-handicapped people applying to a specific job. This is often used for jobs in public service.
An example of the localization might include:
<PositionClassification>
<DEClassification>
<BKZClassification>
<BKZId>
<IdValue>5896</IdValue>
</BKZId>
<BKZName><![CDATA[Techniker/in - Textiltechnik (Strickerei/Wirkerei)]]></BKZName> </BKZClassification>
<EducationAuthorization>true</EducationAuthorization>
<HandicapStatus>All</HandicapStatus>
</DEClassification>
</PositionClassification>
The PositionPosting includes several location structures. This could cause confusion specifying where the person will work. The recommendation is to use the PhysicalLocation located in PositionDetail. The Organization’s WorkSite also provides for location details, but that information should specify where the organization is located, not necessarily where the person will physically be located. Please see 6.2 Physical Location for details on SEPPhysicalLocation.
A posting may offer several methods for applying to a job. The following example demonstrates the use of all methods, including the exchange of data in the UserArea. Further details on the HowToApply structure are available in section 4.2 Position Profile.
<HowToApply>
<PersonName>
<FormattedName>Jenny Recruiter</FormattedName>
</PersonName>
<ApplicationMethod>
<Telephone>
<FormattedNumber>1-800-867-5309</FormattedNumber>
</Telephone>
<Fax>
<FormattedNumber>1-800-555-1234</FormattedNumber>
</Fax>
<InternetEmailAddress>jrecruiter@somecompanydomain.com</InternetEmailAddress>
<InternetWebAddress>><![CDATA[http://www.somecompanydomain.com/apply.aspx?job=12345]]> </InternetWebAddress>
<PostalAddress>
<CountryCode>US</CountryCode>
<PostalCode>01821</PostalCode>
<Region>MA</Region>
<Municipality>SomeTown</Municipality>
<DeliveryAddress>
<AddressLine>123 Main Street</AddressLine>
</DeliveryAddress>
<Recipient>
<PersonName>
<FormattedName>Recruiting Operations</FormattedName>
</PersonName>
<OrganizationName>SomeCompanyName</OrganizationName>
</Recipient>
</PostalAddress>
<InPerson>
<TravelDirections><![CDATA[From Penrith & Hwy 66: Follow the A66 towards Keswick and take the first left towards the town.<BR>When you reach the main junction turn right following signs for Ambleside. 200 yds up the hill on your right.<BR>Go down the hill until it flattens out and the SomeCompany office is on your right.]]></TravelDirections> <MapLink><![CDATA[http://www.mapquest.com/maps/map.adp?formtype= search&searchtype= search&country=US&addtohistory=&cat=may%27s&1ahXX=&address=&city=SomeTown&state=MA&zipcode=01821]]></MapLink>
<AdditionalInstructions><![CDATA[Parking to the rear.]]></AdditionalInstructions>
</InPerson>
</ApplicationMethod>
<UserArea>
<Field Name="Telex Number" value="654789321" />
</UserArea>
</HowToApply>
This schema is a non-normative draft. It is intended for use within the UserArea extension element of the Candidate or PositionOpening schemas. It was developed as a *first guess* at a data structure reflecting the required minimum levels of education and work experience a candidate would need to possess before apply for a job. In a future version of Staffing Exchange Protocol, this data structure may be used as the first draft of a more permanent data model.
<xsd:schema xmlns="http://ns.hr-xml.org/2007-04-15"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://ns.hr-xml.org/2007-04-15"
elementFormDefault="qualified"
version="draft">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" schemaLocation="../../../W3C/xml.xsd"/>
<xsd:include schemaLocation="../SEP/PositionOpening.xsd"/>
<!-- Minimum required work experience or education level -->
<xsd:element name="RequiredWorkExperience" type="RequiredWorkExperienceType"/>
<xsd:complexType name="RequiredWorkExperienceType">
<xsd:simpleContent>
<xsd:extension base="xsd:integer">
<xsd:attribute name="workDuration" type="WorkDurationType" use="required"/>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
<xsd:element name="MinimumEducationLevel" type="MinimumEducationLevelType"/>
<xsd:complexType name="MinimumEducationLevelType">
<xsd:sequence>
<xsd:element name="SchoolName" type="xsd:string" minOccurs="0"/>
</xsd:sequence>
<xsd:attribute name="school" type="SchoolType" use="required"/>
<xsd:attribute name="degree" type="DegreeType" use="required"/>
</xsd:complexType>
<xsd:simpleType name="WorkDurationType">
<xsd:restriction base="xsd:string">