The most efficient way to extract job listings directly from Indeed Jobs search results.
The Indeed Jobs Scraper is a powerful data extraction tool designed to aggregate job listings from the Indeed Jobs search engine.
Whether you're building a job board, analyzing labor market trends, or automating lead generation for recruitment, this actor delivers structured, clean data in real-time.
- 🌍 Multi-Source Aggregation – Access listings from thousands of job boards via a single Indeed search query.
- 🎯 Laser-Focused Filtering – Filter by specific companies, exact locations, job types (Remote/Contract), and posting dates.
- ⚡ High Performance – Optimized for speed and low-compute usage to save costs.
- 📅 Fresh Data – Scrape "Posted 3 days ago" or "Today" to get the newest opportunities first.
- 🔌 API Ready – Seamlessly integrates with Python, Node.js, Zapier, and Make.com.
The actor accepts the following input parameters in JSON format.
| Parameter | Type | Required | Description | Default | Valid Values |
|---|---|---|---|---|---|
countryName |
String | No | The country context for the Indeed Search domain | "all" | "usa", "uk", "india", etc. |
includeKeyword |
String | Yes | The main search terms or specific skills | - | Any search string (e.g., "React", "Remote", "Marketing Manager") |
locationName |
String | No | Specific city, state, or region | - | Any location string (e.g., "San Francisco, CA") |
companyName |
String | No | Filter listings to a specific employer | - | Any company name (e.g., "Indeed", "Microsoft") |
jobType |
String | No | Filters by employment type | - | FULLTIME, PARTTIME, CONTRACTOR, INTERN |
datePosted |
String | No | How recent the jobs should be | "month" | today, 3days, week, month |
pagesToFetch |
Integer | No | Number of pagination pages to scrape | 1 | Positive integers |
{
"countryName": "usa",
"locationName": "new york",
"includeKeyword": "software engineer, python",
"companyName": "indeed",
"jobType": "FULLTIME",
"datePosted": "week",
"pagesToFetch": 3
}
The results are stored in the default Apify dataset. You can download them in JSON, CSV, Excel, or XML formats.
[
{
"job_title": "Senior Frontend Developer",
"company_name": "Tech Corp Inc.",
"location": "New York, NY (Remote)",
"posted_via": "LinkedIn",
"salary": "$120,000 - $150,000 a year",
"date": "2025-03-25",
"job_type": "Full-time",
"URL": "https://www.indeed.com/search?..."
}
]
- job_title: The official designation of the role.
- company_name: The organization hiring.
- location: Geographical location or "Remote" status.
- posted_via: The original platform where Indeed found the job (e.g., Monster, Greenhouse, LinkedIn).
- salary: Pay range (if provided by the employer).
- URL: Direct link to the job application or listing.
- Deploy on Apify – Run the actor directly from the Apify platform.
- Schedule & Automate – Set up periodic runs to keep your job database updated.
- Export Data – Integrate with your CRM, website, or analytics platform.
- No Coding Required – Easy-to-use with minimal setup.
- Saves Time – Automates job data collection.
- Customizable – Supports tailored scraping configurations.
You can run this actor via the Apify API using the official client libraries.
from apify_client import ApifyClient
# Initialize the client with your API token
client = ApifyClient("YOUR_APIFY_TOKEN")
# Prepare the Actor input
run_input = {
"countryName": "usa",
"includeKeyword": "Data Scientist",
"datePosted": "3days",
"pagesToFetch": 1,
}
# Run the Actor and wait for it to finish
run = client.actor("orgupdate/indeed-jobs-scraper").call(run_input=run_input)
# Fetch and print Actor results from the run's dataset (if there are any)
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item)
import { ApifyClient } from 'apify-client';
const client = new ApifyClient({
token: 'YOUR_APIFY_TOKEN',
});
const input = {
countryName: 'uk',
includeKeyword: 'DevOps',
jobType: 'CONTRACTOR',
};
(async () => {
// Run the Actor and wait for it to finish
const run = await client.actor('orgupdate/indeed-jobs-scraper').call(input);
// Fetch and print Actor results from the run's dataset (if there are any)
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
console.dir(item);
});
})();
Don't just scrape data—act on it. You can integrate this actor with:
- Zapier / Make.com: Trigger an email or Slack notification whenever a new job matching your criteria is posted.
- Indeed Sheets: Automatically save new job listings into a spreadsheet for analysis.
- Slack/Discord: Create a bot that alerts your community about new job openings.
- Job Aggregators & Boards: Populate your niche job board with fresh content daily without manual entry.
- HR & Recruitment: Analyze competitor hiring strategies by tracking their open positions.
- Lead Generation: Find companies currently hiring for specific roles to pitch your B2B services.
- Salary Research: Aggregate salary data across different regions and titles to create market reports.
If you encounter any issues or have feature requests, please contact us through the Apify Console or check the actor page.
Happy Scraping! 🚀