New Hire Finder
Pricing
from $72.25 / 1,000 new hire founds
New Hire Finder
Find people who started a role at a company in the last few months. Give a company domain, target titles, and a lookback window. Get one flat row per new hire: name, profile URL, title, start month, prior role, move type, and source. Runs on your own Prospeo or search keys. No LinkedIn scraping.
Pricing
from $72.25 / 1,000 new hire founds
Rating
0.0
(0)
Developer
Mamba Labs
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
5 hours ago
Last modified
Categories
Share
Find the people who started a role at a company in the last few months. Give a company domain, the titles you sell to, and a lookback window. Get one flat row per person: name, profile URL, title, start month, prior role, move type (new hire or internal promotion), and the source that found them.
Use it for "welcome to your new role" outreach, to catch a new decision maker at a target account, or to tell a real new hire from an internal promotion before you write the first line. This actor never fetches linkedin.com. It runs free routes on every company and goes deeper on your own Prospeo, Serper, SerpApi, or Exa key.
Features
- Move type on every row.
new_hirewhen the person came from another employer,promotionwhen the previous role was at the same employer and still open or ended within 3 months,unknownwhen only a hire announcement is known. By default only new hires are returned and charged; addpromotionorunknowntomove_typesto get them too. - Start month, not a guess.
start_monthcomes from the work history of the role at your target company, at month precision.start_basissays whether the date is a role start or an announcement date. - Charged per new hire found, never per profile read. Summary rows and people outside your window, titles, or move types cost nothing.
- Your keys, your data. Prospeo, Serper, SerpApi, and Exa run on keys you pass as secret inputs and are billed to you by those vendors. You can also pass people you already hold, with role histories, and the same rules run on them with no provider call.
- Free routes first. Google News hire headlines, the company newsroom, and the company team pages run on every company with no key.
- One summary row per company that says what was searched, how many candidates were read, why they were dropped, and how many provider credits were used, so an empty result is labeled.
- Batch input, flat snake_case rows, ready for Clay, a CRM, or a sequencer.
How it finds people
- Your own people (
people): the window, title, company, and move rules run on the role histories you pass. - Prospeo (your key): people at the company domain whose current role started inside your window and whose title matches, each with a full work history. One Prospeo credit per page of up to 25 people.
- Web search (your Serper, SerpApi, or Exa key). With Serper or SerpApi, the first query finds public "joining Acme as Content Manager" announcement posts, which Google dates, so recent starters show up even before data providers index them. A second query (set
max_search_queries_per_companyto 2) finds profile results that name the company and a title; those carry no date and are dated with your Prospeo key only when Prospeo search could not run. Exa results carry work histories and need no enrichment. The actor reads the search results only and never opens the post or profile. - Google News and the company newsroom (free): hire headlines where the company is the subject ("Acme appoints Jane Doe as VP Marketing"). With a Prospeo key the person is dated from their work history; without one the row keeps the announcement month and move type
unknown. - Team pages (free): names and titles from the company's own team or leadership page, dated with your Prospeo key.
Input
| Field | Type | Default | Description |
|---|---|---|---|
company_domain | string | One company domain, for example zapier.com | |
company_domains | array | [] | A list of company domains; merged with company_domain |
company_name | string | Optional, single company runs only | |
target_titles | array | Title phrases, for example marketing, head of content. A title matches when it contains every word of a phrase as a whole word | |
seniority | array | [] | Optional: founder, c_level, vp, director, head, manager, other |
departments | array | [] | Optional: sales, marketing, engineering, finance, legal, people, operations, product, general |
exclude_titles | array | [] | Drop titles containing any of these phrases |
expand_title_synonyms | boolean | false | Also match a short synonym list |
lookback_months | string | "6" | 1 to 24 calendar months including this month |
move_types | array | ["new_hire"] | Any of new_hire, promotion, unknown |
include_year_only | boolean | false | Also return starts known only to the year that could fall in the window |
people | array | [] | Your own people: person_name, company_domain, optional profile_url, and roles (title, company_name, start YYYY-MM, end YYYY-MM or null) |
sources | array | all | buyer_data, prospeo, web_search, news, newsroom, team_pages |
prospeo_api_key | secret string | Your Prospeo key | |
web_search_provider | string | auto | auto, serper, serpapi, or exa |
serper_api_key | secret string | Your Serper key | |
serpapi_api_key | secret string | Your SerpApi key | |
exa_api_key | secret string | Your Exa key | |
max_people_per_company | string | "25" | 1 to 100 person rows per company, newest starts first |
max_search_queries_per_company | string | "1" | 1 to 4 web searches per company: announcement posts first, then profiles |
max_enrich_per_company | string | "5" | 0 to 25 Prospeo enrichments per company |
max_prospeo_pages_per_company | string | "1" | 1 to 4 Prospeo search pages per company |
max_charge_usd | number | Stop before any charge that would pass this amount | |
skip_cache | boolean | false | Search again within the 7 day cache |
Numbers are typed as text so Clay can send them.
Output
One row per person, plus one summary row per company. Every field is present on every row and null when absent.
| Field | Type | Example | Notes |
|---|---|---|---|
row_type | string | person | person or summary |
row_status | string | ok | ok, no_match, error, or capped |
company_domain | string | zapier.com | |
company_name | string | Zapier | |
person_name | string | Jane Doe | |
first_name, last_name | string | Jane, Doe | |
profile_url | string | https://www.linkedin.com/in/jane-doe | As a search index or provider returned it; never fetched |
current_title | string | AI Marketing Manager | The role that started inside the window |
current_company_name | string | Zapier | |
company_match | string | exact | exact, variant, or subsidiary_name |
start_month | string | 2026-07 | YYYY-MM |
start_year | integer | 2026 | |
start_precision | string | month | month or year |
start_basis | string | role_start | role_start or announcement_date |
months_in_role | integer | 3 | |
window_start_month, window_end_month | string | 2026-05, 2026-10 | |
window_match | string | inside | inside or possible |
move_type | string | new_hire | new_hire, promotion, or unknown |
move_type_reason | string | different_company_name | The rule that fired |
seniority_change | string | up | up, down, same, unknown |
prior_title, prior_company_name, prior_end_month | string | Content Engineer, Quo, 2026-04 | The role before |
seniority, department | string | manager, marketing | |
matched_target_title | string | marketing | |
location | string | Austin, Texas, United States | |
source | string | prospeo_search | Route that found the person |
history_source | string | prospeo | Where the work history came from |
source_url, source_date | string | Profile or article URL; article date | |
person_key | string | nh_3f1c0d6c2a9b8e7f6a5b | Stable across runs |
summary_status | string | ok | Summary rows: ok, no_match, no_provider_keys, key_rejected, credit_exhausted, provider_error, invalid_domain, free_tier_cap, max_charge_reached |
people_found, candidates_read, namesake_dropped, out_of_window_dropped, title_dropped, undated_dropped, move_type_dropped | integer | Summary rows | |
prospeo_credits_used, search_queries_used, enrich_calls_used | integer | Summary rows: what ran on your keys | |
sources_tried, sources_unreadable, provider_errors | string | Summary rows | |
cache_hit | boolean | false | A cached company is served free |
billable_events_json | string | [{"event":"new_hire_found","count":1}] | What this row charged |
No email or phone is returned. Add contact data downstream on your own keys.
Pricing
Pay per event. You pay for each person returned, and a small start fee per run.
| Event | Free plan | Bronze | Silver | Gold |
|---|---|---|---|---|
new_hire_found, per person returned | $0.085 | $0.08075 | $0.0765 | $0.07225 |
| Per 1,000 people | $85.00 | $80.75 | $76.50 | $72.25 |
apify-actor-start, per run | $0.001 | $0.001 | $0.001 | $0.001 |
- Summary rows, cache hits, and people dropped by your filters are never charged.
- Promotions and announcement only rows are charged only when you add them to
move_types. - Free plan: up to 17 people a month.
- The run stops at your maximum cost per run, and before any charge that would pass
max_charge_usd. Every row already charged stays in the dataset. - Prospeo, Serper, SerpApi, and Exa bill you directly for calls on your keys. The summary row counts them.
Usage examples
Apify Console or API
{"company_domains": ["zapier.com", "gusto.com"],"target_titles": ["marketing", "head of content"],"lookback_months": "6","move_types": ["new_hire"],"prospeo_api_key": "YOUR_PROSPEO_KEY","serper_api_key": "YOUR_SERPER_KEY"}
Clay
Add an "Apify: Run Actor" column with the actor ID cKuc38p4nYHNF3IW8, map your domain column to company_domain, and set target_titles and lookback_months. Each row returns the people found for that domain.
Your own data, no provider key
{"people": [{"person_name": "Ann Lee","company_domain": "acme.com","roles": [{ "title": "Head of Marketing", "company_name": "Acme", "start": "2026-08", "end": null },{ "title": "Marketing Lead", "company_name": "Globex", "start": "2020-01", "end": "2026-07" }]}],"target_titles": ["marketing"],"move_types": ["new_hire", "promotion"]}
MCP
An MCP server for this actor is planned under the @mambalabsdev npm scope after the Store listing goes live.
Error handling
| Failure | What happens | Where you see it |
|---|---|---|
| No provider key | Free routes and your own people only | summary_status: no_provider_keys |
| Key rejected | That provider stops for the rest of the run | summary_status: key_rejected, provider_errors |
| Credits spent | That provider stops for the rest of the run | summary_status: credit_exhausted |
| Provider error or rate limit | The company continues on the other routes | provider_errors, sources_unreadable |
| Newsroom or team page blocked | Skipped | sources_unreadable |
| Not a domain | One summary row | summary_status: invalid_domain |
| Nobody matched | One summary row with the drop counts | summary_status: no_match |
Limitations
- Without a Prospeo or Exa key, depth is limited to hire headlines, which name few people below the executive level, and headline rows carry the announcement month with move type
unknown. - Work histories come from provider indexes, which can lag a real start by months. In a 20 company test on 2026-10-14 the newest start month in Prospeo's data was 2026-05, so announcement rows (
start_basis: announcement_date) fill the recent months. - A provider record can still list a role the person has left. In the same test, 3 of 11 rows that could be checked against a public profile showed the person had already moved on.
- Provider data can hold a stale open role. A promotion is still detected when a role at the same employer ended within 3 months of the new start.
- Title matching uses whole words, so
marketingdoes not match "Head of Growth" unless you addgrowthor switch on synonyms. - This actor keeps no state between runs. Run it on a schedule and diff by
person_keyto track new starters. - No email or phone is returned.
More from Mamba Labs
| Actor | Actor ID |
|---|---|
| Agent Accessibility Auditor | anxbRv0lKrpQ1pnua |
| AI Tooling Detector | EwkHhmqiuJgRoVEbE |
| Bluesky Brand Presence Mapper | eLpxzP4IuXznlFVND |
| Company Change Event Feed | oX44rS0fkEJ3rXLWe |
| Company Contact Details Extractor | 4mMncKaJykiq94grz |
| Company Discovery List Builder | jch0HdaZnpbMqlcGS |
| Company Firmographic Enricher | YlUtLWjfPpqykmB8g |
| Company Funding Record | OFS4Mt1gyYNtGfUbE |
| Company Identity Resolver | lr8fTRAmZCBZmuwwh |
| Company Social Presence Mapper | 4k6CCemkgBDz18m2h |
| Contact Classifier | 0lGSeYJmniXhGANnO |
| Domain Deliverability Checker | 0tVgxI7A6o9jMlxmc |
| Domain to LinkedIn URL Resolver | 3HtnSaqPHOg1Qg5gx |
| Ecommerce Platform Profiler | 5G2NeYjBbQTjaTn9L |
| Event Presence Index | WLhMy8fMDgsxdYxv5 |
| Expert Witness Directory | LIpwlgfE3LaQBaXd4 |
| Funding and Press Signal Scanner | FS13X6dhQVgX3XOM6 |
| GitHub Organization Signal Scanner | ahF8RRpv5mzPao5CN |
| Government Contract Award Monitor | zhEtllASykOcx9hJ8 |
| GTM Hiring Signal Scraper | D7O1SA2EqwHGsGr1P |
| GTM Signals Aggregator | xKdRfnfFNkdMpFuNs |
| ICP Fit Scorer | W161DT8W4kW55dMFh |
| Influencer Change Monitor | d2VVgahNL6UmcLkhg |
| Influencer Finder | tpkedmloIIWtXx6sg |
| Influencer Lead List Builder | KnmByszcv135yM30G |
| Influencer Profile Scraper | EqEnklDVMIcB1V499 |
| Influencer Talent Agency Lookup | zCuX4Mgyg6JvXgGzd |
| Job Board Keyword Signal Scanner | 4DvqpvhMR74NLcDDY |
| Job Posting Monitor | QCfICD9kOPiOdj5iI |
| Legal Entity Resolver | KHFyPCDIx7CyqULYm |
| Link in Bio Scraper and Newsletter Detector | OorucdheTIgu7RFzK |
| LinkedIn Company Page Mapper | zOPm6A9JEhUGcIdFW |
| LinkedIn Post Tracker | oiGLNPuaf5BRaz9K5 |
| Meta Ad Library Monitor | J1GWlSXfSGU3u8Wng |
| Meta Brand Presence Mapper | HXh65I0JBjPsunbY8 |
| New Hire Finder | cKuc38p4nYHNF3IW8 |
| Outbound Stack Detector | v43UJC8r7qW7cBSTG |
| Page Finder and Extractor | TpurgcOZbVnknlaiC |
| People Finder and Email Verifier | LEgloG7tWgQl4o6TD |
| Pinterest Brand Presence Mapper | d1HvjZfKhgvWsoEwn |
| Prospect Engine | q9rT6v64nUJdPexOQ |
| Publishing Frequency Tracker | TbLwaUUATdYb6wp4N |
| Reddit Brand Presence Mapper | pKQZmDaT70SEb54bZ |
| Reporting Window Finder | uINxR7a1IW8qUTRUX |
| Sequencer Lead Push | 0Jv27VeWM5tSZQs9x |
| Team Page People Extractor | j8a9zX0k4mNbvDbWK |
| Tech Stack Signal Detector | qyd7nNyqFPelQViBx |
| TikTok Brand Presence Mapper | fco8FvoJcSafbeyd1 |
| Trustpilot Reputation Enricher | 3lIqfCt61j4hqE1xz |
| Website Traffic Rank Estimator | GnOFUzlNVIoXgeJjH |
| Work Email Waterfall | OT6xqTFThC0Rjf7Zj |
| Workplace Program Detector | Li6pPDhqbdzFz3h7G |
| X Brand Presence Mapper | oLOgadhHUkNAyDA3w |
| YouTube Channel Stats Extractor | 6hSpD3kd2s2IQ4VSs |
Shared package: @mambalabsdev/gtm-core.
Built by Mamba Labs