{"uid":"cap__ePWwLiWY_lekIQI60VWU","slug":"agents-openwebninja-com-ziprecruiter-job-details-batch-656f90da","name":"ZipRecruiter Job Details (Batch)","description":"Full details for up to 20 ZipRecruiter job postings in one call, fetched concurrently.\n\nThis endpoint always reads the detail surface, so the detail-only fields are filled without\nany flag: `job_description` and `ziprecruiter_description_html` at 100%, `job_highlights`\nat 72%, `job_onet_soc`, `ziprecruiter_job_industry` and `ziprecruiter_valid_through` at 73%\n(ZipRecruiter ships JSON-LD on 73% of detail pages), `employer_website` and the company\nwidget fields at 54%, and `employer_reviews` at 14%.\n\nThree fields belong to the search card and are `null` here:\n`ziprecruiter_short_description`, the card teaser; `ziprecruiter_updated_at`,\nZipRecruiter's listing refresh stamp; and `ziprecruiter_is_new`, a card badge.\n\nAn id this API did not mint, or a posting ZipRecruiter has taken down, is omitted from the\narray while the rest of the batch resolves normally. A request made entirely of ids from\nanother job API returns a 200 with an empty array.\n\n**Billing:** `Requests` counts one per requested id, including ids that turn out to be\nforeign, so the cost of a call is predictable before you make it.","url":"https://agents.openwebninja.com/realtime-ziprecruiter-data/job-details?utm_source=zero.xyz","method":"GET","headers":{},"bodySchema":{"type":"object","required":["job_id"],"properties":{"fields":{"type":"string","description":"Comma-separated projection over the job object, for example\n`job_title,employer_name,job_apply_link`. `job_id` and `job_title` are always included.\nAn unknown field name returns a 400 error."},"job_id":{"type":"string","example":"emlwcmVjcnVpdGVyOjkzNjIxNWNiNTAzZDhiZTI","description":"Comma-separated job ids from a `/search` response, up to 20 per request. The raw\n`job_uid` of a previous response is also accepted."},"country":{"enum":["us","ca"],"type":"string","default":"us","description":"Country market the posting belongs to. Only `us` and `ca` are served.\n\n**Allowed values:** `us`, `ca`\n\n**Default:** `us`"}}},"responseSchema":{"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_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_timestamp","job_posted_at_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","ziprecruiter_listing_key","ziprecruiter_short_description","ziprecruiter_description_html","ziprecruiter_share_url","ziprecruiter_canonical_job_url","ziprecruiter_updated_at","ziprecruiter_is_new","ziprecruiter_apply_type","ziprecruiter_apply_host","ziprecruiter_salary_source","ziprecruiter_salary_is_estimated","ziprecruiter_location_type","ziprecruiter_location_county","ziprecruiter_location_postal_code","ziprecruiter_location_id","ziprecruiter_company_id","ziprecruiter_company_slug","ziprecruiter_company_size","ziprecruiter_company_hq","ziprecruiter_company_industries","ziprecruiter_job_industry","ziprecruiter_valid_through","ziprecruiter_ats_identifier","ziprecruiter_key_responsibilities","ziprecruiter_employer_faq"],"properties":{"job_id":{"type":"string","example":"emlwcmVjcnVpdGVyOjkzNjIxNWNiNTAzZDhiZTI","description":"Stable, opaque id for this posting. Pass it straight back to `/job-details`. Encodes\nZipRecruiter's own seat id, so it survives re-fetches and is the same on every surface."},"job_uid":{"type":"string","example":"936215cb503d8be2","description":"ZipRecruiter's own raw seat id, 16 hex characters. Stable across surfaces and\nre-fetches, accepted directly by `/job-details`, and the right key for an enrichment\ncache."},"job_city":{"type":"string","example":"Manhattan","nullable":true,"description":"City. `null` on a state-level or remote-only listing."},"job_state":{"type":"string","example":"New York","nullable":true,"description":"The full state or province NAME, matching JSearch. The two-letter code appears inside\n`job_location`."},"job_title":{"type":"string","example":"Senior AI Engineer (AI Foundations)","nullable":true,"description":"The job title as ZipRecruiter publishes it. 100% fill."},"job_salary":{"type":"number","example":155750,"nullable":true,"description":"The headline salary figure: the midpoint when the posting states a range, the single\nbound otherwise, in the period given by `job_salary_period`. 69% fill. Populated only\nwhen ZipRecruiter itself displays the pay."},"job_country":{"type":"string","example":"US","nullable":true,"description":"Uppercase ISO 3166-1 alpha-2 country code. `US` or `CA` on this source."},"job_benefits":{"type":"array","items":{"enum":["medical","dental","vision","life_insurance","paid_time_off","retirement"],"type":"string"},"example":["medical","dental","vision","paid_time_off","retirement"],"nullable":true,"description":"Normalised benefit tags ZipRecruiter states on the posting. 44% fill; `null` when none\nare stated."},"job_latitude":{"type":"number","format":"float","example":null,"nullable":true,"description":"Always `null`. ZipRecruiter publishes coordinates on neither the card, the detail\npayload nor the JSON-LD."},"job_location":{"type":"string","example":"Manhattan, NY","nullable":true,"description":"The location as ZipRecruiter displays it on the posting. 100% fill."},"job_onet_soc":{"type":"string","example":"15-1132.00","nullable":true,"description":"The O*NET-SOC occupation code ZipRecruiter states, with the human title removed.\nDetail surface only, and capped at 73% because it comes from JSON-LD, which\nZipRecruiter ships on 73% of detail pages."},"apply_options":{"type":"array","items":{"type":"object","required":["publisher","apply_link","is_direct"],"properties":{"is_direct":{"type":"boolean","example":false,"description":"Always `false`. The destination is ZipRecruiter itself or an ad network relay."},"publisher":{"type":"string","example":"ZipRecruiter","description":"Always `ZipRecruiter`; every row on this surface is a ZipRecruiter listing."},"apply_link":{"type":"string","format":"uri","example":"https://www.ziprecruiter.com/c/Capital-One/Job/Senior-AI-Engineer-(AI-Foundations)/-in-Manhattan,NY?jid=936215cb503d8be2","description":"The canonical ZipRecruiter posting URL, identical to `job_apply_link`."}},"description":"One way to apply to this job. ZipRecruiter exposes exactly one, its own posting page, so\nthis array has either one entry or none."},"description":"Ways to apply. ZipRecruiter exposes exactly one, its own posting page, so this is a\none-entry array, or empty on the rare job with no resolvable URL."},"employer_logo":{"type":"string","format":"uri","example":"https://www.ziprecruiter.com/svc/fotomat/public-nosensitive-ziprecruiter-logos/company/60122984.png","nullable":true,"description":"The employer's logo. 69% fill from ZipRecruiter itself; the remainder is lifted from\nthe employer's own domain where one is known."},"employer_name":{"type":"string","example":"Capital One","nullable":true,"description":"The hiring company's name. 100% fill."},"job_is_remote":{"type":"boolean","example":false,"nullable":true,"description":"Whether the job can be done remotely. A real tri-state here: ZipRecruiter states a\nworkplace type on 100% of postings, so `false` is a supported answer.\nFully remote and remote-optional map to `true`; hybrid and in-person map to `false`."},"job_longitude":{"type":"number","format":"float","example":null,"nullable":true,"description":"Always `null`, for the same reason as `job_latitude`."},"job_posted_at":{"type":"string","example":"4 days ago","nullable":true,"description":"Relative publication age, for example `4 days ago` or `1 month ago`. Derived from\nZipRecruiter's own posted-at stamp. Its JSON-LD `datePosted` is a reindex stamp and\ndisagrees with reality on 58% of postings."},"job_publisher":{"enum":["ZipRecruiter"],"type":"string","example":"ZipRecruiter","description":"Always `ZipRecruiter`. Constant by construction on this source."},"job_apply_link":{"type":"string","format":"uri","example":"https://www.ziprecruiter.com/c/Capital-One/Job/Senior-AI-Engineer-(AI-Foundations)/-in-Manhattan,NY?jid=936215cb503d8be2","nullable":true,"description":"The canonical ZipRecruiter posting URL, with tracking parameters stripped. 100% fill,\nstable, and a page a human can apply from."},"job_highlights":{"type":"object","example":{"Qualifications":["At least 3 years of experience programming with Python, Go, Scala, or Java"],"Responsibilities":["Design, develop, test, deploy, and support AI software components."]},"description":"Description bullets grouped by section, keyed `Qualifications`, `Responsibilities` and\n`Benefits`. Recovered from the posting's own headed lists, plus ZipRecruiter's extracted\nkey responsibilities where it provides them. Detail surface only, 72% fill; `{}` when\nnothing was recovered, so it is always safe to enumerate. Only headings that map to one\nof the three sections are kept.","additionalProperties":{"type":"array","items":{"type":"string"}}},"job_max_salary":{"type":"number","example":177100,"nullable":true,"description":"Upper bound of the stated range, in the `job_salary_period` unit. 69% fill."},"job_min_salary":{"type":"number","example":134400,"nullable":true,"description":"Lower bound of the stated range, in the `job_salary_period` unit. 69% fill."},"job_description":{"type":"string","example":"Senior AI Engineer (AI Foundations)\n\nOverview:\n\nAt Capital One, we are creating responsible and reliable AI systems, changing banking for good.","nullable":true,"description":"The full posting text, HTML stripped to plain text with paragraph breaks preserved.\n**Detail surface only, and this is the field callers most often expect for free:** it\nis `null` on a `/search` response unless `include_details=true`, because a ZipRecruiter\nsearch card carries only a roughly 200-character teaser, published separately as\n`ziprecruiter_short_description`. 100% fill on the detail surface."},"job_google_link":{"type":"string","format":"uri","example":null,"nullable":true,"description":"Always `null`. This link is a Google for Jobs construction built around a Google docid,\nwhich ZipRecruiter does not issue."},"employer_reviews":{"type":"array","items":{"type":"object","required":["publisher","employer_name","score","num_stars","review_count","max_score","reviews_link"],"properties":{"score":{"type":"number","example":7.76,"description":"The rating, on the `max_score` scale, rounded to 2 decimals."},"max_score":{"type":"integer","example":10,"description":"The top of the scale. `10` for Breakroom."},"num_stars":{"type":"integer","example":8,"description":"`score` rounded to the nearest whole number, on the same scale as `max_score`."},"publisher":{"type":"string","example":"Breakroom","description":"Who published the rating. `Breakroom` on every sample measured."},"review_count":{"type":"integer","example":148,"nullable":true,"description":"How many responses the rating is based on."},"reviews_link":{"type":"string","format":"uri","example":"https://breakroom.cc/companies/capital-one","nullable":true,"description":"The Breakroom company page the rating comes from."},"employer_name":{"type":"string","example":"Capital One","nullable":true,"description":"The employer the rating is about, as the rating source names it."}},"description":"One employer rating, published by Breakroom. Note the scale: `max_score` is 10, and the\nscore is carried on that scale unchanged."},"nullable":true,"description":"Employer ratings published by Breakroom. Detail surface only, 14% fill; `null` when\nZipRecruiter shows no rating. Note the scale is 1 to 10, carried on the row as\n`max_score`."},"employer_website":{"type":"string","format":"uri","example":"https://capitalone.com","nullable":true,"description":"The employer's own website, from ZipRecruiter's company widget. Detail surface only,\n54% fill."},"job_onet_job_zone":{"type":"string","example":null,"nullable":true,"description":"Always `null`. The O*NET job zone is a Google enrichment; ZipRecruiter states the SOC\ncode only."},"job_salary_period":{"enum":["HOUR","DAY","WEEK","MONTH","YEAR",null],"type":"string","example":"YEAR","nullable":true,"description":"The period the salary figures are expressed in. 69% fill."},"job_salary_string":{"type":"string","example":"$134K - $177K/yr","nullable":true,"description":"ZipRecruiter's own salary text, verbatim, exactly as shown on the page. 69% fill."},"job_apply_is_direct":{"type":"boolean","example":false,"description":"Always `false`. A ZipApply job is applied to on ZipRecruiter, and an external job goes\nthrough a redirect whose destination is an ad network relay more often than an employer\nATS. See `ziprecruiter_apply_type` for the apply signal."},"job_employment_type":{"enum":["FULLTIME","CONTRACTOR","PARTTIME","INTERN","TEMPORARY","OTHER",null],"type":"string","example":"FULLTIME","nullable":true,"description":"The first entry of `job_employment_types`, for JSearch compatibility. `null` when\nZipRecruiter states no employment type. `INTERN` appears here as a reported value:\nZipRecruiter labels internships on the posting, while its search offers an\n`employment_types` filter without one."},"ziprecruiter_is_new":{"type":"boolean","example":null,"nullable":true,"description":"ZipRecruiter's own \"new\" badge on a search card. Search surface only, and `null` when\nthe payload carries no badge."},"job_benefits_strings":{"type":"array","items":{"type":"string"},"example":["Medical","Dental","Vision","Life","Retirement","PTO"],"nullable":true,"description":"ZipRecruiter's own benefit labels, split out of its single comma-joined display string.\nSame 44% fill as `job_benefits`; `null` when none are stated."},"job_employment_types":{"type":"array","items":{"enum":["FULLTIME","CONTRACTOR","PARTTIME","INTERN","TEMPORARY","OTHER"],"type":"string"},"example":["FULLTIME"],"description":"Every employment type stated on the posting, in JSearch's documented order so two\nidentically tagged jobs always serialise the same way. An empty array when\nZipRecruiter states none. `INTERN` is a reported value here; ZipRecruiter's search\noffers an `employment_types` filter without one."},"ziprecruiter_share_url":{"type":"string","format":"uri","example":"https://www.ziprecruiter.com/job-redirect/share?match_token=CqABChZubDRwVEpHZHBvb2lIeGYxVXE1WFJ3","nullable":true,"description":"ZipRecruiter's own short share link for the posting."},"job_posted_at_timestamp":{"type":"integer","example":1788992809,"nullable":true,"description":"Unix timestamp in seconds of the publication date. 100% fill."},"ziprecruiter_apply_host":{"type":"string","example":"dsp.prng.co","nullable":true,"description":"The hostname behind ZipRecruiter's external apply redirect, decoded. Provenance only:\nit is frequently an ad network relay. Use `job_apply_link` to apply."},"ziprecruiter_apply_type":{"enum":["OPEN_APPLY_FLOW","OPEN_EXTERNAL",null],"type":"string","example":"OPEN_EXTERNAL","nullable":true,"description":"How applying works. `OPEN_APPLY_FLOW` is ZipApply, applied on ZipRecruiter itself;\n`OPEN_EXTERNAL` leaves for a third-party destination. This is the apply signal to read."},"ziprecruiter_company_hq":{"type":"string","example":"McLean, VA, US","nullable":true,"description":"The company's headquarters location from ZipRecruiter's company widget. Detail surface\nonly, 54% fill."},"ziprecruiter_company_id":{"type":"string","example":"LvOba8F2oEpGlw2IxG/RnmjRZMM=","nullable":true,"description":"ZipRecruiter's internal company identifier, an opaque base64 blob, stringified like\nevery other id in this response."},"ziprecruiter_updated_at":{"type":"string","example":"2026-09-14T04:20:33.688364560Z","nullable":true,"description":"When ZipRecruiter last refreshed the listing, distinct from the publication date. Search\nsurface only: `null` on `/job-details`. Nanosecond precision, as ZipRecruiter publishes\nit."},"ziprecruiter_listing_key":{"type":"string","example":"nl4pTJGdpooiHxf1Uq5XRw","nullable":true,"description":"ZipRecruiter's internal listing key. Useful for diffing payloads, but NOT an identity:\nthe same job can carry different keys on different surfaces. Use `job_id` or `job_uid`."},"ziprecruiter_location_id":{"type":"string","example":"0a070499-f1f0-42d9-940e-76c39915e34a","nullable":true,"description":"ZipRecruiter's internal identifier for the location."},"ziprecruiter_company_size":{"type":"string","example":"10000+ Employees","nullable":true,"description":"Employee headcount band from ZipRecruiter's company widget, for example\n`1001 - 5000 Employees`. Detail surface only, 54% fill."},"ziprecruiter_company_slug":{"type":"string","example":"capital one","nullable":true,"description":"ZipRecruiter's canonical display name for the company. A display label only: scope a\nsearch to this employer with `ziprecruiter_company_id`."},"ziprecruiter_employer_faq":{"type":"array","items":{"type":"object","required":["question","answer"],"properties":{"answer":{"type":"string","example":"Key technical skills include expertise in programming languages such as Java, Python, or C++.","nullable":true,"description":"The answer, verbatim. May contain inline HTML where ZipRecruiter published it."},"question":{"type":"string","example":"What skills or qualities help someone succeed as a Senior Software Engineer?","nullable":true,"description":"The question, verbatim."}},"description":"One generated FAQ entry. ZipRecruiter writes these about the ROLE, so most answers\ndescribe the occupation; a few are Breakroom survey findings about the employer."},"nullable":true,"description":"ZipRecruiter's generated FAQ for the posting. Detail surface only. Despite the contract\nname, most entries are about the ROLE; some are Breakroom survey findings about the\nemployer."},"ziprecruiter_job_industry":{"type":"string","example":"Technology","nullable":true,"description":"The industry ZipRecruiter assigns to this JOB. From JSON-LD, so detail surface only and\ncapped at 73%."},"job_posted_at_datetime_utc":{"type":"string","format":"date-time","example":"2026-09-09T22:26:49.000Z","nullable":true,"description":"ISO 8601 UTC form of `job_posted_at_timestamp`."},"ziprecruiter_location_type":{"enum":["LOCATION_TYPE_NAME_IN_PERSON","LOCATION_TYPE_NAME_REMOTE","LOCATION_TYPE_NAME_REMOTE_OPTIONAL","LOCATION_TYPE_NAME_HYBRID",null],"type":"string","example":"LOCATION_TYPE_NAME_IN_PERSON","nullable":true,"description":"ZipRecruiter's own workplace-type enum, passed through verbatim. 100% fill, and the\nsource `job_is_remote` is derived from."},"ziprecruiter_salary_source":{"enum":["SOURCE_PROVIDED","SOURCE_PARSED","SOURCE_PREDICTED","SOURCE_MISSING",null],"type":"string","example":"SOURCE_PREDICTED","nullable":true,"description":"Where ZipRecruiter's pay figure came from. Always published, even when the salary\nfields are `null`, so a caller can see WHY a job has no salary: `SOURCE_MISSING` means\nthe employer stated no pay and ZipRecruiter modelled and then hid a figure, which this\nAPI suppresses."},"ziprecruiter_valid_through":{"type":"string","example":"2026-10-14","nullable":true,"description":"The date the posting expires, as ZipRecruiter states it in JSON-LD. Detail surface\nonly, capped at 73%."},"ziprecruiter_ats_identifier":{"type":"string","example":"R1000242","nullable":true,"description":"The employer's own requisition reference, from the posting's JSON-LD identifier. Detail\nsurface only, and present on 40 of the 43 measured pages that carry JSON-LD at all."},"ziprecruiter_location_county":{"type":"string","example":"New York","nullable":true,"description":"County or equivalent administrative area for the job location."},"ziprecruiter_description_html":{"type":"string","example":"Senior AI Engineer (AI Foundations)<p></p><p><b>Overview:</b></p><p>At Capital One, we are creating responsible ...</p>","nullable":true,"description":"The job description with ZipRecruiter's original HTML markup preserved, for callers who\nwant the formatting. Detail surface only, 100% fill there."},"ziprecruiter_canonical_job_url":{"type":"string","format":"uri","example":"https://www.ziprecruiter.com/c/Capital-One/Job/Senior-AI-Engineer-(AI-Foundations)/-in-Manhattan,NY?jid=936215cb503d8be2","nullable":true,"description":"The canonical ZipRecruiter posting URL. Identical to `job_apply_link`, exposed under\nits own name so the ZipRecruiter extras stand on their own."},"ziprecruiter_short_description":{"type":"string","example":"Senior AI Engineer (AI Foundations) Overview: At Capital One, we are creating responsible and reliable AI systems, changing banking for good.","nullable":true,"description":"The roughly 200-character teaser a ZipRecruiter search card carries. Card surface\nonly: always `null` on `/job-details`, where the full `job_description` is present\ninstead. Passed through verbatim, so unlike `job_description` it can carry\nZipRecruiter's own `<b>` search-highlight markup and undecoded HTML entities; strip or\ndecode it before display."},"ziprecruiter_company_industries":{"type":"array","items":{"type":"string"},"example":["Funds, Trusts and Financial Programs","Real Estate"],"nullable":true,"description":"Industries ZipRecruiter assigns to the COMPANY, distinct from the job's own industry.\nDetail surface only; `null` when the widget lists none."},"ziprecruiter_salary_is_estimated":{"type":"boolean","example":true,"nullable":true,"description":"Whether ZipRecruiter labels the displayed pay as an estimate. `null` when there is no\ndisplayed pay to label."},"ziprecruiter_key_responsibilities":{"type":"array","items":{"type":"string"},"example":null,"nullable":true,"description":"ZipRecruiter's machine-extracted responsibility summaries, rewritten from the posting.\nDetail surface only, present on roughly a third of detail pages; also merged into\n`job_highlights.Responsibilities`."},"ziprecruiter_location_postal_code":{"type":"string","example":"10012","nullable":true,"description":"Postal or ZIP code, as a string so leading zeros survive."}},"description":"A ZipRecruiter job posting. A superset of the 35-key JSearch `/search` contract, whose keys\ncome first in contract order, followed by 25 `ziprecruiter_*` extras, for 60 keys in total.\nEvery key is always present, `null` / `[]` / `{}` where ZipRecruiter has no value, so a\nconsumer gets the same set of keys on every job. The `fields` projection narrows it,\nreturning exactly the keys asked for plus `job_id` and `job_title`.\n\nFields marked \"detail surface only\" are `null` on a `/search` response unless\n`include_details=true`, and are filled on `/job-details`."},"description":"The requested jobs, in the order the ids were supplied. An id that does not\nresolve is omitted from the array."},"status":{"enum":["OK"],"type":"string"},"parameters":{"type":"object","required":["job_id","country"],"properties":{"fields":{"type":"string","example":"job_title,employer_name","description":"The projection exactly as sent. Absent when not supplied."},"job_id":{"type":"string","example":"emlwcmVjcnVpdGVyOjkzNjIxNWNiNTAzZDhiZTI","description":"The id list exactly as sent, before splitting and deduplication."},"country":{"enum":["us","ca"],"type":"string","example":"us","description":"The resolved country market, lowercased."}},"description":"Echo of the parameters as the caller sent them."},"request_id":{"type":"string","description":"Unique id for this request, useful when contacting support."}}},"example":null,"exampleRequest":null,"tags":[],"displayCostAmount":"unknown","displayCostAsset":"USD","priceDynamic":true,"priceHint":null,"priceStatus":"unprobed","priceSource":"registry","requiresHandshake":false,"reviewCount":0,"rating":{"score":"0.00","successRate":"0.00","reviews":0,"stars":null,"state":"unrated"},"availabilityStatus":"unknown","priceObserved":null,"sessionDeposit":null,"pricing":{"kind":"unknown","summary":"price unknown","primary":{"kind":"dynamic","protocol":"mpp","network":"tempo","amountUsd":null,"per":"call","confidence":"unknown"},"accepted":[{"kind":"dynamic","protocol":"mpp","network":"tempo","amountUsd":null,"per":"call","confidence":"unknown"}]},"paymentMethods":[{"uid":"pm_4fqw29pH3WItauDCQ8HzR","protocol":"mpp","methodType":"crypto","chain":"tempo","mode":"charge","costAmount":"unknown","costPer":"request","priority":0,"asset":null,"unit":"request","depositMicros":null,"planRef":null}],"brandName":"agents.openwebninja.com","brandSlug":"agents-openwebninja-com-x402","brandBaseUrl":"https://agents.openwebninja.com","brandDocsUrl":null,"whatItDoes":"Fetches full ZipRecruiter job posting details for up to 20 job IDs in a single concurrent request, including description, highlights, salary, company info, and more.","exampleAgentPrompt":"I found these ZipRecruiter job IDs from my earlier search — emlwcmVjcnVpdGVyOjkzNjIxNWNiNTAzZDhiZTI and a few others — can you pull the full job descriptions, salary ranges, and apply links for all of them at once?","exampleUseCases":[{"title":"Comparing salaries across multiple listings","prompt":"I have these 5 ZipRecruiter job IDs from my search for software engineer roles — can you fetch the salary range, job description, and employer name for all of them so I can compare?"},{"title":"Checking employer reviews before applying","prompt":"Before I apply to this ZipRecruiter job (ID: emlwcmVjcnVpdGVyOjkzNjIxNWNiNTAzZDhiZTI), can you pull the full details including employer reviews and the company website?"},{"title":"Extracting job requirements for resume tailoring","prompt":"Get me the full job description and highlighted requirements for these ZipRecruiter postings — I want to tailor my resume to match what they're asking for."}],"resultDescription":"Returns an array of job objects — one per valid ZipRecruiter job ID — each containing: full job description (plain text and HTML), job highlights, salary range and period, benefits, location details, apply link and options, employer name/logo/website/reviews, company size and HQ, job industry, ONET SOC code, posting expiry date, and numerous ZipRecruiter-specific metadata fields. Invalid or taken-down IDs are silently omitted while valid ones still resolve.","failureModes":["All foreign (non-ZipRecruiter) IDs return 200 with an empty array","Taken-down or expired listings are silently omitted from the response array","Unknown field names in the 'fields' projection parameter return a 400 error","Country mismatch (e.g. Canadian posting queried with country=us) may result in empty results","Exceeding 20 job IDs per request is not supported and may error or truncate","Billing counts each requested ID so foreign IDs still incur cost"],"whenToPreferThis":"Use this endpoint when you already have ZipRecruiter job IDs (from a prior /search call) and need full detail-page data — job description, highlights, salary, employer reviews, and company metadata — for up to 20 postings in a single call. Prefer this over re-running searches when you want to enrich or compare specific known listings efficiently. If you need to search for new jobs rather than look up known IDs, use the /search endpoint instead.","instructions":null,"reviewSummary":null,"reviewSummaryHighlights":null,"reviewSummaryConcerns":null,"reviewSummaryGeneratedAt":null,"activationCount":0,"lastUsedAt":null,"lastSuccessfullyRanAt":null,"lastHealthCheckAt":"2026-10-14T00:36:22.656Z","isFirstParty":false,"canonicalSlug":"agents-openwebninja-com-ziprecruiter-job-details-batch-656f90da"}