mcp-job-board-keyword-signal-scanner
You can scan a company's job board for open roles matching selected categories or custom keywords and get a flat JSON result for GTM/CRM/AI workflows.
Scan a company domain across Greenhouse, Lever, Ashby, Workday, and Rippling for matching roles.
Choose from 12 preset role categories (GTM, Engineering, Finance, Operations, Executive, Marketing, HR, CustomerSuccess, Data, Product, Legal, Design) or use Custom with your own keywords.
Optionally fall back to a pre-indexed job database if the live ATS scan finds nothing.
Track changes by passing previous matched roles and previous run date to see newly added or removed roles.
Get back matched role counts, titles per category, ATS platform, hiring signal, signal strength, top matched role, and posting/run dates.
Set an optional max_charge_usd spending cap (per README).
Requires an APIFY_TOKEN and consumes Apify credits; read-only and idempotent.
Scans Greenhouse job boards for open roles matching specified categories and custom keywords.
Job Board Keyword Signal Scanner MCP Server
An MCP server that scans a company's job board for the roles you care about. It wraps the Mamba Labs Job Board Keyword Signal Scanner actor on Apify and returns a Clay-ready flat JSON row to any MCP client.
What's Inside
Related MCP server: Job Lead Converter MCP
What it does
Give it a company domain and a set of role categories, and it scans Greenhouse, Lever, Ashby, Workday, and Rippling for matching open roles. Pick from GTM, Engineering, Finance, Operations, Executive, or pass your own custom keywords. You get back a flat row of matched role counts and titles per category, ready for Clay, a CRM, or an AI agent workflow. All of the scanning 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-job-board-scanner": {
"command": "npx",
"args": ["-y", "@mambalabsdev/mcp-job-board-keyword-signal-scanner"],
"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_job_board_keywords tool will be available.
Prerequisites
Node.js 18 or newer
An Apify account with an API token
Example prompts
"Is stripe.com hiring engineers? Scan their job board for Engineering roles."
"Check openai.com for GTM and Executive openings."
"Scan figma.com for Finance and Operations roles."
"Look for roles matching 'machine learning' and 'platform' at datadoghq.com using custom keywords."
Inputs
Every input the tool accepts, generated from the server's own tool list.
Input | Type | Required | Description |
| string | yes | Bare company domain without https:// and without a trailing slash. Example: stripe.com |
| array of | yes | One or more role categories to scan for. Twelve categories plus Custom, which is used together with custom_keywords. Matching on the actor side is case insensitive and ignores separators, so customer_success and Customer Success both reach CustomerSuccess, and sales resolves to GTM. |
| array of string | no | Keyword strings to match when Custom is included in role_categories. Required only if Custom is requested. |
| boolean | no | If true, falls back to a pre-indexed job database when the live ATS cascade finds nothing. |
| string | no | Comma-separated matched role titles from a previous run, used to compute newly added or removed roles. |
| string | no | ISO date of the previous run, e.g. 2026-03-15. Used for tracking changes over time. |
| number | no | Optional spending cap for this call, in USD. The actor stops before any charge that would take the run past this amount and keeps every row already charged. |
Output
The tool returns the actor's flat JSON row for the scanned company, including matched role counts and titles per requested category, the ATS platform detected, and optional change tracking. See the Apify Store page for the full output schema.
Example output
{
"company_domain": "figma.com",
"hiring_signal": true,
"ats_platform": "greenhouse",
"categories_searched": [
"Engineering"
],
"matched_role_count": 8,
"signal_strength": "high",
"top_matched_role": "Staff Engineer",
"most_recent_posting_date": "2026-05-27",
"run_date": "2026-05-28"
}Features
Configurable role categories: GTM, Engineering, Finance, Operations, Executive, Custom
User-defined keyword arrays for custom scanning
Per-category counts via roles_by_category, with category-level signal scoring
Same ATS cascade as the Hiring Signal Scraper
Pricing
You pay per event on Apify, billed to your own Apify account. Prices from the live pricing record, read 2026-10-16:
Event | Price per event (USD) | Fires when |
| $0.05 on the Free plan, down to $0.0425 on higher Apify plans | Single result in the default dataset. |
| $0.00005 | Charged when the Actor starts running. Number of events charged depends on Actor memory (one event per GB, minimum one event). |
The actor's Apify page carries the current prices. Running this server consumes Apify credits.
How each call runs
Each call starts the actor run, polls it until it finishes, then reads the dataset. The run is allowed 1,800 seconds. If the run is still going when this call stops waiting, the call returns the run id and a console link instead of a timeout, so the result is never lost.
Full actor documentation
This server is a thin client and holds no scanning logic. For the complete input and output reference, pricing, and run history, see the Apify Store page:
https://apify.com/mambalabs/job-board-keyword-signal-scanner
Mamba Labs GTM Suite
This server is one of 58 Mamba Labs MCP servers, each backed by a dedicated Apify actor and published under @mambalabsdev on npm. The ones closest to this server:
Actor | Immutable Actor ID |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
|
To get twenty one of them in one install, use @mambalabsdev/mcp-gtm-suite.
Built by Mamba Labs | npm | Apify Store
License
MIT
Built by Mamba Labs. https://apify.com/mambalabs
Available Tools
1 toolscan_job_board_keywordsScan Job Board KeywordsARead-onlyIdempotent
Scan a company's job board for roles in chosen categories across Greenhouse, Lever, Ashby, Workday, and Rippling. Pick from GTM, Engineering, Finance, Operations, Executive, or supply custom keywords. Returns a flat, Clay-ready JSON row of matched role counts and titles per category. Read-only; requires an APIFY_TOKEN and consumes Apify credits per call.
| Name | Required | Description | Default |
|---|---|---|---|
| company_domain | Yes | Bare company domain without https:// and without a trailing slash. Example: stripe.com | |
| custom_keywords | No | Keyword strings to match when Custom is included in role_categories. Required only if Custom is requested. | |
| enable_fallback | No | If true, falls back to a pre-indexed job database when the live ATS cascade finds nothing. | |
| role_categories | Yes | One or more role categories to scan for. Twelve categories plus Custom, which is used together with custom_keywords. Matching on the actor side is case insensitive and ignores separators, so customer_success and Customer Success both reach CustomerSuccess, and sales resolves to GTM. | |
| previous_run_date | No | ISO date of the previous run, e.g. 2026-03-15. Used for tracking changes over time. | |
| previous_roles_detected | No | Comma-separated matched role titles from a previous run, used to compute newly added or removed roles. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is covered. The description adds genuinely new operational context: an APIFY_TOKEN is required, calls consume Apify credits, and results are returned as a flat Clay-ready JSON row — cost and auth implications an agent cannot derive from annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences, front-loaded with the action and sources, followed by selection guidance and then cost/output notes. No filler; the only minor redundancy is re-listing categories that the schema enum already enumerates in full.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 value (matched role counts and titles per category as flat JSON). Combined with the auth and credit disclosure, an agent has enough to invoke it correctly; only edge behavior like rate limits or failure modes is left unstated.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so all six parameters are already documented, which sets the baseline at 3. The description restates the category concept and mentions custom keywords but does not explain company_domain formatting, the fallback flag, or the previous-run tracking parameters beyond what the schema already says.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (scan) plus resource (company job board) and names the five ATS sources covered (Greenhouse, Lever, Ashby, Workday, Rippling). It also declares the output shape, so an agent knows exactly what it gets back 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Tells the agent when this applies (scanning a company's board for roles in chosen categories) and how to select categories vs. custom keywords. It also surfaces the operational prerequisites (APIFY_TOKEN, Apify credit consumption). No exclusions or alternative tools are named, but none exist — there are no siblings.
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 tool update
v1.0.6- Changed
scan_job_board_keywords3 fields changed- removed
Input schema / additionalPropertiesRemoved value: -false - changed
Input schema / properties / role_categories / descriptionPrevious value: -"One or more role categories to scan for. Valid values: GTM, Engineering, Finance, Operations, Executive, Custom. Use Custom together with custom_keywords."New value: +"One or more role categories to scan for. Twelve categories plus Custom, which is used together with custom_keywords. Matching on the actor side is case insensitive and ignores separators, so customer_success and Customer Success both reach CustomerSuccess, and sales resolves to GTM." - added
Input schema / properties / role_categories / items / enumAdded value: +[ + "GTM", + "Engineering", + "Finance", + "Operations", + "Executive", + "Marketing", + "HR", + "CustomerSuccess", + "Data", + "Product", + "Legal", + "Design", + "Custom" +]
1 tool update
v1.0.3- First observed
scan_job_board_keywords
TDQS
Scored across 1 tool
There is only one tool, so there is no possibility of misselection or overlapping purpose. Its scope (scanning a company's job board for keyword matches across several ATS platforms) is stated clearly and unambiguously.
The single name 'scan_job_board_keywords' follows a clear verb_noun pattern in snake_case, which is readable and idiomatic. With only one tool there is no pattern to verify across the set, so it cannot be judged fully consistent.
A single tool is thin for a server, even though this one is substantive and well-scoped rather than trivial. Common adjacent needs (multi-company scans, listing supported boards, output shaping) would naturally live here, making one tool feel minimal.
The core read-only scanning operation is covered, including category selection and custom keywords, but there are notable gaps: no batch/multi-company scanning, no way to discover supported boards or categories programmatically, and no output configuration. Agents can still accomplish the primary task, but only one company per call and with fixed output.
Maintenance
Related MCP Connectors
Company hiring signals + open jobs from Greenhouse, Lever, Ashby boards, API + MCP. 20 free/day.
Open jobs and hiring signals for any company, from its public careers page or job board.
Search job postings, companies, and technology stacks across 10M+ companies.
Jobs from Greenhouse, Lever, Ashby, Workday, career pages, Google Jobs, SEEK, plus hiring signals.
Related MCP Servers
- AlicenseAqualityAmaintenanceDetects hiring intent signals by scanning job boards for specific companies. Returns structured role data for outbound sales targeting.1250 npm1MIT
- FlicenseNot gradedqualityDmaintenanceTransforms job postings into qualified sales leads by searching for active jobs, enriching company data, and identifying decision-maker contact information.-
- AlicenseAqualityAmaintenanceEnables monitoring of job postings by keyword, returning companies currently advertising those roles enriched with firmographics and LinkedIn URLs via Apify.1265 npmMIT
- AlicenseNot gradedqualityAmaintenanceEnables 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