You search LinkedIn daily and receive more results than you can evaluate. Define the role direction, location constraints, and working arrangements first. The useful output is a manageable review queue rather than the largest possible result count.

Separate essential conditions from preferences

The contract supports keywords, geographic codes, dates, sorting, and several list filters. Decide which constraints are firm and which deserve discussion. Use confirmed LinkedIn geographic codes instead of guessing them from city names. List filters can repeat the same parameter name for multiple values.

Keep pagination tied to one search

Follow the documented offset progression, beginning at zero. Store the query and filters with each batch. A changed condition creates a new search rather than another page of the old one. Deduplicate vacancies found through multiple queries while preserving how they were discovered. The reported total does not guarantee that every role remains open or suitable.

Read details before entering the application queue

Search fields offer clues about company, title, location, pay, and timing, but duties require closer inspection. Missing salary information does not mean unpaid work, and similar titles can hide different expectations. Review a small set carefully, recording matching evidence and unresolved conditions. Search should help allocate effort, not masquerade as a hiring forecast or a complete labor-market census.

Request URL and parameters

GET https://api.trmesh.com/openapi/api/v1/linkedin/web_v2/search_jobs

Parameter Type Required Meaning
keywords string / null No Keywords
geo_code integer / null No LinkedIn geo code, 92000000 = worldwide
date_posted string / null No Any time / Past month / Past week / Past 24 hours
experience_levels array / null No Internship / Entry level / Associate / Mid-Senior level / Director / Executive
company_ids array / null No Company ids, repeatable
title_ids array / null No Title ids, repeatable
onsite_remotes array / null No On-site / Remote / Hybrid
functions array / null No Functions, repeatable
industries array / null No Industries, repeatable
job_types array / null No Full-time / Part-time / Contract / Temporary / Internship / Volunteer
sort_by string / null No Most relevant / Most recent
easy_apply boolean No Easy-apply jobs only
under_10_applicants boolean No Under 10 applicants only
start integer / null No Pagination offset

Run the Python example

Install requests and set TRMESH_API_TOKEN in your environment. Replace the sample identifiers with the public object you intend to inspect. Example IDs may no longer be available.

import os
import requests

# Read your own developer key from the server environment.
url = "https://api.trmesh.com/openapi/api/v1/linkedin/web_v2/search_jobs"
params = {
    "keywords": "data analyst"
}
response = requests.get(
    url, params=params, timeout=30,
    headers={"Authorization": f"Bearer {os.environ['TRMESH_API_TOKEN']}"},
)
response.raise_for_status()
payload = response.json()
print(payload)  # Inspect the actual response before mapping fields

Endpoint documentation · Free profile tool

API calls use your TRMesh account allowance. Check the endpoint price before running a script.