Get Posting Detail
agent-data call f9a6ec16-0bfd-44d8-b3ee-073776745ee7 get-posting --posting_id <posting_id> --source_url <source_url> [--source <source>] [--fields <fields>]curl "https://i2ovik0sjj.execute-api.us-east-2.amazonaws.com/prod/v1/postings/{posting_id}" -H "Authorization: Bearer <YOUR_API_KEY>"Fetch one job posting detail. Requires BOTH posting_id AND the original source_url from a search-jobs result — they must be from the same row. If source is omitted, the API infers the source from source_url for Ashby (*.ashbyhq.com), Greenhouse (*.greenhouse.io or ?gh_jid=), and Lever (jobs.lever.co). Otherwise it defaults to LinkedIn. Workday URLs (*.myworkdayjobs.com / *.myworkdaysite.com) are not currently supported and return 400 validation_error. Ashby, Greenhouse, and Lever detail serves the stored snapshot first with live fallback on cache miss; LinkedIn fetches live upstream detail. Response includes description_markdown (HTML-converted markdown), employment_type, and missing_fields[] listing any fields that couldn’t be extracted. application_url is intentionally not exposed (unreliable on LinkedIn guest pages). Use fields=id,title,description_markdown to request a subset. Allowed fields: [‘address_structured’, ‘apply_url’, ‘capture_method’, ‘company_name’, ‘compensation_structured’, ‘department_name’, ‘description_markdown’, ‘description_plain’, ‘employment_type’, ‘id’, ‘is_listed’, ‘is_remote’, ‘location_display’, ‘missing_fields’, ‘posted_at’, ‘published_at’, ‘salary_display’, ‘secondary_locations’, ‘source’, ‘source_id’, ‘source_url’, ‘staleness_status’, ‘team_name’, ‘title’, ‘workplace_type’]. Errors: 422 validation_error (missing or invalid source_url); 400 validation_error (posting_id/source_url mismatch or another request-contract error, not retryable); 503 upstream_unavailable (detail fetch failed, retryable:true).
Parameters
Section titled “ Parameters ”Path Parameters
Section titled “Path Parameters ”The id returned by search-jobs for the row you want to enrich. Keep it paired with the row’s source_url.
The id returned by search-jobs for the row you want to enrich. Keep it paired with the row’s source_url.
Query Parameters
Section titled “Query Parameters ”The exact source_url from the matching search-jobs result row. Must form a valid pair with posting_id (both come from the same row). Mismatched pair returns 400 validation_error.
The exact source_url from the matching search-jobs result row. Must form a valid pair with posting_id (both come from the same row). Mismatched pair returns 400 validation_error.
Optional comma-separated list of fields to include. Allowed: [‘address_structured’, ‘apply_url’, ‘capture_method’, ‘company_name’, ‘compensation_structured’, ‘department_name’, ‘description_markdown’, ‘description_plain’, ‘employment_type’, ‘id’, ‘is_listed’, ‘is_remote’, ‘location_display’, ‘missing_fields’, ‘posted_at’, ‘published_at’, ‘salary_display’, ‘secondary_locations’, ‘source’, ‘source_id’, ‘source_url’, ‘staleness_status’, ‘team_name’, ‘title’, ‘workplace_type’].
Responses
Section titled “ Responses ”Job detail.
object
One job-posting detail. All fields optional because sparse fieldsets may omit any subset.
object
object
object
Example
{ "meta": { "mode": "live_detail" }}Service-side request contract error. error.param identifies the offending field when available.
object
object
object
Example
{ "error": { "source": "upstream" }}Client validation error. details[] identifies the offending field.
object
object
object
Example
{ "error": { "source": "upstream" }}Upstream dependency unavailable (retryable:true). The caller decides retry cadence.
object
object
object
Example
{ "error": { "source": "upstream" }}