LinkedIn Company Jobs Scraper โ€“ Vacancies Export avatar

LinkedIn Company Jobs Scraper โ€“ Vacancies Export

Pricing

from $1.00 / 1,000 results

Go to Apify Store
LinkedIn Company Jobs Scraper โ€“ Vacancies Export

LinkedIn Company Jobs Scraper โ€“ Vacancies Export

Collect public LinkedIn jobs by company slug, URL, or ID. Export titles, employers, locations, posting dates, and listing labels with filters and pagination.

Pricing

from $1.00 / 1,000 results

Rating

0.0

(0)

Developer

ScrapingMonkey

ScrapingMonkey

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Categories

Share

Collect public vacancies from a list of LinkedIn companies, with the employer context preserved on every job. LinkedIn Company Jobs Scraper accepts company slugs, URLs, or numeric IDs and returns job titles, locations, posting dates, company details, and visible listing labels.

Use it to follow hiring at target employers, compare role demand, or build a vacancy database. Set a page budget for each company and narrow the results with keywords or location before exporting them.

At a glanceDetails
๐Ÿ“ฅ InputLinkedIn company slugs, company URLs, or numeric company IDs
๐Ÿ“ค OutputOne row per collected job, including its source company
๐Ÿ”Ž FiltersKeywords, location, posting time, workplace, seniority, job type, and more
๐Ÿ“„ PaginationConfigurable pages per company; normally 10 job cards per page
๐Ÿ” Login requiredNo LinkedIn credentials or cookies

What the LinkedIn company jobs scraper collects ๐Ÿ’ผ

The Actor collects the job cards visible in LinkedIn's public company-filtered search. Each card can include:

  • Job ID, job URL, and title
  • Employer name, ID, page URL, and logo when exposed on the card
  • Job location, posting date, and relative posting-time text
  • Benefits and labels shown on the listing
  • Actively hiring and promoted indicators
  • The source company's ID, slug, name, and URL

Company slugs and URLs are resolved before searching. A numeric ID can be used directly; in that case, source-company name, slug, and URL remain empty. Employer information from each job card is still returned when available.

How to scrape LinkedIn company jobs ๐Ÿš€

  1. Add company slugs such as microsoft, company URLs, or numeric IDs.
  2. Choose pagesPerCompany and add any filters.
  3. Start the Actor and review the job rows and any failed results.
  4. Export the dataset or pass selected job URLs to a details workflow.
{
"inputList": [
"microsoft"
],
"pagesPerCompany": 2,
"keywords": "software engineer",
"location": "United States"
}

The same filters apply to every company in the run. Duplicate job IDs are removed across pages for each company; jobs returned under different company searches can appear more than once.

Company job data fields and output ๐Ÿ“ฆ

Field groupIncluded data
ResultOriginal company input and success or failed status
Source companyResolved company ID, slug, name, and URL
JobID, URL, title, location, posting date, and relative time
Listed employerCompany ID, name, URL, and logo from the job card
Listing labelsBenefits, actively hiring indicator, and promoted indicator

Complete illustrative output item with all 19 fields. The employer, vacancy, dates, and values below are fictional examples, not a live result:

{
"input": "example-analytics",
"status": "success",
"source_company_id": "12345678",
"source_company_slug": "example-analytics",
"source_company_name": "Example Analytics",
"source_company_url": "https://www.linkedin.com/company/example-analytics/",
"id": "9876543210",
"url": "https://www.linkedin.com/jobs/view/9876543210/",
"title": "Software Engineer",
"company.id": "12345678",
"company.name": "Example Analytics",
"company.url": "https://www.linkedin.com/company/example-analytics/",
"company.logo": "https://example.com/company-logo.png",
"location": "Singapore",
"posted_at": "2026-09-06",
"posted_time": "2 days ago",
"benefits": [
"Actively Hiring",
"Medical insurance"
],
"actively_hiring": true,
"is_promoted": false
}

Each job occupies one row in one table. JSON uses the same literal field names, including company.name; company details are separate columns. benefits is an ordered list within that row.

Successful cards may contain empty strings or empty lists when LinkedIn omits data. The hiring and promoted flags reflect labels found on the card; false does not prove that an employer is inactive. A failed result retains input, sets status to failed, and uses null for the other fields.

Input requirements and company coverage โš™๏ธ

