LinkedIn Jobs Scraper + Apollo Enrichment
Pricing
from $5.00 / 1,000 results
LinkedIn Jobs Scraper + Apollo Enrichment
Scrape LinkedIn job listings and automatically enrich company data + find decision makers via Apollo.io. No login required. Outputs job details, company profiles, and contacts in Google Sheets-ready format.
Pricing
from $5.00 / 1,000 results
Rating
0.0
(0)
Developer
Minkesh Patel
Actor stats
1
Bookmarked
7
Total users
5
Monthly active users
3 hours ago
Last modified
Categories
Share
Scrape LinkedIn job listings from search URLs or direct job page URLs — no login, no cookies required. Automatically enriches company data and finds decision maker contacts via Apollo.io.
Built by Minkesh Patel | minkesh.patel@getoncrm.com | +917405042484
✨ Key Features
- No login required – uses LinkedIn's public guest API
- Dual input modes – bulk scrape from search URLs OR scrape specific job pages
- Full job details – title, company, location, salary, description, employment type, seniority, industry
- Job poster info – recruiter name, title, and LinkedIn URL (via secondary page fetch)
- AI-ready summary – each job includes a pre-formatted
jobSummaryfield ready to paste into any AI tool - Google Sheets ready – flat JSON, exportable as CSV in one click
- Auto-deduplication – no duplicate jobs even across multiple search pages
- Pagination support – automatically scrapes multiple pages to reach your
maxJobstarget - Location & filter aware – respects location, remote/on-site, job type, date posted, and experience level filters from your search URL
- Apollo company enrichment – website, phone, employee count, industry, tech stack, and more
- Apollo contact enrichment – find decision makers by title at each company (FREE with Apollo key)
📋 Output Fields
| Field | Description |
|---|---|
jobId | LinkedIn job ID |
jobUrl | Direct link to the job posting |
title | Job title |
companyName | Company name |
companyLinkedinUrl | LinkedIn company page URL |
jobLocation | Job location |
postedAt | When the job was posted |
applicantsCount | Number of applicants |
employmentType | Full-time, Part-time, Contract, etc. |
seniorityLevel | Entry, Mid, Senior, Director, etc. |
jobFunction | Job function category |
industries | Industry category |
salary | Salary range (if listed) |
applyUrl | External apply link |
jobPosterName | Recruiter / hiring manager name |
jobPosterTitle | Recruiter / hiring manager title |
jobPosterLinkedinUrl | Recruiter LinkedIn profile URL |
descriptionText | Full job description text |
jobSummary | AI-ready pre-formatted summary |
apolloCompanyId | Apollo.io company ID |
companyWebsite | Company website |
companyPhone | Company phone number |
companyEmployeeCount | Number of employees |
companyIndustry | Industry (from Apollo) |
companyCity / companyState / companyCountry | Company location |
companyDescription | Company description |
companyTwitterUrl | Company Twitter/X URL |
companyFacebookUrl | Company Facebook URL |
companyAnnualRevenue | Annual revenue (from Apollo) |
companyTechStack | Technologies used (from Apollo) |
⚙️ Input Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
searchUrls | array | — | One or more LinkedIn job search URLs. Apply all your filters in LinkedIn first, then copy the URL. |
directJobUrls | array | — | Direct LinkedIn job page URLs to scrape specific postings. |
maxJobs | integer | 25 | Maximum number of jobs to scrape. The actor paginates automatically (10 jobs per page) to reach this limit. |
scrapeJobDetails | boolean | true | Fetch full job description and metadata. If disabled, only basic info is returned. |
includeJobSummary | boolean | true | Add a pre-formatted jobSummary field to each result. |
apolloApiKey | string | — | Your Apollo.io API key. Required for company and contact enrichment. |
enrichContacts | boolean | false | Enable Apollo People Search to find decision makers at each company. FREE – no Apollo credits required. Requires apolloApiKey and contactTitles to be set. |
contactTitles | array | — | Job titles to search for at each company (e.g. ["VP of Sales", "CTO", "Director of Engineering"]). Required when enrichContacts is true. |
contactsPerCompany | integer | 3 | Max contacts to find per company (1–10). |
enrichContactEmails | boolean | false | Fetch verified email addresses for each contact. Costs 1 Apollo credit per contact. |
enrichContactPhones | boolean | false | Fetch phone numbers for each contact. Costs 1 Apollo credit per contact. |
requestDelayMin | integer | 3000 | Minimum delay between requests in ms (recommended: 3000+). |
requestDelayMax | integer | 8000 | Maximum delay between requests in ms. |
🔍 How Location & Filters Work
The actor reads all filter parameters directly from your search URL — location, remote/on-site, job type, date posted, experience level, etc. are all passed through automatically.
Best practice: Go to linkedin.com/jobs/search, apply all the filters you need using LinkedIn's UI, then copy the full URL and paste it into searchUrls.
Example URL with filters:
https://www.linkedin.com/jobs/search/?keywords=Salesforce+Revenue+Cloud&location=Texas&f_WT=2&f_JT=F&f_TPR=r2592000
location=Texas→ filters to Texasf_WT=2→ Remote onlyf_JT=F→ Full-time onlyf_TPR=r2592000→ Posted in last 30 days
💡 Example API Payload
{"searchUrls": ["https://www.linkedin.com/jobs/search/?keywords=Salesforce%20Revenue%20Cloud%20Developer&location=Texas&f_WT=2&f_JT=F&f_TPR=r2592000"],"maxJobs": 25,"scrapeJobDetails": true,"includeJobSummary": true,"apolloApiKey": "YOUR_APOLLO_API_KEY","enrichContacts": true,"contactTitles": ["VP of Sales", "CTO", "Director of Engineering", "Head of Salesforce"],"contactsPerCompany": 3,"enrichContactEmails": true,"enrichContactPhones": false,"requestDelayMin": 3000,"requestDelayMax": 8000}
📝 Notes
- Job poster fields (
jobPosterName,jobPosterTitle,jobPosterLinkedinUrl) are fetched from the full public job page. They may be empty if LinkedIn requires login to view the recruiter card for that posting. - Apollo People Search is FREE — finding contacts does not consume Apollo credits. Only email enrichment (
enrichContactEmails) and phone enrichment (enrichContactPhones) cost credits (1 credit per contact). - maxJobs is now fully respected — the actor paginates through LinkedIn search results (10 per page) until it reaches your target or LinkedIn runs out of results.
- Rate limiting — keep
requestDelayMinat 3000ms or higher to avoid being blocked by LinkedIn. - Contacts are output to a separate dataset named
linkedin-contactsfor easy access.