Job Board Keyword Signal Scanner GTM Eng Finance Clay-Ready
Pricing
from $42.50 / 1,000 results
Job Board Keyword Signal Scanner GTM Eng Finance Clay-Ready
Multi-category job board scanner. Pick GTM, Engineering, Finance, Ops, Executive, or custom keywords across Greenhouse, Lever, and Ashby. Returns one flat Clay-ready row per domain with matched role counts and category breakdowns. MCP-ready for Claude Desktop, Cursor, and AI agents.
Pricing
from $42.50 / 1,000 results
Rating
0.0
(0)
Developer
Actor stats
0
Bookmarked
2
Total users
1
Monthly active users
4 days ago
Last modified
Categories
Share
Job Board Keyword Signal Scanner
Actor 1 (GTM Hiring Signal Scraper) is scoped to GTM roles only. This actor does the same thing but lets you pick the category.
Choose GTM, Engineering, Finance, Operations, Executive, or pass your own keyword list. Same Greenhouse, Lever, and Ashby cascade. Same flat Clay-ready output. One row per domain.
What's Inside
- Ready-to-Run Examples
- What's New
- When to use this vs Actor 1
- Supported categories
- Input
- Output
- Clay Table Template
- Pricing
- Error Handling
- Known Limitations
- Issues and Feature Requests
- Use with MCP (AI Agents)
- Mamba Labs GTM Actor Fleet
Ready-to-Run Examples
Each example is a pre-configured version of this actor for a specific use case. Click any link to open it in the Apify Console and run it immediately.
| Example | What it does |
|---|---|
| New CFO Hire Detector: Finance Buying Signal | Scan a company job board for open finance and CFO roles, a budget-unlocked buying trigger. |
| Weekly Hiring Change Tracker for Outbound Timing | Re-scan weekly and fire only when new roles appear since the last run. |
| Find Companies Hiring Software Engineers | Detect open engineering roles, an R and D scale-up signal for dev-tools sellers. |
| Partnerships and Channel Role Scanner by Keyword | Surface open partnerships, alliances, and channel roles using custom keywords. |
| GTM and Engineering Hiring Scan in One Call | Scan for both GTM and engineering roles in a single call, a full-funnel expansion signal. |
Looking for a different configuration? Open the Input tab to build your own.
What's New
- Faster ATS detection. All five ATS checks (Greenhouse, Lever, Ashby, Workday, Rippling) now run concurrently instead of one after another, so detection latency is bounded by the slowest single platform rather than the sum of all five. Platform precedence is unchanged: the first non-empty result in declared order still wins, and each check keeps its own 10 second timeout so a slow platform cannot stall the rest.
- Free tier monthly cap. Free Apify-plan users get 25 results per calendar month (resets monthly). Paid Apify plans are unlimited. Upgrade.
- Pricing reduced. $0.05 per result, down from $0.10. No subscription, no contract.
- Clay table template available. Pre-built table with enrichment column and 16 formula columns. Open the template
- Workday and Rippling support. Both added to the ATS cascade. Enterprise targets that use Workday or Rippling are now detected. ats_platform now returns "workday" or "rippling" for these domains.
- Change detection. Pass previous_roles_detected from a prior run and get new_roles_detected, removed_roles_detected, and change_detected in the output. Turns a one-shot scrape into an outbound timing signal. Run on the same domain weekly and trigger outreach when new roles appear.
- Pre-indexed fallback. When the live cascade finds no ATS match, the actor falls back to a pre-indexed database covering 175k+ companies and 54 ATS platforms. enable_fallback defaults to true. Set to false for faster runs on large lists where you are confident about ATS coverage.
- Ashby date fix. most_recent_posting_date now populates correctly for Ashby domains. Previous limitation notice removed.
When to use this vs Actor 1
Use Actor 1 if you only need GTM hiring signals. It is purpose-built for that use case and runs at $0.05/result.
Use this actor if your Clay table targets a different ICP (engineering scale-up, finance hire, ops buildout) or if you want to combine multiple hiring categories in one call.
Supported categories
Pass one or more in the role_categories input field:
GTM: VP Sales, AE, SDR, RevOps, Head of Growth, CMO, CROEngineering: VP Engineering, CTO, Software Engineer, Staff Engineer, Engineering ManagerFinance: CFO, VP Finance, Controller, FP&A, Financial AnalystOperations: COO, VP Operations, Chief of Staff, Business Operations, Strategy and OperationsExecutive: CEO, President, Co-Founder, MD, General Manager, VP+Custom: pass your own keywords viacustom_keywordsfield
Input
| Field | Type | Required | Notes |
|---|---|---|---|
company_domain | String | Yes | Bare domain, e.g. stripe.com |
role_categories | Array | Yes | One or more categories from the list above. Defaults to GTM if empty. |
custom_keywords | Array | No | Required if Custom is in role_categories. Array of keyword strings. |
previous_roles_detected | String | No | Comma-separated matched roles from a prior run. Enables change detection output fields. |
previous_run_date | String | No | ISO date of prior run. Echoed to output for traceability. |
enable_fallback | Boolean | No | Default true. Set to false to skip the pre-indexed fallback layer. |
Example input:
{"company_domain":"stripe.com","role_categories":["GTM","Finance"]}
Custom keyword example:
{"company_domain":"stripe.com","role_categories":["Custom"],"custom_keywords":["Partnerships","Alliances","Channel"]}
Output
One flat row per domain. Every field is always present. Null over missing keys.
| Field | Type | Description |
|---|---|---|
company_domain | String | Echoed from input |
company_name | String | Derived from ATS data |
linkedin_company_url | String | If available from ATS |
hiring_signal | Boolean | True if any role matched in selected categories |
ats_platform | String | greenhouse / lever / ashby / workday / rippling / none |
matched_role_count | Integer | Roles matched across all selected categories |
matched_roles_detected | String | Comma-separated matched role titles |
top_matched_role | String | Highest-tier role found |
most_recent_posting_date | String | ISO date of most recent matched posting |
department_with_most_openings | String | Department with highest open role count |
total_open_roles | Integer | All open roles across all departments |
signal_strength | String | high / medium / low |
categories_searched | String | Comma-separated categories used, e.g. "GTM,Finance" |
roles_by_category | String | Comma-separated category:role pairs, e.g. "GTM:VP Sales,Finance:CFO" |
career_page_url | String | Direct URL to the career page found |
new_roles_detected | String | Roles appearing in current run but not in previous_roles_detected. Null if no prior run provided. |
removed_roles_detected | String | Roles in previous_roles_detected not found in current run. Null if no prior run provided. |
roles_added_count | Integer | Count of new roles detected. Null if no prior run provided. |
change_detected | Boolean | True if any new or removed roles found. Null if no prior run provided. |
previous_run_date | String | Echoed from input. Null if not provided. |
fallback_used | Boolean | True if pre-indexed fallback was called and returned data. |
fallback_source | String | "fantastic-jobs" if fallback used, null otherwise. |
run_date | String | ISO timestamp of run |
signal_strength logic:
- High: 2 or more Tier 1 roles, or 5 or more total matched roles, posted within 30 days
- Medium: 1 Tier 1 role, or 2 to 4 matched roles, posted within 90 days
- Low: Tier 3 roles only, or postings older than 90 days
Sample output:
{"company_domain":"stripe.com","company_name":"Stripe","linkedin_company_url":"https://www.linkedin.com/company/stripe","hiring_signal":true,"ats_platform":"greenhouse","matched_role_count":4,"matched_roles_detected":"VP Sales, Account Executive, CFO, Financial Analyst","top_matched_role":"VP Sales","most_recent_posting_date":"2026-04-10","department_with_most_openings":"Sales","total_open_roles":47,"signal_strength":"high","categories_searched":"GTM,Finance","roles_by_category":"GTM:VP Sales,GTM:Account Executive,Finance:CFO,Finance:Financial Analyst","career_page_url":"https://boards.greenhouse.io/stripe","run_date":"2026-04-14T20:00:00.000Z"}
Clay Table Template
A pre-built Clay table template is available with the enrichment column, formula columns, and views ready to use.
The template includes:
- A Run Apify Actor enrichment column wired to mambalabs/job-board-keyword-signal-scanner
- 16 formula columns for hiring signal, matched roles, ATS platform, and department breakdown
- Default role_categories set to GTM and Engineering
Manual setup
- Add an enrichment column, choose Run Apify Actor
- Select Job Board Keyword Signal Scanner (
mambalabs/job-board-keyword-signal-scanner) - In the Input Data field, set:
Replace{"company_domain":"/company_domain_column/","role_categories":["GTM","Engineering"]}/company_domain_column/with a blue pill reference to your domain column using the/column picker. Therole_categoriesarray is optional and defaults to["GTM"]if omitted. Available categories: GTM, Engineering, Finance, Product, Operations, Design, HR, Legal. - Map the output fields to formula columns. The template above has all 16 formula columns pre-built for reference.
Key output fields for Clay formulas
Hiring Signal(boolean): whether matched roles were foundSignal Strength: "high", "medium", "low", or "none"Matched Role Count/Total Open Roles: numeric countsATS Platform: detected ATS (greenhouse, lever, ashby, etc.)Top Matched Role: highest-relevance matched role titleCategories Searched: which role categories were scannedDepartment With Most Openings: department with the highest role countCareer Page URL: direct link to the company careers pageMost Recent Posting Date: ISO timestamp of the newest listingMatched Roles Detected: comma-separated list of all matched role titlesRoles By Category: category-prefixed role list (e.g. "GTM:Account Executive")Is Priority: "Yes" if signal is high and matched count exceeds 5
Pricing
$0.05 per result. Pay per event, billed per domain processed. No subscription, no seat license, no contract.
| Volume | Cost |
|---|---|
| 100 domains | $5.00 |
| 1,000 domains | $50.00 |
| 10,000 domains | $500.00 |
Apify subscription tier discounts apply automatically:
| Tier | Discount | Per result | Per 1K results |
|---|---|---|---|
| Free (no plan) | 0% | $0.05 | $50.00 |
| Starter (Bronze) | ~5% | $0.0475 | $47.50 |
| Scale (Silver) | ~10% | $0.045 | $45.00 |
| Business (Gold) | ~15% | $0.0425 | $42.50 |
We recently reduced pricing across the Mamba Labs actor suite to bring more value to GTM teams running enrichment at scale.
Free tier vs paid usage
| Plan | Limit |
|---|---|
| Free Apify plan | 25 results per calendar month (resets on the 1st) |
| Any paid Apify plan | Unlimited results, no cap |
Free-plan usage is counted cumulatively across all of your runs in a month, not per run, so every single-domain run draws from the same monthly allowance. Only a successful scan (an ATS platform was detected) counts against the allowance; a run that finds no ATS does not burn quota. How it behaves when you hit the limit:
- Within the monthly allowance: the domain is scanned normally.
- Already at the limit: the run exits immediately with no scraping, no result, and an upgrade message in the run status.
Upgrade for unlimited results.
If you only need GTM hiring signals, use GTM Hiring Signal Scraper at $0.05/result instead. This actor is for teams that want to scan across multiple role categories in a single call.
Error Handling
The actor is built to fail soft. A single ATS that errors, times out, or returns nothing never breaks the run, and every successful run emits exactly one flat row.
| Condition | Behavior | Output |
|---|---|---|
company_domain missing | Early exit before any scraping | Run exits with code 1, no result row |
| Free-tier monthly cap reached | Exits before scraping or any paid fallback call | Run exits with an upgrade message in run status, no result row |
| A single ATS check fails, times out (10s), or returns non-200 | Caught and treated as no match; the other four checks still run concurrently | That platform contributes zero jobs; precedence falls through to the next non-empty result |
| No ATS matches across all five platforms | Pre-indexed fallback (fantastic-jobs) is tried when enable_fallback is true | Row with ats_platform: "none" if fallback also finds nothing; fallback_used reflects whether fallback returned data |
| Fallback sub-call errors or times out | Caught and logged; run continues without it | Row with ats_platform: "none", fallback_used: false |
| No matching roles found for selected categories | Run completes normally | Row with hiring_signal: false, matched_role_count: 0, signal_strength reflecting the empty match |
A no-ATS or no-match result still emits a complete row and, on free plans, does not count against the monthly quota.
Known Limitations
- Workday and Rippling detection relies on career page scraping. Slug mismatches may cause false negatives on some Workday domains. Coverage is approximately 60-70% for Workday (same as Actor 1 v0.2.0).
- Tools loaded behind authenticated career portals will not be detected.
- The pre-indexed fallback may return slightly stale data (up to a few days old) compared to live scraping.
- No proxy layer by default. Heavy batch runs on the same ATS domain may get rate-limited. Contact support via the Issues tab if this becomes a pattern.
- Custom keywords are all treated as Tier 2 signals by default. Signal strength scoring reflects this.
Issues and Feature Requests
Found a bug or want to request a feature? Open an issue in the Issues tab above. Response time: typically within 48 hours.
Use with MCP (AI Agents)
This actor is callable as a tool over MCP (Model Context Protocol) by AI clients like Claude Desktop, Cursor, VS Code (GitHub Copilot), Windsurf, and any other MCP-compatible client. Apify hosts the MCP server at mcp.apify.com, so no custom server code is needed.
What this actor does in an MCP context
This is the multi-category, keyword-driven job board scanner in the Mamba Labs suite. Where Actor 1 (GTM Hiring Signal Scraper) is locked to GTM roles, this actor lets an agent pick any combination of GTM, Engineering, Finance, Operations, Executive, or a fully custom keyword list, then scans Greenhouse, Lever, Ashby, Workday, and Rippling. Each call returns one flat row per domain with matched roles, ATS platform, signal strength, and change-detection fields.
Example prompts an agent can run:
- "What engineering roles is stripe.com hiring for right now?"
- "Search anthropic.com's job board for finance and operations keywords and tell me the signal strength."
- "Scan databricks.com for the custom keywords 'Partnerships', 'Alliances', 'Channel' and return the top matched role."
Supported MCP clients
Claude Desktop, Cursor, VS Code (GitHub Copilot), Windsurf, and any MCP-compatible client.
Setup: Hosted server (recommended)
Add this entry to your MCP client config. The OAuth variant prompts you to authorize on first connect, so no token sits in your config file.
OAuth (recommended):
{"mcpServers":{"mamba-labs-job-board-scanner":{"url":"https://mcp.apify.com?tools=mambalabs/job-board-keyword-signal-scanner"}}}
Bearer token:
{"mcpServers":{"mamba-labs-job-board-scanner":{"url":"https://mcp.apify.com?tools=mambalabs/job-board-keyword-signal-scanner","headers":{"Authorization":"Bearer YOUR_APIFY_TOKEN"}}}}
Setup: Full Mamba Labs GTM Suite
Load all 6 Mamba Labs GTM actors as tools in a single MCP server entry.
OAuth:
{"mcpServers":{"mamba-labs-gtm-suite":{"url":"https://mcp.apify.com?tools=mambalabs/gtm-hiring-signal-scraper,mambalabs/gtm-tech-stack-signal-scraper,mambalabs/b2b-buying-signals-hiring-tech-stack-intent-for-clay,mambalabs/job-board-keyword-signal-scanner,mambalabs/domain-to-linkedin-url-resolver,mambalabs/icp-account-lead-scoring-fit-scorer-0-100-for-clay"}}}
Bearer token:
{"mcpServers":{"mamba-labs-gtm-suite":{"url":"https://mcp.apify.com?tools=mambalabs/gtm-hiring-signal-scraper,mambalabs/gtm-tech-stack-signal-scraper,mambalabs/b2b-buying-signals-hiring-tech-stack-intent-for-clay,mambalabs/job-board-keyword-signal-scanner,mambalabs/domain-to-linkedin-url-resolver,mambalabs/icp-account-lead-scoring-fit-scorer-0-100-for-clay","headers":{"Authorization":"Bearer YOUR_APIFY_TOKEN"}}}}
Setup: Local server (for development and testing)
npx @apify/actors-mcp-server --tools mambalabs/job-board-keyword-signal-scanner
Full suite:
npx @apify/actors-mcp-server --tools mambalabs/gtm-hiring-signal-scraper,mambalabs/gtm-tech-stack-signal-scraper,mambalabs/b2b-buying-signals-hiring-tech-stack-intent-for-clay,mambalabs/job-board-keyword-signal-scanner,mambalabs/domain-to-linkedin-url-resolver,mambalabs/icp-account-lead-scoring-fit-scorer-0-100-for-clay
Setup: npm wrapper package
This actor also ships as a standalone MCP server on npm. Install it globally:
npm install -g @mambalabsdev/mcp-job-board-keyword-signal-scanner
Then add it to your MCP client config:
{"mcpServers":{"mamba-job-board-scanner":{"command":"npx","args":["-y","@mambalabsdev/mcp-job-board-keyword-signal-scanner"],"env":{"APIFY_TOKEN":"YOUR_APIFY_TOKEN"}}}}
Prefer one install for the whole fleet? The Mamba Labs GTM Suite (https://www.npmjs.com/package/@mambalabsdev/mcp-gtm-suite) exposes eleven of these actors as tools in a single MCP server.
What the output looks like
Flat JSON, one row per domain processed, well under 2KB per result. Every field is always present (null when missing) so agents can rely on a stable shape. The fields an agent will use most:
hiring_signal(boolean): true if any role matched in the selected categoriessignal_strength(string): "high", "medium", or "low" based on tier and recencymatched_role_count(integer): total roles matched across all selected categoriestop_matched_role(string): the highest-tier matched role titleats_platform(string): greenhouse / lever / ashby / workday / rippling / nonecategories_searched(string): which role categories were scannedroles_by_category(string): category-prefixed role list, e.g. "GTM:VP Sales,Finance:CFO"most_recent_posting_date(string): ISO date of the newest matched postingcareer_page_url(string): direct link to the detected career page
Billing
MCP runs use the same pay-per-event pricing as direct API or Console runs. Each successful result costs $0.05.
Mamba Labs GTM Actor Fleet
| Actor | What it does | Price/result |
|---|---|---|
| GTM Hiring Signal Scraper | Detects GTM hiring from career pages (Greenhouse, Lever, Ashby) | $0.05 |
| GTM Tech Stack Signal Enrichment | Detects CRM, sequencer, and marketing automation from a public site | $0.015 |
| GTM Signals Aggregator | Combines hiring and tech signals into one composite GTM score | $0.09 |
| Job Board Keyword Signal Scanner | Scans 5 ATS platforms for roles in any category | $0.05 |
| Domain to LinkedIn URL Resolver | Resolves a domain or name to its LinkedIn URL with firmographics | $0.006 |
| ICP Fit Scorer | Scores a company against your ideal customer profile | $0.05 |
| Domain Deliverability Checker | Audits email deliverability: SPF, DKIM, DMARC, MX, health score | $0.005 |
| Company Firmographic Enricher | Enriches a domain into employee band, industry, HQ, revenue | $0.004 |
| Company Social Presence Mapper | Maps a domain to social URLs and follower counts | $0.015 |
| Company Identity Resolver | Resolves name, domain, or LinkedIn into one canonical identity | $0.007 |
| Company Change-Event Feed | Monitors a domain and returns only what changed since last run | $0.06 |
| Funding & Press Signal Scanner | Scans news and press for funding, exec moves, launches, M&A | $0.03 |
One-install option: the Mamba Labs GTM Suite MCP server exposes eleven of these actors as tools in a single package. Each actor also has its own MCP wrapper.
All actors: apify.com/mambalabs | Website: mambabuilt.com
Built by Mamba Labs.
