This API allows you to discover employment opportunities from various providers, including but not limited to LinkedIn, Indeed, Jooble, ZipRecruiter, Glassdoor, and many other sources.
With this Google Jobs web scraping API, you can retrieve a list of employment opportunities worldwide from an array of providers.
While only query and location are required, you can use multiple parameters to get responses more specified to your search.
Key | Type | Allowed values | Default value | Description | Is required | Example |
---|---|---|---|---|---|---|
query | String | - | - | Keywords, job title, Company name or any other relevant search query. | Yes | query=developer |
location | String | - | - | City, country, or any other location. | Yes | location=switzerland |
distance | Number | - | -1.0 | Distance to the location in kilometers, if empty -1.0 is set, and all jobs within the country will be returned. | No | distance=-1.0 |
language | String | - | en_GB | Sets the language of the following return fields (location, employmentType, datePosted and salaryRange), but does not filter by language. Important: If you want the values in English, either don’t use this field or use ‘en_GB’, other variants will not work. | No | language=de |
remoteOnly | Boolean | - | false | Filter by only remote job postings. | No | remoteOnly=true |
datePosted | String | month, week, today, 3days | Empty String (Returns all values no matter when they are posted). | Only receive job postings that are newer than the date given, takes all job postings if not set. | No | datePosted=month |
employmentTypes | Strings, separated by a semicolon | contractor, fulltime, parttime, intern | Empty String (Returns all values no matter the employment type). | Only receive job postings with the specific employment types. You can use multiple types and separate them with semicolons (parttime;internship). | No | employmentTypes=fulltime;parttime;intern;contractor |
allowedJobProviders | Strings, separated by a semicolon | - | Empty String (Returns all values no matter the job provider). | Only receive job postings from specific job providers. You can use multiple providers and separate them with semicolons (ziprecruiter;indeed;linkedin). Note: It currently works only with bigger providers like Indeed, LinkedIn, etc. | No | allowedJobProviders=ziprecruiter;indeed;linkedin |
index | Number | - | 0 | Index of the search, per request you will get a maximum of 10 jobs. If you have received a total of 10 jobs, you can increase the index by 1 to get the next results. | No | index=1 |
https://jobs-api14.p.rapidapi.com/list?query=developer&location=switzerland
query=developer Jobs with the developer keyword will be returned.
location=switzerland Jobs within Switzerland will be returned.
This request will return the first 10 results of developer jobs in Switzerland.
The results will be in English, all employment types and job providers will be returned.
query=developer Jobs with the developer keyword will be returned.
location=zurich Jobs within Zurich will be returned.
datePosted=month Jobs posted within the last month will be returned.
allowedJobProviders=ziprecruiter;indeed;linkedin Jobs that have been posted on at least one of the selected providers will be returned.
remoteOnly=true Only remote jobs will be returned.
distance=2 Jobs within a 2km radius around the location (Zurich) will be returned.
employmentTypes=fulltime;parttime Only full- and part-time jobs will be returned.
language=de The results will be in German (de), meaning, employmentType, datePosted and salaryRange are translated.
index=1 The second batch of results will be returned, you can use this parameter if the previous index returned a total of 10 results.
You will receive a list of jobs in the JSON-Format, the maximum amount of jobs per request is 10.
In case of an error, the boolean hasError will be true and the array errors will contain the error messages.
Key | Type | Description | Example |
---|---|---|---|
jobs | Array | A list of returned jobs. | - |
jobs.id | String | Base64 ID of the job-listing. | SSxOLEYsTyxSLE0sQSxULE8sUixNLE8sUixHLEEsTiwgLFMsUixMLDEsUixlLGcsZyxpLG8sICxDLGE= |
jobs.title | String | Job title. | WEB API DEVELOPER |
jobs.company | String | Company name. | Cymertek |
jobs.description | String | Job description. | Are you looking to make an immediate impact where you can help our clients solve their business challenges? … |
jobs.image | String | URL of the company image/logo. | https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcSbop_lf6kXe-57QmM6hiXKfivG8wHVyXNspllG&s=0 |
jobs.location | String | Location of the job/company. | Rose Hill, VA |
jobs.employmentType | String | Types of employment for the job listing. | Full-time and Contractor |
jobs.datePosted | String | Date when the job listing was posted. | 5 days ago |
jobs.salaryRange | String | The salary range for the job posting. | CHF 160K–CHF 220K a year |
jobs.jobProviders | Array | An array of job boards, including their name and the URL. | - |
jobs.jobProviders.jobProvider | String | Name of the job provider. | |
jobs.jobProviders.url | String | URL to the job provider, for applying. | https://ch.linkedin.com/jobs/view/tools-engineers-software-developers-at-experis-switzerland… |
index | Number | The current index of the job search. | 0 |
jobCount | Number | The amount of returned jobs, the maximum amount per request is 10. | 10 |
hasError | Boolean | Boolean to check for errors. | false |
errors | Array | An array of error messages. | [ “Query must be set”, “Location must be set” ] |
{
"jobs": [
{
"id": "VyxlLGIsICxELGUsdixlLGwsbyxwLGUscixELGUsbSxhLG4sdCxTLHkscixhLGMsdSxzLGUsLCwgLE4=",
"title": "Web Developer",
"company": "Demant",
"description": "As a Web Developer at CQ Partners, you will be a leader in the structuring, maintaining, and facilitating of websites and web-based applications...",
"image": "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcQAkPEjEwMeJizfsnGN-qUAEw8pmPdk357KIzsi&s=0",
"location": "Syracuse, NY",
"employmentType": "Full-time",
"datePosted": "17 hours ago",
"salaryRange": "",
"jobProviders": [
{
"jobProvider": "LinkedIn",
"url": "https://www.linkedin.com/jobs/view/web-developer-at-demant-3904417702?utm_campaign=google_jobs_apply&utm_source=google_jobs_apply&utm_medium=organic"
},
{
"jobProvider": "ZipRecruiter",
"url": "https://www.ziprecruiter.com/c/Demant/Job/Web-Developer/-in-Syracuse,NY?jid=f9bf23bf36cdcfef&utm_campaign=google_jobs_apply&utm_source=google_jobs_apply&utm_medium=organic"
}
]
},
{
"id": "VyxlLGIsICxELGUsdixlLGwsbyxwLGUsciwsLCAsVSxYLC8sVSxJLCwsICxCLHIsYSxuLGQsaSxuLGc=",
"title": "Web Developer, UX/UI, Branding, Graphics",
"company": "ADG Creative",
"description": "Degree required: Bachelor’s degree in relevant field...",
"image": "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcSV7-v1EkEhWtAh8W8WaqPD6vMQG2uBi0GOOOmb&s=0",
"location": "Columbia, MD",
"employmentType": "Full-time",
"datePosted": "1 day ago",
"salaryRange": "",
"jobProviders": [
{
"jobProvider": "LinkedIn",
"url": "https://www.linkedin.com/jobs/view/web-developer-ux-ui-branding-graphics-at-adg-creative-3903771314?utm_campaign=google_jobs_apply&utm_source=google_jobs_apply&utm_medium=organic"
}
]
},
{
"id": "VyxlLGIsICxELGUsdixlLGwsbyxwLGUscixNLHksICxCLHUscyxpLG4sZSxzLHMsICxSLGUscyxvLHU=",
"title": "Web Developer",
"company": "My Business Resource",
"description": "About Us:\n\nFounded in 2010, Social Firm is a team of expert digital marketers and designers...",
"image": "https://fonts.gstatic.com/s/i/googlematerialicons/event_available/v16/gm_grey-24dp/1x/gm_event_available_gm_grey_24dp.png",
"location": "Columbus, OH",
"employmentType": "Full-time",
"datePosted": "1 day ago",
"salaryRange": "",
"jobProviders": [
{
"jobProvider": "Indeed",
"url": "https://www.indeed.com/viewjob?jk=0c9c91e70ef724c7&utm_campaign=google_jobs_apply&utm_source=google_jobs_apply&utm_medium=organic"
},
{
"jobProvider": "Glassdoor",
"url": "https://www.glassdoor.com/job-listing/web-developer-my-business-resource-JV_IC1145845_KO0,13_KE14,34.htm?jl=1009241240100&utm_campaign=google_jobs_apply&utm_source=google_jobs_apply&utm_medium=organic"
},
{
"jobProvider": "ZipRecruiter",
"url": "https://www.ziprecruiter.com/c/My-Business-Resource/Job/Web-Developer/-in-Columbus,OH?jid=93f3642519fcbd86&utm_campaign=google_jobs_apply&utm_source=google_jobs_apply&utm_medium=organic"
},
{
"jobProvider": "Jooble",
"url": "https://jooble.org/jdp/4904332409982181233?utm_campaign=google_jobs_apply&utm_source=google_jobs_apply&utm_medium=organic"
}
]
}
],
"index": 0,
"jobCount": 3,
"hasError": false,
"errors": []
}
{
"jobs": [],
"index": 0,
"jobCount": 0,
"hasError": true,
"errors": [
"Query must be set",
"Location must be set"
]
}
This endpoint gives you valid job titles for your query, you should use it before calling Get salary range,
you can for instance use it as a dropdown if you create an app or website.
For the request two parameters can be set, those are both required.
Key | Type | Allowed values | Default value | Description | Is required | Example |
---|---|---|---|---|---|---|
query | String | - | - | Find job titles from your query to use in Get salary range. | Yes | query=developer |
countryCode | String | - | - | Find job titles for a specific country. (for example: DE, US, CH) | Yes | countryCode=CH |
https://jobs-api14.p.rapidapi.com/salary/getJobTitles?query=web developer&countryCode=CH
query=web developer Find valid job titles for web developer that you can use in the Get salary range endpoint as jobTitle
countryCode=CH Find job titles for a specific country, you should use the same country code in Get salary range.
You will retrieve a list of valid job titles, to use in Get salary range.
Key | Type | Description | Example |
---|---|---|---|
jobTitles | Array | A list of returned jobs titles. | - |
jobTitles.jobTitle | String | A job title you can use to get the salary range for. | “jobTitle”: “software engineer” |
jobTitles.count | Number | The amount of positions for the title. | “count”: 1658 |
hasError | Boolean | Boolean to check for errors. | false |
errors | Array | An array of error messages. | [ “Query must be set”, “countryCode must be set” ] |
{
"jobTitles": [
{
"jobTitle": "software engineer",
"count": 1658
},
{
"jobTitle": "full stack developer",
"count": 1577
},
{
"jobTitle": "front end developer",
"count": 1396
},
...
],
"hasError": false,
"errors": []
}
{
"jobTitles": [],
"hasError": true,
"errors": [
"Query (query) must be set.",
"Country code (countryCode) must be set."
]
}
This endpoint will give you a salary range for a job title and a country.
You can get valid job titles with the Get job titles endpoint.
For the request two parameters can be set, those are both required.
Key | Type | Allowed values | Default value | Description | Is required | Example |
---|---|---|---|---|---|---|
jobTitle | String | - | - | The job title you want the salary range from. use Get job titles for valid titles… | Yes | jobTitle=front end developer |
countryCode | String | - | - | The country you want the salary range from. (for example: DE, US, CH) | Yes | countryCode=CH |
https://jobs-api14.p.rapidapi.com/salary/getSalaryRange?jobTitle=front end developer&countryCode=CH
jobTitle=front end developer Get the salary range for front end developer, use Get job titles beforehand to get a range of valid titles.
countryCode=CH Get the salary range in the defined country, in this case, CH=Switzerland.
Get a salary range for different timeframes.
Key | Type | Description | Example |
---|---|---|---|
countryCode | String | Country code where the salary range is from. | “countryCode”: “CH” |
country | String | Country name of where the salary range is from. | “country”: “Switzerland” |
currency | String | Currency of the salaries. | “currency”: “CHF” |
lastUpdatedTimestamp | Number | Timestamp of when the range was last updated. | “lastUpdatedTimestamp”: 1713329692000 |
[TIMEFRAME]Salary | Object OR Null | Object of the salary ranges, you have a total of five of those objects (hourlySalary, dailySalary, weeklySalary, monthlySalary, yearlySalary). | - |
[TIMEFRAME]Salary.median | Number | Median salary for the job title. | “median”: 60.12896725481883 |
[TIMEFRAME]Salary.mean | Number | Mean salary for the job title. | “mean”: 61.488705395676206 |
[TIMEFRAME]Salary.min | Number | Minimum salary for the job title. | “min”: 45.854336981068094 |
[TIMEFRAME]Salary.max | Number | Maximum salary for the job title. | “max”: 78.84734446435897 |
hasError | Boolean | Boolean to check for errors. | false |
errors | Array | An array of error messages. | [ “jobTitle must be set”, “countryCode must be set” ] |
{
"countryCode": "CH",
"country": "Switzerland",
"currency": "CHF",
"lastUpdatedTimestamp": 1713329692000,
"hourlySalary": {
"median": 60.12896725481883,
"mean": 61.488705395676206,
"min": 45.854336981068094,
"max": 78.84734446435897
},
"dailySalary": {
"median": 740.5648367685038,
"mean": 757.3117442958612,
"min": 564.7545788970989,
"max": 971.1054995410452
},
"weeklySalary": {
"median": 1839.3029613115204,
"mean": 1880.8963979406312,
"min": 1402.6520269478895,
"max": 2411.8849996250765
},
"monthlySalary": {
"median": 7117.464736962775,
"mean": 7278.416915436787,
"min": 5427.777016632606,
"max": 9333.158699532745
},
"yearlySalary": {
"median": 100526.71940349606,
"mean": 102800,
"min": 76661.65373495193,
"max": 131821.07118336027
},
"hasError": false,
"errors": []
}
{
"countryCode": "",
"country": "",
"currency": "",
"lastUpdatedTimestamp": -1,
"hourlySalary": null,
"dailySalary": null,
"weeklySalary": null,
"monthlySalary": null,
"yearlySalary": null,
"hasError": true,
"errors": [
"Job title (jobTitle) must be set.",
"Country code (countryCode) must be set."
]
}