Linkedin Jobs Scraper - No Login avatar

Linkedin Jobs Scraper - No Login

Pricing

from $0.70 / 1,000 results

Go to Apify Store
Linkedin Jobs Scraper - No Login

Linkedin Jobs Scraper - No Login

Scrape LinkedIn job listings by keyword, location or search URL, no login needed. Get title, company, salary, skills, applicants, recruiter and apply link. Find companies that are hiring for lead generation, recruiting and job boards. No duplicates. Export to CSV, Excel or JSON.

Pricing

from $0.70 / 1,000 results

Rating

0.0

(0)

Developer

PRS

PRS

Maintained by Community

Actor stats

0

Bookmarked

5

Total users

4

Monthly active users

7 hours ago

Last modified

Categories

Features

Limited permissions

Share

💼 LinkedIn Jobs Scraper - No Login

Get fresh LinkedIn job postings as clean, structured data: title, company, salary, skills, years of experience, applicant count, recruiter and apply link for every job. Search by keyword and location, or paste a LinkedIn search URL with all your filters already set.

  • 🔓 No login, no cookies, no LinkedIn account. You get the same jobs anyone can see on LinkedIn without signing in, and your own account is never touched.
  • 💸 $0.70 per 1,000 results. Many LinkedIn job scrapers charge $1-$5 per 1,000.
  • 🧩 41 structured data points per job: a salary breakdown (min, max, currency, period), years of experience, skills, applicant count and competition level, recruiter name and profile, Easy Apply vs. external apply, and more.
  • 🔁 No duplicates. If several of your searches find the same job, you get it (and pay for it) only once, along with a list of the searches that found it.

🚀 What can you use it for?

  • 🤖 AI recruiting agents: give your agent live job data through the Apify MCP server. Claude, ChatGPT, Cursor and other MCP clients can call this Actor as a tool and read the structured results directly.
  • 🎯 Lead generation and sales intelligence: see which companies are hiring right now, for which roles and where, and who posted the job. Hiring is a strong buying signal for HR tech, recruiting agencies, dev tools and B2B services.
  • 📰 Job board aggregation: keep a niche job board, newsletter or Slack channel filled with fresh, de-duplicated postings on a schedule.
  • 💰 Salary benchmarking: collect published pay ranges as numbers (min, max, currency, period) and compare them by role, seniority, city and company.
  • 📊 Hiring-market research: find out which skills employers ask for, how much experience they expect and how crowded each role is.
  • 🔍 Job hunting on autopilot: run a daily search and get only the jobs posted in the last 24 hours.

A. Keywords × locations

Add one or more Keywords and Locations. Every keyword is searched in every location, so 3 keywords × 2 locations gives you 6 searches.

{
"keyword": ["Data Engineer", "Analytics Engineer", "dbt Developer"],
"location": ["United States", "Canada"],
"date": "past7days",
"maxJobsPerSearch": 100,
"workType": ["remote"],
"experienceLevel": ["associate", "mid-senior"],
"jobTitleExclude": ["Intern", "Principal"]
}

You can leave Locations empty to search a keyword everywhere, or leave Keywords empty to get every job in a location.

B. Paste LinkedIn URLs

Set up a search on linkedin.com/jobs with any filters you like, such as specific companies, industries, locations, remote, date posted or experience level. Then copy the URL from your browser into LinkedIn URLs. Every filter in the URL is kept exactly as you set it.

You can also paste single job URLs (linkedin.com/jobs/view/...) to scrape exactly those jobs.

{
"startUrls": [
{ "url": "https://www.linkedin.com/jobs/search/?keywords=product%20manager&geoId=103644278&f_C=1441%2C1586&f_WT=2&f_TPR=r86400" },
{ "url": "https://www.linkedin.com/jobs/view/4471646111/" }
],
"maxJobsPerSearch": 200
}

You can combine both modes in one run. Jobs found by several searches or URLs are still saved only once.

⬇️ Input

