Job Change Tracker avatar

Job Change Tracker

Pricing

from $21.25 / 1,000 person reads

Go to Apify Store
Job Change Tracker

Job Change Tracker

Checks whether your contacts still work where your CRM says. Returns current employer, title, start month, role history, and left, landed, or promoted status, with a namesake check and a source date on every row. Runs on your own data and your own search, Prospeo, and verifier keys.

Pricing

from $21.25 / 1,000 person reads

Rating

0.0

(0)

Developer

Mamba Labs

Mamba Labs

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

12 hours ago

Last modified

Share

Send the contacts in your CRM. Get one row back per person: where they work now, their title, when they started, their role history, and whether they left the company you know them at, landed somewhere new, or moved up inside the same company.

Every row says how the person was matched, which source the answer came from, and how old that source is.

What it does

For each person you send (a name plus the company your records place them at), the actor:

  1. Reads any role history you already hold, such as a stored copy from your outreach tool or your own CRM. This costs nothing extra.
  2. Finds the person's LinkedIn profile URL with your web search key when you did not send one. A namesake check accepts a profile only when the name matches and the history or the search result shows your company.
  3. Reads the search result line for that profile, which usually names the current title and company.
  4. Reads the role history with start and end months from Prospeo on your key.
  5. Checks the company's own team and about pages, and Google News, for free.
  6. Verifies the old work address with BounceBan on your key, only while the person still reads as at the company.

It then works out the status against the company you sent. Career Break and "Open to work" entries never count as a job. A move to a new employer is a new hire. A new role at the same employer, with the earlier role open or ended within 3 months, is a promotion.

The actor never opens linkedin.com and never calls another developer's actor. Paid lookups run on your own provider keys and bill your provider accounts.

What you get

FieldExample
employment_statuscurrent, between_roles, unknown
leaver_statusstill_at_company, left, unknown
landing_statuslanded, not_landed, not_applicable, unknown
current_company_name, current_titleAccuWeather, VP, AI Partnerships
start_month, start_precision, days_in_role2026-08, month, 74
move_type, move_type_reason, seniority_changenew_hire, different_company_name, same
previous_company_name, previous_title, left_monthDataminr, Sr. Director, 2026-07
role_historyarray of roles with company, title, start and end month
match_method, match_confidence, match_evidencename_search, high, ["name","company_domain"]
source, source_detail, source_date, source_age_daysbyod, heyreach, 2026-10-07, 7
evidence, sources_triedwhy the status was set, and what was tried
read_status, error_reasonok, or why there is no reading
billable_events_jsonthe events charged for this row
input_id, person_nameyour row ID and the name you sent, returned unchanged
input_company_domain, input_company_name, input_titlethe last known company and title you sent
profile_url, candidate_profile_urlsthe profile used as the identity, and every profile considered during the lookup
employment_confidence, leaver_confidencehigh, low, or null when unknown
current_company_domain, current_company_linkedin_urlthe current employer's domain and LinkedIn URL, when a source gives them
open_to_work, career_break, concurrent_open_rolesfalse, false, 0
role_countnumber of roles read, kept when includeRoleHistory is off
source_date_methodhow source_date was set
read_at, cache_hitwhen the row was read, and whether it came from the cache (never charged)

Every row carries the same 45 fields per person. Rows are flat and snake_case, so they load into Clay, a sheet, or a CRM as they are. Two dataset views come with every run: Overview and Evidence.

Input

One person:

{
"person_name": "Jane Doe",
"company_domain": "acme.io",
"company_name": "Acme",
"last_known_title": "Head of Growth",
"profile_url": "https://www.linkedin.com/in/janedoe",
"email": "jane@acme.io",
"input_id": "crm-48213",
"serperApiKey": "...",
"prospeoApiKey": "...",
"bouncebanApiKey": "..."
}

Many people go in people, each with the same keys. A person can carry known_history, a role history you already hold:

