{"openapi":"3.1.0","info":{"title":"Careers API","version":"0.1.0","description":"Federated job search across open boards, full postings, company profiles, HN hiring thread, posted salary ranges, trending skills, job-ad keyword extraction.\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://careers.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"hr@unifydynamics.com","url":"https://connectorbay.com/careers/docs"},"termsOfService":"https://connectorbay.com/careers/terms"},"servers":[{"url":"https://careers.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/careers/docs"},"security":[{},{"bearer":[]}],"components":{"securitySchemes":{"bearer":{"type":"http","scheme":"bearer","description":"Optional. A Pro API key raises rate limits; no credentials are required."}},"schemas":{"Error":{"type":"object","properties":{"ok":{"const":false},"error":{"type":"object"}}}}},"paths":{"/v1/tools/search_jobs":{"post":{"operationId":"search_jobs","summary":"Search jobs across Remotive, Jobicy, Himalayas, Remote OK, The Muse and Arbeitnow at once: merged, de-duplicated,","description":"Search jobs across Remotive, Jobicy, Himalayas, Remote OK, The Muse and Arbeitnow at once: merged, de-duplicated,\n    ranked by relevance then recency, with a salary summary from any postings that state pay. Use for \"remote Python\n    jobs\", \"entry-level data analyst in Chicago\", \"nursing jobs\", \"marketing roles at Uber\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"query":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Role, skill or keywords: 'python developer', 'data analyst', 'nurse', 'marketing manager'.","examples":["python developer","data analyst"],"title":"Query"},"location":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"City/country to match in the posting's location, or 'remote'.","examples":["Chicago","Germany","remote"],"title":"Location"},"remote_only":{"default":false,"description":"Only remote roles.","title":"Remote Only","type":"boolean"},"level":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"internship, entry, mid, senior, management.","examples":["entry"],"title":"Level"},"category":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"A field such as 'Software Engineering', 'Data and Analytics', 'Marketing', 'Sales', 'Design', 'Healthcare', 'Customer Service' (The Muse categories; others filtered by keywords).","examples":["Data and Analytics"],"title":"Category"},"company":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Only this company.","examples":["Uber"],"title":"Company"},"max_results":{"default":20,"maximum":60,"minimum":1,"title":"Max Results","type":"integer"}},"title":"search_jobsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/job_details":{"post":{"operationId":"job_details","summary":"The full description of a posting returned by search_jobs (plain text), plus its extracted skills and","description":"The full description of a posting returned by search_jobs (plain text), plus its extracted skills and\n    requirements. Works for any result from the last few hours of searches; The Muse postings can also be fetched by\n    id. Use after a search when the user asks \"tell me more about that one\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"url":{"description":"The posting URL from search_jobs.","examples":["https://remotive.com/remote-jobs/software-dev/…"],"title":"Url","type":"string"}},"required":["url"],"title":"job_detailsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/companies":{"post":{"operationId":"companies","summary":"Company profiles from The Muse: description, industries, office locations, size, profile and jobs pages — by","description":"Company profiles from The Muse: description, industries, office locations, size, profile and jobs pages — by\n    name, or browse by industry, city and size. Use for \"tell me about Uber as an employer\", \"large tech companies in\n    Austin\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Company name to look up.","examples":["Uber"],"title":"Name"},"industry":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Industry filter, e.g. Technology, Healthcare, Finance, Education, Retail.","examples":["Technology"],"title":"Industry"},"location":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"City filter.","examples":["Austin, TX"],"title":"Location"},"size":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"small, medium or large.","examples":["large"],"title":"Size"},"max_results":{"default":10,"maximum":40,"minimum":1,"title":"Max Results","type":"integer"}},"title":"companiesArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/hn_hiring":{"post":{"operationId":"hn_hiring","summary":"Postings from the latest monthly \"Ask HN: Who is hiring?\" thread on Hacker News — company, headline (role |","description":"Postings from the latest monthly \"Ask HN: Who is hiring?\" thread on Hacker News — company, headline (role |\n    location | remote/onsite | salary as written), full text and link — filtered by keywords. Startups and engineering\n    roles mostly. Use for \"who is hiring on HN for Rust\", \"HN hiring thread, remote, Europe\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"query":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Keywords to filter postings: 'rust remote', 'machine learning', 'London'.","examples":["rust remote","London"],"title":"Query"},"max_results":{"default":20,"maximum":50,"minimum":1,"title":"Max Results","type":"integer"}},"title":"hn_hiringArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/salary_ranges":{"post":{"operationId":"salary_ranges","summary":"Posted pay for a role, gathered from every board result that states a salary: low/median/high of the posted","description":"Posted pay for a role, gathered from every board result that states a salary: low/median/high of the posted\n    ranges per currency, the postings behind them, and how many postings had no salary. Real postings, not estimates.\n    Use for \"what are data engineers being offered\", \"salary ranges for senior PMs right now\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"title":{"description":"Role title to look at.","examples":["senior product manager","data engineer"],"title":"Title","type":"string"},"location":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Optional location filter.","title":"Location"}},"required":["title"],"title":"salary_rangesArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/trending_skills":{"post":{"operationId":"trending_skills","summary":"Which skills current postings for a role mention most — counted across boards from tags, titles and excerpts —","description":"Which skills current postings for a role mention most — counted across boards from tags, titles and excerpts —\n    with the share of postings naming each. Use for \"what skills do data engineer jobs ask for\", \"what's in demand\n    for frontend roles\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"query":{"description":"Role or field.","examples":["data engineer","product designer"],"title":"Query","type":"string"},"top":{"default":20,"maximum":50,"minimum":5,"title":"Top","type":"integer"}},"required":["query"],"title":"trending_skillsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/posting_keywords":{"post":{"operationId":"posting_keywords","summary":"Extract what a job description asks for: skills and tools (350-term list), years of experience, degree","description":"Extract what a job description asks for: skills and tools (350-term list), years of experience, degree\n    mentions, remote/hybrid, salary mentions, 'required' and 'nice to have' lines, and frequent words — to tailor a\n    CV or cover letter. Local; the text is not sent anywhere. Use for \"what are the key requirements in this ad\",\n    \"which keywords should my resume include for this job\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"text":{"description":"The job description text (paste the posting).","title":"Text","type":"string"}},"required":["text"],"title":"posting_keywordsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/job_categories":{"post":{"operationId":"job_categories","summary":"The category and level names the boards accept (The Muse categories and levels; Remotive categories), for","description":"The category and level names the boards accept (The Muse categories and levels; Remotive categories), for\n    building precise searches.","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"job_categoriesArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}}}}