Linkedin Jobs Scraper
Pricing
$19.99/month + usage
Linkedin Jobs Scraper
Extract LinkedIn job listings with salary data, company details, full descriptions, and 22+ structured fields per job. Search multiple titles across multiple locations with advanced filters for job type, experience level, remote work, Easy Apply, and posting date. No login required for use.
Pricing
$19.99/month + usage
Rating
0.0
(0)
Developer
SilentFlow
Actor stats
1
Bookmarked
7
Total users
1
Monthly active users
8 hours ago
Last modified
Categories
Share
Every LinkedIn job listing, structured and ready for analysis. Salary ranges, company details, full descriptions, and 22+ fields per job. Search multiple titles across multiple locations in one run. 50 jobs in under 30 seconds.
How it works

โจ Why use this scraper?
Spending hours scrolling through LinkedIn job boards? Copy-pasting listings into spreadsheets? Missing salary data because LinkedIn hides it after a few views?
- ๐ฐ Salary data when LinkedIn has it. Min, max, and currency extracted from every listing that shows compensation.
- ๐ Multi-title, multi-location search. Run "Data Engineer" + "ML Engineer" across "New York" + "London" + "Berlin" in one call. All combinations, deduplicated.
- ๐ Full job descriptions. Complete requirements, responsibilities, and qualifications. Not just the preview card.
- ๐ง Email extraction. Contact emails found in job descriptions are extracted automatically.
- ๐ข Company details. Name, logo, industry, LinkedIn URL, and direct apply links.
- โก No login required. Works on public LinkedIn data. No cookies, no account, no API key.
- ๐ Automatic deduplication. Cross-product searches never return the same job twice.
๐ฏ Use cases
| Team | What they build |
|---|---|
| Recruiters | Salary benchmarks by role and city to write competitive offers |
| Job seekers | Automated job feeds matching specific titles, locations, and experience levels |
| Sales teams | Lists of companies actively hiring in target industries (buying signals) |
| Market research | Hiring trend reports by role, location, and seniority across markets |
| Data teams | Structured datasets of job market conditions for modeling and analysis |
| HR analytics | Competitor job posting monitoring with salary and benefits tracking |
๐ฅ Input parameters
Search
| Parameter | Type | Default | Description |
|---|---|---|---|
titles | Array | ["Software Engineer"] | Job titles to search. Each title x location runs a separate search |
locations | Array | ["United States"] | Locations to search. Crossed with every title |
maxItems | Integer | 50 | Maximum number of jobs to return |
Filters
| Parameter | Type | Description |
|---|---|---|
publishedAt | Select | Posted within: Any time, 24 hours, Past week, Past month |
contractType | Select | Full-time, Part-time, Contract, Temporary, Internship, Volunteer |
experienceLevel | Select | Internship, Entry Level, Associate, Mid-Senior, Director, Executive |
workType | Select | All, On-site, Remote, Hybrid |
easyApply | Boolean | Only return jobs with LinkedIn Easy Apply |
๐ Output data
{"id": "4334158613","title": "Software Engineer, Fullstack","companyName": "Notion","companyUrl": "https://www.linkedin.com/company/notionhq","companyLogo": "https://media.licdn.com/dms/image/...","companyIndustry": "Software Development","location": "San Francisco, CA","city": "San Francisco","state": "CA","country": "United States","isRemote": false,"jobUrl": "https://www.linkedin.com/jobs/view/4334158613","jobUrlDirect": "https://notion.com/careers/apply/...","datePosted": "2026-04-01","salaryMin": 150000,"salaryMax": 220000,"salaryCurrency": "USD","jobType": ["Full-time"],"jobLevel": "Mid-Senior level","jobFunction": "Engineering and Information Technology","numApplicants": "Over 100 applicants","description": "We are looking for a talented engineer...","emails": ["careers@notion.com"],"easyApply": false,"scrapedAt": "2026-04-09T10:30:00Z"}
๐๏ธ Data fields
| Category | Fields |
|---|---|
| Job | id, title, description, jobUrl, jobUrlDirect, datePosted, numApplicants, easyApply |
| Job details | jobType, jobLevel, jobFunction, salaryMin, salaryMax, salaryCurrency |
| Location | location, city, state, country, isRemote |
| Company | companyName, companyUrl, companyLogo, companyIndustry |
| Extracted | emails, scrapedAt |
๐ Examples
Find remote Python jobs in Europe
{"titles": ["Python Developer", "Backend Engineer"],"locations": ["London", "Berlin", "Amsterdam"],"workType": "2","contractType": "F","maxItems": 100}
Track new data science openings this week
{"titles": ["Data Scientist", "ML Engineer", "Data Analyst"],"locations": ["United States"],"publishedAt": "r604800","maxItems": 200}
Monitor new full-time openings in multiple cities
{"titles": ["Software Engineer", "Backend Developer"],"locations": ["San Francisco", "New York", "Austin"],"contractType": "F","publishedAt": "r86400","maxItems": 100}
Entry-level jobs with Easy Apply
{"titles": ["Junior Developer", "Graduate Engineer"],"locations": ["New York", "Chicago"],"experienceLevel": "2","easyApply": true,"maxItems": 50}
๐ป Integrations
Python
from apify_client import ApifyClientclient = ApifyClient("YOUR_API_TOKEN")run = client.actor("silentflow/linkedin-jobs-scraper").call(run_input={"titles": ["Software Engineer", "Backend Developer"],"locations": ["New York", "San Francisco"],"contractType": "F","publishedAt": "r604800","maxItems": 100,})for item in client.dataset(run["defaultDatasetId"]).iterate_items():salary = f"${item['salaryMin']:,}-${item['salaryMax']:,}" if item.get("salaryMin") else "N/A"print(f"{item['title']} @ {item['companyName']} | {salary} | {item['location']}")
JavaScript
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'YOUR_API_TOKEN' });const run = await client.actor('silentflow/linkedin-jobs-scraper').call({titles: ['Software Engineer', 'Backend Developer'],locations: ['New York', 'San Francisco'],contractType: 'F',publishedAt: 'r604800',maxItems: 100,});const { items } = await client.dataset(run.defaultDatasetId).listItems();items.forEach(item => {const salary = item.salaryMin ? `$${item.salaryMin.toLocaleString()}-$${item.salaryMax.toLocaleString()}` : 'N/A';console.log(`${item.title} @ ${item.companyName} | ${salary} | ${item.location}`);});
๐ Performance
| Metric | Value |
|---|---|
| Speed | ~50 jobs in 20-30 seconds |
| Max results per run | ~1,000 per title/location combo (no hard cap) |
| Fields per job | 22+ |
| No login required | Yes |
๐ก Tips for best results
- Use multiple titles to cover job title variations:
["Python Developer", "Backend Engineer", "Software Developer"] - Cross titles with locations to search multiple markets in one run: 3 titles x 3 cities = 9 searches
- Filter by date with
publishedAt: "r604800"to get only jobs from the past week - Start with 25 results to test your filters before scaling
- Combine filters for precision: fulltime + remote + past week gives you only the freshest relevant listings
โ FAQ
Q: Do I need a LinkedIn account? No. The scraper uses public LinkedIn job listings. No login, no cookies, no API key.
Q: Why are some jobs missing salary data? LinkedIn only shows salary for a subset of listings. The scraper extracts it when present.
Q: What does the titles x locations cross-product mean?
If you provide 2 titles and 3 locations, the scraper runs 6 searches (every title in every location) and deduplicates results.
Q: What's the difference between jobUrl and jobUrlDirect?
jobUrl is the LinkedIn listing page. jobUrlDirect is the external apply link (when available).
Q: How many jobs can I get per run? LinkedIn returns up to ~1,000 results per title/location combination. Use multiple titles and locations to get more: 3 titles x 3 cities can yield thousands of results in one run.
Q: Can I search globally?
Yes. Set locations to ["United States", "United Kingdom", "Germany"] or any combination. LinkedIn handles location resolution.
๐ฌ Support
Need something this scraper doesn't do yet? We ship features fast.
- Feature requests go straight to our backlog
- Enterprise needs? We do custom integrations
- Response time: usually under 24 hours
Check out our other scrapers: SilentFlow on Apify