Skip to content

Get Posting Detail

GET
/v1/postings/{posting_id}
agent-data call f9a6ec16-0bfd-44d8-b3ee-073776745ee7 get-posting --posting_id <posting_id> --source_url <source_url> [--source <source>] [--fields <fields>]

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).

posting_id
required
Posting Id

The id returned by search-jobs for the row you want to enrich. Keep it paired with the row’s source_url.

string

The id returned by search-jobs for the row you want to enrich. Keep it paired with the row’s source_url.

source_url
required
Source Url

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.

string

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.

source
Any of:
string

Optional single-source override. Allowed: linkedin, ashby, greenhouse, lever. If omitted, the API infers from source_url for *.ashbyhq.com, *.greenhouse.io, ?gh_jid=, and jobs.lever.co; otherwise it defaults to linkedin.

fields
Any of:
string

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’].

Job detail.

Media type application/json
PostingDetailApiResponse
object
data
required
PostingDetailData

One job-posting detail. All fields optional because sparse fieldsets may omit any subset.

object
id
Any of:
string
title
Any of:
string
source
Any of:
string
apply_url
Any of:
string
is_listed
Any of:
boolean
is_remote
Any of:
boolean
posted_at
Any of:
string format: date-time
source_id
Any of:
string
team_name
Any of:
string
source_url
Any of:
string
company_name
Any of:
string
published_at
Any of:
string format: date-time
capture_method
Any of:
string
missing_fields
Any of:
Array<string>
workplace_type
Any of:
string
department_name
Any of:
string
employment_type
Any of:
string
location_display
Any of:
string
staleness_status
Any of:
string
description_plain
Any of:
string
address_structured
Any of:
object
key
additional properties
any
secondary_locations
Any of:
Array<object>
object
key
additional properties
any
description_markdown
Any of:
string
compensation_structured
Any of:
object
key
additional properties
any
meta
required
PostingDetailMeta
object
mode
required
Mode
string
Allowed value: live_detail
request_id
required
Request Id
string
Example
{
"meta": {
"mode": "live_detail"
}
}

Service-side request contract error. error.param identifies the offending field when available.

Media type application/json
ErrorResponse
object
error
required
ErrorBody
object
body
Any of:
Body
code
required
Code
string
param
Any of:
string
source
Source
string
default: service
Allowed values: upstream gateway cli aws_authorizer service client
status
required
Status
integer
details
Any of:
Array<object>
object
key
additional properties
any
message
required
Message
string
retryable
required
Retryable
boolean
request_id
required
Request Id
string
Example
{
"error": {
"source": "upstream"
}
}

Client validation error. details[] identifies the offending field.

Media type application/json
ErrorResponse
object
error
required
ErrorBody
object
body
Any of:
Body
code
required
Code
string
param
Any of:
string
source
Source
string
default: service
Allowed values: upstream gateway cli aws_authorizer service client
status
required
Status
integer
details
Any of:
Array<object>
object
key
additional properties
any
message
required
Message
string
retryable
required
Retryable
boolean
request_id
required
Request Id
string
Example
{
"error": {
"source": "upstream"
}
}

Upstream dependency unavailable (retryable:true). The caller decides retry cadence.

Media type application/json
ErrorResponse
object
error
required
ErrorBody
object
body
Any of:
Body
code
required
Code
string
param
Any of:
string
source
Source
string
default: service
Allowed values: upstream gateway cli aws_authorizer service client
status
required
Status
integer
details
Any of:
Array<object>
object
key
additional properties
any
message
required
Message
string
retryable
required
Retryable
boolean
request_id
required
Request Id
string
Example
{
"error": {
"source": "upstream"
}
}