Job Board Keyword Signal Scanner avatar

Job Board Keyword Signal Scanner

Pricing

from $42.50 / 1,000 results

Go to Apify Store
Job Board Keyword Signal Scanner

Job Board Keyword Signal Scanner

Scan one company domain or a list of them for open roles in 12 role categories or your own keywords, across Greenhouse, Lever, Ashby, Workday, and Rippling. Returns one flat Clay-ready row per domain with matched role counts, plus the full job description of each matched role when you ask for it.

Pricing

from $42.50 / 1,000 results

Rating

0.0

(0)

Developer

Mamba Labs

Mamba Labs

Maintained by Community

Actor stats

0

Bookmarked

3

Total users

0

Monthly active users

20 hours ago

Last modified

Features

Limited permissions

Share

What's new (October 2026)

  • Pay and seniority per matched posting. Each object in matched_postings now carries pay_text, pay_min, pay_max, pay_currency, and pay_period where the board publishes pay (Ashby compensation, Greenhouse pay transparency ranges, Lever salary ranges), plus seniority from title rules (founder, c_level, vp, director, head, manager, lead, senior, entry, intern, or null when the title states no level). Comes with include_job_descriptions, which stays off by default.

No price change. Existing fields and saved inputs work as before.

🔑 What can Job Board Keyword Signal Scanner do?

Give it a company domain and a role category and it tells you whether that company is hiring for those roles right now, across five ATS platforms. One flat row per domain.

Pick from twelve role categories, combine several at once, or pass your own keyword list.

📦 What you get⚙️ Features and integrations
🎯 hiring_signal, one boolean to gate on
🗂️ Twelve role categories, or your own keywords
📊 roles_by_category and a signal_strength
🧾 34 flat fields, snake_case, one row per domain
📚 A list of domains in one run, plus full job descriptions on request
🔍 Five ATS platforms: Greenhouse, Lever, Ashby, Workday, Rippling
🗄️ Pre-indexed fallback when the live cascade misses
🔄 Change detection across runs
⬇️ Export to JSON, CSV, Excel, HTML or XML

Bought by teams whose buying signal is a specific kind of hire: an engineering scale-up, a first CFO, an ops buildout, or a GTM ramp.

🚫 If you only need GTM roles, use GTM Hiring Signal Scraper instead. It is purpose-built for that one category and costs the same per row. This actor exists for everything else, and for combining categories in one call.

💡 Why use Job Board Keyword Signal Scanner?

If you wantRead these fields
A hiring gate for any functionhiring_signal, signal_strength
How much they are hiringmatched_role_count, total_open_roles
Which function is growingroles_by_category, department_with_most_openings, top_matched_role
Recencymost_recent_posting_date
What changed since last runnew_roles_detected, removed_roles_detected, roles_added_count, change_detected
Whether the data is live or indexedfallback_used, fallback_source
Where to lookcareer_page_url, ats_platform

🗂️ The twelve categories

Pass one or more in role_categories:

CategoryCovers
GTMVP Sales, AE, SDR, RevOps, Head of Growth, CMO, CRO
EngineeringVP Engineering, CTO, Software Engineer, Staff Engineer, Engineering Manager
FinanceCFO, VP Finance, Controller, FP&A, Financial Analyst
OperationsCOO, VP Operations, Chief of Staff, Business Operations, Strategy and Operations
ExecutiveCEO, President, Co-Founder, MD, General Manager, VP and above
MarketingCMO, VP Marketing, Demand Gen, Product Marketing, Brand, Content, SEO
HRCHRO, Chief People Officer, People Ops, Talent Acquisition, HRBP, Recruiter
CustomerSuccessChief Customer Officer, VP CS, CSM, Account Manager, Renewals, Support
DataChief Data Officer, VP Data, Data Engineer, ML Engineer, Data Scientist, BI Analyst
ProductCPO, VP Product, Product Manager, Product Owner, Product Ops
LegalGeneral Counsel, Chief Legal Officer, Corporate Counsel, Compliance, Paralegal
DesignVP Design, Head of UX, Product Designer, UX Researcher, Brand Designer
CustomYour own list, via custom_keywords

Category names are matched case insensitively and separators are ignored, so customer_success, Customer Success and customerSuccess all reach the same category. sales resolves to GTM, people to HR, analytics to Data.

