Skip to main content
Glama
mambalabsdev

mcp-gtm-hiring-signal-scraper

GTM Hiring Signal Scraper MCP Server

Smithery Glama score MCP Registry npm version npm downloads license mcpservers.org

An MCP server that detects go-to-market hiring activity from company career pages. It wraps the Mamba Labs GTM Hiring Signal Scraper on Apify and returns Clay-ready flat JSON to any MCP client.

What's Inside

Related MCP server: Job Lead Converter MCP

What it does

Give it a company domain and it scans that company's job board for sales, marketing, and revenue operations roles across Greenhouse, Lever, Ashby, Workable, SmartRecruiters and Personio. You get back a structured read on how hard that company is hiring for go-to-market, ready to drop into Clay, a CRM, or an AI agent workflow. All of the scraping runs on Apify. This package is a thin client that calls the actor and hands back the result.

Quick start

You need Node.js 18 or newer and an Apify account with an API token.

Add this to your Claude Desktop config:

{
  "mcpServers": {
    "mamba-gtm-hiring": {
      "command": "npx",
      "args": ["-y", "@mambalabsdev/mcp-gtm-hiring-signal-scraper"],
      "env": {
        "APIFY_TOKEN": "your-apify-token"
      }
    }
  }
}

Get your token at https://console.apify.com/account/integrations, paste it in, and restart Claude Desktop. The scan_gtm_hiring_signals tool will be available.

Prerequisites

  • Node.js 18 or newer

  • An Apify account with an API token

Example prompts

  • "Check if stripe.com is hiring for go-to-market roles right now."

  • "Scan openai.com for sales and revenue operations job postings."

  • "Is datadoghq.com ramping up GTM hiring? Use the GTM hiring scanner."

  • "Pull the GTM hiring signal for figma.com and list which roles are open."

  • "Scan stripe.com, figma.com, and notion.so for GTM hiring in one batch."

Inputs

  • domain (required): the bare company domain, no https:// and no trailing slash. Example: stripe.com

  • role_filter (optional): a list of GTM role keywords to filter on. Leave it out to use the built-in keyword list.

  • ats_slug (optional): override the ATS board slug when it differs from the domain. Example: clay.com uses claylabs on Ashby.

  • domains (optional): a list of bare domains scanned in one run when mode is batch, one row per company. domain is still required by the schema, so pass the first domain there too.

  • mode (optional): single (default) scores domain; batch scores every entry in domains; velocity compares this run against previous_gtm_role_count and previous_run_date to report role changes since the last run.

  • include_role_details (optional): when true, adds the full per role array (title, department, location, URL). Default false.

  • previous_gtm_role_count (optional): the GTM role count from your previous run for this domain. Used in velocity mode to compute the delta, which is what makes a scheduled run cheap.

  • previous_run_date (optional): ISO date of your previous run for this domain, for example 2026-07-15. Used in velocity mode to report the days between runs.

  • max_charge_usd (optional): a cost cap in USD for this run. The actor stops before an item that could take its charges past this amount. Omit it to rely on the maximum cost per run set in Apify.

Output

The tool returns the actor's flat JSON for the scanned company. Fields include the detected ATS platform, the count of open GTM roles, the matched role titles and their categories, and a seniority read. Companies on an ATS outside those six come back with a null platform, a zero role count, and no error. See the Apify Store page for the full output schema.

Example output

{
  "domain": "stripe.com",
  "company_name": "Stripe",
  "gtm_hiring_signal": true,
  "ats_platform": "greenhouse",
  "gtm_role_count": 12,
  "signal_strength": "high",
  "top_gtm_role": "Head of Revenue",
  "career_page_url": "https://boards.greenhouse.io/stripe",
  "run_date": "2026-05-28"
}

Features

  • Cascading ATS detection: Greenhouse, Lever, Ashby, Workable, SmartRecruiters, Personio

  • GTM role filtering with 3-tier signal strength (high, medium, low)

  • Flat JSON output designed for Clay column mapping

  • Optional role_filter and ats_slug inputs

  • Batch mode (domains) and velocity mode for scheduled runs

Pricing

Price per event on the Apify FREE plan, from the live pricing record; paid Apify plans pay less per event.

Event

Price (USD)

result (apify-default-dataset-item)

0.05

Actor Start (apify-actor-start)

0.00005

Full actor documentation

This server is a thin client and holds no scraping logic. For the complete input and output reference, pricing, and run history, see the Apify Store page:

https://apify.com/mambalabs/gtm-hiring-signal-scraper


Mamba Labs GTM Suite

This server is one of 58 Mamba Labs MCP servers, each a thin client for one Mamba Labs actor on Apify. Every actor returns flat, Clay-ready rows that join on the company domain.

Built by Mamba Labs | npm | Apify Store

License

MIT

Built by Mamba Labs. https://apify.com/mambalabs

Available Tools

1 tool
scan_gtm_hiring_signalsScan GTM Hiring SignalsA
Read-onlyIdempotent

Scan company career pages to detect GTM hiring activity: open sales, marketing, and revenue operations roles, a role count, and a high, medium, or low signal strength. Reads the Greenhouse, Lever, Ashby, Workable, SmartRecruiters and Personio job boards; a company on any other board returns a null ats_platform and a zero count, not an error. Use it to qualify an account before outreach, or on a schedule in velocity mode to see whether a company is ramping its GTM team. Use mode batch with domains for a list in one call. Output is Clay-ready flat JSON, one row per company. Requires an APIFY_TOKEN and consumes Apify credits per call.

