JSearch - Google for Jobs Search API
Pricing
from $0.75 / 1,000 api requests
JSearch - Google for Jobs Search API
Real-time job postings and salary data from LinkedIn, Indeed, Glassdoor, ZipRecruiter and all public job sites via Google for Jobs. Search jobs, get job details, estimated and company salaries.
Pricing
from $0.75 / 1,000 api requests
Rating
0.0
(0)
Developer
OpenWeb Ninja
Maintained by CommunityActor stats
0
Bookmarked
3
Total users
2
Monthly active users
3 days ago
Last modified
Categories
Security
Limited permissionsShare
JSearch is a fast, reliable, and comprehensive job search API for real-time job listings and salary data aggregated from Google for Jobs and the open web, including LinkedIn, Indeed, Glassdoor, ZipRecruiter, Monster, CareerBuilder, SimplyHired and many others. It is built for developers, HR platforms, recruiting tools, career sites, and researchers who need up-to-date job market data.
It returns live job postings with titles, descriptions, requirements, locations, employer details, apply links, and estimated or company-specific salaries.
This actor runs the same JSearch API that thousands of developers use on RapidAPI and OpenWeb Ninja, with the same endpoints, parameters and output.
What you can do with it
- Build job boards and career sites with fresh postings from every major job site
- Feed ATS and recruiting tools with live openings by title, location, seniority and remote status
- Benchmark salaries by job title, location and experience, or for a specific company
- Track hiring at target companies for sales prospecting and market research
- Analyse the job market: demand by role, skill, region and employment type
Endpoints
Pick the endpoint in the Endpoint field. Each run makes one call to that endpoint and writes its results to the dataset.
Job Search
GET /search-v2
Search for jobs posted on any public job site across the web on the largest job aggregate in the world (Google for Jobs). Extensive filtering support and most options available on Google for Jobs.
| Parameter | Required | Description |
|---|---|---|
query | Yes | Free-form jobs search query. It is highly recommended to include job title and location as part of the query. |
cursor | No | Cursor for paginating results. Pass the value of data.cursor returned by the previous response to fetch the next page. Leave empty (or omit) to start from the first page. |
num_pages | No | Number of pages to return, starting from page. Note: Each page (containing up to 10 results) returned by the API consumes one request credit. Default: 1. |
country | No | Country code of the country from which to return job postings. Default: us. |
language | No | Language code in which to return job postings. Leave empty to use the primary language in the specified country (country parameter). |
date_posted | No | Find jobs posted within the time you specify. Values: all, today, 3days, week, month. Default: all. |
work_from_home | No | Only return work from home / remote jobs. Default: false. |
employment_types | No | Find jobs of particular employment types (comma separated). Values: FULLTIME, CONTRACTOR, PARTTIME, INTERN. |
job_requirements | No | Find jobs with specific requirements (comma separated). Values: under_3_years_experience, more_than_3_years_experience, no_experience, no_degree. |
radius | No | Return jobs within a certain distance from location as specified as part of the query (in km). |
exclude_job_publishers | No | Exclude jobs published by specific publishers, specified as a comma (,) separated list of publishers to exclude. |
fields | No | A comma separated list of job fields to include in the response (field projection). By default all fields are returned. |
Job Details
GET /job-details
Get all job details, including additional information such as: application options / links, employer reviews and estimated salaries for similar jobs.
| Parameter | Required | Description |
|---|---|---|
job_id | Yes | Job Id of the job for which to get details. Batching of up to 20 Job Ids is supported by separating multiple Job Ids by comma (,). Note that each Job Id in a batch request is counted as a request for quota calculation. |
country | No | Country code of the country from which to return job posting. Default: us. |
language | No | Language code in which to return job postings. Leave empty to use the primary language in the specified country (country parameter). |
fields | No | A comma separated list of job fields to include in the response (field projection). By default all fields are returned. |
Job Salary
GET /estimated-salary
Get estimated salaries / pay for a jobs around a location by job title and location. The salary estimation is returned for several periods, depending on data availability / relevance, and includes: hourly, daily, weekly, monthly, or yearly.
| Parameter | Required | Description |
|---|---|---|
job_title | Yes | Job title for which to get salary estimation. |
location | Yes | Location in which to get salary estimation. |
location_type | No | Specify the type of the location you are looking to get salary estimation for additional accuracy. Values: ANY, CITY, STATE, COUNTRY. Default: ANY. |
years_of_experience | No | Get job estimation for a specific experience level range (years). Values: ALL, LESS_THAN_ONE, ONE_TO_THREE, FOUR_TO_SIX, SEVEN_TO_NINE, TEN_TO_FOURTEEN, ABOVE_FIFTEEN. Default: ALL. |
fields | No | A comma separated list of job salary fields to include in the response (field projection). By default all fields are returned. |
Company Job Salary
GET /company-job-salary
Get estimated job salaries/pay in a specific company by job title and optionally a location and experience level in years.
| Parameter | Required | Description |
|---|---|---|
company | Yes | The company name for which to get salary information (e.g. Amazon). |
job_title | Yes | Job title for which to get salary estimation. |
location | No | Free-text location/area in which to get salary estimation. |
location_type | No | Specify the type of the location you are looking to get salary estimation for additional accuracy. Values: ANY, CITY, STATE, COUNTRY. Default: ANY. |
years_of_experience | No | Get job estimation for a specific experience level range (years). Values: ALL, LESS_THAN_ONE, ONE_TO_THREE, FOUR_TO_SIX, SEVEN_TO_NINE, TEN_TO_FOURTEEN, ABOVE_FIFTEEN. Default: ALL. |
Example input
{"endpoint": "/search-v2","query": "developer jobs in chicago"}
Example output
One dataset item per result. A Job Search item looks like this (trimmed):
{"job_id": "woj2gE2S_6LqvmLAAAAAAA==","job_title": "Senior Developer","employer_name": "United Airlines","employer_logo": "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcS6DMswunk7F25_BeXSf2w8JVHG65s4lc7v5wfG&s=0","employer_website": "https://www.united.com","job_publisher": "United Airlines Jobs","job_employment_type": "Full-time","job_employment_types": ["FULLTIME"],"job_apply_link": "https://careers.united.com/us/en/job/WHQ00024243/Senior-Developer?utm_campaign=google_jobs_apply&utm_source=google_jobs_apply&utm_medium=organic","job_apply_is_direct": false,"apply_options": [{"publisher": "United Airlines Jobs","apply_link": "https://careers.united.com/us/en/job/WHQ00024243/Senior-Developer?utm_campaign=google_jobs_apply&utm_source=google_jobs_apply&utm_medium=organic","is_direct": false},{"publisher": "Salesforce Careers","apply_link": "https://careers.salesforce.com/it/lavori/jr287763/senior-certification-developer/?utm_campaign=google_jobs_apply&utm_source=google_jobs_apply&utm_medium=organic","is_direct": false}],"job_description": "Description\n\nFind your future at United! We’re reinventing what our industry looks like, and what an airline can be – from the planes we fly to the people who fly them. When you join us, you’re joining a global team of 100,000+ connected by a shared passion with a wide spectrum of experience and ski...","job_is_remote": false,"job_posted_at": "2 days ago","job_posted_at_timestamp": 1743206400,"job_posted_at_datetime_utc": "2025-03-29T00:00:00.000Z","job_location": "Chicago, IL","job_city": "Chicago","job_state": "Illinois","job_country": "US","job_latitude": 41.8781136,"job_longitude": -87.6297982,"job_benefits": ["dental_coverage","paid_time_off"],"job_google_link": "https://www.google.com/search?q=jobs&gl=us&hl=en&udm=8#vhid=vt%3D20/docid%3Dwoj2gE2S_6LqvmLAAAAAAA%3D%3D&vssid=jobs-detail-viewer","job_salary": null,"job_min_salary": null,"job_max_salary": null,"job_salary_period": null,"job_highlights": {"Qualifications": ["Bachelor's degree","Computer Science, Computer Engineering, Electrical Engineering, Management Information Systems or related field"],"Benefits": ["Get the care you need with industry-leading health plans and best-in-class programs to support your emotional, physical, and financial wellness","The base pay range for this role is $109,820.00 to $149,600.00"],"Responsibilities": ["Expand your horizons with travel across the world’s biggest route network","The Senior Software Developer will be responsible for the development of critical applications, while working with a team of developers"]},"job_onet_soc": "15113200","job_onet_job_zone": "4"}
The run's key-value store OUTPUT record holds the request parameters, the request id and any non-list fields of the response (for example a pagination cursor).
Pricing
Pay per event: you pay per API request, at the same rates as our API plans. Most runs are one request; some parameters (such as fetching several pages at once) count as several, exactly as they do on the API.
| Apify plan | Price per 1,000 requests |
|---|---|
| Free | $5.00 |
| Starter (Bronze) | $2.50 |
| Scale (Silver) | $1.50 |
| Business (Gold) and above | $0.75 |
A request that fails is not charged.
Using it from code
Run it through the Apify API or a client library, with the input above as the JSON body:
curl -X POST "https://api.apify.com/v2/acts/openweb-ninja~jsearch/run-sync-get-dataset-items?token=<YOUR_APIFY_TOKEN>" \-H "Content-Type: application/json" \-d '{"endpoint":"/search-v2","query":"developer jobs in chicago"}'
Need higher volume or a direct REST API? JSearch - Google for Jobs Search API is also available as an API on OpenWeb Ninja and RapidAPI.
Support
For custom plans, high volumes or anything else:
- Email: support@openwebninja.com
- Discord: https://discord.gg/wxJxGsZgha