Skip to main content
POST
/
search
/
jobs
curl -X POST https://api.dataforb2b.ai/search/jobs \
  -H "api_key: YOUR_api_key" \
  -H "Content-Type: application/json" \
  -d '{
    "platform": "linkedin",
    "keyword": "backend engineer",
    "location": "Paris, France",
    "job_type": "fulltime",
    "date_posted": "past_week",
    "count": 25
  }'
import requests

response = requests.post(
    "https://api.dataforb2b.ai/search/jobs",
    headers={
        "api_key": "YOUR_api_key",
        "Content-Type": "application/json"
    },
    json={
        "platform": "linkedin",
        "keyword": "backend engineer",
        "location": "Paris, France",
        "job_type": "fulltime",
        "date_posted": "past_week",
        "count": 25
    }
)

data = response.json()
print(f"Got {data['count']} jobs")
const response = await fetch('https://api.dataforb2b.ai/search/jobs', {
  method: 'POST',
  headers: {
    'api_key': 'YOUR_api_key',
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    platform: 'linkedin',
    keyword: 'backend engineer',
    location: 'Paris, France',
    job_type: 'fulltime',
    date_posted: 'past_week',
    count: 25
  })
});

const data = await response.json();
console.log(`Got ${data.count} jobs`);
{
  "total": 25,
  "offset": 0,
  "count": 2,
  "has_next": true,
  "credits_used": 1.5,
  "results": [
    {
      "job_id": "4436084243",
      "platform": "linkedin",
      "title": "Backend Engineer - Node.js / Typescript",
      "job_url": "https://fr.linkedin.com/jobs/view/backend-engineer-node-js-typescript-at-cozycozy-com-4374111498",
      "employment_type": "Full-time",
      "seniority_level": "Mid-Senior level",
      "job_function": "Engineering",
      "is_remote": null,
      "company_name": "cozycozy.com",
      "company_url": "https://www.linkedin.com/company/cozycozy",
      "company_logo_url": "https://media.licdn.com/dms/image/...",
      "industry": null,
      "location": "Paris, Île-de-France, France",
      "salary": null,
      "date_posted": "2026-07-06",
      "posted_days_ago": 4,
      "description": null
    },
    {
      "job_id": "4430700343",
      "platform": "linkedin",
      "title": "Full-Stack Developer (junior)",
      "job_url": "https://fr.linkedin.com/jobs/view/full-stack-developer-junior-at-leonar-4436084243",
      "employment_type": "Full-time",
      "seniority_level": "Entry level",
      "job_function": "Engineering",
      "is_remote": null,
      "company_name": "Leonar",
      "company_url": "https://www.linkedin.com/company/leonar-app",
      "company_logo_url": "https://media.licdn.com/dms/image/...",
      "industry": null,
      "location": "Paris, Île-de-France, France",
      "salary": null,
      "date_posted": "2026-07-05",
      "posted_days_ago": 5,
      "description": null
    }
  ]
}

Credit Cost

ModeCredits
All searches1.5 credits per 10 job postings returned

Request Body

platform
string
default:"linkedin"
Job platform to search: linkedin or indeed.
keyword
string
Search keyword: job title, skill, or company (e.g., "backend engineer").
location
string
Location to search in (e.g., "Paris, France", "United States").
country
string
default:"usa"
Country for Indeed (e.g., usa, france, uk, germany). Ignored by LinkedIn, which uses location.
distance
integer
Search radius in miles around the location (0–200).
job_type
string
Employment type: fulltime, parttime, contract, temporary, internship.
work_type
string
Work arrangement: onsite, remote, hybrid.
experience_level
string
Seniority (LinkedIn only): internship, entry_level, associate, mid_senior, director, executive.
date_posted
string
Freshness of the postings: past_24h, past_week, past_month.
On Indeed, date_posted cannot be combined with job_type or work_type.
company_ids
string
Comma-separated company IDs to restrict the search (LinkedIn only). Accepts encoded IDs (org_xxx, as returned by Typeahead and Search Company) and/or raw numeric LinkedIn IDs.
company_name
string
Company name to restrict the search. LinkedIn: resolved to the matching company (strict employer filter). Indeed: used as a search keyword (approximate). Ignored if company_ids is provided.
fetch_description
boolean
default:"false"
Include the full job description on each result. On LinkedIn this is slower (one extra request per job); on Indeed it adds no latency.
offset
integer
default:"0"
Number of results to skip for pagination.
count
integer
default:"25"
Number of job postings to return. Maximum: 100 per request.

