Skip to content
ScrapeField

Search LinkedIn job postings

Search LinkedIn job postings by keyword and location, with LinkedIn's own filters. Returns each posting's title, company, location, listed_at, URL, and workplace_type and easy_apply where the list shows them. employment_type, seniority_level, salary and description are null: linkedin/job gives them.

3 credits
GEThttps://api.scrapefield.com/v1/linkedin/jobs
Try itno key needed3 credits on a real call · 0 here
https://api.scrapefield.com/v1/linkedin/jobs?query=Ferrari

In your code

const params = new URLSearchParams({
  "query": "backend engineer"
});

const res = await fetch(`https://api.scrapefield.com/v1/linkedin/jobs?${params}`, {
  headers: { Authorization: `Bearer ${process.env.SCRAPEFIELD_KEY}` },
});

const { data, meta } = await res.json();
console.log(data, meta.credits_charged);

Parameters

Parameters
ParameterWhat it does
query
string · required
Job title or keywords, e.g. "backend engineer".
location
string
Place name, e.g. "Berlin" or "United States".
workplace_type
string
Only roles of this kind, as LinkedIn's filter names them.
on-site · hybrid · remote
posted_within
string
Only roles posted in the last day, week or month.
day · week · month
employment_type
string
Only roles of this kind.
full-time · part-time · contract · temporary · internship
experience_level
string
Only roles at this level, as LinkedIn's filter names them.
internship · entry · associate · mid-senior · director · executive
company_id
string
Only one company's roles: company_id in linkedin/company.
easy_apply
boolean
Only roles that take applications on LinkedIn.
sort
string
Most relevant first, or newest first.
relevance · newest
limit
integer
At most this many results, 1–25. A page can hold fewer while next_cursor is set: read until it is null.
1–25, default 25
cursor
string
The meta.next_cursor from the previous page. Omit for the first page.
fresh
boolean
Skip the cache and fetch now. Charged normally. Not available on trial credits — buy any pack to unlock it.
default false

Response

Returns an array of linkedin_job. This is the demo’s answer, the one the playground above returns, in full rather than abbreviated — including the fields that come back null, because a field is null when the platform does not show it and you should know which ones those are before you build on them. A call with your key returns the account you ask for.

{
  "data": [
    {
      "job_id": "4061273623",
      "url": "https://www.linkedin.com/jobs/view/4061273623/",
      "title": "Product Designer",
      "company": {
        "name": "Kestrel",
        "url": "https://www.linkedin.com/company/kestrel/"
      },
      "location": "Berlin, Germany",
      "workplace_type": "Hybrid",
      "employment_type": "Full-time",
      "seniority_level": "Director",
      "salary": null,
      "listed_at": "2026-08-24T02:23:30.000Z",
      "easy_apply": false,
      "description": "You will own a service end to end, from the schema to the on-call rota. We are small and everyone writes code."
    },
    {
      "job_id": "4064558730",
      "url": "https://www.linkedin.com/jobs/view/4064558730/",
      "title": "Backend Engineer",
      "company": {
        "name": "Lantern",
        "url": "https://www.linkedin.com/company/lantern/"
      },
      "location": "Austin, United States",
      "workplace_type": "On-site",
      "employment_type": "Contract",
      "seniority_level": "Entry level",
      "salary": null,
      "listed_at": "2026-08-26T10:25:33.000Z",
      "easy_apply": true,
      "description": "You will own a service end to end, from the schema to the on-call rota. We are small and everyone writes code."
    }
  ],
  "meta": {
    "request_id": "req_7f3ac1e94b2d40f8a1c6e5d2",
    "credits_charged": 3,
    "credits_remaining": 74218,
    "cached": false,
    "fetched_at": "2026-09-20T09:12:03Z",
    "next_cursor": "eyJwIjoxLCJzIjoiYTNmOSJ9"
  }
}

Fields of linkedin_job

A LinkedIn job posting. Named after the words LinkedIn prints, since LinkedIn has no official data API.

Fields
FieldWhat it is
job_id
string
LinkedIn's numeric id — the number in /jobs/view/….
url
URL
The posting.
title
string · or null
As the listing prints it.
company
object
Who is hiring.
company.name
string · or null
As the listing prints it.
company.url
URL · or null
The company page, where it has one.
location
string · or null
As printed, e.g. "Berlin, Germany".
workplace_type
string, one of · or null
Where the work is done, as LinkedIn labels it. null where the listing does not say.
On-site · Hybrid · Remote
employment_type
string · or null
"Full-time", "Part-time", "Contract", …
seniority_level
string · or null
"Entry level", "Mid-Senior level", …
salary
string · or null
As printed, where the posting shows one, e.g. "€70K/yr - €90K/yr".
listed_at
time, ISO 8601 UTC · or null
When it was posted. null when the source does not say.
easy_apply
boolean · or null
Whether it takes applications on LinkedIn. null where the listing does not say.
description
string · or null
The full description, as text.

What it costs

3 credits per successful call, whether we fetch it or serve it from cache — you pay for the answer, not for how we produced it. Responses are cached for 3 hours and a cached one tells you when the data was actually fetched. A call we fail costs 0 and is refunded automatically.

On the smallest pack that is $2.34 per 1,000 calls; on the largest, $1.32. The full table.

What people build with it

Questions

How much does the LinkedIn Jobs API cost?

3 credits a call: $2.34 per 1,000 calls on the smallest pack and $1.32 on the largest. A call that fails costs nothing, and the refund is automatic. A cached answer costs the same as a fresh one. Credits are bought in packs and never expire; there is no plan.

Do I need a LinkedIn account, a login or cookies?

No. You need a key from us and nothing from LinkedIn. We never take a customer's login, cookies or session, at any price, and no account of yours is ever at risk.

Can I try it without signing up?

Yes. Add demo=true and leave the key out, or press Send request in the playground on this page. The demo answers with a real answer about Ferrari, captured once a week, in exactly the shape a live call returns, whatever you ask, and charges nothing.

How fresh is the data?

An answer is kept for up to 3 hours, and a cached one says when it was fetched, in meta.fetched_at. Add fresh=true to fetch it again now, at the same price; it needs any purchase, not the trial.

What does it return?

A list of linkedin_job objects. Its fields are named after the words LinkedIn prints, since LinkedIn has no official data API. A field is null when LinkedIn does not show it, never missing. Every field is described on this page.

How do I get more than one page?

Pass meta.next_cursor back as cursor, and stop when it is null. Each page is a call, priced the same. A cursor lasts as long as the answer it belongs to is cached.

Can an AI agent call it?

Yes: it is the MCP tool search_linkedin_jobs on our MCP server, with the same parameters, answer and price. Without a key, the tool answers from the demo.