LinkedIn Jobs API (No Cookies) + AI Enrichment avatar

LinkedIn Jobs API (No Cookies) + AI Enrichment

Pricing

from $0.30 / 1,000 job results

Go to Apify Store
LinkedIn Jobs API (No Cookies) + AI Enrichment

LinkedIn Jobs API (No Cookies) + AI Enrichment

$0.3/1K jobs | Search public LinkedIn jobs by role and location with full descriptions and original job links. No cookies, login or API key. Skips repeat jobs for alerts and job boards; optional AI enrichment and English translation.

Pricing

from $0.30 / 1,000 job results

Rating

0.0

(0)

Developer

Job Atlas

Job Atlas

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

0

Monthly active users

4 hours ago

Last modified

Categories

Share

LinkedIn Jobs Scraper (No Cookies) + AI Enrichment

$0.3/1K jobs | Search public LinkedIn jobs by role and location with full descriptions and original job links. No cookies, login or API key. Skips repeat jobs for alerts and job boards; optional AI enrichment and English translation. Independent, unofficial tool. Not affiliated with or endorsed by LinkedIn.

LinkedIn Jobs Bulk Search Scraper

Our scraper searches public LinkedIn job postings by role and location and lets you filter by posting age, work arrangement, exact location and company facts. Every job comes in one consistent format with the original LinkedIn link and, by default, the complete description in text and HTML. It is ideal for job alerts, job boards, spreadsheets and recruiting pipelines.

  • Want research jobs (PhD, postdoc, faculty)? Our EURAXESS Jobs Scraper reads a stored, hourly-refreshed collection of recent EURAXESS offers and adds deadlines and funding programme. It covers EURAXESS only.
  • Want startup jobs? Our Y Combinator Jobs Scraper reads Y Combinator's job listings. It covers Y Combinator companies only.
  • Browse all Job Atlas job-data Actors: https://apify.com/jobatlas

Key Benefits

  • No cookies or login: you never share a LinkedIn session or account, so there is nothing to paste and no account at risk.
  • Low pricing: $0.30 per 1,000 jobs, with no start fee. Platform usage is included in that price.
  • Full details: the complete description (text and HTML) and the original LinkedIn link on every job, plus company, location, seniority and applicant-count fields when LinkedIn shows them.
  • No repeats across runs: schedule the same search and jobs already delivered to you are skipped.
  • Optional AI enrichment and English translation, with no AI or translation key to bring. Both are off by default and billed per job (see Pricing below).
  • LinkedIn can limit request rates. A run then ends early with fewer jobs than requested (RUN-SUMMARY status partial), and you pay only for returned jobs.

How It Works

  1. Provide your search:
    • (optional) Job keyword (e.g., software engineer, Python). Leave it empty to search all roles in a location.
    • (optional) Location (e.g., United States, Spain, European Union). City, region or country. Leave it empty for worldwide results.
    • (optional) Posted within (e.g., 7d). Use any, or a duration such as 1h, 24h, 3d, 2w or 6m. The default is 24h. When a date filter is on, jobs without a posting date are dropped.
    • (optional) Work arrangements: remote, hybrid, on-site, or any mix. A matching search can still return jobs whose own arrangement is unknown; jobs that clearly conflict are excluded.
  2. Set Maximum results (maxItems). The default is 100 and the limit is 1,000 per run; 0 requests 1,000. Start with 10 to check the fit.
  3. Run the Actor and open the dataset. RUN-SUMMARY in the run's key-value store shows how many jobs were delivered and whether a retry is suggested.

Run the same search again and you get only postings you have not received yet; set dedupe.enabled to false to see everything again. If you omit dedupe in an API call, the default key default applies and all your searches share one history; pass "key": "" for per-search history.

