Job Search API

Authentication and Authorization

Input Parameters

Response Format


Job Search API

 

This document describes the Monster Job Search API. 


Summary

Monster Job Search 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.

URL:
https://api.jobs.com/search/jobs

Examples

External example:
https://api.jobs.com/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 Format

All 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.

Query Parameters

Name Description Example Required Default
Country Country of the jobs 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


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/search/jobs?title=Engineer&page=1&perPage=100>; rel="first",
<https://api.jobs.com/search/jobs?title=Engineer&page=1&perPage=100>; rel="prev",
<https://api.jobs.com/search/jobs?title=Engineer&page=3&perPage=100>; rel="next",
<https://api.jobs.com/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

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":"IBM",
    "title":"not solution abstract best nervous",
    "url":"http://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
  },
  {
    "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":"IBM",
    "title":"scale sample violin features features",
    "url":"http://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
  }
]


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>IBM</CompanyName>
    <Title>not solution abstract best nervous</Title>
    <Url>http://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>
  </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>IBM</CompanyName>
    <Title>scale sample violin features features</Title>
    <Url>http://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>
  </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>IBM</CompanyName>
    <Title>scale database best brainstorm historic</Title>
    <Url>http://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>
  </job>
</jobs>


Error Results

All errors are returned in an Errors node thus:

<?xml version="1.0" encoding="utf-8" ?> 
<Monster>
	<ERROR StatusCode="optional code">
		<ErrorMessage<ERROR_MESSAGE>/ErrorMessage>
	</ERROR>
</Monster>


The <ErrorMessage> element may also contain some contextual information relating to how and why the error was encountered. It is good practice for client code to switch on the StatusCode value, as the exact error messages are not invariant.