That is a fix, not a convenience. Until 2026-08-22 the lookup was an exact, case sensitive property read and anything that missed was skipped in silence, so a run asking for marketing matched no roles at all and reported no hiring signal for every company. Seven of the twelve categories above are also new on that date. categories_unresolved on every row now names anything you sent that still matches nothing, so a typo is visible rather than silent.

🗄️ The pre-indexed fallback

When the live cascade finds no ATS match, the actor falls back to a pre-indexed database covering over 175,000 companies and 54 ATS platforms. enable_fallback defaults to true.

fallback_used and fallback_source tell you which path produced the row, which matters because indexed data can be a few days behind live scraping. Set enable_fallback to false for faster runs on large lists where you are confident about ATS coverage.

📚 A list of domains in one run

Put many domains in domains instead of one in company_domain. Each domain returns its own row, in the order you sent them, and each row is one result at the same price as a single domain run. Duplicates are removed, and https://, www. and paths are stripped. company_domain still works on its own, and when you set both it is read first. max_domains (default 100, maximum 1,000) caps one run so it cannot run past the timeout.

previous_roles_detected describes one domain, so it applies only to a single domain run. On a list run it is ignored.

On a list run, the pre-indexed fallback runs for every domain the live cascade misses. That fallback is another Apify actor, and it bills your own Apify account per job item it returns, about $0.012 per item at Bronze, up to 10 items per domain, on top of this actor's price. Set enable_fallback to false on a large list to avoid that cost.

📄 Full job descriptions

Set include_job_descriptions to true and each row gets matched_postings: one object per matched role with posting_key, job_title, job_location, job_url, source_board, department, posted_at, job_description as plain text, pay (pay_text, pay_min, pay_max, pay_currency, pay_period), and seniority. The row count and the price do not change.

BoardWhere the description comes from
Greenhouse, Lever, AshbyOne extra read of the board per domain
WorkdayOne extra read per matched role, up to max_postings_per_domain
RipplingNo description read; job_description is null
Pre-indexed fallbackNo description read; job_description is null

Pay comes from the board's structured pay data only: the Ashby and Lever list reads already carry it, and Greenhouse needs one pay transparency read per matched role. Greenhouse ranges carry no period, so 1,000 or more reads as year and under 500 as hour. Workday, Rippling, and the fallback return null pay. seniority comes from title rules: "Account Manager" and similar job names stay null, and "SDR", "BDR", "Associate", and a trailing "I" read as entry.

Each description is capped at 20,000 characters. job_description_chars holds the length before the cap, and job_description_truncated says whether it was cut. A description that could not be read is null, never an empty string. max_postings_per_domain (default 25, maximum 100) caps the array; matched_postings_truncated is true when more roles matched, and matched_role_count still counts all of them. posting_key is a stable key for the posting, the same key Mamba Labs' other hiring actors compute for the same job.

▶️ Ready-to-run examples

ExampleWhat it does
Find Companies Hiring Software EngineersEngineering scale-up signal
New CFO Hire DetectorFinance leadership signal
Partnerships and Channel Role ScannerChannel buildout signal
GTM and Engineering Combined ScanTwo categories in one call
Weekly Hiring Change TrackerMomentum over time

📋 What data can Job Board Keyword Signal Scanner extract?

34 fields per domain.

FieldWhat it holds
hiring_signalThe boolean gate
matched_role_count, total_open_rolesMatches, and the whole board
matched_roles_detected, top_matched_roleWhich roles matched
roles_by_categoryBreakdown across the categories you searched
department_with_most_openingsWhere the hiring is concentrated
signal_strengthTriage band
most_recent_posting_dateFreshness
categories_searchedWhat you asked for, echoed back
ats_platform, career_page_urlWhich board answered, and where
company_nameCompany identity
new_roles_detected, removed_roles_detected, roles_added_count, change_detectedDelta since your last run
fallback_used, fallback_sourceWhether the row came from live scraping or the index
previous_run_date, run_dateRun bookkeeping

⚠️ Custom keywords are all treated as Tier 2 signals. signal_strength weights the built-in category keywords more heavily than anything you supply yourself, so a custom-keyword run will read lower on strength than an equivalent GTM run. Use matched_role_count rather than signal_strength when you are running your own keyword list.

⚠️ false and null mean different things on every row. false is a measurement: the actor looked and the answer was no. null is the absence of one: the actor could not look. When something it needed fails, the row comes back with degraded: true, a plain-language degradation_reason, and every field it could not measure set to null rather than to a confident false or 0. Filter on degraded before you trust a negative.

