ScrapeField

Search public job postings

Search public LinkedIn job postings by keyword and location. Returns title, company, location, workplace_type, employment_type, seniority_level, salary where shown, listed_at and the description.

4credits
GEThttps://api.scrapefield.com/v1/linkedin/jobs
Try itno key needed4 credits on a real call · 0 here
https://api.scrapefield.com/v1/linkedin/jobs?query=backend+engineer

In your code

curl -H "Authorization: Bearer $SCRAPEFIELD_KEY" \
  "https://api.scrapefield.com/v1/linkedin/jobs?query=backend+engineer"

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_days
integer
Only roles posted in the last N days.
1–90
limit
integer
How many results to return, 1–25.
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 a real response, not an abbreviated one — 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.

{
  "data": [
    {
      "job_id": "4087558862",
      "url": "https://www.linkedin.com/jobs/view/4087558862/",
      "title": "Backend Engineer",
      "company": {
        "name": "Northbank",
        "url": "https://www.linkedin.com/company/northbank/"
      },
      "location": "Prague, Czechia",
      "workplace_type": "Hybrid",
      "employment_type": "Full-time",
      "seniority_level": "Director",
      "salary": null,
      "listed_at": "2026-08-29T01:15:58.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": "4096552747",
      "url": "https://www.linkedin.com/jobs/view/4096552747/",
      "title": "Backend Engineer",
      "company": {
        "name": "Northbank",
        "url": "https://www.linkedin.com/company/northbank/"
      },
      "location": "Berlin, Germany",
      "workplace_type": "On-site",
      "employment_type": "Contract",
      "seniority_level": "Director",
      "salary": "€80K/yr - €110K/yr",
      "listed_at": "2026-09-17T22:35:53.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."
    }
  ],
  "meta": {
    "request_id": "req_7f3ac1e94b2d40f8a1c6e5d2",
    "credits_charged": 4,
    "credits_remaining": 74218,
    "cached": false,
    "fetched_at": "2026-09-20T09:12:03Z",
    "next_cursor": "eyJwIjoxLCJzIjoiYTNmOSJ9"
  }
}

Fields of linkedin_job

A public LinkedIn job posting. Named after LinkedIn's own pages, since LinkedIn has no public data API.

FieldWhat it is
job_id
string
LinkedIn's numeric id — the number in /jobs/view/….
url
URL
The posting.
title
string
company
object
Who is hiring.
company.name
string
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
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
When it was posted.
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

4 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 $3.12 per 1,000 calls; on the largest, $1.60. The full table.