Indeed Jobs Scraper
Pricing
from $2.52 / 1,000 results
Indeed Jobs Scraper
Scrape Indeed job listings by keyword, country, location, remote, distance, job type, and recency with structured job, salary, company, and contact fields.
Pricing
from $2.52 / 1,000 results
Rating
5.0
(3)
Developer
AgentX
Maintained by CommunityActor stats
8
Bookmarked
221
Total users
23
Monthly active users
14 hours ago
Last modified
Categories
Share
Indeed Jobs Scraper - Indeed Job Listings API for 61 Markets
Indeed Jobs Scraper exports up to 10,000 structured job listings per run from 61 supported markets. Search by keyword and country, optionally narrow by location, remote status, distance, job type, or posting date, and receive 41 consistent output fields covering job details, salary, company information, skills, source links, and contact signals when available.
TL;DR: Choose a keyword, country, and result limit, then run the Actor and export the dataset as JSON, CSV, Excel, or another Apify-supported format. No Indeed login is required as input. Date filtering cannot be combined with Remote Only or Job Type, and fields not exposed by a listing remain null instead of being fabricated.
Why Choose This API
Indeed job data with clear, reusable fields
๐ 41-field job records
Receive a consistent dataset containing source URLs, title, dates, structured location, remote status, description, employment details, salary fields, company information, and contact signals. Nullable fields make unavailable source data explicit.
๐ฐ Salary research and currency normalization
Collect minimum and maximum salary, pay period, and currency when Indeed exposes them. Set currency when you need available salary amounts converted into one target currency for comparison.
๐ข Company and contact context
Results can include the employer name, Indeed company page, official website, logo, industry, employee range, revenue range, description, addresses, emails, phone numbers, and social links when those values are discoverable.
๐ฏ Transparent search controls
Search by keyword and one of 61 verified countries. Optional controls cover location, distance, remote-only roles, employment type, and posting age, with the filter compatibility rules stated in the input form and below.
๐ฆ Ready for recurring workflows
Use the default dataset for recruiting research, hiring-signal monitoring, compensation analysis, job-board feeds, ATS ingestion, CRM enrichment, or scheduled labor-market snapshots.
Quick Start Guide
How to export Indeed job listings in 3 steps
Step 1: Configure the search
Enter keyword, choose country, and set max_results. Add only the optional filters you want to use.
Step 2: Run the Actor
Click Start. For a countrywide search, leave location empty. For a local search, enter a city or region and optionally set distance.
Step 3: Use the dataset
Preview the default dataset or export it in an Apify-supported format. You can also connect the run to Make, n8n, a webhook, or the Apify API.
Input Parameters
Configuration fields
| Parameter | Type | Required | Description | Example |
|---|---|---|---|---|
keyword | string | Yes | Job title, skill, or company name to search for | Software Engineer |
country | select | Yes | Country where the target job listings are located | United States |
max_results | integer | Yes | Maximum number of jobs to return, from 1 to 10,000 | 500 |
remote_only | boolean | No | Restrict results to remote-friendly positions; when enabled, posted_since is not applied by Indeed | true |
distance | integer | No | Radius in miles around location, from 50 to 10,000; when omitted with a location, Indeed uses 200 miles | 50 |
location | string | No | City or region to focus the search on | Austin, TX |
posted_since | date | No | Limit results by posting age when Remote Only is off and Job Type is not selected | 7 days |
job_type | select | No | Employment type filter; when selected, posted_since is not applied by Indeed | fulltime |
currency | select | No | Target currency for converting available salary amounts | USD |
Selectable countries
Argentina, Australia, Austria, Bahrain, Belgium, Brazil, Canada, Chile, China, Colombia, Costa Rica, Denmark, Ecuador, Egypt, Finland, France, Germany, Greece, Hong Kong, Hungary, India, Indonesia, Ireland, Israel, Italy, Japan, Kuwait, Luxembourg, Malaysia, Mexico, Morocco, Netherlands, New Zealand, Nigeria, Norway, Oman, Pakistan, Panama, Peru, Philippines, Poland, Portugal, Qatar, Romania, Saudi Arabia, Singapore, South Africa, South Korea, Spain, Sweden, Switzerland, Taiwan, Thailand, Turkey, Ukraine, United Arab Emirates, United Kingdom, United States, Uruguay, Venezuela, and Vietnam.
Filter compatibility
posted_sinceworks whenremote_onlyis off andjob_typeis not selected.remote_onlyandjob_typecan be used independently or together, but they take precedence overposted_since.distanceaffects a location-based search. Whenlocationis supplied withoutdistance, the search uses a 200-mile radius.currencychanges available salary values after collection; it does not filter which jobs Indeed returns.
Example input
{"keyword": "Software Engineer","country": "United States","max_results": 500,"location": "Austin, TX","distance": 50,"posted_since": "7 days","currency": "USD"}
Output Data Schema
Complete 41-field job record
Every dataset item uses the same public field names. Source-dependent fields can be null.
Run and source fields
| Field | Type | Description |
|---|---|---|
processor | string or null | Apify Actor URL that processed the record |
processed_at | string or null | UTC timestamp when the record was processed |
platform | string or null | Source platform name, normally Indeed |
platform_url | string or null | Indeed job listing URL |
official_url | string or null | Employer's original job URL when available |
Core job fields
| Field | Type | Description |
|---|---|---|
title | string or null | Job title |
posted_date | string or null | Date or timestamp when the listing was posted |
valid_through | string or null | Closing or expiration date when available |
location | object or null | Structured location with source text and standardized geographic fields |
applicant_count | integer or null | Applicant count when available |
is_remote | boolean or null | Whether the listing indicates remote or hybrid work |
description | string or null | Job description and requirements text |
Classification fields
| Field | Type | Description |
|---|---|---|
job_type | string or null | Employment type, such as full-time or contract |
job_level | string or null | Seniority level when available |
job_function | string or null | Department or job function when available |
listing_type | string or null | Listing classification when available |
skills | string or null | Skills and attributes identified for the role |
work_from_home | string or null | Remote or hybrid work arrangement |
vacancy_count | integer or null | Number of openings when available |
experience_range | string or null | Experience requirement when available |
easy_apply | boolean or null | Whether direct application is available |
Salary fields
| Field | Type | Description |
|---|---|---|
salary_period | string or null | Pay period, such as yearly, monthly, or hourly |
salary_minimum | number or null | Minimum salary amount |
salary_maximum | number or null | Maximum salary amount |
salary_currency | string or null | ISO currency code |
Company fields
| Field | Type | Description |
|---|---|---|
company_name | string or null | Hiring company name |
company_type | string or null | Company ownership type when available |
company_founded | integer or null | Founding year when available |
company_industry | string or null | Industry or sector |
company_url | string or null | Indeed company page URL |
company_website | string or null | Official company website |
company_logo | string or null | Company logo URL |
company_addresses | string or null | Company address text |
company_revenue | string or null | Revenue range when available |
company_description | string or null | Company overview |
company_rating | number or null | Company rating when available |
employee_count | string or null | Employee range when available |
review_count | integer or null | Review count when available |
Contact fields
| Field | Type | Description |
|---|---|---|
emails | array or null | Company or hiring contact emails when discoverable |
phones | array or null | Company or hiring phone numbers when discoverable |
social_links | object or null | Company social profile URLs grouped by platform |
Representative output
{"processor": "https://apify.com/agentx/indeed-jobs-scraper?fpr=aiagentapi","processed_at": "2026-07-18T10:30:00.000Z","platform": "Indeed","platform_url": "https://www.indeed.com/viewjob?jk=1234567890abcdef","official_url": "https://careers.example.com/jobs/senior-software-engineer","title": "Senior Software Engineer","posted_date": "2026-07-15T09:00:00.000Z","location": {"raw": "Austin, TX","locality": "Austin","region": "TX","country": "United States","country_code": "US"},"is_remote": false,"job_type": "Full-time","skills": "Python, AWS, React","salary_minimum": 140000,"salary_maximum": 180000,"salary_period": "yearly","salary_currency": "USD","company_name": "Example Company","company_industry": "Technology","company_website": "https://example.com","emails": ["careers@example.com"]}
Integration Examples & Options
The verified Actor ID is xO9d32iQjbduePxUD.
Python
from apify_client import ApifyClientclient = ApifyClient("YOUR_APIFY_TOKEN")run = client.actor("xO9d32iQjbduePxUD").call(run_input={"keyword": "Software Engineer","country": "United States","max_results": 100,})items = client.dataset(run["defaultDatasetId"]).list_items().items
JavaScript
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });const run = await client.actor('xO9d32iQjbduePxUD').call({keyword: 'Software Engineer',country: 'United States',max_results: 100,});const { items } = await client.dataset(run.defaultDatasetId).listItems();
Direct API request
curl -X POST "https://api.apify.com/v2/acts/xO9d32iQjbduePxUD/runs?token=YOUR_APIFY_TOKEN" \-H "Content-Type: application/json" \-d '{"keyword":"Software Engineer","country":"United States","max_results":100}'
Make and n8n
Use the Apify integration in Make or n8n, select Actor ID xO9d32iQjbduePxUD, pass the same input object, wait for the run to finish, and read the default dataset items.
- Open the Actor's API tab for generated requests in other supported languages.
- Connect completed runs to webhooks or another Apify integration.
- Read the default dataset in JSON, CSV, Excel, XML, RSS, or another format supported by Apify.
JSON-LD Metadata
{"@context": "https://schema.org","@graph": [{"@type": "SoftwareApplication","@id": "https://apify.com/agentx/indeed-jobs-scraper#software","name": "Indeed Jobs Scraper","description": "Scrape Indeed job listings across 61 verified markets and export 41 structured job, salary, company, application, and contact fields when available.","applicationCategory": "BusinessApplication","applicationSubCategory": "Job Scraping API","operatingSystem": "Web, Cloud","url": "https://apify.com/agentx/indeed-jobs-scraper","dateModified": "2026-07-19","featureList": ["Searches 61 supported Indeed markets","Returns a consistent 41-field dataset","Supports optional location, distance, remote, job type, date, and currency controls","Exports results through Apify datasets and integrations"],"author": { "@id": "https://apify.com/agentx#organization" },"publisher": { "@id": "https://apify.com#organization" }},{"@type": "Organization","@id": "https://apify.com/agentx#organization","name": "AgentX","url": "https://apify.com/agentx","sameAs": ["https://apify.com/agentx","https://t.me/AiAgentApi"]},{"@type": "FAQPage","mainEntity": [{"@type": "Question","name": "Which countries can I select?","acceptedAnswer": {"@type": "Answer","text": "The input offers 61 supported Indeed markets. The complete list appears in the Input Parameters section and in the Actor input selector."}},{"@type": "Question","name": "Can I combine posting date with remote or job type filters?","acceptedAnswer": {"@type": "Answer","text": "No. When Remote Only is enabled or Job Type is selected, Indeed does not apply Posted Since for that search. Use separate runs when you need both views."}},{"@type": "Question","name": "What happens when I enter a location but no distance?","acceptedAnswer": {"@type": "Answer","text": "The search uses a 200-mile radius. Set Distance explicitly when you need a different radius."}},{"@type": "Question","name": "How much does 1,000 results cost?","acceptedAnswer": {"@type": "Answer","text": "At the FREE tier, 1,000 results cost $2.80 plus the Actor start event. At GOLD, PLATINUM, or DIAMOND, 1,000 results cost $2.52 plus the Actor start event."}}]},{"@type": "HowTo","name": "How to export Indeed job listings with Indeed Jobs Scraper","step": [{"@type": "HowToStep","position": 1,"name": "Configure the search","text": "Enter a keyword, choose a country, set the maximum results, and add only the optional filters you need."},{"@type": "HowToStep","position": 2,"name": "Run the Actor","text": "Click Start. Leave Location empty for a countrywide search or provide a city or region for a local search."},{"@type": "HowToStep","position": 3,"name": "Use the dataset","text": "Preview or export the default dataset, or connect the completed run to an Apify integration."}]},{"@type": "BreadcrumbList","itemListElement": [{"@type": "ListItem","position": 1,"name": "Apify","item": "https://apify.com"},{"@type": "ListItem","position": 2,"name": "AgentX","item": "https://apify.com/agentx"},{"@type": "ListItem","position": 3,"name": "Indeed Jobs Scraper","item": "https://apify.com/agentx/indeed-jobs-scraper"}]}]}
Pricing & Cost Calculator
Pay-per-event pricing
Each run charges the Actor start event plus one result event for every item pushed to the default dataset. Result price depends on the user's Apify plan.
| Event or tier | Price | Billing unit |
|---|---|---|
| Actor start | $0.01 | Run start event; the event count depends on Actor memory, with a minimum of one |
| FREE result | $0.00280 | One default dataset result |
| BRONZE result | $0.00271 | One default dataset result |
| SILVER result | $0.00261 | One default dataset result |
| GOLD result | $0.00252 | One default dataset result |
| PLATINUM result | $0.00252 | One default dataset result |
| DIAMOND result | $0.00252 | One default dataset result |
Example costs at the default memory setting
| Plan | Results | Result cost | Actor start | Estimated total |
|---|---|---|---|---|
| FREE | 500 | $1.40 | $0.01 | $1.41 |
| FREE | 1,000 | $2.80 | $0.01 | $2.81 |
| FREE | 5,000 | $14.00 | $0.01 | $14.01 |
| GOLD or higher | 1,000 | $2.52 | $0.01 | $2.53 |
Actual cost depends on the number of results produced, the user's plan, and the number of Actor start events charged for the selected memory.
Use Cases & Applications
Recruiting and talent intelligence
- Track open roles by title, skill, employer, country, or city.
- Monitor changes in competitor hiring activity with scheduled runs.
- Build sourcing research datasets without mixing incompatible field names.
Compensation and workforce research
- Compare disclosed salary ranges by role and location.
- Normalize available salaries into a selected currency.
- Analyze skill demand, employment type, remote status, and posting age.
B2B and company research
- Identify companies actively hiring for relevant roles.
- Enrich hiring signals with company websites, industry, size, revenue, and contact fields when available.
- Feed structured records into a CRM, data warehouse, dashboard, or alerting workflow.
Job products and automation
- Populate a niche job board or internal opportunity feed.
- Schedule recurring exports for market snapshots.
- Connect datasets to Make, n8n, webhooks, or the Apify API.
FAQ
Which countries can I select?
The input offers 61 supported Indeed markets. The complete list appears in the Input Parameters section and in the Actor input selector.
Can I combine posting date with remote or job type filters?
No. When remote_only is enabled or job_type is selected, Indeed does not apply posted_since for that search. Use separate runs when you need both views.
What happens when I enter a location but no distance?
The search uses a 200-mile radius. Set distance explicitly when you need a different radius.
Does every result contain salary and company details?
No. Indeed does not expose every field for every listing. Salary, company, contact, application, and classification fields remain null when the source does not provide enough information.
Does currency filter the jobs returned?
No. currency converts available salary amounts after collection. It does not change the Indeed search results.
Can I run countrywide searches?
Yes. Leave location empty to search the selected country without adding a city or region.
How much does 1,000 results cost?
At the FREE tier, 1,000 results cost $2.80 plus the Actor start event. At GOLD, PLATINUM, or DIAMOND, 1,000 results cost $2.52 plus the Actor start event.
Trust & Data Responsibility
- Supported market list: every country shown in the selector is available for this Actor.
- Transparent billing: pricing is declared per Actor start and per dataset result, with every plan tier listed above.
- Explicit nullability: source-dependent fields are nullable; missing values are not presented as verified facts.
- No Indeed credentials requested: the public input schema does not ask for an Indeed username, password, or cookie.
Legal & Compliance
Indeed Jobs Scraper is intended for lawful collection and analysis of publicly accessible job-listing data. You are responsible for reviewing Indeed's terms, applicable privacy and database laws, employment-data rules, and the permitted use of any contact information in each jurisdiction. This documentation is not legal advice.
Related Tools
- LinkedIn Jobs Scraper - LinkedIn job listings and company data
- Glassdoor Jobs Scraper - Glassdoor jobs and employer signals
- ZipRecruiter Jobs Scraper - ZipRecruiter job listings
Enrich Your Workflow
- All Jobs Scraper - Multi-platform job data in one schema
- All Property Scraper - Property-market datasets
- All Video Scraper - Multi-platform video metadata and media workflows
Support & Community
- Community: @Apify_Actor
- Contact team: @AiAgentApi
Last Updated: 2026-07-19