LinkedIn Company Jobs Scraper - Every Opening, No Login
Pricing
from $1.00 / 1,000 results
LinkedIn Company Jobs Scraper - Every Opening, No Login
LinkedIn jobs scraper tool that takes a company and returns every job it has open, with full descriptions, seniority, and applicant counts. No login or cookies.
Pricing
from $1.00 / 1,000 results
Rating
0.0
(0)
Developer
Thodor
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
0
Monthly active users
14 days ago
Last modified
Categories
Share
A LinkedIn jobs scraper tool that works by company, not keyword. Paste linkedin.com/company/vercel, get back every job Vercel has open, and load the postings into a spreadsheet as CSV, Excel, or JSON. Full description, seniority, and applicant count on every row. No login, no cookies, no LinkedIn account.
Keyword scrapers answer "who is hiring a Rust engineer in Berlin". This one answers "what is this specific company doing": each company is walked to exhaustion, so the 1,000-result ceiling LinkedIn puts on job searches never applies, and every row arrives with the employer's industry, headcount, and HQ already attached.
π How to export LinkedIn jobs to a spreadsheet
- Put your companies in the Companies field. Three formats work:
- A) Company page URL:
https://www.linkedin.com/company/vercel - B) Country subdomain:
https://be.linkedin.com/company/vercel - C) Bare slug:
vercel
- A) Company page URL:
- Click Start.
- Open the Output tab and click Export for CSV, Excel, JSON, or HTML.
π So what do you get?
| πΌ Job title | π Full job description | π₯ Amount of applicants |
|---|---|---|
| π Location | π Posted and expiry dates | ποΈ Seniority level |
| π’ Company headcount, industry, HQ | πΆ Salary, when published | π οΈ Job function |
| β³ Employment type | π Required skills and education | π Months of experience required |
| π Original LinkedIn URL | π Stable job and requisition IDs | β‘ Easy-apply flag |
βοΈ Compared to keyword job scrapers
| Keyword job scrapers | This actor | |
|---|---|---|
| π Input | Keyword + location | The company itself |
| π Coverage | β οΈ 1,000-result search ceiling | β Each company walked to exhaustion |
| π’ Employer details | β Second scraper plus a join | β Headcount, industry, HQ on every row |
| π Your LinkedIn account | β οΈ Cookie scrapers put it at risk | β Never used, nothing to ban |
π― Three things people run this for
| How | |
|---|---|
| π Catch hiring pushes the day they start | Daily run on a Schedule with Posted within at Past 24 hours. A webhook drops new postings into Slack, Airtable, or your CRM |
| πΊοΈ Map a competitor's roadmap | Job specs name the stack, the team, and the problem before any announcement does. Feed description_text to an LLM and extract them at scale |
| π Track headcount direction | Same companies, same schedule; the job count per company becomes a growth or contraction signal |
π₯ Input
{"companies": ["https://www.linkedin.com/company/vercel", "microsoft"],"postedWithin": "any","maxJobsPerCompany": 0}
companies: slugs or full LinkedIn URLs, mixed freelypostedWithin: defaultany, or24h,7d,30d. LinkedIn applies it before any paging, so narrow windows run faster and cheapermaxJobsPerCompany:0= every opening, which is what most real runs want. The default10just keeps a first run quick
π΅οΈ Every opening at one company
{"companies": ["https://www.linkedin.com/company/vercel"], "maxJobsPerCompany": 0}
π° A daily feed of new postings
Put this on a daily Schedule and each run returns only what appeared since the last one, a feed of new openings instead of a full re-scrape.
{"companies": ["vercel", "microsoft", "datadog"], "postedWithin": "24h", "maxJobsPerCompany": 0}
β‘ A quick sample of an account list
The default cap of 10 jobs per company keeps a first look fast and cheap.
{"companies": ["vercel", "microsoft", "datadog"]}
π€ Output
One flat row per job. Results stream into the dataset while the run is going, so partial exports work immediately.

