/rpc/partner_jobsSecret key (server)dataset jobs.readRead the jobs change feed
Jobs in the order they changed. Start with no cursor, keep sending the returned next until has_more is false, store the last next and start from it on your next run.
| Parameter | Type | Required | Description |
|---|---|---|---|
since | timestamp | null | no (default null) | Cursor time from the last next (null: from the beginning) |
after_id | integer | no (default 0) | Cursor id from the last next |
page_size | integer | no (default 500) | 1 to 1,000 jobs a page |
market | string | no | Only one market: India or United States |
active_only | boolean | no (default false) | Keep false when syncing, so you also learn which jobs to remove |
include_description | boolean | no (default true) | Leave out the full description to save bandwidth |
Response fields
| Field | Type | Meaning |
|---|---|---|
id | integer | Immutable job id, never reused |
active | boolean | Open, published, not a duplicate, not expired and the company is not hidden |
status / closed_at / expires_at / duplicate_of | various | Why a job is no longer active |
title, job_function, seniority, department | string | As published; job_function and seniority normalised |
employment_type, work_mode | string | Full-time, Contract… / On-site, Hybrid, Remote |
location, city, state, country, market | string | Where the job is |
salary | object | min, max, currency, period, when the employer published pay |
summary, description, skills | string / string[] | Description text and an extracted skills list |
apply_url, apply_via, direct_apply | string / boolean | The employer's own application page |
posted_at, first_seen_at, last_checked_at, changed_at | timestamp | Dates; changed_at drives the cursor |
company | object | id, name, slug, website, domain, verified, logo_url, logo_version_at, jobiwork_url |
Errors
400page_size outside 1 to 1,000 or a bad cursor401The key is missing, wrong or revoked403The key may not read this dataset (or a publishable key was used for data)429Per-minute or monthly limit reached; wait for Retry-After (60 seconds)
Counts as: Calls and jobs returned are recorded per key (feeds are not charged per record).
Empty fields are left out of each job.
Store next only after you have committed the page; replaying a stored cursor never skips a record.