Skip to main content
Glama
webdata-tools-mcp

webdata-tools-mcp

Get all open jobs from company career pages

get_company_jobs
Read-onlyIdempotent

Collect open company jobs in one normalized format by passing career-page URLs or company names, with automatic job-board detection and filters for country, location, remote work, title, and posting date.

Instructions

All open jobs from companies in one normalized format (title, company, location with country code, remote/hybrid, seniority, salary, skills, apply URL, posted date). Give career-page URLs (the company's own careers page or its job board) or just company names; 13 job-board systems are supported (Greenhouse, Lever, Ashby, Workday, SmartRecruiters, Workable, Rippling, BambooHR, Pinpoint, Breezy, Recruitee, Personio, Teamtailor) and found automatically. Runs the Apify Actor tacps126/jobs-harvester on your Apify account (about $0.001 per job; spend per call is capped at $0.5).

Input Schema

NameRequiredDescriptionDefault
countriesNoKeep jobs in these countries: ISO codes ("US", "DE") or names.
max_itemsNoMaximum results to return (default 50, max 500). Cost scales with this.
extra_inputNoAdvanced: extra Actor input fields, merged over the defaults.
remote_onlyNoOnly remote jobs.
company_namesNoCompany names, e.g. ["Datadog", "Ramp"]; each is looked up on every supported job-board system.
title_includesNoKeep jobs whose title contains any of these.
career_page_urlsNoCareer page URLs, e.g. "https://www.figma.com/careers" or "https://jobs.lever.co/spotify".
location_includesNoKeep jobs in these locations.
posted_within_daysNoOnly jobs posted in the last N days.

Output Schema

NameRequiredDescriptionDefault
toolYesName of the tool that produced the result.
countYesNumber of records the Actor returned.
itemsYesThe records. Long text fields are shortened to 600 characters.
shownYesNumber of records included in `items` (can be lower than count when the result is long).
truncatedYesTrue when records were left out to keep the result short; ask for fewer items.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed6 schema fields changedv0.10.1
    • changedInput schema / properties / career_page_urls / description
      Previous value: -"Career page URLs, e.g. \"https://jobs.lever.co/spotify\"."New value: +"Career page URLs, e.g. \"https://www.figma.com/careers\" or \"https://jobs.lever.co/spotify\"."
    • removedInput schema / properties / career_page_urls / items / minLength
      Removed value: -1
    • removedInput schema / properties / career_page_urls / minItems
      Removed value: -1
    • addedInput schema / properties / company_names
      Added value: +{
      +  "description": "Company names, e.g. [\"Datadog\", \"Ramp\"]; each is looked up on every supported job-board system.",
      +  "items": {
      +    "type": "string"
      +  },
      +  "type": "array"
      +}
    • addedInput schema / properties / countries
      Added value: +{
      +  "description": "Keep jobs in these countries: ISO codes (\"US\", \"DE\") or names.",
      +  "items": {
      +    "type": "string"
      +  },
      +  "type": "array"
      +}
    • removedInput schema / required
      Removed value: -[
      -  "career_page_urls"
      -]
  2. Changed1 schema field changedv0.1.1
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "$schema": "http://json-schema.org/draft-07/schema#",
      +  "additionalProperties": false,
      +  "properties": {
      +    "count": {
      +      "description": "Number of records the Actor returned.",
      +      "maximum": 9007199254740991,
      +      "minimum": -9007199254740991,
      +      "type": "integer"
      +    },
      +    "items": {
      +      "description": "The records. Long text fields are shortened to 600 characters.",
      +      "items": {
      +        "additionalProperties": {},
      +        "propertyNames": {
      +          "type": "string"
      +        },
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "shown": {
      +      "description": "Number of records included in `items` (can be lower than count when the result is long).",
      +      "maximum": 9007199254740991,
      +      "minimum": -9007199254740991,
      +      "type": "integer"
      +    },
      +    "tool": {
      +      "description": "Name of the tool that produced the result.",
      +      "type": "string"
      +    },
      +    "truncated": {
      +      "description": "True when records were left out to keep the result short; ask for fewer items.",
      +      "type": "boolean"
      +    }
      +  },
      +  "required": [
      +    "tool",
      +    "count",
      +    "shown",
      +    "truncated",
      +    "items"
      +  ],
      +  "type": "object"
      +}
  3. First observedv0.1.0

TDQS

A3.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/openWorld/idempotent/non-destructive, and the description adds genuinely new context: it runs the Actor tacps126/jobs-harvester on the caller's own Apify account, costs about $0.001 per job, and caps spend at $0.5 per call. The only gap is failure behavior when a company or URL is not resolvable.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One dense paragraph that front-loads the output shape, then inputs, then billing — every clause carries information. The long ATS enumeration is useful but is the one place it could be trimmed.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present and rich annotations, the description need not explain returns; it covers scope, input modes, cost, and supported systems. The remaining hole is that with zero required parameters it never says whether at least one of career_page_urls/company_names is mandatory or how the tool behaves otherwise.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3. The description reinforces the two main input modes and notes that cost scales with result count, but adds no syntax detail (ISO vs. name handling, what extra_input overrides) beyond what the schema already states.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource (all open jobs from company career pages) and enumerates the normalized output fields and the 13 supported ATS systems, so the agent knows exactly what comes back. It never names a sibling job-search tool (search_indeed_jobs, search_tech_jobs, find_remote_jobs) to differentiate itself, so it stops short of a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

"Give career-page URLs ... or just company names" clarifies the two accepted input modes and the schema's filters imply narrowing use, but there is no explicit when-to-use-vs-alternatives guidance against the many sibling job tools, and no statement about what happens if neither URLs nor names are supplied (0 required params).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.