LinkedIn Jobs & Company Scraper
Pricing
$1.60 / 1,000 item scrapeds
LinkedIn Jobs & Company Scraper
Scrape LinkedIn job postings by keyword, location or company. Returns job title, company, location, salary, description, employment type, posted date and apply link. No login or cookies required.
Scrape LinkedIn job postings by keyword and location, and LinkedIn company pages, using only public, logged-out ("guest") data — no LinkedIn account, cookies or login required. Requests are made with browser-grade HTTP fingerprints (got-scraping) routed through Apify Proxy, with a fresh proxy session generated on every retry, to survive LinkedIn's anti-bot defenses.
Why it's useful
LinkedIn is one of the richest sources of hiring signal and company data on the web, and one of the hardest to scrape. This actor uses the same technique LinkedIn's own public job-search pages use internally (the jobs-guest search API) to pull structured job data reliably without login — and adds best-effort company-page scraping for a quick public snapshot of a company.
Input
{"jobKeywords": ["software engineer", "data analyst"],"jobLocation": "United States","companyUrls": ["https://www.linkedin.com/company/google/", "openai"],"maxItems": 50}
jobKeywords— search terms; each runs its own paginated job search. Optional ifcompanyUrlsis set.jobLocation— one location filter applied to every keyword search. Optional.companyUrls— LinkedIn company URLs or bare slugs. Optional ifjobKeywordsis set.maxItems— max job postings per keyword (default 50).proxyConfiguration— Apify Proxy config; residential is strongly recommended.timeoutSecs— per-request timeout in seconds (default 30).
At least one of jobKeywords / companyUrls is required.
Output
Job posting (source: "job"):
{"source": "job","title": "Software Engineer","company": "Example Inc","companyUrl": "https://www.linkedin.com/company/example","location": "San Francisco, CA","postedDate": "2026-09-20","postedDateText": "3 days ago","jobId": "4012345678","jobUrl": "https://www.linkedin.com/jobs/view/software-engineer-at-example-4012345678","keyword": "software engineer","searchLocation": "United States"}
Company (source: "company") — best effort; LinkedIn gates most company-page content behind a login wall for guests, so fields may be null and a note explains when that happened:
{"source": "company","input": "google","url": "https://www.linkedin.com/company/google/","name": "Google","industry": "Software Development","size": "10,001+ employees","headquarters": "Mountain View, CA","organizationType": "Public Company","specialties": "search, ads, mobile, android, ...","followers": "42,415,536","about": "...","website": "https://goo.gle/3DLEokh"}
If a request is blocked after 5 retries (each with a fresh residential proxy session), the actor reports it honestly instead of fabricating data:
{ "source": "job", "keyword": "...", "error": "blocked (needs residential proxy): blocked (HTTP 999, 812 bytes)" }
How it works
- Jobs: calls the public
linkedin.com/jobs-guest/jobs/api/seeMoreJobPostings/searchendpoint (the same one LinkedIn's own guest job-search pages use), paginating withstart=0,25,50,…, and parses the returned job-card HTML. - Company: fetches the public
linkedin.com/company/{slug}/page and parses whatever is visible in the HTML — JSON-LDOrganizationdata, meta tags and known guest-page selectors. - Every request goes through Apify Proxy with a new session per attempt (up to 5 attempts) whenever a response looks blocked (auth wall, captcha, security-check page, or an HTTP 401/403/429/5xx/999).
Notes
- No login, cookies or LinkedIn account needed — 100% public guest data.
- Honesty over fabrication: if LinkedIn blocks a request even after retries, the actor reports the block rather than inventing data.
- LinkedIn's anti-bot defenses change over time; job search (the guest API) is the most reliable technique, company pages are inherently harder and best-effort.
⭐ Enjoying this Actor?
A quick rating/review helps others find it. Found a page LinkedIn changed the markup on? Open a ticket on the Issues tab.