🌟LinkedIn Jobs Scraper – Multi Title × Location avatar

🌟LinkedIn Jobs Scraper – Multi Title × Location

Pricing

from $2.00 / 1,000 job with full details

Go to Apify Store
🌟LinkedIn Jobs Scraper – Multi Title × Location

🌟LinkedIn Jobs Scraper – Multi Title × Location

Scrape LinkedIn jobs for many titles and locations in one run. Full details, applicants, salary, deduplicated. No login needed.

Pricing

from $2.00 / 1,000 job with full details

Rating

5.0

(1)

Developer

Sarthak

Sarthak

Maintained by Community

Actor stats

1

Bookmarked

2

Total users

2

Monthly active users

10 days ago

Last modified

Categories

Security

Limited permissions

Share

LinkedIn Jobs Scraper – Multi Title × Multi Location (Full Details)

Scrape LinkedIn jobs for many job titles across many locations in one run, with the full job page for every result. No login, no cookies.

Why this scraper

This actorTypical scrapers
Titles × locations in one run✅ every title in every locationoften one at a time
Paste LinkedIn search URLs✅ keeps all URL filters❌
Full job description (HTML + clean text)✅partial
Seniority, employment type, industries, job function✅partial
Applicant count (number)✅text only
Recruiter name, title, profile✅ when shown❌
Emails found in the description✅❌
Easy Apply vs External detection✅✅
Cross-search deduplication✅ a job appears once per run❌ duplicates billed
Exclude titles / companies (e.g. agencies)✅❌
Per-search and total result caps✅ predictable costper search only
Fast listing-only mode✅❌
Exact job-title matching ("AI Engineer" never returns "Electrical Engineer")✅❌ LinkedIn's fuzzy search
Verified work type (on-site / remote / hybrid) with the exact proof phrase✅❌ trusts LinkedIn's filter
Survives throttling✅ session rotation + exponential backoff, falls back to card data❌

Input

{
"jobTitles": ["Software Engineer", "Data Analyst"],
"locations": ["London", "New York", "Berlin"],
"postedWithin": "week",
"workTypes": ["remote", "hybrid"],
"experienceLevels": ["entry", "associate"],
"maxResultsPerSearch": 200,
"maxResultsTotal": 1000,
"excludeCompanies": ["Jobot", "Hays"],
"scrapeJobDetails": true
}

Filters: date posted (1h / 24h / week / month), work type, job type, experience level, Easy Apply only, under 10 applicants, company IDs, distance, sort order.

Output (one row per unique job)

Every record has the same 42 fields in the same order on every run (schemaVersion: 2). Missing values are null; jobId is a stable string for deduplication.

FieldValues
jobIdLinkedIn job ID (string)
workTypealways remote, hybrid, on-site or unknown (never null)
isRemoteAllowedtrue for remote or hybrid, otherwise false
workTypeSource / workTypeEvidencetitle, location, description or none, plus the exact phrase used
postedAt / postedDateISO 8601 timestamp / YYYY-MM-DD
salary, salaryMin, salaryMax, salaryCurrency, salaryPeriodfrom LinkedIn's salary box, else a pay range in the description; period is year, month, week, day or hour
salarySourcelinkedin, description or none

Also included: title, company, location, applicants, benefits, contract type, experience level, sector, job function, apply type and URL, job URL, company URL, poster name and profile URL, emails in the description, description (text and HTML), promoted/closed flags, hasFullDetails, and the search that found the job.

Why work type can be unknown: LinkedIn hides its On-site / Hybrid / Remote tag from logged-out visitors, so the actor reads the job post itself. This covers LinkedIn workplace hashtags, statements such as "As a hybrid employee" or "3 days a week in the office", and negations such as "No hybrid or remote". When a post never states it, the answer is unknown, never a guess.

Exact job titles

LinkedIn's keyword search is fuzzy: "AI Engineer" also returns "Electrical Engineer" and "Machine Learning Engineer". This actor checks every job title against your keyword before opening the job, so mismatches are skipped and never charged.

  • Exact phrase (default): the title must contain your whole keyword, words in order. "AI Engineer" keeps "Senior AI Engineer" and "Applied AI Engineer", and skips "AI Software Engineer".
  • All words, any order: every word must be in the title. "AI Engineer" also keeps "AI Software Engineer" and "Engineer, AI Platform".
  • Off: keep everything LinkedIn returns.
  • Spelling variants count as the same: Full-Stack = Fullstack = Full Stack, A.I. = AI = Artificial Intelligence, ML = Machine Learning, Sr = Senior.
  • Boolean keywords such as python AND django require every term; queries with OR / NOT are left as you wrote them.

Accurate work type, experience level and job type

LinkedIn ignores the work type, experience level and job type filters for logged-out visitors, so most scrapers return "remote" jobs that are really on-site. This actor checks every job itself:

  • Work type is read from the job's own post, in this order: the job title, LinkedIn workplace tags (#LI-Remote, #LI-Hybrid, #LI-Onsite), statements about the role ("This position is remote within the US", "hybrid, 3 days a week in the office"), then general wording in the post. workTypeEvidence shows the exact phrase used.
  • If a post never states it, workType is empty. It is never guessed.
  • Experience level and job type are checked against what the job page shows.
  • Jobs that don't match are skipped and not charged, and the actor keeps searching until each search reaches your requested number.
  • Turn on Include jobs that don't state it to also get posts that don't state the detail (many employers leave seniority as "Not Applicable").
  • With a single work type selected, that word is added to the LinkedIn keyword search to find matching posts faster.

Daily scheduled runs without repeats

Turn on Skip jobs from previous runs and schedule the actor daily. Jobs delivered by an earlier run are skipped and not charged, so each run returns only new jobs. This lets you search Past week every day and still get no repeats. Use a different History name for each separate scheduled search.

Notes

  • applyUrl is filled when LinkedIn shows the external link to logged-out visitors; most jobs keep it behind sign-in, so applyType (external / easy_apply) and jobUrl are always provided.
  • LinkedIn shows at most ~1,000 results per search. Split broad searches by location or date for more.
  • Residential proxies give the best reliability at high volume.

Pricing

Pay only for the jobs you get:

EventWhen it is charged
Actor startOnce per run
Job with full detailsEach unique job saved with scrapeJobDetails: true
Job listingEach unique job saved in fast listing-only mode
  • Duplicates and excluded jobs are never charged.
  • Set Max cost per run and the actor stops cleanly when it is reached, keeping everything scraped so far.