Indeed & LinkedIn Jobs Scraper - Salaries, Descriptions, Emails
Under maintenancePricing
from $1.49 / 1,000 jobs
Indeed & LinkedIn Jobs Scraper - Salaries, Descriptions, Emails
Under maintenance$1.49 per 1,000 jobs, no start fee. Scrape job listings from Indeed and LinkedIn in one run: title, company, location, salary, full description, apply link, recruiter emails and company details. 70+ countries, date and remote filters. CSV, Excel or JSON.
Pricing
from $1.49 / 1,000 jobs
Rating
0.0
(0)
Developer
Zaver
Maintained by CommunityActor stats
0
Bookmarked
4
Total users
3
Monthly active users
a day ago
Last modified
Categories
Share
Indeed & LinkedIn Jobs Scraper — Salaries, Descriptions, Apply Links and Emails
Scrape job listings from Indeed and LinkedIn in a single run. Enter job titles and locations and export every matching job with title, company, location, salary, full description, apply link, recruiter emails and company details. No login, no cookies, no API key. Pay per job, no start fee, descriptions included.
⭐ Two job boards, one table · 70+ countries · salary and full description · date, job type and remote filters · duplicates removed · proxies included · API and MCP ready
What does the Indeed & LinkedIn Jobs Scraper do?
It runs each of your search terms in each of your locations on Indeed and LinkedIn, merges the results into one consistent format and removes duplicates. You get one row per job, with the same column names whichever board it came from.
| You enter | You get |
|---|---|
Job titles or keywords, such as software engineer | Matching jobs from both boards |
Locations, such as New York, NY or London | Jobs within your chosen radius |
| A country | The right Indeed country site, from 70+ supported |
| Filters | Only recent, remote, full-time, contract or internship jobs |
What data does it extract?
Job fields
| Field | Description |
|---|---|
site | indeed or linkedin |
title | Job title |
company | Employer name |
location | City, state or region, country |
datePosted | Posting date (YYYY-MM-DD) |
jobType | Full-time, part-time, contract, internship |
isRemote | true for remote jobs |
jobLevel, jobFunction | Seniority and function (LinkedIn) |
description | Full job description, as Markdown or HTML |
jobUrl | Link to the listing on the job board |
applyUrl | Direct link to the employer's application page, when published |
emails | Email addresses found in the description |
Salary fields
| Field | Description |
|---|---|
salaryMin, salaryMax | Pay range |
salaryInterval | yearly, monthly, weekly, daily or hourly |
salaryCurrency | Currency code |
salarySource | direct_data when the board published it, description when parsed from the text |
Company fields
| Field | Description |
|---|---|
companyIndustry | Industry |
companyUrl, companyWebsite | Company page on the board and the company's own site |
companyLogo | Logo URL |
companyEmployees, companyRevenue | Size and revenue bands (Indeed) |
companyAddresses, companyDescription | Head office and profile text (Indeed) |
Every row also carries searchTerm and searchLocation, so a run with many searches stays easy to filter. Fields a board does not publish are left out rather than filled with blanks.
Why use this job scraper
Two boards for one price
Most job scrapers cover one site, so you pay twice and then reconcile two formats. Here Indeed and LinkedIn arrive in one table with identical column names.
Full descriptions are included
Descriptions are what make job data useful for matching, skills analysis and AI. They are part of the base price, including on LinkedIn, where many tools charge extra or skip them.
Salary data you can compare
Indeed publishes pay on a large share of listings. Turn on Convert salaries to annual to bring hourly, weekly and monthly pay to one yearly figure.
No start fee, and you only pay for jobs you receive
Starting a run is free. You are charged right after each batch of jobs is saved, so a run you stop early costs only what it delivered. Duplicates and failed searches are free.
No login or cookies
The Actor reads public job listings. You do not provide a LinkedIn or Indeed account, so there is no account to get restricted.
How to scrape Indeed and LinkedIn jobs
- Open the Actor and enter Job titles or keywords, one per line.
- Add Locations, or leave them empty to search the whole country.
- Pick the Country for Indeed. LinkedIn uses the location text only.
- Set Max jobs per search and any filters: posted within, job type, remote only.
- Press Start. Export as CSV, Excel, JSON or XML, or read the dataset through the API.
💡 For daily monitoring, set Posted within (hours) to
24and schedule the Actor once a day. You get only new jobs each morning.
Input example
{"searchTerms": ["software engineer", "data analyst"],"locations": ["New York, NY", "Austin, TX"],"sites": ["indeed", "linkedin"],"country": "usa","maxJobsPerSearch": 200,"postedWithinHours": 168,"remoteOnly": false,"linkedinDescriptions": true,"annualSalary": true}
| Field | Type | Description |
|---|---|---|
searchTerms | array | Required. Job titles, skills or company names, one per line. |
locations | array | Cities, states or countries. Empty means the whole country. |
sites | array | indeed, linkedin or both. Default both. |
country | string | Indeed country site. Default usa. |
maxJobsPerSearch | integer | Jobs per term, location and site. Default 100, maximum 1,000. |
postedWithinHours | integer | Only jobs from the last N hours. 0 means any time. |
jobType | string | fulltime, parttime, contract or internship. |
remoteOnly | boolean | Only remote jobs. |
distance | integer | Radius in miles. Default 50. |
linkedinDescriptions | boolean | Fetch full LinkedIn descriptions, level, industry and emails. Default on. |
descriptionFormat | string | markdown or html. |
annualSalary | boolean | Convert all pay to yearly. |
maxItems | integer | Cap on jobs for the whole run. 0 means no cap. |
Output example
{"site": "indeed","title": "Senior Software Engineer","company": "Acme Health","location": "New York, NY, US","datePosted": "2026-09-27","jobType": "fulltime","isRemote": false,"salaryMin": 150000,"salaryMax": 185000,"salaryInterval": "yearly","salaryCurrency": "USD","salarySource": "direct_data","jobUrl": "https://www.indeed.com/viewjob?jk=5e409e577046abcd","applyUrl": "https://careers.acmehealth.com/jobs/4821","emails": ["talent@acmehealth.com"],"description": "**About the role**\n\nYou will design and build services that ...","companyIndustry": "Health Care","companyWebsite": "https://www.acmehealth.com","companyEmployees": "1,001 to 5,000","searchTerm": "software engineer","searchLocation": "New York, NY"}
Pricing
Pay per job. No start fee, no monthly rental, no minimum.
| Event | Charged for | Price |
|---|---|---|
job-scraped | each unique job delivered, description included | $1.49 / 1,000 |
| You export | You pay |
|---|---|
| 1,000 jobs | $1.49 |
| 10,000 jobs | $14.90 |
| 100,000 jobs | $149.00 |
Proxies are included. Duplicate jobs, searches that fail and searches that return nothing are free.
Use cases
Job boards and aggregators
Fill a niche job board with fresh listings. Schedule daily runs with Posted within set to 24 hours and de-duplicate on jobUrl.
Recruiting and staffing lead generation
Companies that are hiring are companies that buy recruiting services. Export who is hiring for which roles, with emails, companyWebsite and companyEmployees, and you have a prospect list.
B2B sales intelligence
Hiring signals reveal budgets and priorities. A company posting five data engineering roles is about to spend on data tooling. Search by skill or tool name to find them.
Salary benchmarking
Collect pay ranges by title and city. With annual conversion on, you can compare markets directly in a spreadsheet.
Labour market and skills research
Track which skills appear in job descriptions over time. Full descriptions in Markdown are ready for keyword counts or an LLM.
Job search automation
Collect matching jobs across both boards every morning and send them to a sheet, Slack or your own matching model.
FAQ
Do I need an Indeed or LinkedIn account? No. The Actor reads public listings without logging in.
How many jobs can I get per search? Each board stops a single search at about 1,000 results. To collect more, split the search: add more locations, more specific titles, or run by posting date.
Why did LinkedIn return fewer jobs than I asked for? LinkedIn limits how fast listings can be read. The Actor rotates proxies and retries, but a broad search can still end early. Narrower searches by city or title return more in total. You are billed only for jobs delivered.
How fast is it? Indeed returns about 500 jobs with full descriptions in under a minute. LinkedIn takes 3 to 5 seconds per job when full descriptions are on. Turn Get full LinkedIn descriptions off for a faster listing-only export.
Are salaries always present? No. They appear when the employer or the board publishes them. Coverage is highest on Indeed in the United States.
Can I combine the date filter with job type and remote-only? On LinkedIn, yes. Indeed accepts only one of these groups per search, and the date filter takes priority. Remote-only is still applied to the results afterwards.
Which countries are supported? Indeed is available in 70+ countries from the Country list. LinkedIn is global and uses the location you type.
Are other job boards supported? Not at the moment. Glassdoor, ZipRecruiter, Google Jobs and Naukri currently block automated access, so they are left out rather than returning partial data.
I set a date filter but the board showed older jobs. Are they in my export? No. Job boards let promoted and reposted listings through their own date filter. The Actor checks every posting date itself and drops listings older than your window. Dropped listings are free.
Are duplicates removed? Yes. A job found by several searches in the same run is delivered and billed once.
Integrations
- Apify API - start runs and fetch datasets from Python, Node.js, cURL or any HTTP client.
- MCP server - call this Actor as a tool from Claude, Cursor, ChatGPT agents and any MCP client.
- No-code - Make, Zapier, n8n, Google Sheets, Airtable, Slack, webhooks.
- Schedules - run daily for new jobs and append to the same dataset.
- Exports - JSON, JSONL, CSV, Excel (XLSX), XML, HTML table.
Related actors
- Google Search Results Scraper - organic results, news and People Also Ask
- Google Maps Scraper - places with ratings, phone, website and GPS
- Google Places Scraper - local businesses by keyword and location
- Google Shopping Scraper - products, prices, sellers and ratings
- Google Images Scraper · Google Videos Scraper · Google Patents Scraper
- Reddit Scraper - posts, comments, search, users and communities
- Reddit Comments Scraper - every comment and nested reply from any post
- Reddit Search Scraper - posts, communities and users by keyword
- Reddit Lead Finder - people asking for what you sell, scored by buying intent
Credits
Built on the open-source JobSpy library (MIT License).
Not affiliated with, endorsed by or sponsored by Indeed or LinkedIn. This Actor reads only publicly available job listings and does not log in. You are responsible for using the data in line with applicable laws and each site's terms.