Job Board Keyword Signal Scanner GTM Eng Finance Clay-Ready avatar

Job Board Keyword Signal Scanner GTM Eng Finance Clay-Ready

Pricing

from $100.00 / 1,000 results

Go to Apify Store
Job Board Keyword Signal Scanner GTM Eng Finance Clay-Ready

Job Board Keyword Signal Scanner GTM Eng Finance Clay-Ready

Scrapes Greenhouse, Lever, and Ashby for configurable role categories: GTM, Engineering, Finance, Ops, Executive, or Custom. Flat Clay-ready row per domain.

Pricing

from $100.00 / 1,000 results

Rating

0.0

(0)

Developer

Mamba Labs

Mamba Labs

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

0

Monthly active users

2 days ago

Last modified

Share

Job Board Keyword Signal Scanner

Version: 0.2.0

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 new in v0.2.0

  • 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.07/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, CRO
  • Engineering - VP Engineering, CTO, Software Engineer, Staff Engineer, Engineering Manager
  • Finance - CFO, VP Finance, Controller, FP&A, Financial Analyst
  • Operations - COO, VP Operations, Chief of Staff, Business Operations, Strategy and Operations
  • Executive - CEO, President, Co-Founder, MD, General Manager, VP+
  • Custom - pass your own keywords via custom_keywords field

Input

FieldTypeRequiredNotes
company_domainStringYesBare domain, e.g. stripe.com
role_categoriesArrayYesOne or more categories from the list above. Defaults to GTM if empty.
custom_keywordsArrayNoRequired if Custom is in role_categories. Array of keyword strings.
previous_roles_detectedStringNoComma-separated matched roles from a prior run. Enables change detection output fields.
previous_run_dateStringNoISO date of prior run. Echoed to output for traceability.
enable_fallbackBooleanNoDefault 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.

FieldTypeDescription
company_domainStringEchoed from input
company_nameStringDerived from ATS data
linkedin_company_urlStringIf available from ATS
hiring_signalBooleanTrue if any role matched in selected categories
ats_platformStringgreenhouse / lever / ashby / workday / rippling / none
matched_role_countIntegerRoles matched across all selected categories
matched_roles_detectedStringComma-separated matched role titles
top_matched_roleStringHighest-tier role found
most_recent_posting_dateStringISO date of most recent matched posting
department_with_most_openingsStringDepartment with highest open role count
total_open_rolesIntegerAll open roles across all departments
signal_strengthStringhigh / medium / low
categories_searchedStringComma-separated categories used, e.g. "GTM,Finance"
roles_by_categoryStringComma-separated category:role pairs, e.g. "GTM:VP Sales,Finance:CFO"
career_page_urlStringDirect URL to the career page found
new_roles_detectedStringRoles appearing in current run but not in previous_roles_detected. Null if no prior run provided.
removed_roles_detectedStringRoles in previous_roles_detected not found in current run. Null if no prior run provided.
roles_added_countIntegerCount of new roles detected. Null if no prior run provided.
change_detectedBooleanTrue if any new or removed roles found. Null if no prior run provided.
previous_run_dateStringEchoed from input. Null if not provided.
fallback_usedBooleanTrue if pre-indexed fallback was called and returned data.
fallback_sourceString"fantastic-jobs" if fallback used, null otherwise.
run_dateStringISO 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 integration

Add this actor as an enrichment column in any Clay table that has a domain column.

  1. Add column, select Apify, search for job-board-keyword-signal-scanner
  2. Map company_domain to your domain column
  3. Set role_categories to whichever categories match your ICP, e.g. ["Engineering"]
  4. Set a run condition: domain is not empty
  5. Map output fields to new columns: hiring_signal, signal_strength, matched_role_count, top_matched_role
  6. Use signal_strength as a filter column or ICP qualification gate

The output is a flat row with no nested objects. Every field maps directly to a Clay column with no transformation required.


Pricing

$0.10 per result. Pay per event, no subscription.

If you only need GTM hiring signals, use GTM Hiring Signal Scraper at $0.07/result instead.


GTM Hiring Signal Scraper - $0.07/result GTM-only hiring signals from Greenhouse, Lever, and Ashby. Use this if your ICP is purely GTM-focused.

GTM Tech Stack Signal Scraper - $0.07/result Detects CRM, sequencer, and GTM tooling from a domain. Returns flat booleans: uses_hubspot, uses_salesforce, crm_detected, seq_tool_detected.

GTM Signals Aggregator - $0.12/result Runs GTM Hiring Signal Scraper and GTM Tech Stack Signal Scraper in parallel and merges both into one Clay-ready row. Cheaper than running both separately ($0.14 combined vs $0.12 bundled).


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.

Built by Mamba Labs.