Indeed Scraper
Pricing
Pay per event
Indeed Scraper
Scrape Indeed job listings with salary, company details, and full descriptions. Search by keyword, location, job type across 18 countries. Pure HTTP — fast and cheap. Export to JSON, CSV, Excel.
Pricing
Pay per event
Rating
0.0
(0)
Developer

Stas Persiianenko
Actor stats
0
Bookmarked
6
Total users
2
Monthly active users
2 days ago
Last modified
Categories
Share
Scrape job listings from Indeed.com and extract structured data including job titles, companies, salaries, locations, descriptions, and more.
What does Indeed Scraper do?
Indeed Scraper extracts job posting data from Indeed, the world's largest job search engine. It returns structured data that you can export as JSON, CSV, or Excel for analysis, monitoring, or integration with your tools.
What data can you extract?
| Field | Description |
|---|---|
| Job title | Full position title |
| Company | Hiring company name + logo URL |
| Location | Job location (city, state, zip, remote) |
| Salary | Salary range (actual or estimated) |
| Job type | Full-time, part-time, contract, etc. |
| Description | Complete job description text and HTML |
| Remote status | Whether the job is remote |
| Posting date | When the job was listed |
| Job URL | Direct link to the listing |
| Employer industry | Company's industry sector |
| Employer size | Number of employees |
| Employer revenue | Company revenue range |
| Employer description | Brief company description |
| Company website | Direct company URL |
Why scrape Indeed?
- Job market research — Analyze hiring trends, in-demand skills, and salary benchmarks across industries and locations
- Recruitment intelligence — Monitor competitor hiring activity and identify talent market dynamics
- Salary benchmarking — Compare compensation packages across companies, roles, and regions
- Lead generation — Identify companies that are actively hiring (growing companies = potential customers)
- Academic research — Study labor market patterns, job description language, and employment trends
- Career planning — Track job availability and requirements for specific roles
How to scrape Indeed job listings
- Go to the Indeed Scraper page on Apify Store.
- Click Try for free to open the actor configuration.
- Enter a job title or keyword (e.g., "software engineer", "data analyst", "marketing manager").
- Enter a location (e.g., "New York, NY", "Remote", "San Francisco, CA").
- Optionally filter by job type, salary, experience level, or date posted.
- Set the maximum number of results you want.
- Click Start and wait for your data.
- Download results as JSON, CSV, or Excel, or connect via the Apify API.
Input example
{"query": "software engineer","location": "New York, NY","maxItems": 100,"jobType": "fulltime","includeDescription": true}
Direct URL scraping
You can also provide Indeed search URLs or job detail URLs directly:
{"urls": ["https://www.indeed.com/jobs?q=python+developer&l=Austin%2C+TX","https://www.indeed.com/viewjob?jk=abc123"],"maxItems": 50}
Supported countries
Search across 18 Indeed country domains: US, UK, Canada, Australia, India, Germany, France, Netherlands, Belgium, Switzerland, Austria, Italy, Spain, Brazil, Mexico, Japan, Singapore, and Hong Kong.
Output example
{"title": "Senior Software Engineer","company": "Cisco","companyUrl": "https://www.indeed.com/cmp/Cisco","companyLogo": "https://d2q79iu7y748jz.cloudfront.net/s/_squarelogo/256x256/logo.png","location": "San Francisco, CA 94105","salary": "$163.6K - $303.1K/year","jobType": ["Full-time"],"datePosted": "2026-03-12T10:00:00.000Z","description": "We are looking for a Senior Software Engineer to join our team...","descriptionHtml": "<b>We are looking for...</b>","jobUrl": "https://www.indeed.com/viewjob?jk=abc123","jobId": "abc123","isRemote": false,"isSponsored": false,"employerIndustry": "Technology","employerSize": "10,000+","employerRevenue": "more than $10B (USD)","employerDescription": "Leading technology company...","scrapedAt": "2026-03-14T01:30:00.000Z"}
Pricing
This actor uses pay-per-event pricing — 3x cheaper than alternatives:
| Event | Price | Description |
|---|---|---|
| Run started | $0.005 | One-time charge per run |
| Job listing scraped | $0.003 | Per job listing extracted |
Cost estimate: Scraping 1,000 job listings costs approximately $3.01 ($0.005 start + $3.00 for listings). Compare to competitors charging $5+ per 1,000 results.
Pure HTTP architecture (no browser overhead) means lower platform costs too.
Tips for best results
- Use specific keywords — "react developer" returns more relevant results than "developer"
- Set
includeDescription: falsefor faster runs when you only need listing summaries - Use filters to narrow results and reduce costs (job type, salary range, date posted)
- Country matters — Set the correct country to search the right Indeed domain
Integrations
Connect Indeed Scraper with your tools and workflows:
- Google Sheets — Export job listings directly to a spreadsheet for tracking and analysis
- Slack — Get notified when new jobs matching your criteria are found
- Zapier — Trigger workflows when new job data is available (e.g., alert hiring managers, update CRM)
- Make — Build automated pipelines: scrape jobs, enrich with Job Posting Enrichment, then push to your ATS
- Webhooks — Send results to your own API endpoint
- Schedule — Run daily or weekly to monitor new job postings automatically
Programmatic access via API
Use the Apify API to run Indeed Scraper from your code.
Python
from apify_client import ApifyClientclient = ApifyClient("YOUR_API_TOKEN")run = client.actor("automation-lab/indeed-scraper").call(run_input={"query": "data analyst","location": "Chicago, IL","maxItems": 50,"includeDescription": True,})for item in client.dataset(run["defaultDatasetId"]).iterate_items():print(f"{item['title']} @ {item['company']} — {item.get('salary', 'N/A')}")
Node.js
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'YOUR_API_TOKEN' });const run = await client.actor('automation-lab/indeed-scraper').call({query: 'data analyst',location: 'Chicago, IL',maxItems: 50,includeDescription: true,});const { items } = await client.dataset(run.defaultDatasetId).listItems();items.forEach(item => console.log(`${item.title} @ ${item.company} — ${item.salary}`));
cURL
curl -X POST "https://api.apify.com/v2/acts/automation-lab~indeed-scraper/runs?token=YOUR_API_TOKEN&waitForFinish=120" \-H "Content-Type: application/json" \-d '{"query": "data analyst", "location": "Chicago, IL", "maxItems": 50}'
Use with AI agents via MCP
Indeed Scraper is available as a tool for AI assistants that support the Model Context Protocol (MCP).
Setup for Claude Code
$claude mcp add --transport http apify "https://mcp.apify.com"
Setup for Claude Desktop, Cursor, or VS Code
Add this to your MCP config file:
{"mcpServers": {"apify": {"url": "https://mcp.apify.com"}}}
Example prompts
Once connected, try asking your AI assistant:
- "Search Indeed for 'software engineer' jobs in San Francisco"
- "Get all remote Python developer jobs posted this week"
Learn more in the Apify MCP documentation.
FAQ
How much does it cost to scrape Indeed?
At $0.003 per listing, scraping 1,000 jobs costs about $3. Apify's free plan includes $5/month of platform credits, so you can scrape ~1,600 job listings per month for free.
How fast is the scraper?
Very fast — it uses pure HTTP requests (no browser), so it can extract 100 jobs in under 10 seconds. A typical run of 50 listings completes in 3-5 seconds.
Does it extract full job descriptions?
Yes. Set includeDescription: true (the default) to get the full job description text and HTML. Set it to false for faster runs when you only need the summary fields.
Can I scrape Indeed in other countries?
Yes. Set the country parameter to search on 18 different Indeed domains including UK, Canada, Australia, Germany, France, India, Japan, and more.
What data formats can I export?
You can download results as JSON, CSV, Excel, XML, or HTML table. You can also access the data via the Apify API or connect it to Google Sheets, Zapier, Make, and other integrations.
Is it legal to scrape Indeed?
This actor is provided for educational and research purposes. Users are responsible for ensuring their use complies with Indeed's Terms of Service and applicable laws. Always use scraped data responsibly.
Why are salary fields missing for some jobs?
Not all Indeed listings include salary information. When employers don't provide a salary range, Indeed may show an estimate (marked accordingly in the data) or no salary at all. Filter results with salary not null to get only listings with salary data.
Can I scrape Indeed on a schedule for job monitoring?
Yes. Use Apify Schedules to run the scraper daily or weekly. Combine with Google Sheets to build a live job tracking dashboard, or use Slack notifications to get alerted when new jobs match your criteria.
The scraper returned fewer results than expected. Why?
Indeed's search results vary by location, keyword specificity, and date filters. Very niche searches may have few listings. Also, maxItems caps the output -- set it higher or to 0 for unlimited. Some Indeed country domains have fewer listings than the US site.
Other job scrapers and lead generation tools
- LinkedIn Jobs Enrichment — Enrich LinkedIn job listings with company and contact data
- Google Maps Lead Finder — Find businesses and leads on Google Maps
- Email Finder — Find email addresses for any company or domain
- Email Enrichment — Enrich and verify email addresses in bulk
- Website Contact Finder — Extract contact details from company websites