FieldWhat it does
KeywordsJob titles or search terms, e.g. Backend Developer, SAP FICO, React Native.
LocationsCountries, states, cities or Worldwide, e.g. India, Berlin, Germany, Texas, United States.
LinkedIn URLsLinkedIn job search URLs (all filters kept) and/or job URLs.
Date postedAny time, past 24 hours, past week or past month.
Max jobs per searchHow many jobs to collect for each keyword + location pair or search URL. Leave empty to collect everything LinkedIn shows, up to 1,000 per search.

Filters applied by LinkedIn (for keyword searches; pasted URLs keep their own): job type, experience level, workplace type (on-site, remote, hybrid), Easy Apply only, fewer than 10 applicants, only these companies, sort by most recent or most relevant.

Leave out jobs you don't want: exclude companies (e.g. staffing agencies), title words (e.g. Senior, Lead) or locations. Left-out jobs are skipped early, so they don't slow down your run or cost you anything.

OptionDefaultWhat it does
Fetch job detailsOnAdds the full description, salary, skills, experience, applicants, seniority, industry, recruiter and apply link. Turn it off for a quick, cheap list of titles, companies and links.
Include description HTMLOnKeeps the formatted description (bullets, bold) next to the plain text.
Save only unique jobsOnTurn off to save a job once for every search that found it.
Keywords × locationsMax jobs per searchYou get up to
1 × 1100100 jobs
2 × 1100200 jobs
3 × 250300 jobs

⬆️ Output

Results go to the run's dataset. Open the Output tab to browse them as a table, or export them as JSON, CSV, Excel, XML or HTML. There are two ready-made views:

  • Overview: logo, title, company, location, workplace, type, seniority, years of experience, salary, posting date, applicants, apply type, apply link, job link and description.
  • Skills and requirements: skills, the experience line from the posting, industry, salary breakdown, competition, who posted the job, their profile, the apply link and which searches found it.

Example job

{
"jobId": "4471646111",
"jobTitle": "Senior Data Engineer (Python, Spark)",
"jobUrl": "https://www.linkedin.com/jobs/view/4471646111/",
"companyName": "Northwind Analytics",
"companyId": "10452871",
"companyUrl": "https://www.linkedin.com/company/northwind-analytics/",
"companyLogo": "https://media.licdn.com/dms/image/v2/D4E0BAQ.../company-logo_100_100/...",
"location": "Austin, TX",
"workplaceType": "Hybrid",
"employmentType": "Full-time",
"seniorityLevel": "Mid-Senior level",
"experience": {
"minYears": 5,
"maxYears": 8,
"level": "Mid-Senior level",
"text": "5-8 years of experience building data pipelines in Python and Spark."
},
"industry": "Software Development",
"salary": {
"min": 145000.0,
"max": 175000.0,
"currency": "USD",
"period": "YEAR",
"text": "$145,000.00/yr - $175,000.00/yr"
},
"postedDate": "2026-10-30",
"postedTimeAgo": "2 days ago",
"applyType": "Easy Apply",
"applyUrl": "https://www.linkedin.com/jobs/view/4471646111/",
"applicants": {
"count": 38,
"competition": "medium",
"text": "38 applicants"
},
"isClosed": false,
"skills": ["Python", "Spark", "SQL", "Airflow", "AWS", "Kafka", "dbt", "CI/CD"],
"insights": ["Actively Hiring"],
"recruiter": {
"name": "Jordan Lee",
"title": "Technical Recruiter at Northwind Analytics",
"profileUrl": "https://www.linkedin.com/in/jordan-lee-recruiter/"
},
"jobDescription": "About the role\n\nWe're looking for a Senior Data Engineer to design and run the pipelines behind our analytics platform...\n\nWhat you'll need\n- 5-8 years of experience building data pipelines in Python and Spark.\n- Strong SQL and experience with Airflow or a similar orchestrator. ...",
"jobDescriptionHtml": "<strong>About the role</strong><br><br>We're looking for a Senior Data Engineer to design and run the pipelines behind our analytics platform... ",
"searchQuery": "Data Engineer - United States",
"matchedSearches": ["Data Engineer - United States", "Analytics Engineer - United States"],
"sourceSearchUrl": "https://www.linkedin.com/jobs/search/?keywords=Data%20Engineer&location=United%20States&f_TPR=r604800",
"detailsFetched": true,
"scrapedAt": "2026-11-01T09:14:52Z"
}

