LinkedIn Jobs Scraper (No Cookies)
Pricing
$0.90 / 1,000 job listings
LinkedIn Jobs Scraper (No Cookies)
Find public LinkedIn jobs by keyword, job URL, or ID without a LinkedIn login or cookies. Get titles, employers, locations, and available job details in a dataset for hiring research and job lists.
Pricing
$0.90 / 1,000 job listings
Rating
0.0
(0)
Developer
Maxime Dupré
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
19 days ago
Last modified
Categories
Share
🔎 Find LinkedIn jobs without cookies
Recruiters, job seekers, and hiring researchers can use LinkedIn Jobs Scraper to turn public job listings into a dataset. Search by keyword or supply job URLs or IDs. Get titles, employers, locations, and available job details to compare roles and build job lists without a LinkedIn account or cookies.
- Find roles with remote work using LinkedIn Remote Jobs.
- Collect early-career openings with LinkedIn Internships.
- Review a named employer's openings with LinkedIn Company Jobs.
- Find recent openings with LinkedIn Jobs Posted Today.
- Collect jobs that offer Easy Apply with LinkedIn Easy Apply Jobs.
📦 Public job details for hiring research
Each saved row is one public LinkedIn job listing with a job ID, title, employer, and location. Optional data includes full descriptions, posting dates, job types, pay, benefits, applicant counts, apply links, and company details when the source shows them.
Job data is read from the source during the run. Missing optional details do not prevent a valid job from being saved. Private or unreadable listings are not saved as jobs. Source access limits can affect which jobs are available.
The first eligible occurrence of each source job is saved as it is found. Later matches for that job are ignored within the run.
▶️ Run a LinkedIn job search or lookup
- Choose Keyword search, Job URLs, or Job IDs in Find jobs by.
- Enter keywords, public job URLs, or numeric job IDs for that method.
- For keyword search, add any location, employer, date, or job filters you need. All keywords use the same filters.
- Set Maximum jobs, or leave it empty to return all available results until the source is exhausted.
- Start the Actor and open the Job listings dataset link to review or export the jobs.
⚙️ Input
Only fields for the chosen method are used. Search filters apply to keyword search; job URLs and job IDs fetch the listings you supply and ignore those filters.
Input fields
| Field | Type | What it does |
|---|---|---|
discoveryMethod | string | Choose keywords, urls, or ids. Required. |
keywords | array of strings | Job searches with shared filters. Supports AND, OR, NOT, quotes, and parentheses. |
location | string | City, region, country, or numeric LinkedIn geographic ID. Leave empty for worldwide search. |
companyName | string | Search for jobs at a named employer. |
companyReferences | array of strings | LinkedIn company page URLs or numeric company IDs to filter by employers. |
postedWithin | string | Choose hour, 24h, week, or month. Leave empty for any posting date. |
employmentTypes | array of strings | Choose 1 full-time, 2 part-time, 3 contract, 4 temporary, 5 volunteer, 6 internship, or 7 other. Empty includes all types. |
experienceLevels | array of strings | Choose 1 internship, 2 entry level, 3 associate, 4 mid-senior level, 5 director, or 6 executive. Empty includes all levels. |
workplaceTypes | array of strings | Choose 1 on-site, 2 remote, or 3 hybrid. Empty includes all workplace types. |
industryIds | array of strings | Numeric LinkedIn industry IDs. Empty includes all industries. |
minimumSalary | string | LinkedIn salary threshold in US dollars: 40000, 60000, 80000, 100000, 120000, 140000, 160000, 180000, or 200000. Results depend on available source salary data. |
easyApplyOnly | boolean | Keep only jobs offering LinkedIn Easy Apply. |
fewerThanTenApplicants | boolean | Keep only jobs LinkedIn marks as having fewer than ten applicants. |
titleKeywords | array of strings | Keep titles containing every keyword in this list. Empty skips this filter. |
excludeStaffingAgencies | boolean | Exclude recruiter and staffing-agency postings. |
sortBy | string | Choose relevance or date for newest jobs first. |
jobUrls | array of objects | Public LinkedIn job URLs for URL lookup. Each entry has a url value. |
jobIds | array of strings | Numeric LinkedIn job IDs for ID lookup. |
maxItems | integer | Stop after this many jobs across the run. Minimum: 1. Leave empty to return all available results until the source is exhausted. There is no fixed upper bound in the input schema. |
Input example
This is the public input of the successful current-beta default-input run.
{"discoveryMethod": "keywords","keywords": ["software engineer"],"maxItems": 1}
🧾 Output
The jobs output field is a string link to the saved job listings in the default dataset. All three input methods return the same job row shape. The four required fields are jobId, title, companyName, and location. Other fields may be missing when the source does not supply them.
Job row fields
| Field | Type | What it does |
|---|---|---|
jobId | string | LinkedIn job ID for finding the job or joining data. |
title | string | Job title shown by LinkedIn. |
companyName | string | Employer name on the listing. |
location | string | Job location shown by LinkedIn. |
description | string | Full available description, including stated duties, skills, pay, and benefits. |
postedAt | string | Posting date reported by LinkedIn. |
employmentType | string | Employment type shown on the listing. |
seniorityLevel | string | Source-stated experience or seniority level. |
workplaceType | string | Remote, hybrid, or on-site work as stated by LinkedIn. |
industries | array of strings | Industries shown on the job listing. |
jobFunction | string | Job function shown on the listing. |
applicants | string | Applicant count or range, with the source's wording and limits. |
applicationUrl | string | External apply URL supplied by the source. |
applicationMethod | string | Source-stated way to apply, such as Easy Apply or an external application. |
activelyHiring | boolean | Whether LinkedIn shows the Actively Hiring badge, when reported. |
compensation | string | Stated pay, including currency, pay period, and any stated limits. |
benefits | string | Benefits stated by the source. |
listingStatus | string | Source-reported status of a successfully read listing. |
expiresAt | string | Source-reported expiration date. |
closedAt | string | Source-reported closure date. |
viewCount | integer | Job views reported by the source. |
companyLogoUrl | string | Employer logo URL supplied by LinkedIn. |
company | object | Available details from the employer's public company page. |
company.id | string | LinkedIn company ID. |
company.url | string | Company page URL supplied by LinkedIn. |
company.description | string | Public company description. |
company.industries | array of strings | Industries listed by the company. |
company.specialties | array of strings | Specialties listed by the company. |
company.locations | array of strings | Locations listed by the company. |
company.size | string | Workforce size or range shown by LinkedIn. |
company.employeeCount | integer | Source-reported employee count. |
company.followerCount | integer | Source-reported follower count. |
company.headquarters | string | Headquarters location on the public page. |
company.coverImageUrl | string | Company cover image URL supplied by LinkedIn. |
Genuine job row
This complete row is from a successful current-beta run. Public source values are shown without shortening.
{"jobId": "4470778326","title": "PGT Biology Teacher","companyName": "Modern School Lucknow","location": "Lucknow, Uttar Pradesh, India","postedAt": "2026-09-26","companyLogoUrl": "https://media.licdn.com/dms/image/v2/C510BAQH4esIGpso9Tw/company-logo_100_100/company-logo_100_100/0/1630573886872?e=2147483647&v=beta&t=7Rw_U-UVCj11BusYS2dQook0jc5u20CgqccVOJ8P-sY","description": "Company Description\n\nEstablished in 1979, Modern School Lucknow is committed to creating an engaging, inquiry-driven learning environment that supports academic growth and development. The school follows the IB curriculum from Nursery to Grade 5, ICSE for Grades 6 to 10 and ISC for Grades 11 and 12.\n\n\n\n\nRole Description\n\nWe are seeking a Biology Teacher for Grades IX–XII for an on-site role in Lucknow. The teacher will deliver engaging lessons, conduct practical and laboratory-based learning, assess student progress and build strong conceptual understanding.\n\n\n\n\nWe are looking for…\n\nA passionate Biology educator who encourages students to observe, question, investigate and develop a deeper understanding of the living world.\n\n\n\n\nQualifications\n\nStrong subject knowledge in Biology/Life Sciences\n\nExperience teaching at secondary/senior secondary level\n\nExpertise in lesson planning and curriculum development\n\nAbility to conduct laboratory work and practicals\n\nExperience with ICSE/ISC curriculum is an advantage\n\nMaster’s degree in Biology/Life Sciences or related field with B.Ed. or equivalent qualification","applicationMethod": "Easy Apply","employmentType": "Other","seniorityLevel": "Entry level","industries": ["Primary and Secondary Education"],"applicants": "151 applicants","expiresAt": "2027-03-25T04:19:33.000Z"}
💳 Pricing
This Actor uses pay-per-event pricing. The Job listing event covers one public LinkedIn job listing read successfully and saved to your dataset. Failed lookups and runs that save no jobs do not create job-listing events. Check the Pricing panel for the current rate.
🔌 Integrations
Export the dataset from Apify for use in spreadsheets or your own hiring research tools. You can run the Actor and read the saved dataset through the Apify API.
❓ FAQ
Do search filters apply to job URLs and IDs?
No. Job URLs and IDs fetch the listings you supply. Only keyword search uses the search filters.
Can I give each keyword a different location or filter?
All keywords in one run share the same filters. Use separate runs when you need different settings.
What happens if several keywords find the same job?
The first eligible occurrence is saved right away. Later matches for the same source job are ignored within that run.
Why are some job details missing?
Public listings do not always show every detail. Optional fields are returned only when available. A valid job can still be saved when optional company details are unavailable.
Does leaving Maximum jobs empty return every LinkedIn job?
It returns all available results until the source is exhausted. It does not promise every job on LinkedIn. Public source access can limit what is available.
Can I use this as a LinkedIn jobs API without cookies?
You can call this Actor through the Apify API and read its dataset. It reads public LinkedIn job data without a LinkedIn account or cookies. It is an independent tool and is not an official LinkedIn API.
Does it apply for jobs or collect candidate profiles?
It collects public job listings. It does not submit applications or collect candidate profiles.
📝 Changelog
v0.0 (06-10-2026)
- Initial release.
🆘 Support
For issues, questions, or feature requests, file a ticket and I'll fix or implement it in less than 24h 🫡
🔗 Related Actors
- LinkedIn Company Profile Scraper: Add public employer facts for company research.
- Handshake Jobs Scraper: Collect public Handshake jobs and internships for a wider job list.
- Welcome to the Jungle Jobs Scraper: Compare public WTTJ roles, salaries, and remote policies.
- CWjobs Scraper: Research UK tech openings with employer and salary details.
- Rozee.pk Jobs Scraper: Add public Pakistan job listings to hiring research.
Made with ❤️ by Maxime Dupré