🛠️ How to find companies hiring for a role category

  1. Open the Input tab and put a bare domain in company_domain, or a list in domains.
  2. Set role_categories, one or several.
  3. For anything the categories do not cover, add custom_keywords.
  4. Click Start.
  5. Filter on hiring_signal, then read roles_by_category to see where the hiring sits.

🧪 Using it in Clay

Add an Apify enrichment column and map your domain column to company_domain. Every field is a top-level key.

Combine categories in one call rather than running the actor twice. roles_by_category keeps them separable in the output.

⏱️ Tracking change over time

Pass previous_roles_detected and previous_run_date from your stored prior-run columns, and the actor returns new_roles_detected, removed_roles_detected and change_detected. Filter on roles_added_count to find companies that just opened positions.

💵 How much does it cost to scan a job board?

You are charged once per domain scanned.

PlanPer domainPer 1,000 domains
Free$0.05$50.00
Bronze$0.0475$47.50
Silver$0.045$45.00
Gold$0.0425$42.50

There is also an Actor start event at $0.00005, charged once per run per GB of memory.

Free Apify plans get 60 results per calendar month, resetting on the 1st. Paid plans have no monthly cap.

🛑 Your spending limit is respected. Set a maximum cost per run in Apify, or max_charge_usd on the Input tab, and the run stops before it would go over, keeping every result already charged. Each row's billable_events_json lists the events that row was charged for.

💳 A domain that matches no ATS is still billed. The actor probed five platforms and, if enabled, the pre-indexed fallback as well, and a row saying so is a real answer. When the free-tier monthly cap is reached the run exits before any scraping or paid fallback call, with an upgrade message and no result row, so it never charges you for a run it did not do.

⌨️ Input

Everything is on the Input tab.

FieldTypeDefaultWhat it does
company_domainstringnoneBare company domain. Optional when domains is set.
domainsarraynoneA list of bare domains, one row each.
max_domainsinteger100The most domains one run reads, up to 1,000.
role_categoriesarray["GTM"]One or more of the twelve categories above, plus Custom. Case insensitive.
custom_keywordsarraynoneYour own role keywords.
previous_roles_detectedstringnonePrior run's roles, unlocks change detection.
previous_run_datestringnonePrior run's date.
enable_fallbackbooleantrueUse the pre-indexed database when the live cascade misses.
include_job_descriptionsbooleanfalseAdd matched_postings with each matched role's full job description.
max_postings_per_domaininteger25The most matched roles in matched_postings per domain, up to 100.
max_charge_usdnumbernoneOptional. The run stops before the next result that would take this run's charges over this amount, and keeps every result already charged. Leave empty to rely only on the maximum cost per run you set in Apify.

📤 Output

One flat row per domain, exportable as JSON, CSV, Excel, HTML or XML.

{
"company_domain": "example.com",
"company_name": "Example Inc",
"hiring_signal": true,
"ats_platform": "greenhouse",
"matched_role_count": 5,
"matched_roles_detected": ["Staff Engineer", "Engineering Manager"],
"top_matched_role": "VP Engineering",
"most_recent_posting_date": "2026-08-04",
"department_with_most_openings": "Engineering",
"total_open_roles": 18,
"signal_strength": "high",
"categories_searched": ["Engineering"],
"roles_by_category": {"Engineering": 5},
"career_page_url": "https://boards.greenhouse.io/example",
"new_roles_detected": ["Staff Engineer"],
"roles_added_count": 1,
"change_detected": true,
"fallback_used": false,
"fallback_source": null,
"run_date": "2026-06-18T16:18:12.670Z"
}

🧾 More fields on every row

