{"uid":"cap_wGpWtHWRQyZjbTC3fQQh-","slug":"agents-openwebninja-com-indeed-job-search-via-openweb-ninja-e6a05511","name":"Indeed Job Search via OpenWeb Ninja","description":"Search Indeed for jobs. Returns a flat array of job objects - the same envelope\nJSearch `/search` uses.\n","url":"https://agents.openwebninja.com/realtime-indeed-data/search?utm_source=zero.xyz","method":"GET","headers":{},"bodySchema":{"type":"object","required":["query"],"properties":{"page":{"type":"integer","default":1,"maximum":50,"minimum":1,"description":"1-based page number. 10 jobs per page. Values above 50 are clamped to 50."},"query":{"type":"string","description":"Free-text search query, e.g. `software engineer`. Exactly one query per request;\na multi-valued `query` returns a 400 error.\n"},"fields":{"type":"string","description":"Comma-delimited projection. Any key of the job object is valid; `job_id` and\n`job_title` are always included. An unknown field is a 400.\nAlso the mechanism for pulling a deep result set in one call - see `num_pages`.\n"},"radius":{"type":"number","maximum":10000,"minimum":0,"description":"Search radius around `location`, in **kilometres**. Passed through to Indeed\nexactly, so 2 returns jobs within 2 km. Values above 10000 are clamped.\n**Requires `location`** - Indeed applies a radius only around a location, so\nsending it alone returns a 400 error.\n"},"country":{"type":"string","default":"us","description":"ISO 3166-1 alpha-2 market code. Sent to Indeed as a header, so any market is\nreachable regardless of the proxy exit country (verified US, GB, DE, CA, IN, AU).\n"},"language":{"type":"string","description":"ISO 639-1 language. Defaults to the primary language of `country`."},"location":{"type":"string","description":"Where to search, in Indeed's own format, e.g. `New York, NY`, `London`,\n`Berlin`. Omit to search the whole market.\n"},"num_pages":{"type":"integer","default":1,"maximum":50,"minimum":1,"description":"How many pages to return in one response. A full job runs about 12 KB,\nso beyond roughly 450 jobs the response is trimmed to fit the 6 MB limit and\n`parameters.response_truncated` is set. You are billed only for pages returned. Pass\n`fields` to keep a deep window intact.\n"},"max_salary":{"type":"number","minimum":0,"description":"Maximum **annual** salary. Same semantics as `min_salary`."},"min_salary":{"type":"number","minimum":0,"description":"Minimum **annual** salary. Applied to the salary the employer actually stated,\nannualised from `job_salary_period`. Jobs with no stated salary are excluded,\nbecause they cannot be asserted to qualify.\n"},"date_posted":{"enum":["all","today","3days","week","month"],"type":"string","default":"all","description":"Only return jobs posted within this window. `all` (the default) applies no date\nfilter. Combined with any other filter, the date window is applied locally and can\nreturn fewer jobs than qualify; filter by date alone when you need every matching\njob.\n"},"work_from_home":{"type":"boolean","description":"When `true`, return only jobs Indeed tags as Remote. Hybrid roles are excluded;\nsee `job_indeed_is_hybrid` on the job object.\n"},"employment_types":{"enum":["FULLTIME","CONTRACTOR","PARTTIME","INTERN"],"type":"string","description":"Comma-delimited list. A job matches if it carries **any** of the given types.\nIndeed also tags Temporary and Seasonal, which have no enum member here and are\nvisible via `job_indeed_attributes`.\n"},"experience_level":{"enum":["ENTRY_LEVEL","MID_LEVEL","SENIOR_LEVEL","NO_EXPERIENCE"],"type":"string","description":"Comma-delimited list of seniority levels. A job matches if it carries **any** of\nthem. Enforced against Indeed's own seniority tags.\n"},"exclude_job_publishers":{"type":"string","description":"Comma-delimited list of publishers to drop, matched case-insensitively against\n`job_publisher`. Applied locally; Indeed has no upstream equivalent.\n"}}},"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","job_indeed_ref_num","job_indeed_normalized_title","job_indeed_source_employer_name","job_indeed_employer_key","job_indeed_company_page_url","job_indeed_employer_header_image","job_indeed_employer_industry","job_indeed_occupations","job_indeed_attributes","job_indeed_experience_levels","job_indeed_is_hybrid","job_indeed_is_urgent_hire","job_indeed_is_high_volume_hiring","job_indeed_expired","job_indeed_language","job_indeed_postal_code","job_indeed_street_address","job_published_at_timestamp","job_published_at_datetime_utc","job_description_html","job_position"],"properties":{"job_id":{"type":"string","example":"aW5kZWVkOjNkNjM4ZGI0MjBiZmM4MmY","nullable":true,"description":"Stable, opaque job identifier: base64url(\"indeed:\" + the Indeed job key). Pass this to /job-details. Always present."},"job_uid":{"type":"string","example":"3d638db420bfc82f","nullable":true,"description":"The raw 16-hex Indeed job key that job_id encodes. Stable and valid indefinitely."},"job_city":{"type":"string","example":"New York","nullable":true,"description":"City. 100% coverage."},"job_state":{"type":"string","example":"NY","nullable":true,"description":"State / province / admin-1 code, e.g. \"NY\". 100% coverage."},"job_title":{"type":"string","example":"Full Stack Engineer (Laravel)","nullable":true,"description":"Job title as posted by the employer."},"job_salary":{"type":"number","example":187500,"nullable":true,"description":"Single headline salary figure: the midpoint of the stated range, or the single stated bound. Null when the employer stated no salary."},"job_country":{"type":"string","example":"US","nullable":true,"description":"ISO 3166-1 alpha-2 country code. Resolved from Indeed's country name, which is localised per market (\"Deutschland\" for de-DE), and falls back to the requested `country` when unrecognised. Always a 2-letter code."},"job_benefits":{"type":"array","items":{"type":"string"},"nullable":true,"description":"Always null. The normalized JSearch benefit enum has no Indeed equivalent; the raw benefit labels are in job_benefits_strings."},"job_latitude":{"type":"number","example":40.71427,"nullable":true,"description":"Latitude. 100% coverage on measured jobs."},"job_location":{"type":"string","example":"New York, NY","nullable":true,"description":"Full formatted location, e.g. \"New York, NY 10003\"."},"job_onet_soc":{"type":"string","nullable":true,"description":"Always null. Indeed's occupations[] are its own SUID taxonomy, not O*NET SOC codes; they are exposed verbatim as job_indeed_occupations."},"job_position":{"type":"integer","example":1,"nullable":true,"description":"Absolute 1-based rank of the job within the full result set for this query. Null on /job-details, which has no notion of rank."},"apply_options":{"type":"array","items":{"type":"object","required":["publisher","apply_link","is_direct"],"properties":{"is_direct":{"type":"boolean","description":"True when the link goes to the employer/ATS rather than another job board."},"publisher":{"type":"string","example":"Workday","description":"Who serves the application - the employer/ATS host, mapped to a friendly name where known."},"apply_link":{"type":"string","description":"The application URL."}},"description":"A single route to apply for the job."},"nullable":true,"description":"Application routes. Indeed exposes exactly one source per posting, so this array holds 0 or 1 entries."},"employer_logo":{"type":"string","nullable":true,"description":"Square employer logo. From Indeed's employer dossier (69% of 600 measured jobs); where Indeed has none, a Google faviconV2 URL derived from the employer website or apply domain is substituted. Null only when neither is available."},"employer_name":{"type":"string","example":"PactFi","nullable":true,"description":"Employer name. Falls back to Indeed's `sourceEmployerName` when the employer record is absent. Populated on 100% of measured jobs."},"job_is_remote":{"type":"boolean","example":false,"description":"True when the posting carries Indeed's \"Remote\" attribute. Hybrid roles are false here and true on job_indeed_is_hybrid."},"job_longitude":{"type":"number","example":-74.00597,"nullable":true,"description":"Longitude. 100% coverage on measured jobs."},"job_posted_at":{"type":"string","example":"10 days ago","nullable":true,"description":"Relative posting age in the JSearch vocabulary: \"today\", \"N days ago\" up to 30, then \"N month(s) ago\". Derived from job_posted_at_timestamp."},"job_publisher":{"type":"string","example":"Ashby","nullable":true,"description":"Who is serving the application: the employer/ATS host derived from the apply URL, mapped to a friendly name for known ATSs (Workday, Greenhouse, Lever, iCIMS, ...)."},"job_apply_link":{"type":"string","example":"https://jobs.ashbyhq.com/pactfi/c4058bd0-55f3-49fd-a3de-994b4d2bb39e?utm_source=Zw9jOe6Ka6","nullable":true,"description":"Direct application URL. On Indeed this is the employer's own careers page or ATS, not an Indeed redirect - populated on 600/600 measured jobs."},"job_highlights":{"type":"object","nullable":true,"description":"Always an empty object. Indeed ships one flat description with no qualifications/responsibilities/benefits split, so there is nothing to structure. Present for shape parity with the Google-backed surface.","additionalProperties":true},"job_max_salary":{"type":"number","example":200000,"nullable":true,"description":"Upper salary bound in the units of job_salary_period. Null when unstated or when only a lower bound was given."},"job_min_salary":{"type":"number","example":175000,"nullable":true,"description":"Lower salary bound in the units of job_salary_period. Null when unstated or when only an upper bound was given."},"job_description":{"type":"string","nullable":true,"description":"Full plain-text job description, returned in the SEARCH response. See job_description_html for the markup."},"job_google_link":{"type":"string","nullable":true,"description":"Always null. Google-for-Jobs specific and not applicable to an Indeed-sourced posting."},"employer_reviews":{"type":"array","items":{"type":"object"},"nullable":true,"description":"Always null here. Indeed publishes its company rating and review count on the /cmp company surface. GET /company-reviews returns them with the full review list, the category ratings and the 1-5 star distribution, at one request per 20 reviews. Pass job_indeed_company_page_url from any job here as the company parameter."},"employer_website":{"type":"string","example":"https://www.americanexpress.com","nullable":true,"description":"Employer's corporate website (72% of 600 measured jobs)."},"job_onet_job_zone":{"type":"string","nullable":true,"description":"Always null. See job_onet_soc."},"job_salary_period":{"enum":["YEAR","MONTH","WEEK","DAY","HOUR",null],"type":"string","example":"YEAR","nullable":true,"description":"Unit the salary bounds are expressed in: YEAR, MONTH, WEEK, DAY or HOUR. Salary values keep the unit the employer stated."},"job_salary_string":{"type":"string","example":"$175,000 - $200,000 a year","nullable":true,"description":"Salary exactly as Indeed renders it, e.g. \"$152,000 - $221,000 a year\" (60% of measured jobs)."},"job_indeed_expired":{"type":"boolean","example":false,"description":"True when Indeed has marked the posting expired."},"job_indeed_ref_num":{"type":"string","example":"c4058bd0-55f3-49fd-a3de-994b4d2bb39e","nullable":true,"description":"The employer's own requisition id, e.g. \"JR2025219\". 100% coverage."},"job_apply_is_direct":{"type":"boolean","example":true,"description":"True when job_apply_link points at the employer/ATS rather than at another job board."},"job_employment_type":{"enum":["FULLTIME","CONTRACTOR","PARTTIME","INTERN",null],"type":"string","example":"FULLTIME","nullable":true,"description":"Primary employment type. One of FULLTIME, CONTRACTOR, PARTTIME, INTERN. Null when Indeed tagged none of them."},"job_indeed_language":{"type":"string","example":"en","nullable":true,"description":"ISO 639-1 language of the posting as detected by Indeed."},"job_benefits_strings":{"type":"array","items":{"type":"string"},"example":["Health insurance","401(k)"],"nullable":true,"description":"Benefit labels as Indeed states them, e.g. \"401(k)\", \"Health insurance\", \"Paid time off\". Null when the posting lists none."},"job_description_html":{"type":"string","nullable":true,"description":"The job description with Indeed's original HTML markup preserved."},"job_employment_types":{"type":"array","items":{"type":"string"},"example":["FULLTIME"],"nullable":true,"description":"All employment types tagged on the posting, in the enum order FULLTIME, CONTRACTOR, PARTTIME, INTERN. Empty array when Indeed tagged none. Indeed also uses Temporary and Seasonal tags, which have no JSearch enum member and are exposed only in job_indeed_attributes rather than being folded into CONTRACTOR."},"job_indeed_is_hybrid":{"type":"boolean","example":true,"description":"True when the posting carries Indeed's \"Hybrid work\" attribute."},"job_indeed_attributes":{"type":"array","items":{"type":"object","required":["key","label"],"properties":{"key":{"type":"string","example":"CF3CP","description":"Indeed's stable SUID for the term."},"label":{"type":"string","example":"Full-time","description":"Human-readable label, localised to the requested language."}},"description":"An Indeed taxonomy entry - a stable SUID plus its human label in the requested language."},"nullable":true,"description":"Every attribute Indeed tagged on the posting - 27 to 66 per job, mixing skills, employment type, seniority, benefits and work arrangement. The SUIDs here are the same tokens the employment_types / experience_level / work_from_home filters use upstream."},"job_indeed_occupations":{"type":"array","items":{"type":"object","required":["key","label"],"properties":{"key":{"type":"string","example":"CF3CP","description":"Indeed's stable SUID for the term."},"label":{"type":"string","example":"Full-time","description":"Human-readable label, localised to the requested language."}},"description":"An Indeed taxonomy entry - a stable SUID plus its human label in the requested language."},"nullable":true,"description":"Indeed's occupation taxonomy for the posting."},"job_indeed_postal_code":{"type":"string","example":"10040","nullable":true,"description":"Postal code (51% coverage)."},"job_indeed_employer_key":{"type":"string","example":"fda3f19471b1c223","nullable":true,"description":"Indeed's stable company identifier (96% coverage). Also the encodedFccId used by the /cmp company pages."},"job_posted_at_timestamp":{"type":"integer","example":1788222664,"nullable":true,"description":"Unix timestamp (seconds) of when the posting appeared on Indeed. 100% coverage."},"job_indeed_is_urgent_hire":{"type":"boolean","example":false,"description":"True when Indeed flags the posting as urgently hiring."},"job_indeed_street_address":{"type":"string","example":"World Financial Center","nullable":true,"description":"Street address (41% coverage)."},"job_posted_at_datetime_utc":{"type":"string","format":"date-time","example":"2026-09-01T00:31:04.000Z","nullable":true,"description":"ISO 8601 UTC form of job_posted_at_timestamp."},"job_published_at_timestamp":{"type":"integer","example":1788152400,"nullable":true,"description":"Unix timestamp (seconds) of the employer's own publish date. Distinct from job_posted_at_timestamp, which is when the posting reached Indeed."},"job_indeed_company_page_url":{"type":"string","example":"https://www.indeed.com/cmp/Haq-Bpo-Solutions","nullable":true,"description":"Absolute URL of the employer's Indeed company page, e.g. \"https://www.indeed.com/cmp/Capgemini\"."},"job_indeed_normalized_title":{"type":"string","example":"full stack developer","nullable":true,"description":"Indeed's normalized job title, e.g. \"devops engineer\"."},"job_indeed_employer_industry":{"type":"string","nullable":true,"description":"Industry from the Indeed company dossier (13% coverage)."},"job_indeed_experience_levels":{"type":"array","items":{"type":"string"},"example":["MID_LEVEL"],"nullable":true,"description":"Seniority tags on the posting: ENTRY_LEVEL, MID_LEVEL, SENIOR_LEVEL and/or NO_EXPERIENCE. Empty array when Indeed tagged none."},"job_published_at_datetime_utc":{"type":"string","format":"date-time","example":"2026-08-31T05:00:00.000Z","nullable":true,"description":"ISO 8601 UTC form of job_published_at_timestamp."},"job_indeed_source_employer_name":{"type":"string","example":"PactFi","nullable":true,"description":"Employer name as it appeared on the source feed, before Indeed matched it to a company record."},"job_indeed_employer_header_image":{"type":"string","example":"https://d2q79iu7y748jz.cloudfront.net/s/_headerimage/1960x400/aae57269f3888005ede005b80239171b","nullable":true,"description":"Employer banner image from the Indeed company dossier (54% coverage)."},"job_indeed_is_high_volume_hiring":{"type":"boolean","example":false,"description":"True when Indeed flags the posting as high-volume hiring."}},"description":"A job posting. A superset of the 35-key JSearch `/search` contract: all 35 keys are\nalways present (null / [] / {} where Indeed cannot fill them), followed by 20+\nIndeed-specific keys.\n"},"description":"Matching jobs, in Indeed's ranking order for the requested window."},"status":{"enum":["OK"],"type":"string"},"parameters":{"type":"object","required":["query","page","num_pages","country","language","response_truncated"],"properties":{"page":{"type":"integer"},"query":{"type":"string"},"fields":{"type":"string"},"radius":{"type":"number"},"country":{"type":"string"},"language":{"type":"string"},"location":{"type":"string"},"num_pages":{"type":"integer"},"max_salary":{"type":"number"},"min_salary":{"type":"number"},"date_posted":{"type":"string"},"jobs_omitted":{"type":"integer","description":"Matching jobs dropped to fit the payload limit. Present only when\n`response_truncated` is `true`. You are not billed for these.\n"},"jobs_returned":{"type":"integer","description":"Jobs in `data`. Present only when `response_truncated` is `true`."},"work_from_home":{"type":"boolean"},"employment_types":{"type":"array","items":{"type":"string"}},"experience_level":{"type":"array","items":{"type":"string"}},"response_truncated":{"type":"boolean","description":"`true` when the response was trimmed to stay inside the 6 MB service payload limit,\nand some jobs that matched were therefore not returned. Always present.\n\nThis is a statement about the RESPONSE, not about the source: it does not mean\nIndeed ran out of jobs. A short response with `response_truncated: false` means the\ncursor was exhausted; a short response with `response_truncated: true` means we could\nnot fit any more. Narrow the window or pass `fields` to get the rest.\n"},"exclude_job_publishers":{"type":"array","items":{"type":"string"}}},"description":"Echo of the parameters as the caller sent them, before any internal normalisation.\n`date_posted: all` is echoed verbatim even though it is applied as \"no date filter\".\nKeys the caller did not send are absent.\n\nThree keys are NOT an echo but a report on the response itself:\n`response_truncated`, and - only when it is `true` - `jobs_returned` and `jobs_omitted`.\n"},"request_id":{"type":"string"}}},"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_x-hpia8wPk3nUjFosdjei","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":"Search Indeed job postings by keyword, location, salary, employment type, and other filters, returning detailed job objects.","exampleAgentPrompt":"Search Indeed for full-time software engineer jobs in Austin, TX posted in the last 3 days with a minimum salary of $120,000 — show me the first 2 pages of results.","exampleUseCases":[{"title":"Remote tech job hunt","prompt":"Find me remote Python developer jobs across the US posted in the last week, with a minimum salary of $100,000 — give me 2 pages of results."},{"title":"Local healthcare job search","prompt":"Search Indeed for registered nurse jobs within 25 km of Chicago, IL, full-time only, and sort by most recently posted."},{"title":"International job market research","prompt":"Look up software engineering jobs in Germany — use the German market and return results in German so I can see what roles are in demand in Berlin."}],"resultDescription":"A flat array of detailed job objects, each containing job ID, title, employer name, employer logo, website, apply link, full description, HTML description, location details (city, state, country, lat/lng, postal code), salary info (min, max, period, string), employment type, remote/hybrid flags, posting timestamps, job highlights, Indeed-specific metadata (industry, experience levels, urgency, high-volume hiring), employer reviews, and an ONet SOC code. Also includes pagination metadata and a flag if the response was truncated.","failureModes":["Missing required 'query' parameter returns 400 error","Multiple values for 'query' parameter returns 400 error","Providing 'radius' without 'location' returns 400 error","Unknown field name in 'fields' projection returns 400 error","Page number or num_pages out of range is clamped rather than errored","Response exceeding 6 MB is truncated and 'parameters.response_truncated' is set","Invalid country code may return empty results or an error","Payment not authorized returns 402"],"whenToPreferThis":"Choose this endpoint when you need real-time job listings sourced directly from Indeed, especially when you need rich metadata like salary ranges, employer reviews, Indeed-specific attributes (urgency, hybrid, experience levels), or need to search non-US markets. Prefer this over LinkedIn or Glassdoor endpoints when Indeed's coverage or job-detail schema is what you need. It mirrors the JSearch /search envelope, making it a drop-in for workflows already using that format.","instructions":null,"reviewSummary":null,"reviewSummaryHighlights":null,"reviewSummaryConcerns":null,"reviewSummaryGeneratedAt":null,"activationCount":0,"lastUsedAt":null,"lastSuccessfullyRanAt":null,"lastHealthCheckAt":"2026-10-14T00:35:16.323Z","isFirstParty":false,"canonicalSlug":"agents-openwebninja-com-indeed-job-search-via-openweb-ninja-e6a05511"}