Linkedin Jobs Scraper
Pricing
from $1.00 / 1,000 results
Linkedin Jobs Scraper
Search LinkedIn jobs by keyword, location, and company. Set a result limit or collect every available matching job
Pricing
from $1.00 / 1,000 results
Rating
0.0
(0)
Developer
API ninja
Maintained by CommunityActor stats
0
Bookmarked
3
Total users
3
Monthly active users
2 days ago
Last modified
Categories
Share
What does LinkedIn Jobs Scraper do?
LinkedIn Jobs Scraper finds and exports LinkedIn job listings by keyword, location, company, posting date, Easy Apply availability, and applicant count. Enter a search such as “Python developer,” choose how many jobs you want, and receive a clean dataset ready for research, analysis, outreach planning, or automation.
The Actor searches LinkedIn Jobs, automatically resolves human-readable company and location inputs, paginates through matching listings, and preserves the complete source record alongside normalized fields. Running it on Apify gives you scheduled runs, monitoring, API access, downloadable datasets, webhooks, and integrations with tools such as Google Sheets, Make, Zapier, and cloud storage.
Key features include:
- 🔎 Search by job title, skill, technology, or keyword
- 📍 Filter by a city, region, or country name
- 🏢 Target one or multiple companies
- 🗓️ Limit results to the past 24 hours, week, or month
- ✅ Find Easy Apply opportunities
- ⚡ Filter for jobs with fewer than 10 applicants
- 📊 Browse a normalized table while retaining the complete raw source data
- ♾️ Set a maximum result count or collect all available matches
Why use LinkedIn Jobs Scraper?
Manually reviewing job searches is slow and difficult to repeat. LinkedIn Jobs Scraper turns search results into structured data that can be filtered, compared, and sent to other systems.
Common use cases include:
- Job market research: compare hiring activity across locations, roles, and companies.
- Lead generation: identify organizations actively hiring for specific skills.
- Recruiting intelligence: monitor titles, workplace arrangements, and hiring signals.
- Career research: build a focused list of relevant roles and Easy Apply openings.
- Trend analysis: schedule recurring searches and track demand for technologies or professions.
- Workflow automation: connect job data to spreadsheets, databases, dashboards, or notification tools.
How to scrape LinkedIn jobs
- Open the Actor and click Try for free.
- Enter a job search query, such as
Python developerorProduct manager. - Set Maximum jobs, or enable Parse all jobs.
- Optionally open the advanced filters and enter a location, company names, posting period, or application filters.
- Click Start and wait for the run to finish.
- Open the Output tab to browse the normalized job table.
- Download the results or connect the dataset to another Apify integration.
No LinkedIn geographic or company IDs are required. The Actor resolves location and company names automatically.
Input
Configure the Actor in the Input tab. A minimal input only needs query:
{"query": "Python developer","maxJobs": 200,"parseAll": false,"location": "London","companies": ["Google", "Amazon"],"timePostedRange": "r604800","earlyApplicant": false,"applyWithLinkedin": true}
| Field | Type | Description |
|---|---|---|
query | String | Required job title, skill, or keyword. |
maxJobs | Integer | Maximum jobs to save when parseAll is disabled. This is a limit, not a guaranteed count. |
parseAll | Boolean | Continue until all available matching search results have been processed. |
location | String | Optional city, region, or country name. |
companies | String array | Optional company names or LinkedIn company URLs. |
timePostedRange | String | Any time, past 24 hours, past week, or past month. |
earlyApplicant | Boolean | Request jobs marked as having fewer than 10 applicants. |
applyWithLinkedin | Boolean | Request Easy Apply jobs only. |
LinkedIn may expose fewer matching or accessible jobs than requested. Consequently, a run with maxJobs: 200 can finish with fewer than 200 records. Partial result pages, removed listings, changing search results, and active filters can all affect the final count.
Output
Each dataset item contains user-friendly fields for the Output table and the complete original job card in rawData:
{"jobTitle": "Junior Python Developer","companyName": "Albany Beck","companyId": "urn:li:fsd_company:818525","companyUrl": "https://www.linkedin.com/company/albany-beck/","companyLogoUrl": "https://media.licdn.com/example-company-logo.jpg","location": "London Area, United Kingdom","workplaceType": "Hybrid","postedAt": "2026-09-08T11:12:54.000Z","easyApply": true,"hiringInsight": "Actively reviewing applicants","isRepost": false,"isVerified": true,"jobUrl": "https://www.linkedin.com/jobs/view/4464477609/","jobId": "4464477609","jobUrn": "urn:li:jobPosting:4464477609","searchQuery": "Python developer","requestedLocationId": "urn:li:geo:90009496","requestedCompanyIds": ["urn:li:fsd_company:818525"],"rawData": {"jobPostingTitle": "Junior Python Developer","jobId": "urn:li:jobPosting:4464477609"}}
You can download the dataset in various formats such as JSON, HTML, CSV, or Excel. The normalized columns are ideal for spreadsheets and dashboards, while rawData is useful when you need fields that are not displayed in the main table.
LinkedIn jobs data table
| Field | Description |
|---|---|
jobTitle | Job listing title. |
companyName | Hiring company name. |
companyLogoUrl | Best available company logo image. |
companyId | LinkedIn company identifier. |
companyUrl | Link to the company page. |
location | Cleaned job location without the workplace suffix. |
workplaceType | Remote, Hybrid, or On-site when provided. |
postedAt | Listing date as an ISO timestamp. |
easyApply | Whether the listing is marked Easy Apply. |
hiringInsight | Hiring signal such as active applicant review or typical review time. |
isVerified | Whether LinkedIn provides a job verification indicator. |
isRepost | Whether the job is marked as reposted. |
jobUrl | Direct link to the LinkedIn job listing. |
jobId | Numeric LinkedIn job identifier. |
rawData | Complete original job card for advanced use. |
How much does it cost to scrape LinkedIn jobs?
The final cost depends on the pricing shown in the Actor’s Pricing tab and the size of your search. This Actor is lightweight and processes results in batches of up to 100 jobs, so smaller limits generally finish faster and use fewer resources.
For predictable runs, begin with 100–200 jobs and review the run cost before increasing the limit. Enabling Parse all jobs can process a much larger result set and therefore cost more. Company and location filters also require brief lookup steps before the job search begins. If your Apify account includes free platform credits, you can use them to test a small run.
Tips and advanced options
- 🎯 Use a specific query such as
senior Python backend engineerinstead of a broad term such asdeveloper. - 📍 Add a location to reduce irrelevant results and improve run speed.
- 🏢 Enter full company names or company page URLs for the best company match.
- 🗓️ Schedule daily searches with the Past 24 hours filter to monitor new openings.
- 🔢 Use a reasonable maximum before enabling Parse all jobs on broad searches.
- 📤 Use Apify integrations or webhooks to send completed datasets to your existing workflow.
- 🔁 Search results can change while a run is active, so repeated runs may return a different order or count.
Access LinkedIn jobs through the Apify API
You can start runs, retrieve datasets, and integrate results programmatically through the Apify API. Replace the placeholders below with your Actor identifier and API token:
curl -X POST \"https://api.apify.com/v2/acts/<username>~linkedin-jobs-scraper/runs?token=<apify_token>" \-H "Content-Type: application/json" \-d '{"query":"Python developer","location":"London","maxJobs":200}'
Related Actor
Need social content rather than vacancies? Use LinkedIn Company Posts Scraper to collect company posts, media, authors, and engagement data.
FAQ, disclaimers, and support
Why did the Actor return fewer jobs than the maximum?
maxJobs is an upper limit. LinkedIn may have fewer matching listings, return partial pages, remove jobs during the run, or restrict results after filters are applied. The Actor continues pagination correctly but cannot create records that are not available in the search results.
Can I search several companies at once?
Yes. Add one company name or LinkedIn company URL per row in the Companies input. The Actor resolves the companies and applies them as a combined search filter.
Can I schedule recurring job searches?
Yes. Use Apify schedules to run the same search hourly, daily, or weekly. You can then use webhooks and integrations to notify a team or export the newest dataset.
Is it legal to scrape LinkedIn job listings?
Scraping publicly available information is generally possible, but laws, contracts, and platform terms vary by country and use case. You are responsible for ensuring that your use complies with LinkedIn’s terms, applicable regulations, privacy rules, and intellectual-property requirements. Avoid collecting or using personal data without a lawful purpose.
What should I do if a run fails?
Check the run log for invalid inputs, unavailable searches, or temporary response errors. The Actor automatically retries failed and malformed requests. If the problem continues, open the Actor’s Issues tab and include the run ID, non-sensitive input, and relevant log lines.
For specialized fields, higher-volume workflows, or a custom LinkedIn data solution, contact the developer through the Issues tab.