Skip to content
Now out of stealth: the missing link between AI agents and LinkedIn data.
← Search
GET

/api/v1/search/jobs

10 credits

Job/opportunity search with the full filter set. Location filtering works: pass `locations` a LinkedIn geo id (e.g. 101570771 for Tel Aviv-Yafo) — see that parameter for how to find one, and note it is an EXACT match, so use a city id rather than a country id. Still id-typed and not yet usable: titles, industries, functions, benefits, commitments. Offset-paginated. data.jobs[].id is the opportunityEntityId consumed by /jobs/details-v2, /jobs/similar, /jobs/people-also-viewed, /jobs/hiring-team.

Try in Playground

Parameters

NameTypeRequiredDescription
keywordstringnoFree-text keyword.
sortBystringnoResult ordering. Accepted values: relevance, date_posted.
datePostedstringnoRecency filter. Accepted values: 24h, 1week, 1month.
experiencestringnoExperience level. Accepted values: internship, entry_level, associate, mid_senior, director, executive. Comma-separate for multiple.
jobTypesstringnoJob type. Accepted values: full_time, part_time, contract, temporary, internship, volunteer, other. Comma-separate for multiple.
workplaceTypesstringnoWorkplace type. Accepted values: onsite, remote, hybrid. Comma-separate for multiple.
salarystringnoMinimum salary bucket. Accepted values: 20k, 30k, 40k, 50k, 60k, 70k, 80k, 90k, 100k.
companiesstringnoNumeric organization id(s), comma-separated (e.g. 1035). Get from job payloads — data.jobs[].organization.organizationId via /api/v1/companies/jobs.
industriesstringnoIndustry id(s), comma-separated. Free text is not reliably accepted — see the note on `locations`.
locationsstringnoGeo entity id(s), comma-separated. This is LinkedIn's own public geo id. To find the id for a location: • Type your target city, state or country into the location search box on LinkedIn • Select the correct match from the auto-complete dropdown list • Press enter to load the search results page • Check the browser address bar for geoId= followed by a long number sequence NOTE: this ID is case sensitive. Jobs may appear on LinkedIn but not here, because LinkedIn shows results for proximate locations while this search is exact-match based. Prefer a CITY id over a country id for the same reason — postings are tagged with the exact city, so Tel Aviv-Yafo (101570771) returns results where Israel (101620260) returns none. (e.g. 101570771)
functionsstringnoJob-function id(s), comma-separated. Free text is not reliably accepted — see the note on `locations`.
titlesstringnoTitle id(s), comma-separated. NOT free text: a title like 'Senior Full Stack Developer' is rejected upstream (surfaces as a 422 mentioning entityId; no credits charged). Use `keyword` for free-text role matching instead.
benefitsstringnoBenefits filter, comma-separated.
commitmentsstringnoCompany-commitment filter, comma-separated.
easyApplystringnoOnly Easy Apply jobs. Accepted values: true, false.
verifiedJobstringnoOnly verified job postings. Accepted values: true, false.
under10ApplicantsstringnoOnly jobs with under 10 applicants. Accepted values: true, false.
fairChancestringnoOnly fair-chance employer jobs. Accepted values: true, false.
countintegernoResults per page, 0-50 (default 25).
startintegernoPagination offset, 0-999.

Example request

curl -H "X-API-Key: zq_…" \
  "https://zooq.dev/api/v1/search/jobs?locations=101570771"

Example response

// live-verified shape — data.jobs[].id is the opportunityEntityId for the /jobs/* endpoints
{
  "success": true,
  "statusCode": 200,
  "message": "Data retrieved successfully",
  "errors": null,
  "data": {
    "jobs": [
      { "id": "4445939318", "url": "https://www.linkedin.com/jobs/view/4445939318", "title": "Mechanical Design / Concept Engineer", "organizationName": "Lawrence Harvey", "organizationLogo": "https://media.licdn.com/dms/image/...", "location": "London, United Kingdom", "listedAt": "2026-07-18T00:00:00Z", "isPromoted": false, "isEasyApply": true }
    ],
    "total": 1200
  }
}

Successful responses are wrapped in the standard envelope. The data field carries the actual payload; errors is null on success.

Available via MCP as search_jobs

Add Zooq as an MCP server to Claude Desktop or Cursor and call this tool directly from your agent. See the MCP guide.

Want to try this endpoint?

300 free credits on signup, no card required. That covers 30 calls.

Get an API key →