Linkedin Jobs Scraper avatar

Linkedin Jobs Scraper

Pricing

$19.99/month + usage

Go to Apify Store
Linkedin Jobs Scraper

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

SilentFlow

Maintained by Community

Actor stats

1

Bookmarked

7

Total users

1

Monthly active users

8 hours ago

Last modified

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

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

TeamWhat they build
RecruitersSalary benchmarks by role and city to write competitive offers
Job seekersAutomated job feeds matching specific titles, locations, and experience levels
Sales teamsLists of companies actively hiring in target industries (buying signals)
Market researchHiring trend reports by role, location, and seniority across markets
Data teamsStructured datasets of job market conditions for modeling and analysis
HR analyticsCompetitor job posting monitoring with salary and benefits tracking

๐Ÿ“ฅ Input parameters

ParameterTypeDefaultDescription
titlesArray["Software Engineer"]Job titles to search. Each title x location runs a separate search
locationsArray["United States"]Locations to search. Crossed with every title
maxItemsInteger50Maximum number of jobs to return

Filters

ParameterTypeDescription
publishedAtSelectPosted within: Any time, 24 hours, Past week, Past month
contractTypeSelectFull-time, Part-time, Contract, Temporary, Internship, Volunteer
experienceLevelSelectInternship, Entry Level, Associate, Mid-Senior, Director, Executive
workTypeSelectAll, On-site, Remote, Hybrid
easyApplyBooleanOnly 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

CategoryFields
Jobid, title, description, jobUrl, jobUrlDirect, datePosted, numApplicants, easyApply
Job detailsjobType, jobLevel, jobFunction, salaryMin, salaryMax, salaryCurrency
Locationlocation, city, state, country, isRemote
CompanycompanyName, companyUrl, companyLogo, companyIndustry
Extractedemails, 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 ApifyClient
client = 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

MetricValue
Speed~50 jobs in 20-30 seconds
Max results per run~1,000 per title/location combo (no hard cap)
Fields per job22+
No login requiredYes

๐Ÿ’ก Tips for best results

  1. Use multiple titles to cover job title variations: ["Python Developer", "Backend Engineer", "Software Developer"]
  2. Cross titles with locations to search multiple markets in one run: 3 titles x 3 cities = 9 searches
  3. Filter by date with publishedAt: "r604800" to get only jobs from the past week
  4. Start with 25 results to test your filters before scaling
  5. 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