LinkedIn Job Listings Scraper: CSV Export & New Job Alerts avatar

LinkedIn Job Listings Scraper: CSV Export & New Job Alerts

Pricing

from $1.00 / 1,000 job returneds

Go to Apify Store
LinkedIn Job Listings Scraper: CSV Export & New Job Alerts

LinkedIn Job Listings Scraper: CSV Export & New Job Alerts

For recruiters, job seekers and sales leads: LinkedIn jobs with your words in the title and a checked posting date in your 24h/week/month window, with salary, applicants, description. On 2026-10-13 a 24h search kept 300, dropped 147 non-matching jobs unbilled. New-job alerts. CSV, Excel, no login.

Pricing

from $1.00 / 1,000 job returneds

Rating

0.0

(0)

Developer

NeverEmpty

NeverEmpty

Maintained by Community

Actor stats

0

Bookmarked

3

Total users

2

Monthly active users

4 days ago

Last modified

Share

For recruiters, job seekers and sales teams tracking who is hiring: LinkedIn jobs that have your words in the title, with every posting date checked against the 24-hour, week or month window you pick, as spreadsheet rows. Search by job title, location, date posted or company (or paste a LinkedIn job search URL) and get title, company, company URL, location, posting date, salary, applicants and the full job description, ready to download as CSV, Excel or JSON.

LinkedIn mixes loosely related jobs into its results. On 2026-10-13 a past-24-hours search for data engineer in the United States returned 300 jobs with those words in the title and removed 147 others before anything was charged. Monitor mode remembers what it already gave you, so an hourly or daily schedule returns only jobs that are new since the last run: a LinkedIn job alert for Google Sheets, Slack, a CRM or your own code. No LinkedIn account, no cookies.

What you get

  • Only jobs that match your words, on by default: every job whose title does not contain all the words of your search term is removed before it is charged, and the log says how many. Each row also has titleMatchesSearch, so you can switch the check off and filter later.
  • Only jobs from the date window you picked: with "Past 24 hours", "Past week" or "Past month", the posting date of every job is checked again before it is returned. A job that is clearly older is left out and not charged.
  • Every job as one clean row: job ID, title, company, company LinkedIn URL, company logo, location, posting date (the date LinkedIn shows), salary when the job shows one, link to the job.
  • Full job details (optional): full description with paragraphs and bullet points, number of applicants as LinkedIn shows it, employment type, seniority level, job function and industries.
  • Only new jobs (monitor mode): each run returns jobs not returned before and posted around or after the last check. In a test on 2026-10-13, a second check of data engineer in the United States, started five minutes after the first, found 131 new jobs. Jobs that did not fit into one run (max results or your spending limit) come first in the next run.
  • Export anywhere: download every run as CSV, Excel, JSON or XML, or send it to Google Sheets, Slack, Zapier, Make or your own code through the Apify API.
  • No LinkedIn account, no cookies: it reads the public job pages LinkedIn shows to signed-out visitors, so your own account is never involved.

Who uses it

  • Recruiters and staffing agencies: daily lists of companies hiring for the roles you place, with the company LinkedIn URL.
  • Job seekers and career coaches: an hourly or daily alert for exact titles in exact places, with the loosely related jobs already removed.
  • Sales and lead generation: companies that are hiring now, by role, location and company (hiring signals for outreach).
  • Researchers and analysts: job market data by title, location, salary, seniority and industry.
  • AI agents and job-matching apps: clean rows with the full description, ready for an LLM to rank, summarise or match against a CV.

How to use it

  1. Type one or more job titles (for example data engineer) and locations (for example United States, Germany, London).
  2. Pick how recent the jobs must be (past 24 hours, week or month).
  3. Set Max jobs per search and turn on Include job details if you want the description and applicants.
  4. For alerts, turn on Monitor mode: only new jobs and schedule the Actor. Run broad searches (a common title across a whole country) hourly, and narrow ones (one city, one company, a rare title) daily.

Or paste the address of a LinkedIn job search into LinkedIn job search URLs, for example a search for one company's jobs.

Input fields

FieldWhat it does
searchQueriesJob titles or keywords, one per line. Each is searched in every location.
locationsCountries, regions or cities, one per line. Empty searches worldwide.
postedWithin24h, week, month or any. The posting date of every job is checked again.
searchUrlsLinkedIn job search addresses, for example one company's jobs.
titleMustMatchOn by default: only jobs whose title has every word of the search term.
includeJobDetailsAdds description, applicants, employment type, seniority, job function and industries.
maxResultsPerSearchJobs per search. Empty means 100. LinkedIn lists up to 1,000 jobs for one search.
onlyNewMonitor mode: only jobs not returned by earlier runs.
watchNameKeeps separate monitor memories for the same search.
resetMonitoringStateStarts a monitor over, as if it were the first run.