More settings:

  • orderBy - Newest first (default) or oldest first. Jobs with an unknown date come last.
  • includeRaw - Keep the full description text and HTML in raw. Default is on. Turn it off for smaller exports; AI enrichment still works.
  • dedupe - Skip jobs already delivered. Default is on. Leave key empty and each search keeps its own history; reuse one named key to share history across searches in your account, and use different keys for separate alerts. History is bounded, so it is not a permanent archive.
  • linkedinSearch (advanced) - Combine up to eight keyword and location searches in one run and remove duplicate jobs. Clear the main keyword and location when you use it.
  • filters (advanced) - Keep jobs by AND/OR rules on job fields, such as a title that does not contain manager. The input form's JSON editor has an example.
  • strictGeography (advanced) - Require a country, region or city that LinkedIn confirms. Jobs with unknown locations are excluded by default, or you can stop the run instead.
  • companyProfileEnrichment - Add facts from each job's public company page, for up to 25 unique companies per run. No separate charge. companyFilters (advanced) needs this switched on.

Try the extras safely: switch on First-run mode to get up to five jobs with Silver AI enrichment and English translation. It keeps your search and filters, turns off repeat suppression and analytics, and leaves out descriptions. Five jobs cost about $0.05 (5 x $0.0103 = $0.0515), so a $0.10 Maximum cost per run is enough. Turn it off again to use your own settings.

Optional extras and pricing

You pay per returned job. AI enrichment and English translation are separate per-job events and are off by default. The Pricing tab is authoritative for current rates and scheduled changes.

FeatureBilled eventPrice per eventPrice per 1,000 jobsWhat it adds
Job resultsresult$0.0003$0.30Structured job records and LinkedIn links
Silver AI enrichmentposition-enrichment$0.004+$4.00Missing supported facts extracted from the description
Gold AI enrichmentposition-enrichment-gold$0.010+$10.00Silver plus a second check
English translationtranslation$0.006+$6.00Selected short display fields in English
Company detailsnone$0no extra chargeFacts from the linked public company page

For example, 1,000 jobs with Silver enrichment and translation cost $0.30 + $4.00 + $6.00 = $10.30. A failed AI enrichment is not charged. Set Apify's Maximum cost per run before large searches; the cap can end a run early.

AI enrichment fills only supported fields that are missing and never overwrites source facts. Silver is the standard tier. AI can make mistakes, so review important facts. English translation covers selected fields such as titles, requirements and benefits. Full descriptions, company names, locations, skills and URLs stay in their original form.

Good to know:

  • LinkedIn can limit the request rate during a run. The run then ends early with the jobs it has already fetched, and RUN-SUMMARY shows status partial with a suggested retry delay. Jobs whose details could not be fetched are held for a later retry and are not charged. Wait the suggested time, then run again with the same input; repeat suppression skips the jobs you already received.
  • Results depend on the public LinkedIn postings available. Filters, source restrictions and your budget can reduce the count. Strict location and company filters exclude jobs with missing evidence.
  • Fields LinkedIn does not publish stay null. The Actor does not fill them by guessing.

Data You'll Receive

  • Job details: title, complete description (text and HTML), LinkedIn job ID and link, posting date, seniority level, industry, employment type when shown.
  • Company: name, LinkedIn company ID and link; optionally more facts from the company page.
  • Location: the label LinkedIn shows plus city, region, country code and coordinates when available.
  • Application: applicant-count snapshot, direct-apply flag and reference number when LinkedIn shows them.
  • Salary, required skills and hiring contacts: only when the posting provides them. Otherwise the field is null.
  • AI status: the llm block records whether enrichment ran and which fields it filled.

The JSON format is nomad-agent-job-v1 with six roots: schemaVersion, identity, data, custom, llm and raw. null means unknown; [] means confirmed empty. Sanitize source HTML before you display it.

Sample output data

Here is an example job from this Actor, observed on October 16, 2026. Empty fields are left out and long text is cut for length. Values change with the source, and a sample is not a promise that the job is still open.

