LinkedIn Jobs Scraper & Monitor ($0.30/1K) avatar

LinkedIn Jobs Scraper & Monitor ($0.30/1K)

Pricing

from $0.30 / 1,000 job delivereds

Go to Apify Store
LinkedIn Jobs Scraper & Monitor ($0.30/1K)

LinkedIn Jobs Scraper & Monitor ($0.30/1K)

$0.30 per 1,000 jobs, no login or cookies. Search LinkedIn job postings by keyword and location. Filter by date posted (even past hour), Easy Apply, company, experience level and job type. Optional full descriptions and pay ranges. Monitor mode returns only new jobs, with Discord or Slack alerts.

Pricing

from $0.30 / 1,000 job delivereds

Rating

0.0

(0)

Developer

Jacob Hyde

Jacob Hyde

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

20 hours ago

Last modified

Categories

Share

LinkedIn Jobs Scraper & Monitor

Scrape LinkedIn job postings by keyword and location, or run any LinkedIn job search URL. No LinkedIn account, login or cookies needed. $0.30 per 1,000 jobs.

Turn on monitor mode and schedule it: each run returns only jobs posted since the last run, and can post them straight to Discord or Slack. You're never billed for a job you've already received, or for jobs your filters drop.

What you get

For every job:

FieldExample
TitleSenior Software Engineer, Backend
Company, with its LinkedIn page and logoGeneral Motors
LocationWarren, MI
Posted date, and how long ago2026-10-04, 1 week ago
LinkedIn's note on the cardActively Hiring, Be an early applicant
Link to the joblinkedin.com/jobs/view/4419969671

Each row also names the keyword and location it was found with.

Turn on Add job details to also get:

FieldExample
Full description, as text and HTML"As a Senior Software Engineer you will..."
Pay range, when the posting states one160000 to 200000, USD, per year
Seniority levelMid-Senior level
Employment typeFull-time
IndustriesMotor Vehicle Manufacturing
Applicants195
Easy Apply or apply on the company siteeasy-apply / external

Pay is read from the description, where most US employers now state a range. In a sample of San Francisco software jobs, 11 of 12 had one.

Recruiter names, profiles and contact details aren't collected.

How to use it

Search by keyword and location

Add one or more job titles or keywords and one or more locations. Each keyword runs in every location. Locations are typed the way you would on LinkedIn: a city ("Austin, TX"), a state, a country or a metro area ("San Francisco Bay Area"). Leave them empty to search worldwide.

{
"searchQueries": ["data analyst", "business analyst"],
"locations": ["New York, NY", "Chicago, IL"],
"postedWithin": "week",
"maxJobsPerSearch": 200
}

LinkedIn's search syntax works in keywords: quotes for exact phrases, OR, NOT ("data engineer" OR "analytics engineer"). Jobs that show up in more than one search are delivered once.

Filters

LinkedIn's own filters:

  • Posted within: past hour, 24 hours, week or month. "Past hour" isn't in LinkedIn's menu but works.
  • Easy Apply only
  • Under 10 applicants
  • Distance: radius in miles around a city.
  • Company IDs: only jobs at these companies (e.g. 1441 for Google).

Filters the Actor checks for you, before you're charged:

  • Title must contain the keywords: LinkedIn fills thin searches with unrelated jobs (a rare keyword in a small city returns dental assistants and arborists). This keeps only titles with every keyword word.
  • Exclude titles with these words: e.g. senior, intern, "sales associate".
  • Exclude companies: e.g. staffing agencies.
  • Experience level and Job type: LinkedIn's public search ignores these, so the Actor reads each job's page and keeps only the ones you picked. This turns on job details.
{
"searchQueries": ["product manager"],
"locations": ["United States"],
"postedWithin": "day",
"excludeKeywords": ["senior", "director", "principal"],
"excludeCompanies": ["Jobot", "Robert Half"],
"strictKeywordMatch": true
}

Paste search URLs

Run a search on linkedin.com/jobs/search in a private browser window and paste the address into LinkedIn job search URLs. Its keywords, location and filters are kept. You can mix URLs and keywords in one run.

Switching from another LinkedIn jobs scraper

Input written for other popular LinkedIn job scrapers works here as is: urls, keywords, location, datePosted, easyApply, companyId, titleExclude, and limits like limit or limitPerSource are read the same way. Change the Actor name in your API call or integration and keep your input.

Monitor new jobs

  1. Set up your searches and turn on Monitor mode.
  2. Run it once. The first run returns up to your limit and remembers everything else LinkedIn shows for the search, so it isn't sent to you later.
  3. Add a schedule (every hour, every morning, whatever fits). Each later run returns only jobs posted since then.

Pair it with Posted within: Past 24 hours so each run checks fewer pages. Use a different Monitor state store name for each independent monitor.

Get alerts in Discord or Slack

Paste a Discord or Slack incoming webhook URL into Send new jobs to a webhook. Each run posts what it found, with title, company, location, pay and link. Nothing is sent when a run finds nothing new. Any other URL receives the jobs as JSON.

For email, Google Sheets, Zapier or Make, use Apify's integrations on the Actor or your task.

Pricing

You pay per event. Platform usage is included.

EventPrice
Job delivered$0.0003 ($0.30 per 1,000)
Search checked (once per keyword and location, or URL, on each run)$0.003
Job details (optional)$0.001 per job with details
Run start$0.00005