{ "source": "heyreach", "source_date": "2026-10-07", "experiences": "[{\"companyName\":\"Acme\",\"title\":\"Head of Growth\",\"start\":{\"year\":2021,\"month\":3},\"end\":{\"year\":2026,\"month\":7}}]" }

All inputs:

InputTypeDefaultWhat it does
person_namestringnoneFull name of the person to check
company_domainstringnoneDomain of the company your records place the person at
company_namestringnoneName of that company
last_known_titlestringnoneThe title your records hold, echoed as input_title
profile_urlstringnoneOptional LinkedIn profile URL, used as the identity and never opened
emailstringnoneOptional old work address, checked with BounceBan
company_linkedin_urlstringnoneOptional company LinkedIn URL, the strongest company match
locationstringnoneOptional, echoed for your records
input_idstringnoneOptional row ID, returned unchanged
known_historystring (JSON)noneOptional role history you already hold
peoplearray[]Many people at once, each with the keys above
serperApiKeystringnoneOptional Serper key for web search
serpApiKeystringnoneOptional SerpAPI key, used only when no Serper key is set
prospeoApiKeystringnoneOptional Prospeo key for role history with months
bouncebanApiKeystringnoneOptional BounceBan key for the old work address check
maxSourceAgeDaysstring30A history you send older than this is treated as lagging
checkCompanySitestringtrueFree check of up to 4 team and about pages
checkNewsstringtrueFree Google News check, evidence only
verifyOldEmailstringtrueWith a BounceBan key, one check per person still at the company
includeRoleHistorystringtruefalse keeps role_count and drops the role_history array
cacheTtlDaysstring7Reuse a reading from the last N days, uncharged; 0 turns it off
maxPeoplestring1000Stop after this many people
max_charge_usdstringnoneThe run stops before any row that would pass this amount

roles (with company_name, title, start_month, end_month) and a LinkedIn reader row (linkedin_reader) are read too. A history newer than maxSourceAgeDays (default 30) skips the Prospeo call for that person.

Keys and what each one costs you

KeyUsed forCalls per person
Serper or SerpAPIProfile lookup and the current role line1 with a profile URL, 1 to 3 without
ProspeoRole history with months0 or 1 (0 when your fresh history is used)
BounceBanOld work address check0 or 1, only when the person still reads as at the company

With no key at all, the actor still reads your own history, the company team pages, and Google News.

Pricing

Pay per event. You pay for results, plus a small start fee per run.

EventFires whenFreeBronzeSilverGold
person_readA person comes back with read_status ok0.025 USD0.02375 USD0.0225 USD0.02125 USD
profile_resolvedYou sent no profile URL and the run found and accepted one at high or medium match0.006 USD0.0057 USD0.0054 USD0.0051 USD
apify-actor-startOnce per run, per GB of memory (one at the 256 MB default)0.001 USD0.001 USD0.001 USD0.001 USD

Not charged: not found, ambiguous, error, and skipped rows; cache hits; and a person repeated in the same run. Set max_charge_usd and the run stops before any row that would pass it. On the free Apify plan the actor reads up to 60 people a month (1.50 USD of evaluation).

Limits

  • Your sources decide coverage. In a 60 person test (39 leavers, 21 still employed), keys alone caught 12 of 39 leavers with 0 false flags in 17; adding a fresh history of the buyer's own raised it to 28 of 39, still with 0 false flags. Prospeo lags for people who left, which is why a "still at company" answer from it carries low confidence.
  • The search result line is a summary, not a full profile. Start months come from your own history or Prospeo.
  • left_month needs a dated history. A leaver found only by the search line or the email check has no month.
  • Two profiles that both pass the namesake check return ambiguous and nothing is charged.

Pairs with

  • New Hire Finder: from a company, find who started a matching role.
  • Career Change Signal Engine: watches a contact list over time and delivers only the changes.

More from Mamba Labs