FieldTypeWhat it holds
fallback_item_countintegerHow many job items the pre-indexed fallback returned for this domain before the domain assertion, or 0 when the fallback did not run.
fallback_items_droppedintegerHow many fallback items were discarded because they did not belong to the requested domain. Should be 0.
matched_postingsarrayNull unless include_job_descriptions is on. One object per matched role: posting_key, job_title, job_location, job_url, source_board, department, posted_at, job_description, job_description_chars, job_description_truncated, pay_text, pay_min, pay_max, pay_currency, pay_period, seniority.
matched_postings_countintegerNumber of objects in matched_postings. Null unless include_job_descriptions is on.
matched_postings_truncatedbooleanTrue when more roles matched than max_postings_per_domain allowed. Null unless include_job_descriptions is on.
total_open_roles_is_floorbooleanTrue when total_open_roles is a floor rather than a count, because the source returned a prefix of the board.
row_statusstringok, degraded, error, or notice (a notice row carries a message, not a result). Present on every row.
error_reasonstringWhy the row is degraded or an error, in plain words. Null on an ok row. Present on every row.
billable_events_jsonstringJSON list of the pricing events this row was charged for, for example [{"event":"apify-default-dataset-item","count":1}]. Lets you reconcile a run from the dataset alone. The once per run start event is not repeated on rows.

💡 Tips

  • Combine categories in one call. It costs one row either way and roles_by_category keeps them apart in the output.
  • Check fallback_used before treating a posting date as live. Indexed rows can lag by a few days.
  • Set enable_fallback to false on large lists where you already know your targets use a supported ATS. It is measurably faster.
  • Store matched_roles_detected and run_date each time. Change detection is free once you do.

⚠️ Known limits

Workday and Rippling detection relies on career page scraping, not a clean public API, so slug mismatches can cause false negatives on some Workday domains. Greenhouse, Lever and Ashby use public APIs and are more reliable.

Roles behind authenticated career portals are not visible.

The pre-indexed fallback can be a few days stale compared with live scraping. fallback_used tells you when a row came from it.

Custom keywords are all treated as Tier 2 signals, which lowers signal_strength relative to the built-in categories.

No proxy layer by default. Heavy batch runs against the same ATS domain may get rate limited. Say so on the Issues tab if it becomes a pattern.

A fallback failure is not a run failure. If the fallback sub-call errors or times out it is caught and logged, the run continues, and the row comes back with ats_platform: "none" and fallback_used: false.

📝 Changelog

  • 2026-10-28: added pay and seniority to each matched_postings object.
  • 2026-10-16: removed linkedin_company_url from the output. It was always null; this actor never reads LinkedIn. To get a company's LinkedIn page, use Domain to LinkedIn URL Resolver.

❓ FAQ

How is this different from GTM Hiring Signal Scraper?

That one is scoped to GTM roles only and is purpose-built for it. This one lets you pick the category, covers five ATS platforms instead of three, and can combine categories in one call.

What happens when no ATS matches?

The pre-indexed fallback is tried when enable_fallback is true. If that also finds nothing, the row comes back with ats_platform: "none".

Can I use my own keywords?

Yes, via custom_keywords. Note they are weighted as Tier 2 in signal_strength.

Do I need to run it twice for two categories?

No. Pass both in role_categories and read roles_by_category in the output.

Does it need a proxy or an API key?

Neither.

🧩 Want other GTM data?

Mamba Labs builds a fleet of enrichment actors that share one flat output convention:

