LinkedIn Jobs Scraper - No Login, With Applicant Counts avatar

LinkedIn Jobs Scraper - No Login, With Applicant Counts

Pricing

from $4.00 / 1,000 job scrapeds

Go to Apify Store
LinkedIn Jobs Scraper - No Login, With Applicant Counts

LinkedIn Jobs Scraper - No Login, With Applicant Counts

Scrape LinkedIn job listings without a login or cookies. Title, company, location, posting date, salary and the direct job URL - plus the full description, seniority, employment type, industry and how many people have applied.

Pricing

from $4.00 / 1,000 job scrapeds

Rating

0.0

(0)

Developer

Renzo Madueno

Renzo Madueno

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Categories

Share

LinkedIn Jobs Scraper — no login, with applicant counts

Scrape LinkedIn job listings without an account, a password or a cookie. Give it a job title and a location and it returns every posting LinkedIn shows to a logged-out visitor, with the direct link to each job.

It also answers the question most job scrapers leave out: how many people have already applied.

What you get per job

FieldExample
titleData Engineer, AWS DC Central Operations
companyAmazon Web Services (AWS)
locationSeattle, WA
postedAt2026-08-29
applicants31
salary$120,000/yr - $160,000/yr (when LinkedIn shows it)
urldirect link to the posting
isPromotedtrue when the company paid to place it

Switch on Fetch the full job page and each row also carries the complete job description, seniority, employmentType, jobFunction and industries.

Why the applicant count matters

A role with 12 applicants and one with 600 are not the same opportunity, and LinkedIn only shows that number on the job page itself. If you are tracking a market, sourcing candidates or deciding where to apply, it is the single most useful number on the page — and it is in every row here.

isPromoted works the same way: promoted jobs sit at the top because someone paid for the slot, not because they match your search better. Knowing which is which changes how you read the list.

What it will not do

Said here rather than discovered halfway through a run:

  • The remote-work filter does not work. LinkedIn ignores f_WT on the logged-out endpoint — the same ten jobs come back with and without it — so this Actor does not offer a filter it cannot honour. Filter location for "Remote" instead, or filter the output yourself.
  • LinkedIn caps a search at roughly 400-500 jobs. Past that it stops serving results no matter what you ask for. To go wider, split the search: more keywords, or narrower locations.
  • No private data. Only what LinkedIn publishes to visitors who are not signed in. No recruiter contacts, no candidate profiles, no gated fields.

The date filter does work: "Past 24 hours" returns a completely different set of postings.

Typical uses

  • Recruiters watching which companies are hiring for a role, and how much competition each posting already has.
  • Job seekers filtering for postings from the last 24 hours with few applicants.
  • Market and salary research — pull a title across several cities and compare the salary ranges LinkedIn discloses.
  • Competitor tracking — watch a rival's open roles to see which teams they are growing.

Input

{
"keywords": ["data engineer", "machine learning engineer"],
"location": "United States",
"maxResultsPerKeyword": 100,
"includeDescription": true,
"datePosted": "r86400",
"sortBy": "DD"
}

Each keyword is searched separately. A job that appears in more than one page of the same search is delivered — and charged — only once.

Output

{
"jobId": "4460531927",
"title": "Data Engineer, AWS DC Central Operations",
"company": "Amazon Web Services (AWS)",
"location": "Seattle, WA",
"postedAt": "2026-08-29",
"isPromoted": false,
"applicants": 31,
"seniority": "Not Applicable",
"employmentType": "Full-time",
"industries": "IT Services and IT Consulting",
"descriptionLength": 5323,
"url": "https://www.linkedin.com/jobs/view/..."
}

Pricing

Pay per event: a small charge to start the run, then a charge per job delivered. A job that comes back twice in the same search is charged once. If a run delivers nothing, there is nothing to charge for.

Notes on reliability

LinkedIn serves this endpoint to residential connections and turns away datacenter traffic, so the Actor routes every request through a residential proxy and retries from a different IP when it is refused. That is why a run occasionally takes longer than you would expect: it is working through refusals rather than returning you an empty result.

Common jobs to be done

Each of these is a real query someone types into a scraper marketplace. The Actor answers all of them from the same run, so they are listed plainly rather than buried in a feature table.

Find LinkedIn jobs posted in the last 24 hours

Set datePosted to "Past 24 hours" and sortBy to "Most recent". Verified: the filter returns a completely different set of postings, not the same list reordered. Useful for a daily digest of new openings before the applicant count climbs.

See how many people applied to a LinkedIn job

Turn on Fetch the full job page. Every row then carries applicants. A posting with 12 applicants and one with 600 are different opportunities, and LinkedIn only shows that number on the job page itself.

Scrape LinkedIn jobs without an account or cookies

No login, no session cookie, no password. The Actor reads only what LinkedIn serves to logged-out visitors, through its public jobs endpoint.

Export LinkedIn job descriptions in bulk

With the full job page enabled, description carries the complete posting text — around 5,700 characters on average — plus seniority, employmentType, jobFunction and industries.

Track which companies are hiring for a role

Run the same keyword across several locations and group by company. Because isPromoted is exposed, you can tell a company that paid for placement from one that simply matches the search.

Compare salaries across cities for the same job title

Run one keyword with different location values. salary is filled whenever LinkedIn discloses a range on the card; many postings do not publish one, so treat it as a bonus field rather than a guaranteed one.

Monitor a competitor's open roles

Use the company name as the keyword. New postings appear as they are published, with the date each one went live.

Build a recruiting pipeline from LinkedIn job data

Every row carries jobId and a direct url, so runs can be diffed against each other to detect new, changed or removed postings between days.