Response

total
integer
Number of job postings found so far (lower bound when has_next is true — job platforms do not expose a global match count).
offset
integer
Offset used for pagination.
count
integer
Number of results returned in this response.
has_next
boolean
Whether more results are available. Use it with offset to paginate.
credits_used
number
Credits used for this search.
results
array
List of job postings, normalized across platforms.

curl -X POST https://api.dataforb2b.ai/search/jobs \
  -H "api_key: YOUR_api_key" \
  -H "Content-Type: application/json" \
  -d '{
    "platform": "linkedin",
    "keyword": "backend engineer",
    "location": "Paris, France",
    "job_type": "fulltime",
    "date_posted": "past_week",
    "count": 25
  }'
import requests

response = requests.post(
    "https://api.dataforb2b.ai/search/jobs",
    headers={
        "api_key": "YOUR_api_key",
        "Content-Type": "application/json"
    },
    json={
        "platform": "linkedin",
        "keyword": "backend engineer",
        "location": "Paris, France",
        "job_type": "fulltime",
        "date_posted": "past_week",
        "count": 25
    }
)

data = response.json()
print(f"Got {data['count']} jobs")
const response = await fetch('https://api.dataforb2b.ai/search/jobs', {
  method: 'POST',
  headers: {
    'api_key': 'YOUR_api_key',
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    platform: 'linkedin',
    keyword: 'backend engineer',
    location: 'Paris, France',
    job_type: 'fulltime',
    date_posted: 'past_week',
    count: 25
  })
});

const data = await response.json();
console.log(`Got ${data.count} jobs`);
{
  "total": 25,
  "offset": 0,
  "count": 2,
  "has_next": true,
  "credits_used": 1.5,
  "results": [
    {
      "job_id": "4436084243",
      "platform": "linkedin",
      "title": "Backend Engineer - Node.js / Typescript",
      "job_url": "https://fr.linkedin.com/jobs/view/backend-engineer-node-js-typescript-at-cozycozy-com-4374111498",
      "employment_type": "Full-time",
      "seniority_level": "Mid-Senior level",
      "job_function": "Engineering",
      "is_remote": null,
      "company_name": "cozycozy.com",
      "company_url": "https://www.linkedin.com/company/cozycozy",
      "company_logo_url": "https://media.licdn.com/dms/image/...",
      "industry": null,
      "location": "Paris, Île-de-France, France",
      "salary": null,
      "date_posted": "2026-07-06",
      "posted_days_ago": 4,
      "description": null
    },
    {
      "job_id": "4430700343",
      "platform": "linkedin",
      "title": "Full-Stack Developer (junior)",
      "job_url": "https://fr.linkedin.com/jobs/view/full-stack-developer-junior-at-leonar-4436084243",
      "employment_type": "Full-time",
      "seniority_level": "Entry level",
      "job_function": "Engineering",
      "is_remote": null,
      "company_name": "Leonar",
      "company_url": "https://www.linkedin.com/company/leonar-app",
      "company_logo_url": "https://media.licdn.com/dms/image/...",
      "industry": null,
      "location": "Paris, Île-de-France, France",
      "salary": null,
      "date_posted": "2026-07-05",
      "posted_days_ago": 5,
      "description": null
    }
  ]
}