The Career Sites Feed surfaces career sites — company listing pages, careers portals, and dedicated jobs subdomains — as Jobo discovers them. Each row carries just enough to render a card: the same lightweight company fields you’d see in a job preview, plus the ATS the site runs on, the listing URL where its jobs are posted, and aDocumentation Index
Fetch the complete documentation index at: https://jobo.world/docs/llms.txt
Use this file to discover all available pages before exploring further.
details_url to fetch the fully enriched company profile on demand.
- Stream career sites —
POST /api/career-sites/feed. Cursor-paginated stream of slim career-site rows.
updated_after to pick up changes on subsequent runs. When you need the rich company data (funding, leadership, ratings, etc.), follow details_url (or call GET /api/companies/{id}) for the rows you care about.
Pricing is 50 credits ($0.05) per row returned. Page cap is 50 rows per request.
Keeping your directory in sync
A typical integration runs an initial backfill, then an incremental sync on a schedule. Use the companyid as your primary key — it’s stable across updates, so syncs are simple upserts.
1. Initial backfill
Page through the entire feed once with cursor pagination. Persistnext_cursor after every successful batch so a crash resumes mid-stream rather than restarting from page 1. Stop when has_more is false.
2. Incremental sync
Run on a schedule (a few times per day is plenty — new career sites are discovered in modest volumes). Each run:- Read your stored
last_run_started_at. Recordnowasthis_run_started_atbefore the first request. - Call
/feedwithupdated_after = last_run_started_at - 15m(a small overlap protects against clock skew). - Page through with
cursoruntilhas_moreisfalse. Upsert each row byid. - After the loop succeeds, persist
this_run_started_atas the newlast_run_started_at.
3. Backoff & rate limits
- On
400 Invalid cursor, drop the cursor and restart pagination — don’t loop on the same value. - Watch
X-Credits-Balanceto alert before you run dry. Each row debits 50 credits.
End-to-end example
This sample implements the full workflow against a small key-valuestore. Replace store with your real database (Postgres upsert, etc.).
Filters
All filter fields on the request body are optional. Lists are OR-matched internally; multiple filters AND together.| Field | Type | Description |
|---|---|---|
industries | string[] | Industry tags (“fintech”, “biotech”, …). |
company_sizes | string[] | Size bands (“1-10”, “11-50”, “51-200”, …). |
country_codes | string[] | ISO 3166-1 alpha-2 country codes. |
funding_stages | string[] | Funding stage tags (“seed”, “series_a”, …). |
company_types | string[] | One of "for_profit", "non_profit". |
founded_after | integer | Only career sites whose company was founded in or after this calendar year. |
is_agency | boolean | Restrict to agency (true) or non-agency (false) companies. |
updated_after | date-time | Only career sites whose updated_at is strictly greater than this UTC timestamp. |
cursor | string | Opaque pagination cursor from the previous response’s next_cursor. |
batch_size | integer | Rows per batch. Default 50, max 50. |
CareerSiteDto schema
Each row incareer_sites[] has this shape:
| Field | Type | Description |
|---|---|---|
id | string (uuid) | Stable Jobo company identifier — use as the primary key when upserting. |
name | string | Company display name. |
website | string|null | Company marketing website, when known. |
logo_url | string|null | Hosted logo URL. |
summary | string|null | Short (one-paragraph) company summary. |
industries | string[] | 1–3 industry tags describing what the company does. |
linkedin_url | string|null | Company LinkedIn profile URL. |
crunchbase_url | string|null | Company Crunchbase profile URL. |
ats | string | ATS / job-board provider the career site runs on (e.g. "greenhouse", "lever", "workday"). |
listing_url | string | Career-site URL where the company’s jobs are listed. |
details_url | string|null | Authenticated URL to the fully enriched company profile (GET /api/companies/{id}). Same X-Api-Key as the rest of the API. Returns funding, leadership, ratings, press, etc. |
Endpoint
Stream career sites
POST /api/career-sites/feed — cursor-paginated stream of enriched company profiles for newly discovered career sites.