Good to know about the fields

  • salary is filled when the employer shows a pay range on LinkedIn. You get the lowest and highest pay (min, max), the currency (e.g. USD, EUR), how often it's paid (period: YEAR, MONTH, WEEK, DAY or HOUR) and the original text.
  • experience is read from the title and description. "3-6 years" becomes minYears: 3, maxYears: 6, and "5+ years" becomes minYears: 5, maxYears: null. text is the exact line it came from. level is worked out from the minimum years: under 2 is Entry level, 2-4 is Associate, 5+ is Mid-Senior level.
  • seniorityLevel is the level the employer picked on LinkedIn. Employers often leave it at a default, so experience is usually the better guide for 0-2 year roles.
  • applyType is Easy Apply or External Apply. For Easy Apply jobs, applyUrl is the LinkedIn job page where you apply. For external jobs, LinkedIn shows the employer's own application link only to signed-in members, so applyUrl is null and the job page links through to it.
  • applicants.count is the number LinkedIn shows. When LinkedIn says "Over 200 applicants", you get 200, and the real number may be higher. competition is low under 25, medium for 25-100 and high above 100.
  • recruiter is the person LinkedIn shows as the job poster, when there is one.
  • workplaceType (on-site, remote or hybrid) is exact when you filter by just one workplace type. Otherwise it is worked out from the job description, and left empty when the posting doesn't say.
  • searchQuery, matchedSearches and sourceSearchUrl tell you which of your searches found the job. For pasted search URLs, searchQuery is the search URL itself.
  • When a job doesn't have some information, that field is simply left empty, so your spreadsheets keep the same columns from run to run.

🔌 Integrations and API

  • AI agents (MCP): connect any MCP client to the Apify MCP server and add this Actor as a tool.
  • No-code: send results to Google Sheets, Slack, Airtable, HubSpot, Zapier, Make or n8n with Apify integrations, or trigger your own workflow with a webhook when a run finishes.
  • Your own code: developers can start runs and download results through the Apify API.
  • Schedules: run it every morning with Date posted = Past 24 hours to get only new jobs.

❓ FAQ

Do I need a LinkedIn account or cookies?

No. You don't need to sign in or share anything from your LinkedIn account.

How am I charged?

You pay per result saved to the dataset: $0.70 per 1,000 jobs. Duplicates across your searches are saved once. Jobs whose details couldn't be downloaded are skipped and not charged. The run stops automatically when it reaches the maximum charge you set.

How many jobs can I get?

LinkedIn shows up to 1,000 jobs per search. To collect more, split large locations into cities or states (e.g. New York, Austin and Seattle instead of United States), add more keywords, or narrow searches with date and other filters.

Can I use the filters from LinkedIn's website that aren't in the form?

Yes. Apply them on linkedin.com, copy the link from your browser and paste it into LinkedIn URLs. Company, industry, location, distance and every other filter you picked is kept.

Will my run get blocked?

The Actor is built to keep going. If LinkedIn turns a request away, it waits a moment and tries again, so even long searches finish instead of stopping partway through.

Why are some salaries empty?

Many employers, especially outside the US, don't publish pay on LinkedIn. Salary fields are filled only when LinkedIn shows a range.

How can I make runs faster and cheaper?

  • Use Date posted and the LinkedIn filters so fewer jobs need to be collected.
  • Use the exclusion fields to skip companies, titles and locations before they are downloaded.
  • Turn off Fetch job details if titles, companies and links are enough.
  • Set Max jobs per search to the number you actually need.

Can I connect it to other tools?

Yes. You can send results to Google Sheets, Slack, Zapier, Make, n8n, Airtable and many other tools using Apify integrations, or start your own workflow automatically when a run finishes. Developers can also start runs and download results through the Apify API.

💬 Feedback and support

Found a bug, missing a field or need a filter that isn't here? Open an issue in the Issues tab and we'll take a look.