{"input_target": "vercel","org_id": "16181286","company_slug": "vercel","job_id": "4437886728","title": "Software Engineer, Observability","company": "Vercel","company_url": "https://www.linkedin.com/company/vercel","location": "London, England, United Kingdom","posted": "2026-07-07","employment_type": "FULL_TIME","seniority": "Mid-Senior level","job_function": "Engineering","industries": "Technology, Information and Internet","applicants": 76,"easy_apply": false,"description_html": "<p>...</p>","description_text": "...","view_url": "https://uk.linkedin.com/jobs/view/software-engineer-observability-at-vercel-4437886728"// HIDDEN: date_posted, valid_through, months_of_experience, employer_job_id,// base_salary, skills, education, hiring_org, job_location, applicants_raw,// company_details, detail_error}
β οΈ Jobs are not returned newest first. LinkedIn orders them by its own relevance ranking, so a posting from the 29th can land eighth in the list. Sort on
date_postedfor chronology, and know thatmaxJobsPerCompanytakes an arbitrary slice rather than the most recent postings.
Fields
| Field | Notes |
|---|---|
job_id, view_url | Stable LinkedIn identifiers. Use job_id to deduplicate across runs and detect new postings |
title, location, posted | The basics, on every row |
date_posted, valid_through | Exact timestamps from LinkedIn's structured data, more precise than the listing's date |
applicants | Capped by LinkedIn at 200. A row showing 200 means "200 or more", and applicants_raw keeps the original wording |
seniority, job_function, industries, employment_type | Always in English, for every company in every country |
months_of_experience | Required experience as a number, so 24 means two years. Filter on it directly instead of parsing the description |
employer_job_id | The employer's own requisition ID, separate from LinkedIn's job_id. Use it to join against a careers page or ATS |
base_salary | Populated when LinkedIn publishes structured pay, which is uncommon. Usually null |
description_html, description_text | Full posting body as HTML and as plain text. Feed either to an LLM to pull out tech stack, salary, or team structure |
skills, education, hiring_org, job_location | Present when LinkedIn publishes them, null when it does not |
company_details | The hiring company's industry, exact employee count, follower count, HQ, website, founded year, type, specialties, and address, on every row |
detail_error | null on success. Set when a detail page failed, so you can retry those rows without rerunning the company |
βοΈ Use it as a LinkedIn jobs API
Every run is an HTTP endpoint: POST the same JSON as the form and the jobs come back in the response body.
Python
import requestsresp = requests.post("https://api.apify.com/v2/acts/thodor~linkedin-company-jobs-scraper/run-sync-get-dataset-items",params={"token": "YOUR_APIFY_TOKEN"},json={"companies": ["vercel"], "maxJobsPerCompany": 0},)for job in resp.json():print(job["title"], job["location"], job["posted"])
Node.js
import axios from "axios";const { data } = await axios.post("https://api.apify.com/v2/acts/thodor~linkedin-company-jobs-scraper/run-sync-get-dataset-items",{ companies: ["vercel"], maxJobsPerCompany: 0 },{ params: { token: process.env.APIFY_TOKEN } });console.log(data.length, data[0].title, data[0].location);
curl
curl -X POST "https://api.apify.com/v2/acts/thodor~linkedin-company-jobs-scraper/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" \-H "Content-Type: application/json" \-d '{"companies":["vercel"],"maxJobsPerCompany":0}'
Swap run-sync-get-dataset-items for runs to fire async and collect results by webhook; a watch over many large companies can outlive the 5-minute sync window. The apify-client SDK works too, in Python and JavaScript, and the n8n, Make, Zapier, Google Sheets, and Slack integrations take the same input.
π‘ Tip: no need to write the JSON by hand. Fill in the form on the Input tab, switch the editor from Form to JSON, and copy the result into your code.
π° How much does it cost to scrape LinkedIn jobs?
Billing is per job returned, at the per-1,000 rate on the price card on this page. There is no charge per company or per page fetched, so maxJobsPerCompany doubles as a hard cost cap, and a company with no open jobs costs next to nothing to check.
The 44-job Vercel run above bills as 44 jobs, a few cents at any plan tier. A daily watch of 50 accounts that surfaces 100 new postings a day stays in single-digit dollars a month.
β FAQ
Do I need a LinkedIn account or cookies? No.
Can I scrape LinkedIn jobs for free? Yes. Registering on Apify comes with $5 of free platform credit every month, no credit card needed, which covers a few thousand jobs here.
Is there an official LinkedIn jobs API? LinkedIn's Talent APIs are open to approved partners only. This actor is the practical alternative: POST a company, get JSON back, no partnership application.
Can I search by keyword or location instead? Not here, the company is the input. For keyword and location searches across all of LinkedIn, use the LinkedIn Job Scraper API.
Does it include the recruiter who posted the job? No. LinkedIn shows the job poster only to logged-in members. Login-gated fields are left out rather than filled with guesses.
Why did a company return 0 jobs? It has no public postings right now. A zero is a real zero rather than a filter hiding results.
How many jobs can one run get from a single company? Everything, for most companies. Giants with thousands of openings hit a ceiling of roughly 700 to 800 unique jobs per run, which is LinkedIn's limit on what it serves one IP, not this actor's.
What happens when LinkedIn blocks a request? The actor retries through a US proxy on a fresh IP, up to 5 times. If 15 requests fail back to back, the run stops with an explanation instead of grinding on, and everything scraped so far stays in the dataset.
Is this legal? It collects only publicly visible job postings, published deliberately so people can find and apply to them. No private data, no logins. You are responsible for how you use the output, and GDPR applies if you store personal data an employer wrote into a description.
π Support
Something not working, or a field missing? Message me in the Issues tab and I'll look into it quickly. I'm a solo dev, so don't hesitate.
Researching the company itself rather than its jobs? The LinkedIn Company Scraper pulls profiles, posts, and competitors.
- Thodor