LinkedIn API: List company jobs
Lists open LinkedIn jobs posted by a named company, with optional location and result limit. Workplace type is returned only when LinkedIn displays it.
Unofficial. Not affiliated with or endorsed by LinkedIn.
Inputs
Values from the run on Oct 23, 2026, shown under Output.
- Company, required
company Company name, for example Microsoft.
Microsoft
- Location optional
location City, country, or remote; for example New York, United States. Defaults to anywhere.
New York, NY
Default
anywhere.- Max Results optional
max_results Maximum number of jobs, for example 25 (at most 100).
5
Whole number from 1 to 100. Default
25.
Input as JSON
{ "company": "Microsoft", "location": "New York, NY", "max_results": 5}Output
{ "jobs": [ { "title": "Principal Cloud Solution Architect, Cloud and Agentic AI Solutions - New York", "job_link": "https://www.linkedin.com/jobs/view/principal-cloud-solution-architect-cloud-and-agentic-ai-solutions-new-york-at-microsoft-4473775233" , "location": "New York, NY", "posted_date": "2026-10-21", "workplace_type": null }, { "title": "Member of Technical Staff - Responsible AI (CoreAI)", "job_link": "https://www.linkedin.com/jobs/view/member-of-technical-staff-responsible-ai-coreai-at-microsoft-4370978768" , "location": "New York, NY", "posted_date": "2026-10-20", "workplace_type": null }, { "title": "Strategic Account Executive - Japanese Banking and Capital Markets", "job_link": "https://www.linkedin.com/jobs/view/strategic-account-executive-japanese-banking-and-capital-markets-at-microsoft-4463337916" , "location": "New York, NY", "posted_date": "2026-10-17", "workplace_type": null } ], "company": "Microsoft"}Code
curl https://api.fous.com/v1/runs \ -H "Authorization: Bearer $FOUS_API_KEY" \ -H "Content-Type: application/json" \ -d '{"method":"linkedin.com/list_company_jobs","input":{"company":"Microsoft","location":"New York, NY","max_results":5}}' # Save as fous.py, then run: python3 fous.pyimport json, os, timefrom urllib.error import HTTPErrorfrom urllib.request import Request, urlopenAPI = "https://api.fous.com/v1/runs" KEY = os.environ["FOUS_API_KEY"]HEADERS = { "Authorization": f"Bearer {KEY}", "Content-Type": "application/json" ,}def call(url, body=None): data = json.dumps(body).encode() if body else None request = Request(url, data, HEADERS) try: with urlopen(request, timeout=120) as r: return r.status, json.load(r) except HTTPError as error: message = json.load(error)["error"]["message"] raise RuntimeError(message) from errorstatus, run = call(API, { "method": "linkedin.com/list_company_jobs" , "input": { "company": "Microsoft", "location": "New York, NY", "max_results": 5 }})# 202: still going after 30 s. Ask again until it ends.while status == 202: time.sleep(2) status, run = call(f"{API}/{run['id']}")print(json.dumps(run["data"], indent=2))// Save as fous.mjs, then run: node fous.mjsconst api = "https://api.fous.com/v1/runs" ;const headers = { Authorization: `Bearer ${process.env.FOUS_API_KEY}`, "Content-Type": "application/json" ,};let response = await fetch(api, { method: "POST", headers, body: JSON.stringify({ "method": "linkedin.com/list_company_jobs" , "input": { "company": "Microsoft", "location": "New York, NY", "max_results": 5 } }), signal: AbortSignal.timeout(120_000),});let run = await response.json();// 202: still going after 30 s. Ask again until it ends.while (response.status === 202) { await new Promise((done) => setTimeout(done, 2_000)); response = await fetch(`${api}/${run.id}`, { headers }); run = await response.json();}if (!response.ok) throw new Error(run.error.message);console.log(run.data);# Connect your agent to Fous once, over MCP (Streamable HTTP):# https://api.fous.com/mcp# Set FOUS_API_KEY first: create a key at https://app.fous.com/keys.# Claude Codeclaude mcp add \ --scope user \ --transport http fous https://api.fous.com/mcp \ --header "Authorization: Bearer ${FOUS_API_KEY:?Set FOUS_API_KEY to your Fous API key}"# Codexcodex mcp add fous \ --url https://api.fous.com/mcp \ --bearer-token-env-var FOUS_API_KEY# Cursor, VS Code, Windsurf, Cline and morenpx -y add-mcp https://api.fous.com/mcp -g -n fous \ --header "Authorization: Bearer ${FOUS_API_KEY:?Set FOUS_API_KEY to your Fous API key}"# Then ask your agent:# "Use Fous to run linkedin.com/list_company_jobs# with {"company":"Microsoft","location":"New York, NY","max_results":5}"Over HTTP, the answer’s data holds the output. A run still going after 30 seconds answers 202 with its id: ask GET /v1/runs/{id} until it ends.
Schema
Input schema
{ "type": "object", "required": [ "company" ], "properties": { "company": { "type": "string", "minLength": 1, "description": "Company name, for example Microsoft." }, "location": { "type": "string", "default": "anywhere", "description": "City, country, or remote; for example New York, United States. Defaults to anywhere." }, "max_results": { "type": "integer", "default": 25, "maximum": 100, "minimum": 1, "description": "Maximum number of jobs, for example 25 (at most 100)." } }}Output schema
{ "type": "object", "required": [ "company", "jobs" ], "properties": { "jobs": { "type": "array", "items": { "type": "object", "required": [ "title", "job_link" ], "properties": { "title": { "type": "string" }, "job_link": { "type": "string" }, "location": { "type": [ "string", "null" ] }, "posted_date": { "type": [ "string", "null" ] }, "workplace_type": { "type": [ "string", "null" ] } } }, "description": "Open job postings, newest first." }, "company": { "type": "string", "description": "Matched company name." } }}- Price
- 1 credit per completed run (1¢ with pay as you go); failed runs are free.
- Method
linkedin.com/list_company_jobs- Returns
- company name; job title, location, workplace type, posted date, link
Use it from your agent
Give your agent this line. It reads SKILL.md, gets a Fous API key and connects the Fous MCP server. Its run then takes the method linkedin.com/list_company_jobs with the inputs above.
Ask your agent
- Show me open jobs at Microsoft in Seattle, United States, limit 10
- What roles is Stripe hiring for right now? Give me up to 50 listings anywhere
- Find remote openings at Shopify with the posted dates and links
- List the current job postings from Adobe in London, United Kingdom
- Can you pull up to 20 open positions at Notion across all locations?
See more
All LinkedIn methodsSearches public LinkedIn job listings by keywords and location, with optional date, seniority, employment type and company filters.
linkedin.com/search_jobsLists a company's recent public LinkedIn posts in page order, from its name or LinkedIn company page link: post text, approximate date, reactions, comments, image and link. Only updates shown on the signed-out company page are available.
linkedin.com/list_company_postsGets the full description and public details of an open LinkedIn job from its link, or from its title and company. Closed postings are not returned.
linkedin.com/get_jobGets the public overview of a LinkedIn company from its name or company page link. Details not shown publicly are null.
linkedin.com/get_company_profileLists open jobs on a company's Greenhouse job board, with optional department and location filters.
boards.greenhouse.io/list_company_jobsLists open jobs on a company's Lever job board, with optional team, location and workplace filters.
jobs.lever.co/list_company_jobsLists a company's public Workday jobs, optionally narrowed by keywords and location, newest first with exact posting dates among up to 500 checked postings. Workday may cap the reported total at 2,000; location totals reflect checked postings.
myworkdayjobs.com/list_company_jobsSearches open Indeed jobs by keywords, location, country, posting age and job type, returning public first-page results in displayed order.
indeed.com/search_jobs