Docs · API · Distribution
Distribution.
POST /v1/jobs/{id}/publish starts a free distributerun that pushes the job to every channel available to your organization. We show per-channel status honestly — a board is "live" when the job is actually reachable there, not when we've merely sent it.
Channel matrix#
| Field | Type | Description |
|---|---|---|
| career_page | live | Your hosted page + embed, instantly on publish. |
| google_jobs | live | JobPosting JSON-LD on the SSR page + Indexing API ping. Free organic placement, usually within hours. |
| feed_adzuna / feed_jooble / feed_talent / feed_jora | live | Free XML feed network — the aggregators crawl our feeds continuously. |
| tanqeeb | live | MENA's largest aggregator crawls hosted career pages directly. |
| naukrigulf | live | Free posting, automated. |
| linkedin_basic | pending | Free LinkedIn Basic Jobs via an approved aggregator feed today; our own approved XML feed is in LinkedIn's review queue. Jobs typically appear within 24–48h once the feed syncs. |
| indeed | in build | Indeed's 2026 Single-Source policy ended free organic feeds for non-partners. We are in the official ATS-partner build (Job Sync + Indeed Apply). Until it ships, Indeed placement is not promised — sponsored posting with your own Indeed budget remains possible. |
| ziprecruiter | planned | Partner program in progress. |
| bayt / wuzzuf | planned | Partnership-gated MENA boards (no public APIs exist); business-development integrations underway. |
The distribute run#
GET
/v1/runs/{id}The publish response includes the distribute run_id; its result lists each channel outcome. Distribution re-runs automatically when a job is re-published, and jobs past closes_at are withdrawn from feeds and return 410 on the hosted page (Google requires this).
{
"id": "77a3f1c2-4b58-4e06-9d21-c85b90e4a7d3",
"object": "run",
"type": "distribute",
"status": "succeeded",
"result": {
"channels": [
{ "channel": "career_page", "status": "live" },
{ "channel": "google_jobs", "status": "live" },
{ "channel": "feed_adzuna", "status": "live" },
{ "channel": "feed_jooble", "status": "live" },
{ "channel": "feed_talent", "status": "live" },
{ "channel": "linkedin_basic", "status": "pending" },
{ "channel": "indeed", "status": "unsupported" }
]
},
"credits_charged": 0
}| Field | Type | Description |
|---|---|---|
| live | status | Reachable on the channel now. external_url is set when the board returns one. |
| pending | status | Submitted; the channel syncs on its own schedule (feeds are typically crawled within 24–48h). |
| error | status | The channel rejected the job — the error field says why (usually missing salary or location requirements). |
| unsupported | status | Not available to your organization yet (e.g. Indeed pre-partnership). |