NameRequiredDescriptionDefault
modeNoProcessing mode. "single" scores the domain. "batch" scores every entry in domains in one run, one row per company. "velocity" compares this run against previous_gtm_role_count and previous_run_date to report role changes since last time. Default: "single".
domainYesBare company domain without https:// and without a trailing slash. Example: stripe.com
domainsNoList of bare domains to scan in one run when mode is "batch", for example ["stripe.com", "figma.com"]. One row per company. The run timeout is 1,800 seconds; a very large batch can still reach it.
ats_slugNoOptional ATS board slug override for when it differs from the domain. Example: clay.com uses claylabs on Ashby. If omitted, the scraper auto-probes common slug variants.
role_filterNoOptional list of GTM role keywords to filter on. Defaults to the built-in GTM keyword list if omitted.
previous_run_dateNoISO date of the previous run for this domain, e.g. 2026-07-15. Used in velocity mode to report days between runs.
include_role_detailsNoWhen true, include the full per-role detail array (title, department, location, url) in the output. Default: false.
previous_gtm_role_countNoGTM role count from the previous run for this domain. Used in velocity mode to compute the delta, which is what makes a scheduled run cheap.

TDQS

A4.6/5.0
Behavior5/5

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

Annotations already cover readOnly/idempotent/openWorld/non-destructive, but the description adds materially: unsupported boards return a null ats_platform and zero count rather than an error, an APIFY_TOKEN is required, Apify credits are consumed per call, and output is flat one-row-per-company JSON. These are exactly the operational facts annotations cannot convey.

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?

Purpose is front-loaded in the first sentence, followed by capability limits, usage, and operational constraints in a logical order. The six-board enumeration and the dual mention of velocity mode add slight length but each sentence carries load.

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

Completeness5/5

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

With no output schema, the description compensates by describing the return shape (Clay-ready flat JSON, one row per company, optional per-role detail). Auth requirements, cost, board coverage, and error semantics are all covered, leaving nothing an agent needs to call this correctly.

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 schema already documents all eight parameters including mode enums and defaults. The description only restates the batch+domains pairing and velocity mode framing, adding no syntax or format detail beyond the schema; baseline 3 is appropriate.

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

Purpose5/5

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

States a specific verb (scan) and resource (company career pages), names the exact signal it extracts (GTM hiring activity, role count, signal strength), and even enumerates the supported ATS boards. There are no siblings to distinguish from, but the scope is unambiguous without opening the schema.

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

Usage Guidelines5/5

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

Gives two concrete use cases ('qualify an account before outreach' and 'on a schedule in velocity mode') and routes batch work explicitly ('Use mode batch with domains for a list in one call'). No alternatives exist to exclude, so this is as complete as the context allows.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 1 tool updatev1.0.7
    • Changedscan_gtm_hiring_signals6 fields changed
      • removedInput schema / additionalProperties
        Removed value: -false
      • addedInput schema / properties / domains
        Added value: +{
        +  "description": "List of bare domains to scan in one run when mode is \"batch\", for example [\"stripe.com\", \"figma.com\"]. One row per company. The run timeout is 1,800 seconds; a very large batch can still reach it.",
        +  "items": {
        +    "type": "string"
        +  },
        +  "type": "array"
        +}
      • addedInput schema / properties / include_role_details
        Added value: +{
        +  "description": "When true, include the full per-role detail array (title, department, location, url) in the output. Default: false.",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / mode
        Added value: +{
        +  "description": "Processing mode. \"single\" scores the domain. \"batch\" scores every entry in domains in one run, one row per company. \"velocity\" compares this run against previous_gtm_role_count and previous_run_date to report role changes since last time. Default: \"single\".",
        +  "enum": [
        +    "single",
        +    "batch",
        +    "velocity"
        +  ],
        +  "type": "string"
        +}
      • addedInput schema / properties / previous_gtm_role_count
        Added value: +{
        +  "description": "GTM role count from the previous run for this domain. Used in velocity mode to compute the delta, which is what makes a scheduled run cheap.",
        +  "maximum": 9007199254740991,
        +  "minimum": -9007199254740991,
        +  "type": "integer"
        +}
      • addedInput schema / properties / previous_run_date
        Added value: +{
        +  "description": "ISO date of the previous run for this domain, e.g. 2026-07-15. Used in velocity mode to report days between runs.",
        +  "type": "string"
        +}
  2. 1 tool updatev1.0.4
    • First observedscan_gtm_hiring_signals

TDQS

A4.5/5.0

Scored across 1 tool

Disambiguation5/5

With only one tool, there is no possibility of tool misselection or overlapping purposes. The single tool has a clearly defined scope and internal modes that do not create cross-tool ambiguity.

Naming Consistency5/5

The tool name 'scan_gtm_hiring_signals' follows a clear snake_case verb_noun pattern. With only one tool, consistency is inherently perfect.

Tool Count3/5

A single tool is borderline thin for the server's purpose. While it covers the core scanning operation, the rubric treats 1-2 tools as marginal, and there is no separate tool for configuration, result retrieval, or board management.

Completeness4/5

The tool covers scanning across multiple ATS platforms, batch mode, velocity mode, and outputs structured JSON. For the narrow purpose of detecting GTM hiring signals, the surface is largely complete, with only minor potential gaps like separate board listing or historical trend queries.

Maintenance

ActivityActive
ResponsivenessResponsive

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    A
    maintenance
    Scans job boards for keyword patterns that indicate buying intent, technology adoption, or team expansion. Returns structured signal data for outbound targeting.
    1
    256 npm
    2
    MIT
  • F
    license
    Not graded
    quality
    D
    maintenance
    Transforms job postings into qualified sales leads by searching for active jobs, enriching company data, and identifying decision-maker contact information.
    -
  • A
    license
    Not graded
    quality
    A
    maintenance
    Enables users to discover applicant tracking system job boards from company domains, list open roles, detect hiring changes over time, and generate hiring summaries across multiple ATS platforms.
    MIT