LinkedIn Job Scraper
Pricing
from $1.00 / 1,000 results
LinkedIn Job Scraper
Scrape LinkedIn job postings with advanced filters including location, time range, job type, experience level, and work type.
Pricing
from $1.00 / 1,000 results
Rating
0.0
(0)
Developer
Scraptivo
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
0
Monthly active users
3 days ago
Last modified
Categories
Share
LinkedIn Job Scraper collects job postings from LinkedIn and turns them into structured data for hiring research, recruitment analytics, and automated job alerts. Provide a keyword or job title, add optional filters for location, posting date, job type, experience level, and work arrangement, then export title, company, location, skills, description, and application details to JSON, CSV, or Excel. Use it to monitor hiring trends, build job databases, and track competitor recruitment. Pricing starts at $1 per 1,000 jobs.
What can you automate with LinkedIn Job Scraper?
- Build targeted job databases — search by keyword, location, and filters to compile lists of matching postings for analysis or lead generation.
- Monitor hiring trends — track which companies are hiring, which roles are in demand, and how job markets shift over time.
- Power recruitment workflows — feed structured job data into your ATS, CRM, or dashboards to streamline candidate sourcing.
- Analyze competitors — see what roles rivals are hiring for as a signal of growth areas and technology investment.
- Automate job alerts — schedule recurring scrapes and export fresh listings without manual searching.
- Enrich with company data — optionally scrape each company's LinkedIn page for description, follower count, and specialties.
Who is this scraper for?
| Team | Workflow |
|---|---|
| Recruitment & staffing agencies | Build filtered, candidate-ready job pipelines to source roles and clients faster. |
| Market researchers | Analyze skill demand, hiring volume, and salary signals across industries and regions. |
| HR & talent intelligence teams | Monitor competitor hiring and workforce changes over time. |
| Sales & marketing teams | Identify fast-growing companies by their open roles and hiring velocity. |
What data can you collect from LinkedIn?
| Data group | Example fields | How it helps |
|---|---|---|
| Job identity | title, jobId, url, description | Identify and open each posting directly. |
| Company & employer | companyName, companyUrl, companyLogo, industry | Understand who is hiring and their sector. |
| Location & timing | location, city, country, latitude, longitude, datePosted, validThrough | Filter by geography and freshness. |
| Requirements | employmentType, monthsOfExperience, educationLevel, skills | Match roles to candidate profiles. |
How to use LinkedIn Job Scraper
- Open the actor in your Apify console.
- Enter one or more search queries, such as "Python Developer" or "Data Scientist".
- Add optional filters for location, time range, job type, experience level, and remote work.
- Run the actor.
- Export the dataset to JSON, CSV, or Excel, or read it through the API.
{"searchQueries": ["Python Developer"],"locations": ["Germany"],"timeRange": "any","maxItems": 30,"extractCompanyDetails": false,"proxyConfiguration": {"useApifyProxy": true,"apifyProxyGroups": ["RESIDENTIAL"]}}
Example workflow
Build a weekly list of new developer roles
- Run a "Python Developer" search for Germany every Monday.
- Keep postings from the past week that match your required experience level.
- Send new records to Google Sheets or a CRM.
- Deduplicate using the stable
jobIdorurlfield.
Automate and integrate your results
Schedule the actor from the Scheduler tab — a daily cadence suits fast-moving job boards, while weekly is enough for trend reports. Attach a webhook to trigger a downstream pipeline when each run completes, and export to Google Sheets, Make, Zapier, Slack, or a database. For recurring pipelines, call the actor through the Apify API:
curl -X POST "https://api.apify.com/v2/acts/scraptivo/linkedin-job-scraper/runs?token=YOUR_APIFY_TOKEN" \-H "Content-Type: application/json" \-d '{"searchQueries": ["Python Developer"], "locations": ["Germany"], "maxItems": 30}'
When merging multiple runs, deduplicate on the jobId field to keep one record per posting.
Input reference
| Field | Type | Required | Default | What it controls |
|---|---:|---|---|
| searchQueries | array | No | [] | Keywords or job titles to search. |
| startUrls | array | No | [] | Direct LinkedIn job search URLs; overrides searchQueries. |
| locations | array | No | [] | Location names applied to all search queries. |
| timeRange | string | No | any | Posting date: any, past24Hours, pastWeek, pastMonth. |
| jobType | array | No | [] | fullTime, partTime, contract, temporary, internship, volunteer. |
| experienceLevel | array | No | [] | internship, entryLevel, associate, midSenior, director, executive. |
| remote | array | No | [] | onSite, remote, hybrid. |
| maxItems | integer | No | 0 | Maximum postings to scrape (0 = unlimited). |
| extractCompanyDetails | boolean | No | false | Also scrape each company's LinkedIn page. |
| maxConcurrency | integer | No | 5 | Parallel detail page fetches (1–20). |
| proxyConfiguration | object | No | residential | Proxy settings for anti-bot protection. |
Which timeRange value should I use?
past24Hours returns only very fresh postings, pastWeek covers most active hiring, and pastMonth captures a broader picture. any removes the date filter entirely.
Output example
{"jobId": "4412111373","title": "Python Developer","companyName": "DATAGROUP","companyUrl": "https://de.linkedin.com/company/datagroup-se","location": "Krakau, Saxony-Anhalt, Germany","city": "Krakau","country": "DE","datePosted": "2026-05-08T13:38:46.000Z","validThrough": "2026-11-04T13:38:46.000Z","employmentType": "FULL_TIME","industry": "IT-Dienstleistungen und IT-Beratung","educationLevel": "bachelor degree","skills": "","description": "Design and implement robust, scalable Python components...","url": "https://de.linkedin.com/jobs/view/python-developer-at-datagroup-4412111373"}
How much does it cost to scrape LinkedIn?
The actor bills per job: $1 per 1,000 jobs scraped. Each posting written to the dataset counts as one result. A small run of 1,000 postings costs $1; a larger run of 10,000 postings costs $10. Use maxItems to cap output and control spend. In addition to the per-job fee, Apify bills separately for compute and residential proxy usage, which your plan's free monthly units offset.
Reliability and responsible use
The actor uses Apify residential proxies by default and retries failed requests to handle LinkedIn's anti-bot measures. Some fields are conditional — monthsOfExperience or skills can be empty when LinkedIn does not publish them, and latitude/longitude are only present when coordinates are available. It scrapes only publicly visible job postings. You are responsible for complying with LinkedIn's terms and applicable laws when storing or using the data.
Frequently asked questions
Can I scrape specific job types or experience levels?
Yes. Set jobType, experienceLevel, and remote arrays to filter results. Leave any of them empty to include all values.
Can I schedule LinkedIn Job Scraper to run automatically?
Yes. Use the Scheduler tab to run it daily or weekly, or trigger scheduled runs through the API with a cron expression.
What counts as one result?
Each job posting written to the dataset is one billable result, charged at $1 per 1,000 jobs.
Why are some fields empty?
LinkedIn omits optional fields such as skills or months of experience for some postings. Fields that are not published on the page return empty rather than failing the run.
Do I need to extract company details?
Only if you want richer employer data. extractCompanyDetails fetches each company's LinkedIn page and adds fields like description and follower count, at the cost of extra detail-page requests.
Related Scraptivo automations
- LinkedIn Company Scraper — pull company profiles to complement your job data.
- LinkedIn Scraper — collect LinkedIn profile data for candidate and lead sourcing.
- Trustpilot Reviews Scraper — check employer reputation alongside hiring activity.
Support and custom workflows
Need a different field, source, or delivery workflow? Contact Scraptivo at scraptivo@gmail.com. Include the Actor name, a sample URL, required fields, and expected volume so we can assess the request.