Google Jobs API
How to collect job postings through an API: Google Jobs versus scraping each job board, the fields you get, the filters that work, and what 1,000 postings cost.
For postings from many companies at once, a Google Jobs API is the lowest-cost route we found, because Google already merges listings from LinkedIn, ZipRecruiter, company career sites and niche boards into one result; Ujeebu returns them with search_type=jobs, 10 postings for 5 credits, which is $0.08 per 1,000 postings on the $49 plan and $0.03 on Business. SerpApi's Google Jobs API costs $2.50 to $0.59 per 1,000 postings, and Bright Data sells job data from $1.50 per 1,000 records on pay as you go. Our probes got 10 postings with title, company, location, description, apply links and job_id on all 857 runs between October 14 and November 1, 2026.
Disclosure: Ujeebu publishes this page and sells one of the APIs on it. Our numbers come from our own calls and monitoring; competitor prices link to their pages.
What is the best API for scraping job postings?
There are three ways to get job postings as data, and the right one depends on how many sources you need:
- A Google Jobs API reads Google's job search, which already aggregates postings from job boards and career sites and lists every place you can apply. One query covers many sources. This is what Ujeebu, SerpApi and Scrapingdog sell.
- Ready-made job datasets or board-specific scrapers, such as Bright Data's LinkedIn Jobs scraper or its job datasets, priced per record.
- Scraping each job board or applicant tracking system yourself with a general scraping API. Most career-site platforms are easy to fetch; the big boards are not (see our measurements below).
When our AI Citation Index asked ChatGPT, Gemini and Google AI Overviews "Best API for scraping job postings" 26 times between October 5 and October 30, 2026, Bright Data was named in 24 answers, SerpApi in 17, Apify in 15, ScraperAPI in 8 and Oxylabs in 4. Ujeebu was named in none. The most cited sites were brightdata.com (23 citations), apify.com (13), serpapi.com (11) and theirstack.com (11).
Which fields does a job postings API return?
Each posting has title, company_name, location, via (the site Google found it on), the full description, job_highlights (Qualifications, Benefits, Responsibilities as lists), detected_extensions (posted_at, schedule_type, salary and flags such as health_insurance), every apply_options link, a share_link and Google's job_id.
curl -G 'https://api.ujeebu.com/serp' \
-H 'ApiKey: YOUR_API_KEY' \
--data-urlencode 'search=data analyst' \
-d 'search_type=jobs' \
--data-urlencode 'location=Chicago, Illinois' \
-d 'date_posted=week' \
-d 'employment_type=FULLTIME'
{
"jobs": [
{
"position": 2,
"title": "Data Analyst, Transformative Change - Disputes, Claims & Investigations",
"company_name": "Stout",
"location": "Chicago, IL",
"via": "Built In Chicago",
"description": "At Stout, we're dedicated to exceeding expectations in all we do ...",
"job_highlights": [
{ "title": "Qualifications", "items": ["Bachelor's degree in data science, computer science, ...", "..."] },
{ "title": "Benefits", "items": ["At Stout, we offer a comprehensive Total Rewards program ...", "..."] }
],
"extensions": ["2 days ago", "$60K-$130K a year", "Full-time", "Health insurance"],
"detected_extensions": { "posted_at": "2 days ago", "salary": "$60K-$130K a year",
"schedule_type": "Full-time", "health_insurance": true },
"apply_options": [
{ "title": "Built In Chicago", "link": "https://www.builtinchicago.org/job/data-analyst-transformative-change-..." },
{ "title": "Built In", "link": "https://builtin.com/job/data-analyst-transformative-change-disputes-cl..." },
"... 8 in total"
],
"share_link": "https://www.google.com/search?ibp=htl;jobs&q=data+analyst+Ch...",
"job_id": "-RtqTzC8J6x5_p-gAAAAAA=="
},
"... 10 jobs per page"
],
"pagination": { "api": { "next": "https://api.ujeebu.com/serp?date_posted=week&employment_type=FULLTIME&...&page=2&search_type=jobs&" } }
}
Trimmed from a real call made on November 1, 2026: HTTP 200, Ujb-Credits: 5, 3.3 seconds, 10 postings, all in Chicago, IL, posted between 12 hours and 4 days earlier; 5 of the 10 showed a salary; apply links per posting ranged from 1 to 8 (4.7 on average).
How to filter job postings: location, radius, remote, date and type
- location takes a place name ("Chicago, Illinois") or a country code. For jobs, the place is written into the Google query, which is why all 10 postings above were in Chicago.
- radius (1 to 1,000 km) widens or narrows the area around a place name. Google treats it as a preference, not a hard cut-off.
- remote=true returns remote listings only (location "Anywhere").
- date_posted: today, 3days, week or month.
- employment_type: FULLTIME, PARTTIME, CONTRACTOR, INTERN or TEMPORARY, several at once separated by commas. Expect near misses: in our one filtered test, with FULLTIME, 9 of 10 postings were full time and 1 was a contract role; Google matches the filter loosely.
- batch=true with results_count up to 100 collects up to 10 pages in one request, numbered by position without duplicates, at 5 credits per page. page goes up to 40 when you page yourself.
- search_type=job with job_id fetches one posting again (send its title, company and location in search). A posting that is gone returns 404 "Job not found."
How reliable is a Google Jobs API? What we measured
Method: our health check sends one jobs search every 30 minutes through the public API with a normal customer key, US location, rotating four fixed queries (software engineer jobs new york, nurse jobs chicago, accountant jobs dallas, data analyst jobs remote), and scores each response against a field contract: a field counts as filled when it is present and not empty. The probe started on October 14, 2026, which is why the window starts there.
| Measure | Result |
|---|---|
| Probes answered with postings | 857 of 857 |
| Postings per page | 10 on every run |
| Mean response time, last 7 days | 3.13 seconds (336 runs) |
| title, company_name, location, via, description, apply_options, job_id | 100% of postings |
| posted_at (how old the posting is) | 73.1% of postings |
| Company logo (thumbnail) | 67.8% of postings |
| Credits per page of 10 | 5 (Ujb-Credits header) |
Source: Ujeebu health_checks and health_serp_fields tables, read November 1, 2026. Salary is not part of the probe contract; in our November 1 sample, 5 of 10 postings had one.
Can you scrape job boards directly? Our 7-day success rates
Our health check also fetches a page from each major job board and applicant tracking system several times a day with the Scrape API. These are the last 7 days to November 1, 2026.
| Site | Success | Notes |
|---|---|---|
| Greenhouse, Ashby, BambooHR, Workday, LinkedIn job pages, Naukri, Remote OK | 34 of 34 each | Career-site platforms and these boards fetched every time |
| SmartRecruiters | 33 of 33 | |
| Lever | 30 of 30 | |
| Dice | 25 of 25 | |
| ZipRecruiter | 31 of 34 | Occasional blocks |
| Glassdoor | 27 of 33 | Blocks on some attempts |
| Wellfound | 20 of 32 | Often blocked |
| Seek (Australia) | 10 of 21 | Blocked about half the time |
| Indeed | 1 of 10 | Blocked; use Google Jobs, which lists Indeed postings with their apply links |
Source: Ujeebu health_sites table (ok_7d / n_7d), read November 1, 2026; each site is one fixed public page fetched several times a day. Failed fetches are not billed. The trade-off: if you track a known list of employers, fetch their Greenhouse, Lever, Ashby or Workday boards directly (1 credit a plain page, complete and current, since these fetched every time); to discover postings across employers you have not listed, use Google Jobs, which also covers boards like Indeed that block direct fetches.
Job postings API price per 1,000 postings
Normalized to 1,000 postings. Google Jobs pages hold 10 postings, so 1,000 postings are 100 searches. Ujeebu arithmetic: 100 searches x 5 credits = 500 credits; Starter is $49 for 300,000 credits ($0.000163 a credit), so 500 credits cost $0.08.
| API | Entry price | Volume price | Source of postings |
|---|---|---|---|
| Ujeebu (search_type=jobs) | $0.08 (Starter $49); $0.12 (pay as you go) | $0.03 (Business $999) | Google Jobs (many boards and career sites) |
| SerpApi (google_jobs) | $2.50 (Starter $25 for 1,000 searches) | $0.59 (Volume $1,475) | Google Jobs |
| Bright Data LinkedIn Jobs scraper | $1.50 (pay as you go) | $0.75 to $0.98 (subscription plans) | |
| Bright Data job datasets | $2.50 ($250 minimum order) | By quote | Several boards, pre-collected |
| Scrape.do (scrape boards yourself) | From 1 credit per page; Hobby $29 for 250,000 credits | Advanced $699 for 10M credits | Whatever boards you can fetch and parse |
How we normalized: price per search divided by 10 postings. SerpApi assumes one search per page of 10, implied by its pricing page. Scrape.do bills 1 credit for a datacenter request, 5 with rendering, 10 or 25 with residential proxies, and you write the parsers.
Frequently asked questions
What is the best API for scraping job postings?
Can I scrape Indeed job postings with an API?
Does a job postings API return the salary?
How many job postings can I get in one request?
Can I filter job postings by remote, date posted and employment type?
How do I check if a job posting is still open?
Ujeebu figures come from our own API calls and health checks; competitor facts come from each vendor's public pricing and documentation pages, checked on . Prices change; check the vendor page before you buy.
Ujeebu publishes this page and sells one of the products on it. We do our best to keep it accurate and fair; if you see an error or a price that changed, please let us know.
Test it on your own targets
Benchmarks and price tables only go so far. Run your real URLs through two or three of these APIs during their free trials and compare success rate and cost per successful page.