Real Time Posting
Getting Started
With Real Time Posting (RTP), job ads can be published, edited and deleted via Monster's Business Gateway (BGW) in near real time.
Here is an overview of the steps for implementing your RTP integration:
- Decide which Job Posting Features to utilize. We recommend taking advantage of Monster's Easy Apply in conjunction with RTP to achieve the best candidate response.
- Create the XML job posting. Samples and a demo job board for testing are provided with Monster's web services toolkit.
- Validate and post your job XML using the toolkit.
- Test posting a job from your application.
- If using Monster Apply, apply to a test job and confirm receipt of candidate information.
Apply
Jobs posted to Monster can be enabled to take advantage of Monster's Easy Apply delivery capability.
Find out how.
Job Posting Features
Monster jobs include enhancement features to help an employer's job stand out from others, and/or target the best candidates. Highlights of key features that will differentiate your integration and offer value to employers include:
Supported Boards Clients can post to the following boards based on their available purchased inventory and their desired distribution and targeting.
- Monster Board - Jobs posted to Monster's core job sites, our mobile app, our BeKnown professional networking app on Facebook, our affiliate websites including Military.com and Jobs.com, and over 1,000 newspaper partner co-branded websites.
- Career Ad Network Direct - Syndicates jobs to a network of thousands of sites, targeted to attract the right seekers. When job seekers click on the ad, they'll learn more about the job and apply online. Learn more
- Diversity Board - Distributes jobs to Monster's exclusive network of sites targeting diverse candidates. Learn more
- Veterans - Find and hire the best military talent with the largest military-focused destination site and network. Learn more
Inventory Types / Add-On Inventory Clients may add additional job visibility in job search results.
- Bolding - Increases the visibility of the posting with a bolded posting in the search results.
- Refresh - Moves the posting to the top after a pre-determined interval with manual updates.
- Auto-Refresh - Moves the posting to the top automatically after a pre-determined interval.
Tip!
Use the job inventory query to get a snapshot of available inventory for a user. Learn more
Create the XML Request
BGW requests must be sent in the form of SOAP envelopes, which is composed of a header and a body. Each request can include a maximum of a single job and must follow the schema for the Monster Job Postings. SOAP messages are sent to https://gateway.monster.com:8443/bgwBroker
Sample Job in Monster XML Format (Click to Expand XML Code)
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Header>
<mh:MonsterHeader xmlns:mh="http://schemas.monster.com/MonsterHeader">
<mh:MessageData>
<mh:MessageId>Company Jobs created on 09/08/2011 02:41:44 PM</mh:MessageId>
<mh:Timestamp>2011-09-08T14:41:44Z</mh:Timestamp>
</mh:MessageData>
</mh:MonsterHeader>
<wsse:Security xmlns:wsse="http://schemas.xmlsoap.org/ws/2002/04/secext">
<wsse:UsernameToken>
<wsse:Username>xrtpjobsx01</wsse:Username>
<wsse:Password>rtp987654</wsse:Password>
</wsse:UsernameToken>
</wsse:Security>
</SOAP-ENV:Header>
<SOAP-ENV:Body>
<Job jobRefCode="myownjobreferencecode" jobAction="addOrUpdate"
inventoryType="transactional"
xmlns="http://schemas.monster.com/Monster"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://schemas.monster.com/Monster
http://schemas.monster.com/Current/xsd/Monster.xsd">
<RecruiterReference>
<UserName>xrtpjobsx01</UserName>
</RecruiterReference>
<JobInformation>
<JobTitle>Executive Officer </JobTitle>
<JobLevel monsterId="12"/>
<JobType monsterId="1"/>
<JobStatus monsterId="4"/>
<Salary>
<Currency monsterId="1"/>
<SalaryMin>100000.00</SalaryMin>
<SalaryMax>150000.00</SalaryMax>
<CompensationType monsterId="1"/>
</Salary>
<Contact hideAll="false" hideAddress="true" hideStreetAddress="true" hideCity="true"
hideState="true" hidePostalCode="true" hideCountry="true" hideContactInfoField="false"
hideCompanyName="false" hideEmailAddress="true" hideFax="true"
hideName="false" hidePhone="true">
<Name>John</Name>
<CompanyName>John's Company</CompanyName>
<Address>
<StreetAddress>1 John Street</StreetAddress>
<StreetAddress2>PO Box 1</StreetAddress2>
<City>Johnstown</City>
<State>PA</State>
<CountryCode>US</CountryCode>
<PostalCode>15955</PostalCode>
</Address>
<Phones>
<Phone phoneType="work">999-999-9999</Phone>
</Phones>
<E-mail>john@johnscompany.com</E-mail>
</Contact>
<PhysicalAddress>
<StreetAddress>5 Clock Tower</StreetAddress>
<StreetAddress2>Suite 500</StreetAddress2>
<City>Maynard</City>
<State>MA</State>
<CountryCode>US</CountryCode>
<PostalCode>01754</PostalCode>
</PhysicalAddress>
<DisableApplyOnline>false</DisableApplyOnline>
<HideCompanyInfo>false</HideCompanyInfo>
<JobBody>This is the Job Body that needs to be of certain length.
This is more information about the Job.
It should be detailed and well written to attract seekers.
</JobBody>
<ApplyWithMonster>
<DeliveryMethod monsterId="5"/>
<DeliveryFormat monsterId="1"/>
<VendorText>optional vendor text that is returned with applicant data</VendorText>
<PostURL>https://jobapply.atsendpoint.com/api/flexapply</PostURL>
<ApiKey>EAAQ33NexamplefAK9q4-</ApiKey>
</ApplyWithMonster>
</JobInformation>
<JobPostings>
<JobPosting desiredDuration="60" bold="true">
<InventoryPreference subscription="false">
<Autorefresh desired="true">
<Frequency>7</Frequency>
</Autorefresh>
<CareerAdNetwork desired="true">
<Duration>14</Duration>
</CareerAdNetwork>
<SocialAdTwitter desired="true"/>
</InventoryPreference>
<Location>
<City>Boston</City>
<State>MA</State>
<CountryCode>US</CountryCode>
<PostalCode>02125</PostalCode>
</Location>
<JobCategory monsterId="47"/>
<JobOccupations>
<JobOccupation monsterId="11909"/>
</JobOccupations>
<BoardName monsterId="1"/>
<DisplayTemplate monsterId="1"/>
<Industries>
<Industry>
<IndustryName monsterId="1"/>
</Industry>
</Industries>
<Video monsterId="123" refCode="video_A">
</Video>
</JobPosting>
</JobPostings>
</Job>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
Information about Job Fields (Click to Expand)
Field Name |
Requirement |
Data Type |
Constraints |
Notes |
Username |
Required |
String |
|
Value provided by Monster Password Required String Value provided by Monster |
Password |
Required |
String |
|
Value provided by Monster |
jobRefCode |
Required |
String |
<= 50 characters |
Recruiter specific term used to uniquely identify job. |
jobAction |
Optional |
String |
Common choices are: addOrUpdate add delete Full list of valid entries can be found in schema at Job Schema |
Recommend using "addOrUpdate" as this allows new ads to be posted and updates to active jobs.
"add" allows new ads to be posted. Updates to active jobs not allowed. |
InventoryType |
Required unless defaults are set by Monster |
String |
Choices are:
Transactional
Slotted
AreaWideTransactional
AreaWideSlotted
|
This field specifies the type of inventory that should be used to post the job. Most customers will use transactional inventory. If no inventory is specified, the account's default settings will be used. |
RecruiterReference\UserName |
Required |
String |
|
Value provided by Monster |
JobTitle |
Required |
String |
<= 100 characters |
|
JobLevel attribute: monsterId |
Optional |
Integer |
A list of valid entries can be found at: JobLevel list |
|
JobType attribute: monsterId |
Optional |
Integer |
Valid entries for the US Channel: 1 - Employee 2 - Temporary/Contract 3 - Intern 20 - Seasonal Entries for other channels can be found at: JobType list |
EducationLevel has to be specified when JobType Apprenticeship is used. |
JobStatus attribute: monsterId |
Required |
Integer |
A list of valid entries can be found at: JobStatus list |
|
Salary |
Optional |
|
A list of valid entries can be found at these links: Currency and CompensationType |
|
Contact attribute: HideAll |
Optional |
Boolean |
true or false (case sensitive!) |
When set to "true", hides contact given and family name, company name, street address, street address2, city, state, postal code, phone, fax when viewing a job. |
Contact attribute: HideAddress |
Optional |
Boolean |
true or false (case sensitive!) |
When set to "true", hides contact street address, street address2, city, state and postal code when viewing a job. |
Contact attribute: HideStreetAddress |
Optional |
Boolean |
true or false (case sensitive!) |
When set to "true", hides street address only (NOT street address2) when viewing a job. |
Contact attribute: HideCity |
Optional |
Boolean |
true or false (case sensitive!) |
When set to "true", hides city when viewing a job. |
Contact attribute: HideState |
Optional |
Boolean |
true or false (case sensitive!) |
When set to "true", hides State when viewing a job. |
Contact attribute: HidePostalCode |
Optional |
Boolean |
true or false (case sensitive!) |
When set to "true", hides postalcode when viewing a job. |
Contact attribute: HideCountry |
Optional |
Boolean |
true or false (case sensitive!) |
No impact as country is not shown in standard job template. |
Contact attribute: HideContact |
Optional |
Boolean |
true or false (case sensitive!) |
No impact. |
Contact attribute: HideEmailAddress |
Optional |
Boolean |
true or false (case sensitive!) |
No impact as email address is not displayed when viewing a job. |
Contact attribute: HideFax |
Optional |
Boolean |
true or false (case sensitive!) |
When set to "true", hides fax number when viewing a job. |
Contact attribute: HideName |
Optional |
Boolean |
true or false (case sensitive!) |
When set to "true", hides given name and family name when viewing a job. |
Contact attribute: HidePhone |
Optional |
Boolean |
true or false (case sensitive!) |
When set to "true", hides given name and family name when viewing a job. |
Contact\Name |
Optional |
String |
<= 255 characters |
|
Contact\ CompanyName |
Optional |
String |
<= 255 characters |
JobSearch:
If provided, this company name is displayed in job search results. If not provided, the company name on the account will be displayed in job search results.
JobView:
If provided, this is company name that will be displayed when viewing a job. If not provided, company name on account will be displayed. |
Contact\Address |
Optional |
|
|
|
Phones |
Optional |
String |
Between 8 and 50 characters |
Has to be either "contact" or "fax" type to be displayed. Other phone types can be provided but will not be displayed. |
E-mail |
Optional |
String |
<= 100 characters |
Only one allowed per job posting. |
PhysicalAddress |
Optional |
|
|
Represents a job's physical location. Controls the visible location information that is displayed on the job posting Controls how the job is pulled up in the job search results. Typically includes <City>, <State>, <CountryCode> and <PostalCode>. <StreetAddress> and <StreetAddress2> may be provided as well. |
DisableApplyOnline |
Optional |
Boolean |
true or false (case sensitive!) |
When set to "false", allows job seekers to apply for the job online.
When set to "true", job seekers will not be able to apply for the job online. |
HideCompanyInfo |
Optional |
Boolean |
true or false (case sensitive!) |
When set to "true", company name in job search results and top portion of job view show as confidential.
Hides company name in "Job Summary" and "Contact Information" sections of job view. |
JobBody |
Required |
String |
>= 25 characters |
|
AdditionalSearchKeywords |
Optional |
String |
<= 255 characters |
|
EducationLevel attribute: monsterId |
Optional |
Integer |
A list of valid entries can be found at: EducationLevel list |
|
JobPostings |
Required |
|
|
|
JobPosting attribute: DesiredDuration |
Optional |
Integer |
# of days |
Highly recommended that this field be supported |
JobPostings attribute: Bold |
Optional |
Boolean |
true or false (case sensitive!) |
A true value will bold the job title in job search results. |
JobPostings attribute: jobPostingAction |
Optional |
String |
Value of "refresh" |
Makes the job refresh (move to the top of job search results) |
CareerAdNetwork attribute: desired |
Optional |
Boolean |
true or false (case sensitive!) |
A true value will set CAN (Career Ad Network ) on the job. CAN allows one to enhance Monster Job Posting with targeted advertising on the Monster network and its diverse partner websites. |
CareerAdNetwork\Duration |
Only required when desired attribute=1 |
Integer |
# of days: 7, 14 or 30 |
|
Autorefresh attribute: desired |
Optional |
Boolean |
true or false (case sensitive!) |
A true value will make the job refresh (move to the top of job search results) |
Autorefresh\ Frequency |
Only required when desired attribute= true |
Integer |
# of days: 7, 14, 30, 60 |
Not available on 7 day job postings. |
JobPosting\ Location |
Required |
|
|
Controls what Monster search location the job is going to be posted to |
JobCategory |
Required |
|
A list of valid job categories can be found at: JobCategory list |
|
JobOccupation |
Required |
|
A list of valid occupationId's for given job categories can be found at: JobOccupation list |
Can contain a minimum of one and a maximum of three per job.
Recommend the use of "other" occupation be minimized. |
BoardName attribute: monsterId |
Required |
Integer |
1 is value for Monster core job board |
See Job Board section below for other board Id values. |
DisplayTemplate attribute: monsterId |
Optional |
Integer |
1 is value for Monster standard job template |
Contact Monster Representative for custom job templates. |
Industry |
Optional |
|
Valid entries can be found at: Industry list |
If submitted, can provide a minimum of one and a maximum of three per job. |
Video attribute: monsterId |
Optional |
Integer |
|
Value provided by Monster |
The envelope is a container for a SOAP message.
(Click to Expand)
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Header>
</SOAP-ENV:Header>
<SOAP-ENV:Body>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
The header contains information about the request, request protocol, and a security protocol with the user credentials.
(Click to Expand)
<mh:MonsterHeader xmlns:mh="http://schemas.monster.com/MonsterHeader">
<mh:MessageData>
<mh:MessageId>Company Jobs created on 09/08/2011 02:41:44 PM</mh:MessageId>
<mh:Timestamp>2011-09-08T14:41:44Z</mh:Timestamp>
</mh:MessageData>
</mh:MonsterHeader>
<wsse:Security xmlns:wsse="http://schemas.xmlsoap.org/ws/2002/04/secext">
<wsse:UsernameToken>
<wsse:Username>username</wsse:Username>
<wsse:Password>password</wsse:Password>
</wsse:UsernameToken>
</wsse:Security>
The Body contains all the data related to the job you're posting and should comply with Monster job schema.
- Job request samples can be found here.
- The full Monster Job Schema can be found here.
The XML job is described by 3 main sections
- Processing Information
- Job Information
- Job Posting
This section contains information about the way the Job Message will be processed, under which account e.g. information about the kind of action (update, delete, etc...)
(Click to Expand)
<Job jobRefCode="myownjobreferencecode" jobAction="addOrUpdate"
xmlns="http://schemas.monster.com/Monster"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://schemas.monster.com/Monster
http://schemas.monster.com/Current/xsd/Monster.xsd">
<RecruiterReference>
<UserName>username</UserName>
</RecruiterReference>
<!−− [CONTINUES...] −−>
This contains the main information that will be displayed in the job ad. Example: job title, job description (jobBody), salary , contact, etc.
(Click to Expand)
<JobInformation>
<JobTitle>Executive Officer </JobTitle>
<JobLevel monsterId="12"/>
<JobType monsterId="1"/>
<JobStatus monsterId="4"/>
<Salary>
<Currency monsterId="1"/>
<SalaryMin>100000.00</SalaryMin>
<SalaryMax>150000.00</SalaryMax>
<CompensationType monsterId="1"/>
</Salary>
<Contact hideAll="false" hideAddress="true" hideStreetAddress="true" hideCity="true"
hideState="true" hidePostalCode="true" hideCountry="true" hideContactInfoField="false"
hideCompanyName="false" hideEmailAddress="true" hideFax="true"
hideName="false" hidePhone="true">
<Name>John</Name>
<CompanyName>John's Company</CompanyName>
<Address>
<StreetAddress>1 John Street</StreetAddress>
<StreetAddress2>PO Box 1</StreetAddress2>
<City>Johnstown</City>
<State>PA</State>
<CountryCode>US</CountryCode>
<PostalCode>15955</PostalCode>
</Address>
<Phones>
<Phone phoneType="work">999-999-9999</Phone>
</Phones>
<E-mail>john@johnscompany.com</E-mail>
</Contact>
<PhysicalAddress>
<StreetAddress>5 Clock Tower</StreetAddress>
<StreetAddress2>Suite 500</StreetAddress2>
<City>Maynard</City>
<State>MA</State>
<CountryCode>US</CountryCode>
<PostalCode>01754</PostalCode>
</PhysicalAddress>
<DisableApplyOnline>false</DisableApplyOnline>
<HideCompanyInfo>false</HideCompanyInfo>
<JobBody>This is the Job Body that needs to be of certain length.
This is more information about the Job.
It should be detailed and well written to attract seekers. </JobBody>
<AdditionalSearchKeywords>additional search keyword </AdditionalSearchKeywords>
<EducationLevel monsterId="1"/>
</JobInformation>
This section sets where the job posting will be searchable, identified by the combination of JobCategory, JobOccupation, Location and BoardName. Inventory preferences, industries, video, etc can be set in this section as well.
(Click to Expand)
<JobPosting desiredDuration="60" bold="true">
<InventoryPreference>
<Autorefresh desired="true">
<Frequency>7</Frequency>
</Autorefresh>
<CareerAdNetwork desired="true">
<Duration>14</Duration>
</CareerAdNetwork>
</InventoryPreference>
<Location>
<City>Boston</City>
<State>MA</State>
<CountryCode>US</CountryCode>
<PostalCode>02125</PostalCode>
</Location>
<JobCategory monsterId="47"/>
<JobOccupations>
<JobOccupation monsterId="11909"/>
</JobOccupations>
<BoardName monsterId="1"/>
<DisplayTemplate monsterId="1"/>
<Industries>
<Industry>
<IndustryName monsterId="1"/>
</Industry>
</Industries>
<Video monsterId="123" refCode="video_A"> </Video>
</JobPosting>
The job duration defines how many days an ad will run. When added, it controls the desired duration to attempt to post the job with. Jobs will require inventory with the appropriate duration or else the job will fail to post.
Monster’s current job posting solutions offer these durations: 14, 30, 60, 90, 180 & 365 days. The most commonly purchased job solutions contain 14, 30 or 60 day job ads.
(Click to Expand)
In the job XML, duration is defined as an attribute of the JobPosting element, as shown below:
<JobPostings>
<JobPosting desiredDuration="60">
Job Category/OccupationTwo tier position Categorizing where JobCategory would be the 1st tier and under it will be JobOccupation as the 2nd. Example: Sales/Field Sales,International Sales, Telesales... for the full list can be found here:
Monster Job Categories
Decrements to Job Posting Inventory
- Job Posting Inventory is decremented based on the number of Job Postings within a submission. A Job Posting consists of a single location and category. If multiple locations or categories are added, the job inventory will be decremented based on the number of locations/categories requested.
- For new jobs, each Job Posting within the Job will cause the inventory to be decremented.
- For updated jobs, each new/additional Job Posting will cause the inventory to be decremented.
- Modification to the location of the job outside of the current Country it is posted to will cause the inventory to be decremented.
- The Job Reference Code is a unique job identifier. Any modifications to the jobRefCode field will be interpreted as the creation of a new job and all Job Posting within that Job will decrement the job posting package. However – the original job will not be expired automatically.
This is the location (region or part of it, down to the postal code level) under which the job will be searchable on Monster sites. This will restrict the website on which it will be searchable. Example locations: London East, London North West, etc... full available location can be found here:
Monster Locations
The job board is a container in which your jobs will fall into. It is specified in the BoardName element.
(Click to Expand)
<BoardName monsterId="1"/>
For example, Id 1 represents the production core Monster sites, excluding Private Label sites ( also known as "Co-branded" sites or "Branded Career Sites") that have their own BoardId.
The following table shows the different test and production board Ids.
Job Board Name |
Test Board Id |
Production Board Id |
Monster |
178 |
1 |
Diversity |
7007 |
3902 |
CAN Direct |
7008 |
6955 |
Veterans |
7009 |
6965 |
Monster Social Ads |
- |
7082 |
To post to both Monster and Diversity, two job postings must be provided in the request. This sample can be used as a reference as it shows multiple postings:
Multiple_Postings_Sample
When added, creates a targeted Job Ad campaign on Twitter appearing in a Twitter user’s timeline.
In the job XML
<JobPosting>
<InventoryPreference>
...
<SocialAdTwitter desired="true"/>
The DisplayTemplate defines which job template is used to used to format the posting ad. Id value of 1 is for the standard job posting template offered by Monster. Other Id values are for customized job posting templates.
(Click to Expand)
<DisplayTemplate monsterId="1">
When added, bolds the job title in seeker job search results, increasing the visibility of the job. Bolding exists as both as an attribute for standard inventory and as an ala carte option. Setting bold to "true" will require available bolding inventory or else the job will fail to post.
In the job XML, bolding is defined as a Boolean attribute of the JobPosting element, as shown below:
(Click to Expand)
<JobPostings>
<JobPosting desiredDuration="60" bold="true">
When added, refresh provides the ability to do a manual, "one time" refresh on an active job posting. Inventory is purchased only ala carte. Setting the jobPostingAction to "refresh" will require available refresh inventory or else the job will fail to refresh.
In the job XML, Refresh is defined as an enumeration value of the attribute jobPostingAction of the JobPosting element, as shown below:
(Click to Expand)
<JobPosting desiredDuration="60" jobPostingAction="refresh">
When added, auto-refresh provides the ability for a job posting to be moved to the top of the job search results every "auto-refresh interval" days. Valid auto-refresh frequencies are: 7, 14, 30 or 60 days. Auto-refresh inventory exists only as an attribute for standard inventory. Setting the Auto-refresh to "true" will require available auto-refresh inventory for the selected frequency or else the job will fail to refresh.
(Click to Expand)
<JobPosting desiredDuration="60">
<InventoryPreference>
<Autorefresh desired="true">
<Frequency>14</Frequency>
</Autorefresh>
</InventoryPreference>
When added, Video provides the ability to have a job video that accompanies the job posting. Inventory is purchased only ala carte. Setting Video on a job will require available video inventory or else the job will fail to post, Setting Video on a job will require available video inventory or else the job will fail to post.
(Click to Expand)
</Industries>
<Video monsterId="123" refCode="video_A"></Video>
</JobPosting>
When added, allows one to enhance Monster Job Posting with targeted advertising on the Monster network and its diverse partner websites. Monster's Career Ad Network will transform a job posting into a dynamic hiring ad and then strategically place that ad where qualified candidates spend their time online. When interested job seekers click on the ad, they'll be brought to the Monster Job Posting, where they can learn more about the job and easily apply online. Inventory is purchased ala carte for Monster postings only. It is not available on Diversity. Setting CAN on a job will require available CAN inventory or else the job will fail to post.
(Click to Expand)
<JobPosting desiredDuration="60" bold="true">
<InventoryPreference>
<CareerAdNetwork desired="true">
<Duration>14</Duration>
</CareerAdNetwork>
If you utilize Monster's candidate management capability, then by specifying Apply Online, the resume is saved on Monster and a copy is emailed to the job contact as set in the posting account's preferences. This is the default apply method.
If candidates are managed within your own applicant tracking system, an integrated apply solution called Monster's Easy Apply can be used to specify delivery of an applicant's resume, cover letter and profile information to your platform.
Go here for how to implement Monster's Easy Apply.
If circumstances prevent an integrated solution, a basic applicant redirect is available specified by the CustomApplyOnlineURL field.
XML requests should be posted to BGW encoded in "UTF-8" (Unicode) characters set.
When text includes special characters in XML, including HTML markup characters, (ex. <li>One<li>) the text should be surrounded with the CDATA tag. If text uses XML/ HTML entities (ex. > < &) then the CDATA tag should not be used.
More information about HTML Encoding can be found here:
http://en.wikipedia.org/wiki/Character_encodings_in_HTML
The jobAction attribute within Job Tag is used to determine the action your request will trigger.
Adding a new job
Posting a request with jobAction="addOrUpdate" will add a new job, or update a pre-existing one if a job with such a RefCode exists under the referred recruiter account.
An alternative way of posting a new job is by using jobAction="add", but this is not recommended. In the case that the job already exists with this JobRefCode, it will return an error in the XML Response.
Updating a job
Posting a request with jobAction="addOrUpdate" will update a pre-existing job with such a jobRefCode under the referred recruiter account.
An alternative way of updating a job posting is by using jobAction="update", but this is not recommended. In the case that a job does not already exist with this jobRefCode, it will return an error in the XML Response.
Deleting a job
There are two ways to delete a job position:
1. Set the job action attribute, in your request (the same XML format as for adding or updating) to delete
2. Post a Delete XML request with RefCode as the job identifier
Monster Delete Schema can be found here:
http://schemas.monster.com/Current/XSD/Delete.xsd
(Click to Expand)
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Header>
<mh:MonsterHeader xmlns:mh="http://schemas.monster.com/MonsterHeader">
<mh:MessageData>
<mh:MessageId>Company Jobs created on 09/08/2011 02:41:44PM</mh:MessageId>
<mh:Timestamp>2011-09-08T14:41:44Z</mh:Timestamp>
</mh:MessageData>
</mh:MonsterHeader>
<wsse:Security xmlns:wsse="http://schemas.xmlsoap.org/ws/2002/04/secext">
<wsse:UsernameToken>
<wsse:Username>username</wsse:Username>
<wsse:Password>password</wsse:Password>
</wsse:UsernameToken>
</wsse:Security>
</SOAP-ENV:Header>
<SOAP-ENV:Body>
<Monster:Delete xmlns:Monster="http://schemas.monster.com/Monster"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://schemas.monster.com/Monster
http://schemas.monster.com/Current/xsd/Monster.xsd">
<Monster:Target>JobPosting</Monster:Target>
<Monster:DeleteBy>
<Monster:Criteria>RecruiterName</Monster:Criteria>
<Monster:Value>username</Monster:Value>
</Monster:DeleteBy>
<Monster:DeleteBy>
<Monster:Criteria>RefCode</Monster:Criteria>
<Monster:Value>the_refcode</Monster:Value>
</Monster:DeleteBy>
</Monster:Delete>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
Note: After deleting a job, it will still be searchable (listed on job-Search sites) until job search indexing has updated. It will, however, be locked for applying and a message will be visible to the job-seeker saying "We're sorry. This job has been removed from the site and is no longer available for viewing".
An XML job request can contain multiple postings for the same job position.
Each of the posting will be referred by the unique combination of Location/BoardName
Each posting will get a Monster postingId and will consume a posting Inventory from the recruiter account
Adding a new posting
Add a new posting to the request(include the existing posting) with jobaction set to "addOrUpdate" or "Update" and repost it. This will add a new posting under the same position.
Updating a posting
Update the posting info on the request setup jobAction to "addOrUpdate" or "Update" and repost it.
Changing one of the key entities (Location/BoardName) on a posting will cause it to be deleted and to add a new posting, or update the existing posting if this combination key already exist under the position.
Deleting a posting
There are two ways to delete a single posting:
1. Omitting a posting from the job request with jobAction set to "addOrUpdate" or "Update" and reposting it will cause this position to be deleted.
2. Posting a delete XML request with postingId as the posting identifier.
Monster Delete Schema can be found here:
http://schemas.monster.com/Current/XSD/Delete.xsd
(Click to Expand)
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Header>
<mh:MonsterHeader xmlns:mh="http://schemas.monster.com/MonsterHeader">
<mh:MessageData>
<mh:MessageId>Company Jobs created on 06/08/2017 02:41:44PM</mh:MessageId>
<mh:Timestamp>2017-06-08T14:41:44Z</mh:Timestamp>
</mh:MessageData>
<mh:ProcessingReceiptRequest>
<mh:Address transportType="http">http</mh:Address>
</mh:ProcessingReceiptRequest>
</mh:MonsterHeader>
<wsse:Security xmlns:wsse="http://schemas.xmlsoap.org/ws/2002/04/secext">
<wsse:UsernameToken>
<wsse:Username>username</wsse:Username>
<wsse:Password>password</wsse:Password>
</wsse:UsernameToken>
</wsse:Security>
</SOAP-ENV:Header>
<SOAP-ENV:Body>
<Monster:Delete xmlns:Monster="http://schemas.monster.com/Monster"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://schemas.monster.com/Monster
http://schemas.monster.com/Current/xsd/Monster.xsd">
<Monster:Target>JobPosting</Monster:Target>
<Monster:DeleteBy>
<Monster:Criteria>RecruiterName</Monster:Criteria>
<Monster:Value>username</Monster:Value>
</Monster:DeleteBy>
<Monster:DeleteBy>
<Monster:Criteria>PostingId</Monster:Criteria>
<Monster:Value>the_postingid</Monster:Value>
</Monster:DeleteBy>
</Monster:Delete>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
For deleting all job postings for a certain job Position see Deleting a job
Testing
- A Webservices Toolkit, https://integrations.monster.com/Toolkit, is available to validate the XML and post to the Monster's testing or demo board, id 178. It is recommended that this be done in the early stages of development until valid Monster XML can be created on a consistent basis.
- The toolkit cannot be used to post live production jobs on a client's account. Clients need to use their application or a 3rd party tool like the Fiddler or Advanced REST Client (ARC) in Chrome.
- Once XML is valid, test posting a job directly to Monster's Business Gateway (BGW) URL https://gateway.monster.com:8443/bgwBroker.
- Monster's BGW uses port 8443; this is not an industry standard port so in some cases it needs to be configured in your firewall. If issues are encountered, be advised that it is not necessary for clients to use port 8443 to exit their systems.
- Test account that can be used to post directly to BGW is username: xrtpjobsx01 password: rtp987654
Test the following activities as part of Real Time Posting (RTP):
- Create the job XML with the job board set to the Monster demo job board (monsterId = 178).
- POST the job XML to https://gateway.monster.com:8443/bgwBroker. This can be done via the toolkit, a 3rd party tool like the Fiddler or Advanced REST Client (ARC) in Chrome.
- Receive and view the response.
- Be able to parse the XML response and provide feedback to users on job posting status (success or failure).
- Ensure there's a process in place to fix and resubmit job postings.
- View the job posting and make adjustments in the XML request as necessary.
- Jobs can be viewed usually within an hour by using this URL, https://job-openings.monster.com/jv/xxxxxxxx?LogGetJobChannelID=736 where xxxxxxxxx is the postingId from the XML response.
- View the job search results (job board 178 only) and make adjustments as necessary. This can be done by going to http://jobsearch.demo.monster.com. Note that job search indexing is typically done within 90 minutes.
- Apply to a job using Monster's Apply
a. Confirm Apply button is visible on job posting
b. Apply to a job.
c. Confirm receipt of job seeker resume and cover letter
- Repeat steps above and post jobs to the Diversity, CAN and VETERANS demo job boards.
- Note that viewing jobs is not applicable for the Diversity, CAN and VETERANS job boards.
- Perform an inventory query. Parse the results and provide inventory level information to users.
Take Note!
Different job boards are used for integration testing and Monster's production job boards. Be sure that the appropriate job boards are used for the intended destination.
For each request, the BGW will return an XML response that will contain information about the success or failure of the request.
Common Job Errors and Resolutions can be found
here.
Deployment
1. Ensure the correct job boards are being used. The job board Id's are located in the Job Board section of this guide.
2. Have your customers contact their Monster Representative for the following:
a. Request their Real Time Posting credentials or update their existing account to support Real Time job Posting.
c. Check their current job posting inventory types, durations, levels and purchase additional inventory if needed.
3. Contact the partnership team for other marketing ideas to drive client adoption -
partner@monster.com
4. Send your name, title, email, phone to be added to the communications list for future updates, important changes, new and opportunities to
partner@monster.com
Frequently Asked Questions
Where can I find a sample XML file?
Sample files can be found in the webservice toolkit at: https://integrations.monster.com/Toolkit
Where are Monster schemas, Web Service and WSDL's located?
Business Gateway schemas can be found at: http://schemas.monster.com/current/xsd
The Web Service can be found at: https://gateway.monster.com:8443/bgwBroker
The WSDL’s can be found at: http://schemas.monster.com/current/wsdl
How soon can a new job posting or updates to an existing job be found in job search results?
Typically within 90 minutes.
Where can I find a list of valid Monster locations and other enumerations?
Can I send a Real Time Posting in HTTP?
Can I post to multiple job boards?
Yes. You have access to post to any boards associated with your company. The boards have restrictions and some function differently. Contact your Customer Service Representative for additional information.
Do I have to send a job posting in Monster's standard XML format?
Does the encoding of XML matter?
The encoding of the XML has to match the characters in the text fields otherwise the job will not be displayed properly.
What text must be included in CDATA sections?
Any text that includes invalid XML characters without HTML encoding.
What text should not be included in CDATA sections?
How do I take down a job posting?
There are two ways to do this: 1) Enter a delete request through the Business Gateway. 2) If there are multiple postings within a job, leave out the posting you want to take down. Note that "Job Posting Action = Delete" does not work!
Why is the username and password in the wsse: Security header as opposed to the Monster header?
This is because the username and password elements are not in the same namespace. They use the namespace - http://schemas.xmlsoap.org/ws/2002/04/secext
What do I need to do in order to get the recruiter contact information to show up in a job posting?
Place the job contact information within the Contact element, which is located under the Job Information element. See the following example: https://integrations.monster.com/Toolkit/RealtimePosting/Sample/Add_Or_Update_Job/Advanced_Fields. The type details can be found at: http://schemas.monster.com/current/xsd/job.xsd. Once at this url, search for "HideableContactType". This is an extension of ContactType.
How to post to more than one Location/Category/Job Board?
You need to have multiple JobPosting sections. See https://integrations.monster.com/Toolkit/RealtimePosting/Sample/Add_Or_Update_Job/Multiple_Postings for an example ofthis.
Is there an option to post multiple jobs in one file?