ActorActor ID
Account Hiring WatchgRAZA5WBi1r6L0gy7
Agent Accessibility AuditoranxbRv0lKrpQ1pnua
Agent to Brokerage ResolverePRRGLxOGyaVHO4dI
AI Answer Visibility TrackerRJZvzKniYK4nswcMg
AI List Extractor for Any WebsiteD5hOdIez45M0NX5jD
AI Tooling DetectorEwkHhmqiuJgRoVEbE
Amazon Product, Price, and Stock TrackerMtJPZoyjJ3IeqTFyo
API Deprecation and Breaking Change MonitorpHsbS3xXUK8Jqutz5
App Store and Google Play Review MonitorMaCMEhGrbchxQZ92G
B2B Reddit Conversation MonitorSoDryzzsjmY3SsiyG
Bluesky Brand Presence MappereLpxzP4IuXznlFVND
Bluesky Posts ScraperKldSjS7wjoeZ7vQGm
Brand Sponsor FinderPPgK6xrgOmvL7Nrys
Bulk WHOIS and RDAP Domain Age LookupMTrkG5FLU6SjqLdJY
Business PDF Field ExtractorvM7JCk0CMAx5W0oJh
Career Change Signal EnginevX2Yga1a6wGaXaP14
Company Careers Page Jobs, 17 ATS BoardsizP0rfIgf5YaRZfIh
Company Change Event FeedoX44rS0fkEJ3rXLWe
Company Discovery List Builderjch0HdaZnpbMqlcGS
Company Firmographic EnricherYlUtLWjfPpqykmB8g
Company Funding RecordOFS4Mt1gyYNtGfUbE
Company Headcount EstimatoraHC4GROnNt6kfZe5r
Company Identity Resolverlr8fTRAmZCBZmuwwh
Company Role Email, Phone and Address Finder4mMncKaJykiq94grz
Company Social Presence Mapper4k6CCemkgBDz18m2h
Competitor Price, Stock, and Changelog MonitoryxdgCbUQ4PYQWwRNU
Contact Classifier0lGSeYJmniXhGANnO
Contractor License Search, CA, TX, WA, OR, LAWBYK3CPI2kdeq4bP1
CRM Contact Job Change CheckerL8UbEmMJC1XYPSZOb
Domain Deliverability Checker0tVgxI7A6o9jMlxmc
Domain to LinkedIn URL Resolver3HtnSaqPHOg1Qg5gx
Ecommerce Platform Profiler5G2NeYjBbQTjaTn9L
Ecommerce Store DiscoveryPeHu4sLyFvQHXUUrX
Email List Verifier, Bring Your Own KeyCzVJ4NlaCKk80xpgE
Event Presence IndexWLhMy8fMDgsxdYxv5
Eventbrite Events Scrapersgc6znyrbjOy5Yk9f
Expert Witness Finder, US and AustraliaLIpwlgfE3LaQBaXd4
Facebook Posts ScraperT6jxIeq4ua0SLXnqG
Funding and Press Signal ScannerFS13X6dhQVgX3XOM6
GDPR Cookie Banner and Consent CheckerTrKyOS0KBoGC35nbr
GitHub Followers and Following ExportSGNxDmFb9v3tRDaFI
GitHub Organization Signal ScannerahF8RRpv5mzPao5CN
Google Ads Transparency Center Scraper by Domain1eOwxhBVxzvOXAm4s
Google Maps Places ScraperSuvHCNJ7pIuw6gn54
Google Trends ScraperOeDzaACKmBYJXzHZk
GTM Hiring Signal ScraperD7O1SA2EqwHGsGr1P
GTM Signals AggregatorxKdRfnfFNkdMpFuNs
Healthcare Provider NPI EnricherMrgbHzcpDq3mOv9Df
ICP Fit ScorerW161DT8W4kW55dMFh
Influencer Change Monitord2VVgahNL6UmcLkhg
Influencer Lead List BuilderKnmByszcv135yM30G
Influencer Profile ScraperEqEnklDVMIcB1V499
Influencer Search Across TikTok, Instagram and YouTubetpkedmloIIWtXx6sg
Influencer Talent Agency LookupzCuX4Mgyg6JvXgGzd
Instagram Facebook Brand Presence MapperHXh65I0JBjPsunbY8
Integration and Marketplace Presence MapperV0guNuvM85Q61f2gj
Job Board Keyword Signal Scanner4DvqpvhMR74NLcDDY
Job Posting MonitorQCfICD9kOPiOdj5iI
Journalist and Media List BuildermAfizsZC8qRoR0ecS
Launch Directory List BuildercRq3bmvEZxZtioQ7U
Lead File Import CheckerRwlGVXTf46LqZdUgt
Legal Entity ResolverKHFyPCDIx7CyqULYm
Link in Bio Scraper and Newsletter DetectorOorucdheTIgu7RFzK
LinkedIn Company Page MapperzOPm6A9JEhUGcIdFW
LinkedIn Jobs FeedSH6N0d8cz46BhCC8B
LinkedIn Post TrackeroiGLNPuaf5BRaz9K5
Local Business Lead BuilderqMN97aoHhsAS5bznV
Local Rank and Map Pack Trackergv0kyHGDIg8XscclB
Lookalike Companies from Seed Domainse2O426WBAbLLQL4Z2
Manufacturer and Supplier FinderQcsdmd0lUfPzVkonh
MCP Server Change and Health MonitorIeqjWF9U0BdDQFY08
Media URL TranscriberSyfr7Ya3EsHgWfrB6
Meta Ad Library Ads by Company, Graph APIJ1GWlSXfSGU3u8Wng
Mobile Phone Waterfall6OOgPktf7RIa5XCOP
Multi Platform Social Posts and CommentsicFuHR1EzDvUcfCQ5
Netherlands Rental ListingssGKGsbwoX18lFb6dR
New Hire FindercKuc38p4nYHNF3IW8
Newly Registered Companies, UK, Norway, Finland, Franceg2WfZhWvCtc57g2Jo
News and Media Mention Monitorgol1PPUKrsIk4QLBd
News Site Article ArchiveNjcF3UD8791raFNHh
Newsletter Sponsor TrackerqSwpqxD1TiPZpLQHv
Open Tender and RFP FinderkPTGz6t6TFoUUyfaO
Outbound Stack Detectorv43UJC8r7qW7cBSTG
Page Finder and ExtractorTpurgcOZbVnknlaiC
Partner and Member Directory ExtractorZX0XJPPUvnFJxeC1a
People Finder & Email VerifierLEgloG7tWgQl4o6TD
Person LinkedIn URL ResolverssuyPV8LnEsL8qbnb
Person Social Footprint MapperjfQXa2zW9FHCJot9K
Personal Email to Company ResolverAefT5Ye6YNPFQwJBf
Pinterest Brand Presence Mapperd1HvjZfKhgvWsoEwn
Podcast Guest and Host Findero2MGSvgbSLeeXOsIo
Product Hunt Daily Launches with Maker DomainsO4VX63drWK9Y9x641
Property Owner Records0J7ovG1iaZpQD1P0T
Prospect Engineq9rT6v64nUJdPexOQ
Public Feature Board and Roadmap MonitorrcHF5gj5r2Vqnry35
Publishing Frequency TrackerTbLwaUUATdYb6wp4N
Recent Funding Rounds FeedKueVp9MOz7iOoAgDp
Reddit Brand Presence MapperpKQZmDaT70SEb54bZ
Reddit Search and Thread Scraper4Gsth5cP2Xt9V2xDN
Reporting Window FinderuINxR7a1IW8qUTRUX
Research Topic Institutions and AuthorsOH8ANqt7bCKbo72Gk
Semrush Domain Metrics3dqa0abJrpssHtrYL
Sequencer Event PollerS6s8Rjd61tGdrMRk4
Sequencer Lead Push0Jv27VeWM5tSZQs9x
Shopify App Store and Chrome Web Store ListingsgaY0BzkLyN77mD3wI
Site Crawler for Links and TableslLLJ6JxZ4XqN8ULz0
Substack Newsletter and Posts ScraperUEFsdwiPLmPNVy9xd
Team Page People Extractorj8a9zX0k4mNbvDbWK
Tech Stack Signal Detectorqyd7nNyqFPelQViBx
Tennis Match Datav3OX6zxXHZOf2yurO
Threads Posts by Keyword, Exact Match2OT8K8RiEEWtaj2MW
Ticketmaster Event PricesCrvPX4IwLXQX9bls1
TikTok Brand Presence Mapperfco8FvoJcSafbeyd1
Trustpilot Reputation Enricher3lIqfCt61j4hqE1xz
US and UK Contract Award Winners by CompanyzhEtllASykOcx9hJ8
US Import Records Buyer FinderVIMafpKF5ggOw0COU
VC and Accelerator Portfolio List BuilderchH8hrfuoqqolW06m
Website Accessibility Checker, WCAG 2.2 AAP3jBj3FRghKEhX52z
Website Phrase and Business Model ClassifierCBuZ9k7sRwBeiKiCS
Website Traffic Rank EstimatorGnOFUzlNVIoXgeJjH
Work Email WaterfallOT6xqTFThC0Rjf7Zj
Workplace Program DetectorLi6pPDhqbdzFz3h7G
X Brand Presence MapperoLOgadhHUkNAyDA3w
YouTube Channel and Video List ScrapertxaAjeBqgj5MStFE4
YouTube Channel Email FinderIDgKZcmeeuunUbccN
YouTube Channel from Company Domain6hSpD3kd2s2IQ4VSs
Zillow Listing DetailsyG4zM0Enfsw2NefJ1

Every actor in the suite takes a domain or a company and returns one flat row, so they stack in the same Clay table without reshaping anything.

🆘 Support

Found a bug or want a category extended? Open an issue on the Issues tab. Response time is typically within 48 hours.

ℹ️ Sourcing and legal. Roles come from the public job board APIs of Greenhouse, Lever and Ashby and from public career pages on Workday and Rippling, plus a pre-indexed job database when the live cascade finds nothing. No authenticated portal is accessed. The actor returns companies, role counts and role titles, not people. You are responsible for how you use the output.

Built by Mamba Labs.