Examples:

  • Pull 1,000 jobs once: $0.30 for the jobs plus $0.003 for the search. Extra result pages aren't charged.
  • 1,000 jobs with full descriptions and pay: $0.30 for the jobs, $1 for details, $0.003 for the search.
  • Watch one search every hour for a month: 720 checks x $0.003 = $2.16, plus $0.0003 per new job. A search with 50 new jobs a day adds about $0.45.
  • Check 10 searches every morning: 300 checks = $0.90 a month, plus new jobs.

Jobs you've already received are never billed in monitor mode, jobs your filters drop are never billed, and a search that fails, gets blocked or comes back empty is never billed. Details are only billed when they were actually fetched. Set a maximum charge per run in the run options and the Actor stops cleanly when it's reached.

Input options

OptionWhat it does
Job titles or keywordsWhat to search for. Each keyword runs in every location. LinkedIn's syntax (quotes, OR, NOT) works.
LocationsCities, states, countries or metro areas. Empty means worldwide.
LinkedIn job search URLsSearches to run as they are, with their filters.
Max jobs per searchUpper limit per keyword and location, or per URL (default 100, at most 1,000).
Posted withinAny time, past hour, 24 hours, week or month.
Add job detailsDescription, pay range, seniority, employment type, industries, applicants, apply type. Charged per job.
Easy Apply onlyOnly jobs you apply to on LinkedIn.
Under 10 applicantsOnly jobs with fewer than 10 applicants.
Distance (miles)Radius around a city location.
Company IDsOnly jobs at these companies.
Title must contain the keywordsDrops unrelated jobs LinkedIn mixes into thin searches. Off by default.
Exclude titles with these wordsDrops jobs whose title contains any of these.
Exclude companiesDrops jobs from these companies.
Experience levelOnly these seniority levels. Turns on details.
Job typeOnly these employment types. Turns on details.
Monitor modeReturn only jobs posted since the last run.
Send new jobs to a webhookDiscord or Slack webhook URL for alerts, or any URL for JSON. Stored encrypted.
Monitor state store nameKeeps each monitor's memory separate.
Forget jobs after (days)How long a job is remembered (default 30).
Proxy configurationApify datacenter proxies by default.

Output example

{
"id": "4419969671",
"url": "https://www.linkedin.com/jobs/view/4419969671/",
"title": "Senior Software Engineer – Go (Golang)",
"companyName": "General Motors",
"companyUrl": "https://www.linkedin.com/company/general-motors",
"companyLogo": "https://media.licdn.com/dms/image/v2/D4E0BAQEfAZWzerj03w/company-logo_100_100/...",
"location": "Warren, MI",
"postedAt": "2026-10-04",
"postedTimeAgo": "1 week ago",
"insight": "Actively Hiring",
"salary": "$160,000 and $200,000",
"salaryMin": 160000,
"salaryMax": 200000,
"salaryCurrency": "USD",
"salaryPeriod": "year",
"searchKeyword": "software engineer",
"searchLocation": "United States",
"searchUrl": "https://www.linkedin.com/jobs-guest/jobs/api/seeMoreJobPostings/search?keywords=software+engineer&location=United+States",
"scrapedAt": "2026-10-17T20:58:48.775Z",
"description": "Job Description\n\nAs a Senior Software Engineer – Go (Golang), you will design, develop, and deliver...",
"descriptionHtml": "<strong>Job Description<br><br></strong>As a Senior Software Engineer...",
"seniorityLevel": "Not Applicable",
"employmentType": "Full-time",
"industries": "Motor Vehicle Manufacturing, Appliances, Electrical, and Electronics Manufacturing",
"applicantsCount": 195,
"applicantsText": "195 applicants",
"applyType": "external"
}

Without details, the description, job facts and pay range fields are left out or null. Download results as JSON, CSV, Excel or HTML, or read them through the Apify API.

Tips

  • More than 1,000 jobs? LinkedIn shows at most 1,000 per search. Split it into several locations, or use Posted within and run it more often.
  • Results look unrelated? LinkedIn pads searches that run out of real matches. Turn on Title must contain the keywords, or add exclude words.
  • Most jobs say "Not Applicable" for seniority. That's what the employer set: about 3 in 4 jobs in our samples, with only 3 to 4 in 100 marked Entry level. So an experience filter returns few jobs from a general search. Pair it with matching keywords ("junior", "graduate"), or pick "Not set by employer" in Experience level to keep those.
  • Remote jobs: add "remote" to the keywords ("product manager remote"). LinkedIn's public search has no remote filter, and "Remote" as a location searches worldwide.

FAQ

Do I need a LinkedIn account? No. The Actor only reads job postings anyone can see on LinkedIn without logging in.

Why don't I get the apply link for external jobs? LinkedIn only shows it to signed-in members. Each row has the job's LinkedIn link, and applyType says whether it's Easy Apply or on the company's site.

Is it legal to scrape LinkedIn jobs? The Actor collects only publicly visible job postings and no personal profiles. How you use the data is up to you; check the rules that apply where you are.

Something broke? Open an issue on the Actor's Issues tab. The Actor is tested against live LinkedIn every day.

Like it? A rating on the Actor's page helps other people find it, and tells us what to build next.