Example input

{
"searchQueries": ["data engineer"],
"locations": ["United States"],
"postedWithin": "week",
"titleMustMatch": true,
"includeJobDetails": true,
"maxResultsPerSearch": 100
}

Example output

{
"status": "ok",
"jobId": "4455981524",
"title": "Registered Nurse - Mental Health Older Adult - Days",
"company": "Methodist Health System",
"companyUrl": "https://www.linkedin.com/company/methodist-health-system",
"location": "Richardson, TX",
"postedDate": "2026-10-05",
"postedAgo": "1 week ago",
"applicants": "Be among the first 25 applicants",
"salary": null,
"employmentType": "Full-time",
"seniorityLevel": "Not Applicable",
"industries": "Hospitals and Health Care",
"description": "Hours of Work: 7am to 7pm ...",
"titleMatchesSearch": true,
"url": "https://www.linkedin.com/jobs/view/4455981524/"
}

Pricing

Pay per result: $1.50 per 1,000 jobs on the free plan (less on paid Apify plans), plus a run start fee of $0.001. Rows with full job details (description, applicants, criteria) are $2.00 per 1,000 on the free plan (less on paid plans). Rows that only explain something (no jobs found, nothing new, a page that could not be read) are free. You can set a maximum charge per run in Apify; the Actor stops there and tells you.

FAQ

How do I scrape LinkedIn jobs without logging in? Run this Actor with a job title and a location. It reads the job pages LinkedIn shows to signed-out visitors, so you do not give it any account or cookie.

How do I get a daily alert of new LinkedIn jobs? Turn on monitor mode and schedule the Actor daily. Each run returns only jobs that are new since the last run; connect the dataset to Google Sheets, Slack, Zapier or Make.

Can I export LinkedIn jobs to Excel or CSV? Yes. Every run's dataset downloads as CSV, Excel, JSON or XML from the Storage tab, or through the Apify API.

How often should I run a LinkedIn job alert? Hourly for broad searches, such as a common title across a whole country: each check reads the jobs LinkedIn lists since the last one, and an hourly schedule keeps that list short, so new jobs are not crowded out. Daily is enough for a city, one company or a rare title.

Can I get LinkedIn jobs posted in the last 24 hours only? Yes. Pick "Past 24 hours". LinkedIn's own date filter is used, and the posting date of every job is checked again before it is returned, so a job that is clearly older is left out and not charged.

How do I get only LinkedIn jobs that match my job title? Keep titleMustMatch on (the default). LinkedIn adds loosely related jobs to its results; this Actor removes every job whose title does not contain all your words before anything is charged, and the log says how many were removed.

Why do I get fewer jobs than LinkedIn shows? Because the jobs without your words in the title were removed (and not charged). Turn titleMustMatch off to get everything LinkedIn lists; the column titleMatchesSearch still marks which jobs match.

Can I scrape all jobs of one company on LinkedIn? Yes. Open the company's jobs on LinkedIn, copy the address of that search and paste it into LinkedIn job search URLs. The company filter is used, together with keywords, location and posted date.

Good to know

  • LinkedIn shows at most 1,000 jobs for one search; for more, split the search by city or by posting date.
  • LinkedIn does not apply its workplace type, job type, experience level or salary filters to signed-out visitors, so this Actor does not offer them (search URLs with those filters are not accepted, so you never pay for unfiltered jobs). Posted date, location and company filters work.
  • The posting date is the date LinkedIn shows on the job card (a day, not a time of day). The 24-hour check keeps any job whose date can still be within the last 24 hours in some time zone.
  • Number of applicants is LinkedIn's own wording ("Over 200 applicants", "Be among the first 25 applicants").
  • Salary appears only on jobs where the employer shows one.
  • Recruiter names and contact details are not collected; e-mail addresses and phone numbers inside descriptions are replaced with [email removed] / [phone removed].
  • If LinkedIn refuses a request, the Actor asks again from another IP address. If LinkedIn shows a check page or its sign-in wall, the Actor stops there instead of working around it, and the rows already read are returned.
  • Monitor memory is stored per search and watchName in your Apify account. Each check reads up to 1,000 jobs LinkedIn lists since the last check, so very broad searches are best run hourly.

Thanks for using this Actor

We build these tools for people who run them every day, and we improve them from what users tell us.

  • Missing a field, or need another filter? Tell us in the Issues tab. If the data is there, we add it.
  • Found a bug or a wrong value? Post the run ID in the Issues tab. Wrong data is the thing we fix first.

If this Actor saved you time, a short review helps other people find it.