ParameterTypeDefaultRules and meaning
inputListarray of stringsRequiredAt least one company slug, company URL, or numeric company ID
pagesPerCompanyinteger1Minimum 1; no fixed upper limit
keywordsstring""Job keywords applied within each company's results
locationstring""LinkedIn location text
geoIdstring""LinkedIn geographic ID
timePostedstring""Posting-time value from LinkedIn's f_TPR URL parameter
workplaceTypestring""Workplace value from LinkedIn's f_WT URL parameter
experienceLevelstring""Experience-level value from LinkedIn's f_E URL parameter
jobTypestring""Job-type value from LinkedIn's f_JT URL parameter
sortBystring""Sort value from LinkedIn's sortBy URL parameter
distanceinteger0Minimum 0; zero leaves the distance filter unset
easyApplybooleanfalseRequest LinkedIn's Easy Apply filter
earlyApplicantbooleanfalseRequest LinkedIn's early-applicant filter

Accepted forms include microsoft, https://www.linkedin.com/company/microsoft/, and 1035. Enter company targets rather than job URLs. Filter strings are passed through to LinkedIn; use its filter values, not display labels, for the coded filters. To reuse filters from a LinkedIn job-search URL, copy its parameter values into the corresponding input fields.

Pages normally contain 10 job cards. Pagination stops at the requested limit, when a page contains fewer than 10 parsed jobs, or when no new job IDs appear. A company with no jobs on its first page produces a failed row. An empty later page simply ends that company's pagination.

The Actor collects listing summaries. Use LinkedIn Job Details Scraper for descriptions, application links, and available salary or qualification fields.

LinkedIn company hiring use cases ๐ŸŽฏ

Target-account hiring research

Follow vacancies at a defined employer list and retain the company that led to each result for account-level reporting.

Role and location comparisons

Compare the titles and locations employers advertise, using the same filters and page budget across a run.

Vacancy alerts

Schedule repeat runs and compare job IDs in your own database to identify newly observed listings.

Job enrichment pipelines

Collect job URLs by company, select relevant openings, and retrieve their full public descriptions with Job Details Scraper.

Pricing and billable job rows ๐Ÿ’ฐ

Check the Actor's Pricing tab for the current charging model and rate.

Under dataset-item pricing, each saved job is a result. Saved failed rows can also count, including a company with no jobs on the first page or a page that remains unavailable after retries. Automatic retries do not independently create extra rows.

pagesPerCompany limits pages requested, not an exact row count. Begin with one page per company to estimate the volume for your chosen filters.

LinkedIn company jobs API and integrations ๐Ÿ”Œ

Use the Actor ID from the API tab for $ACTOR_ID and your Apify token for $APIFY_TOKEN:

curl -X POST "https://api.apify.com/v2/acts/$ACTOR_ID/runs?token=$APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"inputList":["microsoft"],"pagesPerCompany":2,"keywords":"software engineer","location":"United States"}'

Run the same search from Apify schedules, REST, or client libraries. Send its default dataset to a spreadsheet, vacancy database, Make, Zapier, or your own reporting workflow. Job IDs provide a useful key for comparing repeated runs.

Reliability and collection limits โš ๏ธ

The Actor processes up to five requests concurrently and retries temporary request failures. An invalid company entry or an unavailable public page is saved as a failed result without stopping other companies.

A later-page failure can leave successful jobs and a failed row for the same company in the dataset. Already saved rows remain available. Duplicate suppression applies within each company's pagination, so combine results by job ID if your downstream workflow needs uniqueness across companies or runs.

Public search can change, return fewer results than requested, or omit optional card details. The dataset is a snapshot of the collected pages, not a guaranteed inventory of every vacancy at the employer.

Frequently asked questions โ“

Can I use a company ID instead of a URL?

Yes. A numeric company ID searches jobs directly. Source-company name, slug, and URL stay empty because the company profile is not resolved for that input form.

Will two pages always return 20 jobs?

No. Each page normally contains 10 cards, but short pages, duplicates, unavailable results, or an early end to the search can reduce the total.

Does it return full descriptions?

It returns public job-card fields. Use Job Details Scraper with the collected IDs or URLs to retrieve available descriptions and other detail fields.

Why did a company with no vacancies produce a failed row?

An empty first page is recorded as a failed result so the submitted company remains visible. Empty pages after collected jobs end pagination without adding a failure.

Do I need a LinkedIn account?

No LinkedIn account, password, or session cookies are required.

For a reproducible issue, share the run ID, a public company input, the filters used, and the expected result through the Actor's support channel.

Use public job data in accordance with applicable privacy, copyright, contractual, and platform requirements.