LinkedIn Job Description Scraper ⚡ Advanced Data, Best Value
Pricing
Pay per usage
LinkedIn Job Description Scraper ⚡ Advanced Data, Best Value
Paste LinkedIn job URLs, get the full job description, criteria, applicant count and company info for each one. No login, no browser, one request per job.
Pricing
Pay per usage
Rating
0.0
(0)
Developer
Muhammad Shamshad Aslam
Maintained by CommunityActor stats
0
Bookmarked
3
Total users
2
Monthly active users
2 days ago
Last modified
Categories
Share
LinkedIn Job Description Scraper by URL
Paste LinkedIn job links, get the full job description and every detail LinkedIn shows on the public job page — title, company, location, seniority, employment type, function, industries, applicant count, salary when published, recruiter contact when shown, and the employer's company profile. No login, no browser, one request per job, so it is fast and very low cost per result.
Built as the companion to the LinkedIn Jobs Scraper: that one finds jobs from a search, this one takes job URLs you already have — from a spreadsheet, a CRM, an alert email, a Clay table, or another scraper — and fills in everything behind the link.
Features
- 🔗 Any LinkedIn job link format —
linkedin.com/jobs/view/4419969671, the long slugged version, regional hosts (uk.linkedin.com,de.linkedin.com), search and collection links withcurrentJobId=…, or just the numeric ID - 📄 Full description — plain text (
descriptionText) and the original HTML (descriptionHtml) with headings, lists and bold intact - ✅ Job criteria — seniority level, employment type, job function, industries
- 💰 Salary — read from the job page, where LinkedIn actually publishes it
- 👤 Job poster — recruiter name, title and profile URL when the listing shows one
- 🏢 Company profile — website, domain, industry, employee count, headquarters, type, founding year, specialties, description. One cached request per company, so ten jobs at one employer cost one fetch. Switch off for the cheapest run
- ✂️ Long-description splitting — optional
descriptionChunksarray of up to 3 labelled parts ("Job description part 1 of 2: …") plus flatdescriptionPart1–descriptionPart3fields, so descriptions over 8,000 characters fit Clay, Google Sheets and other per-cell limits - 🚦 Closed-job flag —
isClosedistruewhen LinkedIn shows "No longer accepting applications" - ✅ Standard field names —
id,link,companyName,salaryInfo,postedAt,descriptionText,industries,applicantsCount,companyEmployeesCount,applyMethod, identical to the LinkedIn Jobs Scraper so rows from both merge in one sheet - ✅ Duplicate-free — the same job pasted twice is fetched once
- 🧾 Failure report — URLs that were removed, blocked or malformed are listed in the key-value store record
FAILED_URLS, never silently dropped - ✅ No login required — reads the public job page, so no account can get banned
Input
| Field | Type | Default | Description |
|---|---|---|---|
jobUrls | array | 3 example jobs | LinkedIn job URLs or IDs, one per line. Duplicates are fetched once |
fetchCompanyDetails | boolean | true | Also fetch the employer's public LinkedIn page. Off = one request per job, fastest and cheapest |
chunkDescription | boolean | false | Split the description into up to 3 labelled parts. Adds descriptionChunks, descriptionPartsCount and descriptionPart1–3. descriptionText stays in full |
chunkSize | integer | 7000 | Max characters per part, label included. Only used when splitting is on |
proxyConfig | proxy | Residential | Residential is the default; datacenter IPs get blocked quickly |
Example input
{"jobUrls": ["https://www.linkedin.com/jobs/view/svp-chief-medical-officer-at-main-line-health-4447207474","https://www.linkedin.com/jobs/view/4419969671","https://www.linkedin.com/jobs/search/?currentJobId=4455931376&keywords=engineer"],"fetchCompanyDetails": true,"chunkDescription": true}
Output
One record per unique job. Fields that LinkedIn does not show for a given job are null.
{"id": "4419969671","title": "Senior Software Engineer – Go (Golang)","companyName": "General Motors","companyLinkedinUrl": "https://www.linkedin.com/company/general-motors","companyLogo": "https://media.licdn.com/dms/image/v2/.../company-logo_100_100","location": "Warren, MI","postedRelative": "1 week ago","postedAt": "2026-09-17","salaryInfo": "$120,000.00/yr - $180,000.00/yr","link": "https://www.linkedin.com/jobs/view/4419969671","applyUrl": "https://www.linkedin.com/jobs/view/4419969671/","applyMethod": "external","isClosed": false,"jobPosterName": "Jane Doe","jobPosterTitle": "Technical Recruiter at General Motors","jobPosterProfileUrl": "https://www.linkedin.com/in/jane-doe","descriptionText": "Job Description\n\nWe are looking for a Senior Software Engineer …","descriptionHtml": "<p><strong>Job Description</strong></p><p>We are looking for …</p>","descriptionChunks": ["Job description part 1 of 2:\nJob Description\n\nWe are looking for a Senior Software Engineer …","Job description part 2 of 2:\nBenefits\n\nGM offers a competitive …"],"descriptionPartsCount": 2,"descriptionPart1": "Job description part 1 of 2:\nJob Description\n\nWe are looking for a Senior Software Engineer …","descriptionPart2": "Job description part 2 of 2:\nBenefits\n\nGM offers a competitive …","descriptionPart3": null,"seniorityLevel": "Mid-Senior level","employmentType": "Full-time","jobFunction": "Engineering and Information Technology","industries": "Motor Vehicle Manufacturing","applicantsCount": "153 applicants","companyWebsite": "https://www.gm.com/","companyDomain": "gm.com","companyIndustry": "Motor Vehicle Manufacturing","companyEmployeesCount": "10,001+ employees","companyHeadquarters": "Detroit, Michigan","companyType": "Public Company","companyFounded": "1908","companySpecialties": "Automotive, Electric Vehicles, and Autonomous Driving","companyDescription": "General Motors is a global company …","inputUrl": "https://www.linkedin.com/jobs/view/4419969671"}
Field notes
postedAtis derived from LinkedIn's relative wording (1 week ago), so it is approximate.postedRelativeis exactly what LinkedIn shows.descriptionChunks,descriptionPartsCountanddescriptionPart1–descriptionPart3only appear whenchunkDescriptionis on. Parts are cut at paragraph or sentence boundaries, never mid-word. A description short enough for one part gives a single "part 1 of 1". Unused parts arenull. In Clay, mapdescriptionPart1,descriptionPart2,descriptionPart3to three columns.applyMethodiseasy_applyorexternal. LinkedIn hides the external ATS link from logged-out visitors, soapplyUrlopens the job's apply flow on LinkedIn.- Company fields are
nullwhenfetchCompanyDetailsis off, when the employer has no LinkedIn page, or when the page is a university (/school/), which LinkedIn does not serve publicly.
What counts as a result
Only jobs that were actually fetched are saved to the dataset and charged. Removed jobs (LinkedIn answers 404), blocked requests and inputs with no job ID cost nothing; they are listed in the key-value store record FAILED_URLS under notFound, blocked, failed and invalid, and summarised at the end of the log.
Use cases
- Enrich a job list — you have links from alerts, a CRM or a search scraper; add the description, seniority and company data behind each one
- Lead generation — read the description to qualify the hiring need, then pair with a contact finder for the job poster or company
- Applicant tooling — pull the full text of postings for résumé matching, keyword analysis or cover-letter generation
- Monitoring — re-run on saved links to see which roles have closed (
isClosed) and how applicant counts move - Clay, n8n, Make, Zapier — pass a column of job URLs in, get structured fields back
Tips
- Copy links from a logged-out LinkedIn tab or from any LinkedIn job scraper output; both work. Logged-in links also work, since only the numeric ID is used.
- Turn
fetchCompanyDetailsoff when you only need the description; that halves the requests. - Seeing "Cell data size exceeds limit" in Clay? Turn
chunkDescriptionon and use thedescriptionPartfields instead ofdescriptionText. - Export as CSV, Excel or JSON from the dataset tab, or pull via the Apify API.