Indeed Jobs Scraper Tool & API avatar

Indeed Jobs Scraper Tool & API

Pricing

$0.10 / 1,000 results

Go to Apify Store
Indeed Jobs Scraper Tool & API

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

Cockroach API

Maintained by Community

Actor stats

0

Bookmarked

3

Total users

2

Monthly active users

a day ago

Last modified

Share

Indeed Jobs Scraper — Extract Job Data from Indeed in 60+ Countries

Output format Countries Jobs per run Data fields

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

CapabilityDescription
🔍Keyword searchSearch by job title, skill, company name, or any keyword
🌍62 countriesSearch Indeed sites worldwide — US, UK, Germany, India, Japan, Brazil, and 56 more
📍Location & radiusCity, state, postal code, or remote — with configurable search radius (0–500 mi)
🏷️Job type filterFull-time, part-time, contract, or internship
🏠Remote filterOnly work-from-home and remote positions
Easy Apply filterOnly jobs with Indeed Easy Apply enabled
📅Posted withinFilter by recency — last 24 hours, 48 hours, or up to 30 days
📄Auto-paginationCollects up to 1,000 results per run with automatic pagination
🏢Rich company dataName, industry, revenue, employee count, CEO, logo, corporate website
💰Salary dataCompensation range, pay interval, and currency when available
📧Contact extractionEmail addresses scraped from job descriptions
🔀Proxy rotationBuilt-in residential proxy support for reliable, uninterrupted scraping

Who uses this scraper?

Use caseWhat you get
📊Salary benchmarkingTrack compensation trends across roles, locations, and industries
🔍Recruiting intelligenceMonitor competitor hiring patterns and open positions
🗃️Job board buildersPower career portals, aggregators, or recommendation engines with fresh data
📈Labor market analyticsAnalyze hiring demand by role, geography, and company size
🎯Job seekersBulk-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)

OptionDescription
LocationCity, state, postal code, or remote — e.g., San Francisco, CA
CountrySelect from 62 Indeed country sites (default: United States)
Search radiusDistance in miles from the location (0 = exact location only, up to 500)
Job typeFull-time, part-time, contract, or internship
Remote onlyExclusively remote / work-from-home positions
Easy Apply onlyOnly jobs with Indeed Easy Apply enabled
Posted withinLimit 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

FieldTypeRequiredDefaultDescription
searchTermstring✅ YesJob title, keyword, or company name
locationstringNoCity, state, postal code, or remote
countrystringNousIndeed country code — seesupported countries
searchRadiusintegerNoSearch radius in miles (0–500)
resultsWantedintegerNo1000Max jobs to collect (5–1,000)
jobTypestringNoFULL_TIME, PART_TIME, CONTRACT, or INTERNSHIP
isRemotebooleanNofalseOnly remote positions
easyApplybooleanNofalseOnly Easy Apply jobs
postedWithinintegerNoOnly jobs posted within this many hours (1–720)

Output fields

Each job listing produces a flat JSON record with 45+ data fields:

FieldTypeDescription
idstringUnique job identifier
sourceNamestringOriginal source name (e.g., LinkedIn, company site)
titlestringJob title
jobUrlstringIndeed job detail page
jobUrlDirectstringDirect application URL (when available)

Company information

FieldTypeDescription
companyNamestringEmployer name
companyUrlstringIndeed company profile page
companyUrlDirectstringEmployer's corporate website
companyIndustrystringIndustry classification
companyNumEmployeesstringEmployee count range
companyRevenuestringRevenue range
companyDescriptionstringBrief company overview
companyLogostringCompany logo image URL
companyHeaderImageUrlstringCompany header/banner image URL
companyAddressPrimarystringPrimary office address
companyAddressesarrayAll office addresses
companyCeoNamestringCEO name
companyCeoPhotoUrlstringCEO photo URL

Location

FieldTypeDescription
location_citystringCity
location_statestringState or province code
location_countrystringCountry code
location_countryNamestringCountry name
location_postalCodestringPostal / ZIP code
location_streetAddressstringStreet address
locationFormattedShortstringShort formatted location string
locationFormattedLongstringLong formatted location string

Dates

FieldTypeDescription
datePostedstringPosting date (YYYY-MM-DD)
dateOnIndeedstringDate indexed by Indeed (ISO 8601)

Job metadata

FieldTypeDescription
isRemotebooleanRemote position indicator
jobTypearrayEmployment type(s) — e.g.,["FULL_TIME"]
attributeLabelsarrayRaw attribute labels (e.g., "Full-time", "Remote")
attributeKeysarrayRaw attribute keys

Compensation

FieldTypeDescription
compensation_intervalstringPay interval:YEARLY, MONTHLY, WEEKLY, HOURLY, or DAILY
compensation_minAmountnumberMinimum salary
compensation_maxAmountnumberMaximum salary
compensation_currencystringCurrency code (e.g.,USD, EUR)
recruitDetailedSalaryobjectDetailed salary breakdown (when available)
recruitWorkSchedulestringWork schedule info (when available)

Description & contacts

FieldTypeDescription
descriptionstringFull job description (HTML)
descriptionTextstringPlain-text job description
emailsarrayContact email addresses extracted from description
rawJobobjectComplete 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:

CodeCountryCodeCountryCodeCountry
ae🇦🇪 United Arab Emiratesil🇮🇱 Israelom🇴🇲 Oman
ar🇦🇷 Argentinain🇮🇳 Indiapa🇵🇦 Panama
at🇦🇹 Austriait🇮🇹 Italype🇵🇪 Peru
au🇦🇺 Australiajp🇯🇵 Japanph🇵🇭 Philippines
be🇧🇪 Belgiumkr🇰🇷 South Koreapk🇵🇰 Pakistan
bh🇧🇭 Bahrainkw🇰🇼 Kuwaitpl🇵🇱 Poland
br🇧🇷 Brazillu🇱🇺 Luxembourgpt🇵🇹 Portugal
ca🇨🇦 Canadama🇲🇦 Moroccoqa🇶🇦 Qatar
ch🇨🇭 Switzerlandmx🇲🇽 Mexicoro🇷🇴 Romania
cl🇨🇱 Chilemy🇲🇾 Malaysiasa🇸🇦 Saudi Arabia
cn🇨🇳 Chinang🇳🇬 Nigeriase🇸🇪 Sweden
co🇨🇴 Colombianl🇳🇱 Netherlandssg🇸🇬 Singapore
cr🇨🇷 Costa Ricano🇳🇴 Norwayth🇹🇭 Thailand
cz🇨🇿 Czech Republicnz🇳🇿 New Zealandtr🇹🇷 Turkey
de🇩🇪 Germanytw🇹🇼 Taiwan
dk🇩🇰 Denmarkua🇺🇦 Ukraine
ec🇪🇨 Ecuadorus🇺🇸 United States
eg🇪🇬 Egyptuy🇺🇾 Uruguay
es🇪🇸 Spainve🇻🇪 Venezuela
fi🇫🇮 Finlandvn🇻🇳 Vietnam
fr🇫🇷 Franceza🇿🇦 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 postedWithin for fresh listings — set to 24 for jobs from the last day
  • 🔀 Combine filtersjobType, isRemote, and easyApply work together. Note: postedWithin cannot 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: 10 to validate your search criteria, then scale up
  • 🌍 Multi-country — Run the same search across multiple countries by scheduling separate runs with different country values
  • 💡 Use remote location — Set location to remote with isRemote: true for 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.


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.