Use specific filters
For Company Jobs, provide a LinkedIn URL and use the documented filter names:industry is supported by Jobs Search, not Company Jobs. Company Jobs ignores
that field. Department and seniority filters are arrays, even for a single value.
Use idempotency keys for search retries
Send the optionalIdempotency-Key header with Jobs Search and Company Jobs
requests, including their historical endpoints. Generate a key once per logical
request and keep it with the request body so you can reuse both if a timeout or
connection failure leaves the outcome unknown.
- Reuse the same key, endpoint, and request body when retrying that request.
- Generate a new key for a new search or a changed request, including each new
page of results: changing
search_afterchanges the request. - Use
use_v1_followed by 1–121 ASCII letters, digits, underscores, or hyphens. For example,"use_v1_" + uuid4().hexin Python produces a valid key. - A malformed key returns
400. A key reused with changed request intent or an expired billing period returns409. Inspect the error before deciding to start a new request with a new key; do not automatically replace the key on every retry.
Paginate large result sets
Passdata.search_after back unchanged while keeping your search filters fixed.
Use a new idempotency key for each page, and retain that page’s key if you retry it:
Monitor credits
Search responses includedata.credits_used and data.credits_remaining.
Use GET /api/v1/credits/balance for a fresh balance without running a search.
Reference endpoints are free and accept active keys with zero remaining credits.
Log request IDs
Every HTTP response, including errors, includes anX-Request-ID header with a
server-generated UUID for that HTTP attempt. Add this value to your application
logs, especially when logging errors, so you can trace a failed request. It is
separate from the billing operation key in Idempotency-Key.
Choose your date window
Usepublished_after and published_before. Current v1 searches cover the latest
six months. Historical searches cover postings back to 2020 and are included on
every plan. Set explicit dates to select your historical window.
Use limit between 10 and 100 and pass data.search_after back unchanged to
retrieve subsequent pages.
Rate Limiting
- Respect rate limits to avoid throttling.
- Implement exponential backoff for retries, reusing the same idempotency key and request body for each attempt.
- Cache results when possible to reduce unnecessary API calls.
