{"ok":true,"site":{"host":"careers-webmcp.vercel.app","url":"https://careers-webmcp.vercel.app/","type":"live","desc":"Join Northwind, headquartered in India with a globally distributed workforce. We're building the intelligent infrastructure that connects exceptional talent with borderless opportunity.","tools":[{"name":"careers_get_context","kind":"answer","impl":"imperative","description":"Get a bounded snapshot of where the current user is on the careers site: sign-in state, current page, current job/application, and active search filters.","title":"Get current careers page context","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"inputSchema":{"type":"object","additionalProperties":false,"properties":{}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/careers","/products","/projects","/studio","/careers/open-positions"]},{"name":"careers_search_jobs","kind":"act","impl":"imperative","description":"Search the current employer job catalog with structured filters (department, level, location, workplace, skills, compensation) or free text. Returns bounded, ranked results.","title":"Search open job postings","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"inputSchema":{"type":"object","additionalProperties":false,"properties":{"query":{"type":"string"},"departments":{"type":"array","items":{"type":"string"}},"levels":{"type":"array","items":{"type":"string"}},"locations":{"type":"array","items":{"type":"string"}},"workplace":{"type":"array","items":{"type":"string"}},"employmentTypes":{"type":"array","items":{"type":"string"}},"skills":{"type":"array","items":{"type":"string"}},"minCompensation":{"type":"number"},"maxCompensation":{"type":"number"},"maxResults":{"type":"number","minimum":1,"maximum":30}}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/careers","/products","/projects","/studio","/careers/open-positions"]},{"name":"careers_get_job","kind":"answer","impl":"imperative","description":"Retrieve full structured details for a public job opening from the current careers site, including whether the current candidate already applied or saved it.","title":"Get a single job posting","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"inputSchema":{"type":"object","additionalProperties":false,"properties":{"jobId":{"type":"string"}}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/careers","/products","/projects","/studio","/careers/open-positions"]},{"name":"careers_open_job","kind":"act","impl":"imperative","description":"Navigate the current browser tab to the normal job detail page for the given job so the human can read it. Does not create an application.","title":"Open a job posting in the browser","annotations":{"untrustedContentHint":true},"inputSchema":{"type":"object","additionalProperties":false,"required":["jobId"],"properties":{"jobId":{"type":"string"}}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/careers","/products","/projects","/studio","/careers/open-positions"]},{"name":"careers_open_page","kind":"act","impl":"imperative","description":"Navigate the person's tab to one of this site's own pages by name: the job board, their applications, their saved jobs, the sign-up form, the hiring-process or internship pages, or a prepared export. Use it instead of building a link yourself; careers_get_context lists which pages are available.","title":"Go to a page on this careers site","annotations":{},"inputSchema":{"type":"object","additionalProperties":false,"required":["page"],"properties":{"page":{"type":"string","enum":["careers_home","jobs","full_time_roles","part_time_roles","hiring_process","internship_program","life_at_company","sign_up","my_applications","saved_jobs","profile","export"]},"exportId":{"type":"string","description":"Required only when page is \"export\"."}}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/careers","/products","/projects","/studio","/careers/open-positions"]},{"name":"careers_get_site_info","kind":"answer","impl":"imperative","description":"Read the employer's authored careers content as structured data: the hiring process end to end, the internship program, and the full list of pages you can send the person to. Use it to answer questions about how hiring works here instead of guessing or reading the rendered page.","title":"Read this site's own information pages","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"inputSchema":{"type":"object","additionalProperties":false,"properties":{"topic":{"type":"string","enum":["hiring_process","internship_program","destinations"],"description":"Omit to get every topic."}}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/careers","/products","/projects","/studio","/careers/open-positions"]},{"name":"careers_get_saved_jobs","kind":"act","impl":"imperative","description":"List job postings the signed-in candidate has saved for later.","title":"List the current candidate saved jobs","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"inputSchema":{"type":"object","additionalProperties":false,"properties":{}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/careers","/products","/projects","/studio","/careers/open-positions"]},{"name":"careers_set_saved_job","kind":"act","impl":"imperative","description":"Save or remove a job posting from the signed-in candidate saved list. Uses the same save action as the normal careers site.","title":"Save or unsave a job posting","annotations":{},"inputSchema":{"type":"object","additionalProperties":false,"required":["jobId","saved"],"properties":{"jobId":{"type":"string"},"saved":{"type":"boolean"}}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/careers","/products","/projects","/studio","/careers/open-positions"]},{"name":"careers_get_my_applications","kind":"act","impl":"imperative","description":"List the signed-in candidate own job applications with status and revision.","title":"List the current candidate applications","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"inputSchema":{"type":"object","additionalProperties":false,"properties":{}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/careers","/products","/projects","/studio","/careers/open-positions"]},{"name":"careers_get_application","kind":"answer","impl":"imperative","description":"Retrieve the signed-in candidate own application draft or submitted application, including current field values and any missing required fields.","title":"Get a job application draft","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"inputSchema":{"type":"object","additionalProperties":false,"properties":{"applicationId":{"type":"string"},"jobId":{"type":"string"}}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/careers","/products","/projects","/studio","/careers/open-positions"]},{"name":"careers_start_application","kind":"act","impl":"imperative","description":"Start (or resume) the signed-in candidate application draft for a job, prefilled from their profile, using the same flow as the normal Apply button.","title":"Start a job application","annotations":{},"inputSchema":{"type":"object","additionalProperties":false,"required":["jobId"],"properties":{"jobId":{"type":"string"}}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/careers","/products","/projects","/studio","/careers/open-positions"]},{"name":"careers_update_application","kind":"act","impl":"imperative","description":"Update fields on the signed-in candidate own draft application. Requires the last-read revision; rejected if the human has changed the draft since.","title":"Update a job application draft","annotations":{"untrustedContentHint":true},"inputSchema":{"type":"object","additionalProperties":false,"required":["applicationId","expectedRevision","fields"],"properties":{"applicationId":{"type":"string"},"expectedRevision":{"type":["number","null"]},"fields":{"type":"object","additionalProperties":false,"properties":{"fullName":{"type":"string"},"email":{"type":"string"},"phone":{"type":"string"},"location":{"type":"string"},"linkedinUrl":{"type":"string"},"portfolioUrl":{"type":"string"},"yearsExperience":{"type":["number","null"]},"coverNote":{"type":"string"},"availability":{"type":"string"}}}}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/careers","/products","/projects","/studio","/careers/open-positions"]},{"name":"careers_submit_application","kind":"transact","impl":"imperative","description":"Check the candidate's draft against the same rules as the normal form, then open it for final review. This site requires the person to press Submit themselves, so this tool does not submit for them: it returns 'awaiting_human_confirmation', or VALIDATION_ERROR listing what is missing.","title":"Review and hand off a job application for submission","annotations":{},"inputSchema":{"type":"object","additionalProperties":false,"required":["applicationId","expectedRevision"],"properties":{"applicationId":{"type":"string"},"expectedRevision":{"type":["number","null"]}}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/careers","/products","/projects","/studio","/careers/open-positions"]},{"name":"careers_set_search_view","kind":"act","impl":"imperative","description":"Show a search on the site's own jobs page: opens open-positions, types the query into the visible search box, and applies the filters. Use it after careers_search_jobs to put your results on screen for the person; read results from careers_search_jobs, not from here.","title":"Show a search on the jobs page","annotations":{},"inputSchema":{"type":"object","additionalProperties":false,"properties":{"query":{"type":"string","description":"Free text typed into the visible search box."},"department":{"type":"string","description":"Department name exactly as the site lists it, e.g. \"Engineering\"."},"country":{"type":"string","description":"Country name or slug, e.g. \"United States\"."},"level":{"type":"string"},"workplace":{"type":"string","enum":["On-site","Hybrid","Remote"]},"employmentType":{"type":"string"}}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/careers","/products","/projects","/studio","/careers/open-positions"]},{"name":"careers_focus_application_field","kind":"act","impl":"imperative","description":"Open the candidate's application and move the cursor to one field, highlighting it. Use this when the person has to supply something you should not invent — for example their phone number or notice period — so they can see exactly where to type.","title":"Point the person at an application field","annotations":{"untrustedContentHint":true},"inputSchema":{"type":"object","additionalProperties":false,"required":["field"],"properties":{"applicationId":{"type":"string","description":"Defaults to the application currently open on the page."},"field":{"type":"string","enum":["fullName","email","phone","location","linkedinUrl","portfolioUrl","yearsExperience","coverNote","availability"]}}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/careers","/products","/projects","/studio","/careers/open-positions"]},{"name":"careers_create_account","kind":"act","impl":"imperative","description":"Fill this site's normal sign-up form with details the person gave you and open it for them to confirm. It never creates the account itself: it returns 'awaiting_human_confirmation', and once they press Create account careers_get_context reports them signed in. Never invent an email address.","title":"Prepare a candidate account","annotations":{},"inputSchema":{"type":"object","additionalProperties":false,"required":["fullName","email"],"properties":{"fullName":{"type":"string"},"email":{"type":"string"},"phone":{"type":"string"},"location":{"type":"string"},"linkedinUrl":{"type":"string"},"portfolioUrl":{"type":"string"},"yearsExperience":{"type":["number","null"]}}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/careers","/products","/projects","/studio","/careers/open-positions"]},{"name":"careers_create_export","kind":"act","impl":"imperative","description":"Build a downloadable CSV and get back a handle to it, not the rows: row count, columns and a short preview. Use it instead of paging search results when you need a whole result set, then read only the slices and columns you need with careers_read_export. The person gets the same file.","title":"Prepare a downloadable export","annotations":{"untrustedContentHint":true},"inputSchema":{"type":"object","additionalProperties":false,"properties":{"dataset":{"type":"string","enum":["jobs","applications"],"default":"jobs"},"query":{"type":"object","additionalProperties":false,"properties":{"query":{"type":"string"},"departments":{"type":"array","items":{"type":"string"}},"levels":{"type":"array","items":{"type":"string"}},"locations":{"type":"array","items":{"type":"string"}},"workplace":{"type":"array","items":{"type":"string"}},"employmentTypes":{"type":"array","items":{"type":"string"}},"skills":{"type":"array","items":{"type":"string"}},"minCompensation":{"type":"number"},"maxCompensation":{"type":"number"},"maxResults":{"type":"number","minimum":1,"maximum":30}},"description":"Optional job filters, same shape as careers_search_jobs. Ignored for the applications dataset."},"columns":{"type":"array","items":{"type":"string","enum":["id","title","department","team","level","location","workplace","employmentType","compensationMin","compensationMax","currency","skills","postedAt","url","jobId","jobTitle","status","revision","createdAt","updatedAt","submittedAt"]},"description":"Restrict the export to these columns. Defaults to all columns for the dataset."}}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/careers","/products","/projects","/studio","/careers/open-positions"]},{"name":"careers_read_export","kind":"answer","impl":"imperative","description":"Read a bounded window of rows from an export created by careers_create_export. Narrow the columns to only what you need so you can scan a large result set without pulling every field. Returns hasMore so you know whether to continue.","title":"Read a slice of an export","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"inputSchema":{"type":"object","additionalProperties":false,"required":["exportId"],"properties":{"exportId":{"type":"string"},"offset":{"type":"number","minimum":0,"default":0},"limit":{"type":"number","minimum":1,"maximum":100,"default":100},"columns":{"type":"array","items":{"type":"string","enum":["id","title","department","team","level","location","workplace","employmentType","compensationMin","compensationMax","currency","skills","postedAt","url","jobId","jobTitle","status","revision","createdAt","updatedAt","submittedAt"]}}}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/careers","/products","/projects","/studio","/careers/open-positions"]}],"category":"Productivity & Business","apiSurface":"spec","toolCount":18}}