Playground Sign in Start free
SERP API

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.

Short answerUpdated

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.

The question

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:

  1. 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.
  2. Ready-made job datasets or board-specific scrapers, such as Bright Data's LinkedIn Jobs scraper or its job datasets, priced per record.
  3. 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).

Real response

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.

Request
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'
Response (trimmed)
{
  "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).

Parameters

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."
Our monitoring

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.

Ujeebu search_type=jobs probes, October 14 to November 1, 2026
MeasureResult
Probes answered with postings857 of 857
Postings per page10 on every run
Mean response time, last 7 days3.13 seconds (336 runs)
title, company_name, location, via, description, apply_options, job_id100% of postings
posted_at (how old the posting is)73.1% of postings
Company logo (thumbnail)67.8% of postings
Credits per page of 105 (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.

Scraping boards directly

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.

Successful fetches / attempts, Ujeebu Scrape API health check, 7 days to November 1, 2026
SiteSuccessNotes
Greenhouse, Ashby, BambooHR, Workday, LinkedIn job pages, Naukri, Remote OK34 of 34 eachCareer-site platforms and these boards fetched every time
SmartRecruiters33 of 33
Lever30 of 30
Dice25 of 25
ZipRecruiter31 of 34Occasional blocks
Glassdoor27 of 33Blocks on some attempts
Wellfound20 of 32Often blocked
Seek (Australia)10 of 21Blocked about half the time
Indeed1 of 10Blocked; 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.

Price

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.

USD per 1,000 job postings, published prices read November 1, 2026
APIEntry priceVolume priceSource 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)LinkedIn
Bright Data job datasets$2.50 ($250 minimum order)By quoteSeveral boards, pre-collected
Scrape.do (scrape boards yourself)From 1 credit per page; Hobby $29 for 250,000 creditsAdvanced $699 for 10M creditsWhatever 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.

FAQ

Frequently asked questions

What is the best API for scraping job postings?

For many sources at once, a Google Jobs API: one query returns postings Google merged from LinkedIn, ZipRecruiter, company career sites and niche boards, with every apply link. Ujeebu returns 10 postings for 5 credits ($0.08 per 1,000 postings on the $49 plan); SerpApi costs $2.50 to $0.59 per 1,000. For one board in depth, Bright Data sells LinkedIn jobs from $1.50 per 1,000 records.

Can I scrape Indeed job postings with an API?

Indeed blocked 9 of our 10 direct fetches in the 7 days to November 1, 2026. Indeed postings do appear in Google Jobs with their apply links, so a Google Jobs API is the practical route.

Does a job postings API return the salary?

When the posting shows one. Ujeebu returns it in detected_extensions.salary; 5 of the 10 Chicago data analyst postings we fetched on November 1, 2026 had a salary range.

How many job postings can I get in one request?

Ten per page. With batch=true and results_count up to 100, Ujeebu collects up to 10 pages (100 postings) in one request, at 5 credits per page.

Can I filter job postings by remote, date posted and employment type?

Yes: remote=true, date_posted (today, 3days, week, month), employment_type (FULLTIME, PARTTIME, CONTRACTOR, INTERN, TEMPORARY) and radius in km around a place. Google applies them loosely: with FULLTIME, 1 of our 10 postings was a contract role.

How do I check if a job posting is still open?

Call search_type=job with the posting's job_id and its title, company and location in search. If Google no longer lists it, the API answers 404 "Job not found."
Sources

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.

  1. SerpApi Google Jobs API
  2. SerpApi pricing
  3. Bright Data: best job APIs
  4. Bright Data Web Scraper API pricing
  5. Scrape.do job board scraping
  6. Scrape.do request costs
  7. Ujeebu SERP API docs (Google Jobs)
  8. Ujeebu AI Citation Index
Related comparisons and guides

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.

Try Ujeebu free All comparisons