{
"schemaVersion": "nomad-agent-job-v1",
"identity": {
"source": "linkedin",
"externalId": "4471641260",
"url": "https://www.linkedin.com/jobs/view/software-development-engineer-iii-at-clear-4471641260"
},
"data": {
"title": "Software Development Engineer III",
"company": {
"name": "CLEAR",
"sourceId": "961661",
"url": "https://www.linkedin.com/company/clear-by-alclear-llc"
},
"classification": {
"industries": [
"Consumer Services"
]
},
"locations": [
{
"raw": "New York, NY",
"countryName": "United States",
"countryCode": "US",
"city": "New York",
"region": "NY",
"latitude": 40.713047,
"longitude": -74.00723
}
],
"employment": {
"workSchedules": [
"full_time"
]
},
"application": {
"postedAt": "2026-10-16T09:41:21.000Z",
"deadline": "2027-04-22T17:59:16.000Z",
"referenceNumber": "8100208",
"referenceNumberIssuer": "CLEAR",
"applicantSnapshot": {
"count": 25,
"raw": "Be among the first 25 applicants",
"capturedAt": "2026-10-16T16:48:13.869319Z"
},
"directApply": true,
"applyMethodRaw": "Apply",
"availability": {
"status": "observed_available",
"observedAt": "2026-10-16T16:48:06.220427Z"
}
},
"seniority": {
"raw": [
"Mid-Senior level"
],
"levels": [
"mid",
"senior"
]
},
"requirements": {
"experience": [
{
"minimumYears": 6
}
]
}
},
"llm": {
"status": "not_requested"
},
"raw": {
"description": "CLEAR is building THE secure identity company of the future. Our mission is to make experiences safer ..."
}
}

LinkedIn Jobs API

Results are stored in a dataset that you can export as CSV, JSON or Excel, or read on demand through the Apify API. Maintained API, MCP, n8n, Make, Python and Agent Skill assets are available in the integration guide. Airtable is a post-run destination projection, not a runnable template, and no Zapier workflow is claimed. Having an asset does not prove a hosted connection or a write to your destination.

from decimal import Decimal
from apify_client import ApifyClient
client = ApifyClient("<YOUR_APIFY_TOKEN>")
run = client.actor(
"jobatlas/linkedin-enrich-translate-normalize-scraper"
).call(run_input={
"schemaVersion": "nomad-agent-job-search-input-v1",
"keyword": "software engineer",
"location": "United States",
"postedWithin": "7d",
"maxItems": 10,
"includeRaw": True,
"aiEnrichment": {"enabled": False, "accuracy": "silver"},
"translateToEnglish": False,
"companyProfileEnrichment": False,
"analyticsEnabled": False,
"dedupe": {"enabled": True, "key": ""},
}, build="latest", max_items=10, max_total_charge_usd=Decimal("0.10"))
if run["status"] != "SUCCEEDED" or not run.get("buildId") or not run.get("buildNumber"):
raise RuntimeError("Actor run failed or omitted its resolved build identity")
for job in client.dataset(run["defaultDatasetId"]).iterate_items():
print(job["data"]["title"], job["identity"]["url"])

Support and Feedback

We improve these scrapers from your feedback. If something breaks or you need a filter:

  • Open an issue on the Actor's Issues tab. For a correction or removal request, include the job URL or ID and leave out private information.
  • If this Actor saved you time, a short review on the Store helps other users find it.

Run evidence

  • Sample record: a real job from build 1.0.10, run 6ITwglMxz7yooffcq, October 16, 2026. That run asked for 10 jobs and returned 3, with RUN-SUMMARY status partial because LinkedIn limited the request rate, as described under Good to know.
  • Build identity: the example above follows latest. Check the current default build API for the default build number and immutable ID, and record the build ID and number that your run returns. A 1.0.x check alone does not prove compatibility; follow the selected integration template's compatibility guide.
  • Reading a run: inspect the dataset together with RUN-SUMMARY and each job's llm.status. A successful status alone does not show complete coverage. Restrictive filters or repeat suppression can produce zero results.
  • Agent setup: the setup skill and the public setup guide cover the documented API example.

Job Atlas

Explore the Job Atlas job-data and matching Actors.

Product guide | Source and client examples | Setup skill | Setup guide


Independent tool. We built and run this Actor ourselves. LinkedIn does not operate, sponsor or endorse it, and its name is used only to say which site the data comes from. Contact the Actor creator through the Apify Issues tab for help or privacy requests.