Indeed Jobs Scraper Tool & API
Pricing
$0.10 / 1,000 results
Indeed Jobs Scraper Tool & API
Extract Indeed job listings from 62 countries for just $0.1 per 1K jobs. Get salaries, company profiles, contact emails, job descriptions, and direct apply links. Filter by location, remote jobs, Easy Apply, and job type.
Pricing
$0.10 / 1,000 results
Rating
5.0
(1)
Developer
Cockroach API
Maintained by CommunityActor stats
0
Bookmarked
3
Total users
2
Monthly active users
a day ago
Last modified
Categories
Share
Indeed Jobs Scraper — Extract Job Data from Indeed in 60+ Countries
Scrape job listings from Indeed — the world's largest job search engine. Get structured JSON data with company profiles, salary info, job descriptions, and direct apply links from 62 countries, all delivered to your Apify dataset.
What does this Indeed scraper do?
This Actor searches and extracts job postings from Indeed across 62 countries. Provide a job title or keyword, optionally add location and filters, and receive structured data for every matching listing — automatically paginated, de-duplicated, and ready to export as JSON, CSV, Excel, HTML, or XML.
Key features
| Capability | Description |
|---|---|
| 🔍Keyword search | Search by job title, skill, company name, or any keyword |
| 🌍62 countries | Search Indeed sites worldwide — US, UK, Germany, India, Japan, Brazil, and 56 more |
| 📍Location & radius | City, state, postal code, or remote — with configurable search radius (0–500 mi) |
| 🏷️Job type filter | Full-time, part-time, contract, or internship |
| 🏠Remote filter | Only work-from-home and remote positions |
| ⚡Easy Apply filter | Only jobs with Indeed Easy Apply enabled |
| 📅Posted within | Filter by recency — last 24 hours, 48 hours, or up to 30 days |
| 📄Auto-pagination | Collects up to 1,000 results per run with automatic pagination |
| 🏢Rich company data | Name, industry, revenue, employee count, CEO, logo, corporate website |
| 💰Salary data | Compensation range, pay interval, and currency when available |
| 📧Contact extraction | Email addresses scraped from job descriptions |
| 🔀Proxy rotation | Built-in residential proxy support for reliable, uninterrupted scraping |
Who uses this scraper?
| Use case | What you get |
|---|---|
| 📊Salary benchmarking | Track compensation trends across roles, locations, and industries |
| 🔍Recruiting intelligence | Monitor competitor hiring patterns and open positions |
| 🗃️Job board builders | Power career portals, aggregators, or recommendation engines with fresh data |
| 📈Labor market analytics | Analyze hiring demand by role, geography, and company size |
| 🎯Job seekers | Bulk-download and compare listings across multiple countries at once |
How to use this Indeed data scraper
Step 1 — Enter your search keyword
Provide a search term: a job title, skill, or company name.
Examples:
software engineer,data scientist,Python developer,marketing manager
Step 2 — Configure location & filters (optional)
| Option | Description |
|---|---|
| Location | City, state, postal code, or remote — e.g., San Francisco, CA |
| Country | Select from 62 Indeed country sites (default: United States) |
| Search radius | Distance in miles from the location (0 = exact location only, up to 500) |
| Job type | Full-time, part-time, contract, or internship |
| Remote only | Exclusively remote / work-from-home positions |
| Easy Apply only | Only jobs with Indeed Easy Apply enabled |
| Posted within | Limit to jobs posted in the last N hours (1–720) |
Step 3 — Set result volume
Specify the number of job listings to collect — up to 1,000 per run (minimum 5).
Step 4 — Run and download
Click Run. When complete, your data is available in the Dataset tab. Download in JSON, CSV, Excel, HTML, or XML, or connect via webhooks, Zapier, or Make to pipe data directly into Google Sheets, Airtable, Slack, or your database.
Input parameters
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
searchTerm | string | ✅ Yes | — | Job title, keyword, or company name |
location | string | No | — | City, state, postal code, or remote |
country | string | No | us | Indeed country code — seesupported countries |
searchRadius | integer | No | — | Search radius in miles (0–500) |
resultsWanted | integer | No | 1000 | Max jobs to collect (5–1,000) |
jobType | string | No | — | FULL_TIME, PART_TIME, CONTRACT, or INTERNSHIP |
isRemote | boolean | No | false | Only remote positions |
easyApply | boolean | No | false | Only Easy Apply jobs |
postedWithin | integer | No | — | Only jobs posted within this many hours (1–720) |
Output fields
Each job listing produces a flat JSON record with 45+ data fields:
Job identifiers & links
| Field | Type | Description |
|---|---|---|
id | string | Unique job identifier |
sourceName | string | Original source name (e.g., LinkedIn, company site) |
title | string | Job title |
jobUrl | string | Indeed job detail page |
jobUrlDirect | string | Direct application URL (when available) |
Company information
| Field | Type | Description |
|---|---|---|
companyName | string | Employer name |
companyUrl | string | Indeed company profile page |
companyUrlDirect | string | Employer's corporate website |
companyIndustry | string | Industry classification |
companyNumEmployees | string | Employee count range |
companyRevenue | string | Revenue range |
companyDescription | string | Brief company overview |
companyLogo | string | Company logo image URL |
companyHeaderImageUrl | string | Company header/banner image URL |
companyAddressPrimary | string | Primary office address |
companyAddresses | array | All office addresses |
companyCeoName | string | CEO name |
companyCeoPhotoUrl | string | CEO photo URL |
Location
| Field | Type | Description |
|---|---|---|
location_city | string | City |
location_state | string | State or province code |
location_country | string | Country code |
location_countryName | string | Country name |
location_postalCode | string | Postal / ZIP code |
location_streetAddress | string | Street address |
locationFormattedShort | string | Short formatted location string |
locationFormattedLong | string | Long formatted location string |
Dates
| Field | Type | Description |
|---|---|---|
datePosted | string | Posting date (YYYY-MM-DD) |
dateOnIndeed | string | Date indexed by Indeed (ISO 8601) |
Job metadata
| Field | Type | Description |
|---|---|---|
isRemote | boolean | Remote position indicator |
jobType | array | Employment type(s) — e.g.,["FULL_TIME"] |
attributeLabels | array | Raw attribute labels (e.g., "Full-time", "Remote") |
attributeKeys | array | Raw attribute keys |
Compensation
| Field | Type | Description |
|---|---|---|
compensation_interval | string | Pay interval:YEARLY, MONTHLY, WEEKLY, HOURLY, or DAILY |
compensation_minAmount | number | Minimum salary |
compensation_maxAmount | number | Maximum salary |
compensation_currency | string | Currency code (e.g.,USD, EUR) |
recruitDetailedSalary | object | Detailed salary breakdown (when available) |
recruitWorkSchedule | string | Work schedule info (when available) |
Description & contacts
| Field | Type | Description |
|---|---|---|
description | string | Full job description (HTML) |
descriptionText | string | Plain-text job description |
emails | array | Contact email addresses extracted from description |
rawJob | object | Complete raw job payload from Indeed for deep inspection |
Example output
{"id": "in-abc123def","sourceName": "Acme Corp","title": "Software Engineer","companyName": "Acme Corp","companyIndustry": "Technology Information Internet","companyNumEmployees": "1001 to 5000 employees","companyRevenue": "$1B to $10B revenue","companyUrl": "https://us.indeed.com/cmp/Acme-Corp","companyUrlDirect": "https://acme.example.com","companyLogo": "https://example.com/logo.png","location_city": "San Francisco","location_state": "CA","location_country": "US","location_countryName": "United States","datePosted": "2026-06-05","dateOnIndeed": "2026-06-06T14:30:00Z","jobUrl": "https://us.indeed.com/viewjob?jk=abc123def","jobUrlDirect": "https://acme.example.com/apply","isRemote": false,"jobType": ["FULL_TIME"],"attributeLabels": ["Full-time", "Benefits available"],"compensation_interval": "YEARLY","compensation_minAmount": 120000,"compensation_maxAmount": 180000,"compensation_currency": "USD","companyDescription": "Acme Corp is a leading technology company...","description": "<div>... job description HTML ...</div>","descriptionText": "About Us: Acme Corp is a leading...","emails": ["careers@acme.example.com"]}
Supported countries
This Actor supports 62 countries — every country where Indeed operates:
| Code | Country | Code | Country | Code | Country |
|---|---|---|---|---|---|
ae | 🇦🇪 United Arab Emirates | il | 🇮🇱 Israel | om | 🇴🇲 Oman |
ar | 🇦🇷 Argentina | in | 🇮🇳 India | pa | 🇵🇦 Panama |
at | 🇦🇹 Austria | it | 🇮🇹 Italy | pe | 🇵🇪 Peru |
au | 🇦🇺 Australia | jp | 🇯🇵 Japan | ph | 🇵🇭 Philippines |
be | 🇧🇪 Belgium | kr | 🇰🇷 South Korea | pk | 🇵🇰 Pakistan |
bh | 🇧🇭 Bahrain | kw | 🇰🇼 Kuwait | pl | 🇵🇱 Poland |
br | 🇧🇷 Brazil | lu | 🇱🇺 Luxembourg | pt | 🇵🇹 Portugal |
ca | 🇨🇦 Canada | ma | 🇲🇦 Morocco | qa | 🇶🇦 Qatar |
ch | 🇨🇭 Switzerland | mx | 🇲🇽 Mexico | ro | 🇷🇴 Romania |
cl | 🇨🇱 Chile | my | 🇲🇾 Malaysia | sa | 🇸🇦 Saudi Arabia |
cn | 🇨🇳 China | ng | 🇳🇬 Nigeria | se | 🇸🇪 Sweden |
co | 🇨🇴 Colombia | nl | 🇳🇱 Netherlands | sg | 🇸🇬 Singapore |
cr | 🇨🇷 Costa Rica | no | 🇳🇴 Norway | th | 🇹🇭 Thailand |
cz | 🇨🇿 Czech Republic | nz | 🇳🇿 New Zealand | tr | 🇹🇷 Turkey |
de | 🇩🇪 Germany | tw | 🇹🇼 Taiwan | ||
dk | 🇩🇰 Denmark | ua | 🇺🇦 Ukraine | ||
ec | 🇪🇨 Ecuador | us | 🇺🇸 United States | ||
eg | 🇪🇬 Egypt | uy | 🇺🇾 Uruguay | ||
es | 🇪🇸 Spain | ve | 🇻🇪 Venezuela | ||
fi | 🇫🇮 Finland | vn | 🇻🇳 Vietnam | ||
fr | 🇫🇷 France | za | 🇿🇦 South Africa | ||
gb | 🇬🇧 United Kingdom | ||||
gr | 🇬🇷 Greece | ||||
hk | 🇭🇰 Hong Kong | ||||
hu | 🇭🇺 Hungary | ||||
id | 🇮🇩 Indonesia | ||||
ie | 🇮🇪 Ireland |
Tips & best practices
- 🎯 Be specific — Precise job titles and skills return more relevant results than generic terms
- ⏱️ Use
postedWithinfor fresh listings — set to24for jobs from the last day - 🔀 Combine filters —
jobType,isRemote, andeasyApplywork together. Note:postedWithincannot be combined with these filters (Indeed treats date filtering as a separate search dimension) - 📅 Schedule runs — Use the Apify scheduler for daily or weekly market monitoring
- 🔗 Integrate — Connect via webhooks, Zapier, or Make to pipe data into Google Sheets, Airtable, Slack, or databases
- 📦 Start small — Test with
resultsWanted: 10to validate your search criteria, then scale up - 🌍 Multi-country — Run the same search across multiple countries by scheduling separate runs with different
countryvalues - 💡 Use
remotelocation — Set location toremotewithisRemote: truefor fully remote positions
Frequently asked questions
How many jobs can I scrape per run?
Up to 1,000 jobs per run. For larger volumes, schedule multiple runs with different search terms or locations.
Which countries are supported?
All 62 countries where Indeed operates — including the US, UK, Germany, India, Japan, Brazil, Canada, Australia, and many more. See the full country list.
Can I search for remote jobs?
Yes. Set the location to remote and enable the Remote Only filter. You can also combine isRemote with job type filters.
Why are some output fields empty?
Data availability depends on what the employer provided. Not all listings include compensation data, company descriptions, or direct apply URLs. The scraper returns whatever is available.
Can I combine multiple filters?
Yes — jobType, isRemote, and easyApply can be used together. However, postedWithin cannot be combined with these filters because Indeed treats date filtering as a separate search dimension.
What format is the output?
Each job is a flat JSON object with 45+ fields. You can download the dataset in JSON, CSV, Excel, HTML, or XML from the Apify Console, or access it via the Apify API.
Is this scraper compliant with Indeed's Terms of Service?
This tool retrieves publicly available job listing data. Users are responsible for reviewing and complying with Indeed's Terms of Service, robots.txt, and applicable local laws before using the data commercially.
Can I run this on a schedule?
Yes. Use the Apify Scheduler to run this Actor daily, weekly, or at any interval — ideal for monitoring job market trends or tracking new postings.
Legal disclaimer
This Actor is provided for educational and research purposes. Users must comply with Indeed's Terms of Service, applicable laws, and website policies. The authors assume no liability for misuse of this tool or the data it produces.
Support: For questions, bug reports, or feature requests, please open an issue. Need a custom solution or enterprise support? Contact the team directly.