ActorActor ID
Account Hiring WatchgRAZA5WBi1r6L0gy7
Agent Accessibility AuditoranxbRv0lKrpQ1pnua
AI Tooling DetectorEwkHhmqiuJgRoVEbE
Bluesky Brand Presence MappereLpxzP4IuXznlFVND
Career Change Signal EnginevX2Yga1a6wGaXaP14
Company Change Event FeedoX44rS0fkEJ3rXLWe
Company Contact Details Extractor4mMncKaJykiq94grz
Company Discovery List Builderjch0HdaZnpbMqlcGS
Company Firmographic EnricherYlUtLWjfPpqykmB8g
Company Funding RecordOFS4Mt1gyYNtGfUbE
Company Identity Resolverlr8fTRAmZCBZmuwwh
Company Social Presence Mapper4k6CCemkgBDz18m2h
Contact Classifier0lGSeYJmniXhGANnO
Domain Deliverability Checker0tVgxI7A6o9jMlxmc
Domain to LinkedIn URL Resolver3HtnSaqPHOg1Qg5gx
Ecommerce Platform Profiler5G2NeYjBbQTjaTn9L
Event Presence IndexWLhMy8fMDgsxdYxv5
Expert Witness DirectoryLIpwlgfE3LaQBaXd4
Funding and Press Signal ScannerFS13X6dhQVgX3XOM6
GitHub Organization Signal ScannerahF8RRpv5mzPao5CN
Government Contract Award MonitorzhEtllASykOcx9hJ8
GTM Hiring Signal ScraperD7O1SA2EqwHGsGr1P
GTM Signals AggregatorxKdRfnfFNkdMpFuNs
ICP Fit ScorerW161DT8W4kW55dMFh
Influencer Change Monitord2VVgahNL6UmcLkhg
Influencer FindertpkedmloIIWtXx6sg
Influencer Lead List BuilderKnmByszcv135yM30G
Influencer Profile ScraperEqEnklDVMIcB1V499
Influencer Talent Agency LookupzCuX4Mgyg6JvXgGzd
Job Board Keyword Signal Scanner4DvqpvhMR74NLcDDY
Job Posting MonitorQCfICD9kOPiOdj5iI
Legal Entity ResolverKHFyPCDIx7CyqULYm
Link in Bio Scraper and Newsletter DetectorOorucdheTIgu7RFzK
LinkedIn Company Page MapperzOPm6A9JEhUGcIdFW
LinkedIn Post TrackeroiGLNPuaf5BRaz9K5
Meta Ad Library MonitorJ1GWlSXfSGU3u8Wng
Instagram Facebook Brand Presence MapperHXh65I0JBjPsunbY8
New Hire FindercKuc38p4nYHNF3IW8
Outbound Stack Detectorv43UJC8r7qW7cBSTG
Page Finder and ExtractorTpurgcOZbVnknlaiC
People Finder and Email VerifierLEgloG7tWgQl4o6TD
Pinterest Brand Presence Mapperd1HvjZfKhgvWsoEwn
Prospect Engineq9rT6v64nUJdPexOQ
Publishing Frequency TrackerTbLwaUUATdYb6wp4N
Reddit Brand Presence MapperpKQZmDaT70SEb54bZ
Reporting Window FinderuINxR7a1IW8qUTRUX
Sequencer Lead Push0Jv27VeWM5tSZQs9x
Team Page People Extractorj8a9zX0k4mNbvDbWK
Tech Stack Signal Detectorqyd7nNyqFPelQViBx
TikTok Brand Presence Mapperfco8FvoJcSafbeyd1
Trustpilot Reputation Enricher3lIqfCt61j4hqE1xz
Website Traffic Rank EstimatorGnOFUzlNVIoXgeJjH
Work Email WaterfallOT6xqTFThC0Rjf7Zj
Workplace Program DetectorLi6pPDhqbdzFz3h7G
X Brand Presence MapperoLOgadhHUkNAyDA3w
YouTube Channel Stats Extractor6hSpD3kd2s2IQ4VSs

Built by Mamba Labs.