Jobs & careers
Indeed Scraper
indeed.com
Indeed is served through a dedicated plugin endpoint rather than the generic page fetch. Give it a query and a location and it returns the jobs already parsed: the title, company and location, the salary with a parsed min and max, the job types, the company rating and a short snippet, plus a clean job URL. Choose a country site, filter by job type, posting age or remote, sort by date, and page through as many as you need. Indeed sits behind Cloudflare and PerimeterX - handled for you.
What you can extract
- Job title, company and a clean job URL
- Location and a remote flag
- Salary text with parsed min/max and currency
- Job types (full time, contract, ...)
- Company rating and review count
- A short job snippet
Dedicated endpoints
/jobs/indeed A job search on Indeed
Indeed job listings for a query and location: a jobs array with title, company, location, salary (min/max), jobTypes, companyRating, snippet and a job url. Choose country, filter with job_type/days/remote, sort, and page with max_results.
How to scrape it
curl -X POST \
-H "X-ScrapeUnblocker-Key: $SU_API_KEY" \
"https://api.scrapeunblocker.com/jobs/indeed?query=software%20engineer&location=Austin%2C%20TX"import requests
resp = requests.post(
"https://api.scrapeunblocker.com/jobs/indeed",
headers={"X-ScrapeUnblocker-Key": SU_API_KEY},
params={"query": "software engineer", "location": "Austin, TX"},
)
print(resp.text)import { ScrapeUnblockerClient } from 'scrapeunblocker';
const su = new ScrapeUnblockerClient({ apiKey: process.env.SU_API_KEY });
const data = await su.indeedJobs('software engineer', {
location: 'Austin, TX',
jobType: 'fulltime',
});
console.log(data); Requests are POST and take their parameters in the query string. Browser rendering always happens - there is no flag to enable.
Example response
{
"query": "software engineer",
"location": "New York",
"country": "us",
"totalResults": 12450,
"resultsCollected": 50,
"jobs": [
{
"jobkey": "a1b2c3d4e5f6",
"title": "Software Engineer, Frontend",
"company": "Ramp",
"companyRating": 4.1,
"companyReviewCount": 320,
"location": "New York, NY (Hybrid)",
"remote": false,
"salary": {
"min": 150000,
"max": 190000,
"currency": "USD",
"text": "$150,000 - $190,000 a year",
"type": "YEARLY"
},
"jobTypes": [
"Full-time"
],
"snippet": "You will build and own frontend systems across the product...",
"posted": "3 days ago",
"url": "https://www.indeed.com/viewjob?jk=a1b2c3d4e5f6"
}
]
} Frequently asked questions
Is it legal to scrape Indeed?
Collecting publicly available Indeed data such as job titles, companies and salaries is lawful in many jurisdictions, but the rules depend on your country, the data you collect and how you use it. Some of it can be personal data, so follow the privacy rules that apply to you. ScrapeUnblocker returns the public page; what you collect and how you use it is your responsibility.
How do I scrape Indeed without getting blocked?
Indeed uses in-house anti-bot protection. ScrapeUnblocker renders the page in a real browser, rotates residential and ISP exits and handles challenges, and the plugin returns the job listings as parsed JSON. In ScrapeUnblocker's benchmark it returned real content on 83.8% of 1,000 calls, about 6.8s per call.
What Indeed data can I get?
The Indeed plugin returns a jobs array for a query and location: title, company and location, a remote flag, salary text with parsed min, max, currency and pay type, job types, company rating and review count, a short snippet, posting age, Indeed's job key and a clean job URL, plus Indeed's own total result count.
Do I need an Indeed API or account?
No. The Indeed plugin returns job listings as JSON without an Indeed API account, publisher account or login. Filter with job_type, days, remote and radius, sort by relevance or date, and page through results with max_results and start, up to 500 jobs per call.
Can I scrape Indeed in a specific country?
Yes. Set country to one of 20 Indeed country sites: us, uk, ca, au, in, ie, de, fr, nl, es, it, at, ch, be, pl, se, sg, za, nz or mx. The default is us. The exit IP follows the chosen site unless you set proxy_country yourself.
How much does it cost to scrape Indeed?
Each request costs 1 credit, from EUR 1.00 per 1,000 requests on pay as you go to about EUR 0.55 per 1,000 on the Ultimate plan. Indeed plugin calls draw from the same plan quota as the rest of the API. Blocks, timeouts and errors on ScrapeUnblocker's side are not billed, and the free trial includes 500 requests with no card.
Related scrapers
Start scraping this site today
Free tier included. No credit card required to test it.