Job Search API
Authentication and Authorization
Input Parameters
Response Format
Job Search API Version 2
This document describes the Monster Job Search API Version 2. See this guide for documentation on previous version.
Summary
Monster Job Search V2 is exposed to the programmer through a simple HTTP interface. Query parameters are sent via a single HTTP GET or POST query and search results, errors and diagnostic information are returned as an XML or JSON document based on standard HTTP content negotiation through headers. This version of the Job Search API has consistent use of all lowercase on the parameters and properties.
URL:
https://api.jobs.com/v2/search/jobs
Examples
External example:
https://api.jobs.com/v2/search/jobs?title=programmer&city=boston&state=MA&radius=40&country=US
Authentication and Authorization
Authentication and authorization happens through standard Reverse Proxy means.First you need to authentication by supplying your AppID and AppSecret:
- POST
https://api.jobs.com/auth/token?AppId=MyApp&AppSecret=abcdaxkld1235
In case the supplied authentication information is valid, Reverse Proxy will respond with following information
{ "Token": "eyJ0kld…", "Expires": "2015-02-14T02:34:15.0813256Z" }
The JWT token supplied in the response is then used for all subsequent requests by the application until it expires. Once it expires, new JWT has to be obtained by re-authenticating.
In the subsequent requests, the JWT token is supplied in the Authorization HTTP header
Authorization: bearer eyJ0kld…
Input Parameters
Parameter FormatAll input parameters must be sent using HTTP GET. Care should be taken to URL-encode all parameters correctly. Malformed parameters will either be incorrectly interpreted and or give rise to unexpected results, or a 0xA0002000 – Invalid Input Parameter error will be returned.
Parameters listed as "multi-valued" accept multiple values and may be entered by repeating the parameter as shown in the examples that follow each parameter description.
All parameters are case insensitive.
Query Parameters
Name | Description | Example | Required | Default |
---|---|---|---|---|
country | Country of the jobs, see Abbreviations | country=US | Yes | N/A |
state | State of the jobs | state=MA | No | None |
city | City of the jobs | city=Boston | No | None |
radius | Radius around the location to get the jobs for (in miles) | radius=45 | No | 25 miles |
title | Title of the jobs | title=plumber | No | None |
company | Company of the jobs | company=Monster | No | None |
age | How old jobs (at maximum) should be included in the result | age=30 | No | None (does not filter jobs by age) |
mesco | Mesco of the jobs | mesco=1003252001 | No | None |
skills | Skills of the job | skills=java | No | None |
orderby | Type of sorting | orderby=latest | No | None |
companyguid | Company KB Guid of the jobs | companyguid=ab2323-a3242435-dds | No | None |
boardids | Boards to limit the jobs to. | boardIds=1-2-3 | No | None |
keywords | Any keywords to refine the search | keywords=java | No | None |
jobtype | Type of Jobs (PartTime,Contract,Temp,Internship,Other,FullTime,WorkAtHome) | jobtype=fulltime-contract | No | None |
companyxcode | xcode of the Company that Monster provides | companyxcode=xclientnamex | No | None |
Supported Fields with Examples
/api/v2/jobsearch/?country=US&keywords=software/api/v2/jobsearch/?country=US&keywords=software&orderby=latest
/api/v2/jobsearch/?country=US&title=Software%20Engineer
/api/v2/jobsearch/?country=US&title=Software%20Engineer
/api/v2/jobsearch/?country=US&company=IBM
/api/v2/jobsearch/?country=US&mesco=1300087001001
/api/v2/jobsearch/?country=US&boardids=7086
/api/v2/jobsearch/?country=US&companyxcode=xfredx
/api/v2/jobsearch/?country=US&skills=software
/api/v2/jobsearch/?country=US&city=Waltham
/api/v2/jobsearch/?country=US&state=MA
/api/v2/jobsearch/?country=US&state=MA&City=Waltham&radius=20
/api/v2/jobsearch/?country=US&jobtype=parttime&jobtype=fulltime
/api/v2/jobsearch/?country=US&postalcode=02401
/api/v2/jobsearch/?country=US&state=MA&City=Waltham&radius=20&radiusUnit=kilometers
/api/v2/jobsearch/?country=US&state=MA&City=Waltham&radius=20&radiusUnit=miles
/api/v2/jobsearch/?country=US&state=MA&City=Waltham&radius=20&radiusUnit=foo
/api/v2/jobsearch/?country=US&state=MA&Age=1
/api/v2/jobsearch/?country=US&state=MA&Age=30
/api/v2/jobsearch/?country=US&jobtype=other
/api/v2/jobsearch/?country=US&careerlevel=Executive
Controlling the Results
The maximum number of jobs returned is limited to 1000 to not impact performance of the search engines. Attempting to specify a combination of values that would result in returning the 1001th job or higher will not return those jobs.
Paging (Link Style)
The page and perpage parameter indicates controls the result set that is going to be returned
Examples: page=1&perpage=100 return 20 results starting with the 1st job
The default page is 1, the default per page is 20.
In standard RESTful way, the response will also contain link style
Link: <https://api.jobs.com/v2/search/jobs?title=Engineer&page=1&perpage=100>; rel="first", <https://api.jobs.com/v2/search/jobs?title=Engineer&page=1&perpage=100>; rel="prev", <https://api.jobs.com/v2/search/jobs?title=Engineer&page=3&perpage=100>; rel="next", <https://api.jobs.com/v2/search/jobs?title=Engineer&page=12&perpage=100>; rel="last"
Total Hits
The total number of available jobs (total hits) is available in the response as a header with name "TotalHits" and value of the number of the total number of hits for that given search terms.
Date format
Dates in query results are formatted according to the ISO 8601 standard.
Times are expressed in local time, together with a time zone offset in hours and minutes. For example: 2005-03-04T20:22:25-05:00.
Response Format
Field | Description | Example |
---|---|---|
city | city where job is located | city="Brockton" |
state | state abbreviation where job is located | state="MA" |
postalcode | postalcode where job is located | postalcode="02401" |
refcode | unique identifier from provider of job | refcode=12039348 |
datecreated | date the job was created | datecreated=7/4/2018 6:02:27 AM |
companyguid | guid to identify company | companyguid=b2162f9b-b4c5-4fb0-92b8-b496168b4567 |
companyname | name of company | companyname=Acme |
title | title of job | title="Software Engineer" |
url | url of job | url=https://www.testcompany.com/test |
summary | partial summary of job | summary="Looking for a candidate for software engineer" |
postingid | unique id of job | postingid=456ac77b-b487-476d-906a-60bdc35590b3 |
mesco | monster category for job | "mesco":{"id":1500127001001} |
Media Type
Both JSON and XML are support. Use the standard HTTP content negotiation to ensure you receive proper format (i.e. Accept header).
JSON
[
{
"location": "Alpharetta, GA, 30004",
"distance": "-1,NaN,INVALID_QUERY_LOCATION",
"refCode": "d2253c82-93f4-4ee3-bf8d-2eda1d2db0a8",
"dateCreated": "06\/02\/2016 12:00:00 AM",
"companyName": "Solutions Inc.",
"title": "not solution abstract best nervous",
"url": "https:\/\/jobview.monster.com\/GetJob.aspx?JobID=3982983",
"summary": "not solution abstract best nervous premium industrial requesting vaste fact master valuable historical letter vaste requirement brainstorming create similar create oposite extra letter fantastic a no newest sampling problems win human sing violin a ...",
"postingId": "d73d0459-11c5-423a-9578-77bb0a3f28a6",
"id": "1837271",
"score": 93.448, "companyGuid": "sdfsa74example5sdfkjhdsg",
"mesco": {
"id": 4100672001001,
"alias": "Advertising Sales Agents"
}
},
{
"location": "Alpharetta, GA, 30009",
"distance": "-1,NaN,INVALID_QUERY_LOCATION",
"refCode": "8b9e0f24-430a-4ea3-a10a-65020088c799",
"dateCreated": "06\/02\/2016 12:00:00 AM",
"companyName": "Violins Inc.",
"title": "scale sample violin features features",
"url": "https:\/\/jobview.monster.com\/GetJob.aspx?JobID=3909161",
"summary": "scale sample violin features features filtering public business total newest almanah statuses freezing rest and stateman are better Cambridge cooking between statuses abstract Cambridge craftman problematic almanah united crucial info creative never...",
"postingId": "d216f96d-bea5-4a8d-ae7c-23e81791f564",
"id": "1831568",
"score": 93.448, "companyGuid": "sdfs345345example2hdsg65757",
"mesco": {
"id": 1300093001001,
"alias": "Business Operations Specialists, All Other"
}
}
]
XML
<jobs>
<job>
<Location>Alpharetta, GA, 30004</Location>
<Distance>-1,NaN,INVALID_QUERY_LOCATION</Distance>
<RefCode>d2253c82-93f4-4ee3-bf8d-2eda1d2db0a8</RefCode>
<DateCreated>06/02/2016 12:00:00 AM</DateCreated>
<CompanyName>Solution Company</CompanyName>
<Title>not solution abstract best nervous</Title>
<Url>https://jobview.monster.com/GetJob.aspx?JobID=3982983</Url>
<Summary>not solution abstract best nervous premium industrial requesting vaste fact master valuable historical letter vaste requirement brainstorming create similar create oposite extra letter fantastic a no newest sampling problems win human sing violin a ...</Summary>
<PostingId>d73d0459-11c5-423a-9578-77bb0a3f28a6</PostingId>
<Id>1837271</Id>
<Score>93.448</Score> <CompanyGuid>sdf23s1example1sdfkjhdsg</CompanyGuid>
<Mesco>
<Id>4100672001001</Id>
<Alias>Advertising Sales Agents</Alias>
</Mesco>
</job>
<job>
<Location>Alpharetta, GA, 30009</Location>
<Distance>-1,NaN,INVALID_QUERY_LOCATION</Distance>
<RefCode>8b9e0f24-430a-4ea3-a10a-65020088c799</RefCode>
<DateCreated>06/02/2016 12:00:00 AM</DateCreated>
<CompanyName>Violin Company</CompanyName>
<Title>scale sample violin features features</Title>
<Url>https://jobview.monster.com/GetJob.aspx?JobID=3909161</Url>
<Summary>scale sample violin features features filtering public business total newest almanah statuses freezing rest and stateman are better Cambridge cooking between statuses abstract Cambridge craftman problematic almanah united crucial info creative never...</Summary>
<PostingId>d216f96d-bea5-4a8d-ae7c-23e81791f564</PostingId>
<Id>1831568</Id>
<Score>93.448</Score> <CompanyGuid>sdf923s2example2sdfkjhdsg</CompanyGuid>
<Mesco>
<Id>1300093001001</Id>
<Alias>Business Operations Specialists, All Other</Alias>
</Mesco>
</job>
<job>
<Location>Alpharetta, GA, 30009</Location>
<Distance>-1,NaN,INVALID_QUERY_LOCATION</Distance>
<RefCode>91b48cad-0e4a-43fc-a024-44f2eb7e42c4</RefCode>
<DateCreated>06/02/2016 12:00:00 AM</DateCreated>
<CompanyName>Database Company</CompanyName>
<Title>scale database best brainstorm historic</Title>
<Url>https://jobview.monster.com/GetJob.aspx?JobID=3908436</Url>
<Summary>scale database best brainstorm historic watter put not water eco find use ground humble sing logical creating humour afternoon sing flodding usage coding center factual logical catamaran talent master designer flood infrastructure win newer quickly ...</Summary>
<PostingId>b0acd05d-30a4-4247-9fa2-c4f3841d9839</PostingId>
<Id>1831434</Id>
<Score>93.448</Score> <CompanyGuid>sdf923s2example375ykjh39867dsg</CompanyGuid>
<Mesco>
<Id>1300093001001</Id>
<Alias>Business Operations Specialists, All Other</Alias>
</Mesco>
</job>
</jobs>
Getting the Full Job Details
Uses the PostingId from the jobsearch results and call the following:
https://api.jobs.com/jobs/b0acd05d-30a4-4247-9fa2-c4f3841d9839
Error Results
All errors are returned in an Errors node thus:
In JSON:
{"status":"error","error":"countryId 0 not supported in Powersearch or Medley index"}
In XML:
<result xmlns:i="https://www.w3.org/2001/XMLSchema-instance"> <error>countryId 0 not supported in Powersearch or Medley index</error> <status>error</status> </result>