# Bing Jobs Job Details (OpenWeb Ninja)

> Bing Jobs Job Details (OpenWeb Ninja) is a paid API for AI agents from agents.openwebninja.com, paid per call via MPP, price unknown, status unknown (last checked 2026-10-14).

Fetches full job posting details for up to 20 Bing job IDs in one call, including complete descriptions, decoded apply links, salary data, and AI-extracted fields like seniority, required technologies, and visa sponsorship.

## Facts

- Endpoint: GET https://agents.openwebninja.com/realtime-bing-jobs-data/job-details?utm_source=zero.xyz
- Price: price unknown
- Payment: MPP
- Status: unknown
- Last checked: 2026-10-14
- Activations on Zero: 0
- Provider: agents.openwebninja.com
- Website: https://agents.openwebninja.com
- Canonical page: https://www.zero.xyz/c/agents-openwebninja-com-bing-jobs-job-details-openweb-ninja-f732a3c5
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_JzXFXWrirNrt51WV2rbXl

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability agents-openwebninja-com-bing-jobs-job-details-openweb-ninja-f732a3c5
```

Example prompt: Pull the full job details for Bing job ID YmluZzotNDYyNDU5MzAzLlJldHJv — I want the complete description, salary range, required technologies, visa sponsorship status, and all the decoded apply links.

## When to prefer this

Use this endpoint when you have one or more Bing job IDs (from the companion search endpoint) and need full job details, complete descriptions, decoded apply links, or AI-enriched structured fields like salary, seniority, required technologies, visa sponsorship, and work arrangement. It supports batching up to 20 IDs per call, making it efficient for bulk enrichment workflows. Prefer this over general job search APIs when you specifically have Bing job IDs and need the richest available structured metadata per posting.

## Known failure modes

- Unknown field name in `fields` projection returns 400
- Job ID not minted by this API or no longer on Bing is silently omitted from results (billing still applies)
- AI enrichment failure returns job without enriched fields (best-effort)
- Batch exceeds 20 job IDs returns an error
- Invalid country code may cause fallback or error
- Cached data up to 7 days old may not reflect very recent posting changes

## How this service works

Full details for up to 20 Bing job postings in one call, fetched concurrently, including
the complete job description and the decoded apply links of every board carrying the
posting.

**AI-extracted fields.** Each job is passed through the same AI enrichment as JSearch
`/job-details`, which adds `work_arrangement`, `seniority_level`,
`required_experience_years`, `education_required`, `visa_sponsorship`,
`relocation_required`, `relocation_assistance`, `contract_duration`, `start_date`,
`required_technologies`, `preferred_technologies`, `methodologies`, `industry`,
`job_function`, `has_management_responsibilities`, `ai_ml_involved`, `benefits_extended`
and `soft_skills`, and fills `job_min_salary`, `job_max_salary`, `job_salary_period`,
`job_city` and `job_state` where Bing left them empty. Results are cached for 7 days per
job. Enrichment is best-effort: if it fails, the job is returned without those fields.

`job_benefits_strings` is the full benefit list from the detail page; `/search` reports the
same list for the same job. `job_bing_company_id`, `job_bing_title_id` and `job_position`
are search-only.

An id this API did not mint, or a posting Bing no longer serves, is omitted from the array
while the rest of the batch resolves normally.

**Billing:** one request per requested id, including ids that do not resolve, so the cost
of a call is predictable before you make it.

## Output

An array of up to 20 job objects, each containing: full job description text, employer name and logo, decoded apply links from all job boards, salary range and period, work arrangement, seniority level, required and preferred technologies, education required, visa sponsorship status, relocation info, benefits list, industry, job function, soft skills, posting and expiration timestamps, geolocation, and AI-enriched fields. Jobs not found or no longer served by Bing are silently omitted from the array.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "required": [
  "job_id"
 ],
 "properties": {
  "fields": {
   "type": "string",
   "description": "Comma-separated projection over the job object, for example\n`job_title,job_description,job_apply_link`. `job_id` and `job_title` are always\nincluded, and every returned field can be selected. The search-only keys\n(`job_position`, `job_bing_company_id`, `job_bing_title_id`) are accepted and ignored,\nso one field list works on both endpoints. An unknown field name is a 400."
  },
  "job_id": {
   "type": "string",
   "example": "YmluZzotNDYyNDU5MzAzLlJldHJv",
   "description": "Job Id of the job for which to get details. Batching of up to 20 Job Ids is supported by\nseparating multiple Job Ids by comma (,). The raw `job_uid` is also accepted. Each Job Id\nin a batch counts as one request."
  },
  "country": {
   "type": "string",
   "default": "us",
   "description": "Country code of the country the job was searched in, see ISO 3166-1 alpha-2. It is the\nfallback for `job_country` when the job location names no country.\n\n**Default:** `us`"
  },
  "language": {
   "type": "string",
   "description": "Language code sent to Bing with the request, see ISO 639-1. Leave empty to use the\nprimary language of `country`."
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "object",
 "required": [
  "status",
  "request_id",
  "parameters",
  "data"
 ],
 "properties": {
  "data": {
   "type": "array",
   "items": {
    "type": "object",
    "required": [
     "job_id",
     "job_title",
     "employer_name",
     "employer_logo",
     "employer_website",
     "job_publisher",
     "job_publishers",
     "job_employment_type",
     "job_employment_types",
     "job_apply_link",
     "job_apply_is_direct",
     "apply_options",
     "job_description",
     "job_is_remote",
     "job_posted_at",
     "job_posted_at_bing_label",
     "job_posted_at_timestamp",
     "job_posted_at_datetime_utc",
     "job_offer_expiration_timestamp",
     "job_offer_expiration_datetime_utc",
     "job_location",
     "job_city",
     "job_state",
     "job_country",
     "job_latitude",
     "job_longitude",
     "job_benefits",
     "job_benefits_strings",
     "job_google_link",
     "job_salary",
     "job_salary_string",
     "job_min_salary",
     "job_max_salary",
     "job_salary_period",
     "job_highlights",
     "job_onet_soc",
     "job_onet_job_zone",
     "employer_reviews",
     "job_uid",
     "job_normalized_title"
    ],
    "properties": {
     "job_id": {
      "type": "string",
      "example": "YmluZzotNDYyNDU5MzAzLlJldHJv",
      "description": "Opaque public id for the posting, `base64url('bing:' + <Bing job id>)`. Pass it to `/job-details`. Stable for the life of the posting."
     },
     "job_uid": {
      "type": "string",
      "example": "-462459303.Retro",
      "description": "Bing's own job id, for example `-462459303.Retro`. Accepted directly by `/job-details`."
     },
     "industry": {
      "type": "string",
      "example": "Real Estate / Affordable Housing / Financial Services",
      "nullable": true,
      "description": "Industry of the employer, extracted by AI. `/job-details` only."
     },
     "job_city": {
      "type": "string",
      "example": "New York",
      "nullable": true,
      "description": "The first part of `job_location`. `null` on a fully-remote `Anywhere` posting. On `/job-details` an empty city can be filled by AI enrichment."
     },
     "job_state": {
      "type": "string",
      "example": "New York",
      "nullable": true,
      "description": "The last part of `job_location`, with US state codes expanded to the full name (`DC` becomes `District of Columbia`). `null` when the location has one part. On `/job-details` an empty state can be filled by AI enrichment."

… (truncated)
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/agents-openwebninja-com-bing-jobs-job-details-openweb-ninja-f732a3c5/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from agents.openwebninja.com](https://www.zero.xyz/host/agents.openwebninja.com/llms.txt)
