Job Change Tracker — Contacts Who Moved to a New Company
Pricing
from $50.00 / 1,000 job changes
Job Change Tracker — Contacts Who Moved to a New Company
Your contacts (name + last-known company) in, job changes out: who moved, new company, title, evidence URL, new domain and a pattern-matched, MX-checked work e-mail. Confirmed by the company site or two sources; per-watch memory reports each move once. No login, dataset-only, MCP-ready.
Pricing
from $50.00 / 1,000 job changes
Rating
0.0
(0)
Developer
inovaflow
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
Your best-converting leads are the people who already bought from you — and every year a fifth of them change jobs. Job Change Tracker takes your contact list (name + the company you know them at) and tells you who moved, where and in what role, with the public evidence, the new company's domain and the most likely new work e-mail. No LinkedIn login, no cookies, no data-vendor subscription.
- Sales teams — champion tracking: a buyer who moves brings their budget and their vendor list to the new company.
- Customer success — know when the sponsor of an account leaves before renewal.
- Recruiters & investors — keep a watch list of operators and founders current.
- RevOps — clean CRM contacts whose company field is stale; get the new domain and e-mail pattern.
What does Job Change Tracker do?
For every contact it runs a public-profile search (the profile headline names the current employer), a press / company-site search when that points somewhere new (or nowhere), and reads the candidate company's own home / team / leadership pages. A move is confirmed only when the new company's site lists the person, or when two independent public sources agree; one source alone is reported as a possible move and never charged as a job change. Contacts still at their company come back as no-change, contacts the web knows nothing about as not-found — never a guess. Give the same watchId on every scheduled run and each move is reported once.
Why use this job change tracker?
- Confirmed, with evidence. Every
changed: truerow carries the URL that proves it (team page, announcement, profile headline) and a confidence score. - Priced per check, per confirmed move. $0.01 per contact checked, $0.05 only when a move is confirmed and only the first time. Possible moves, duplicates and unusable inputs are free.
- The new seat, ready to contact. Current company, title, domain, website, a pattern-matched e-mail verified down to the mail server (or the mailbox where SMTP is reachable), plus
whyNowandsellTohints. - No login. Public search results, announcements and company websites only. LinkedIn pages are never fetched.
- Runs on a schedule. Per-watch memory: known movers are skipped, unchanged contacts are re-checked, new moves are the delta.
- MCP-ready. Flat rows, stable
contactId,sources[],scrapedAt; call it from an AI agent, Zapier / Make / n8n, or the API.
What data does it extract?
| Field | Description |
|---|---|
fullName, firstName, lastName, contactId | The contact (id = hash of name + last-known company; stable across runs) |
previousCompany, previousTitle | What you knew (title from your input or from the sources) |
currentCompany, currentTitle | Where the person is now, as the sources state it |
changed | true only for a confirmed move |
status | confirmed-move · possible-move (one source) · no-change · not-found |
confidence | 0–100 (team page 92–97, two sources 80–85, one source 45–60, unchanged 65–90) |
currentDomain, currentWebsite | The new company's domain and website (verified page, not a guess) |
newEmail, emailPattern, emailConfidence, emailVerification, emailCandidates | Most likely new address (first.last@, flast@ …, the domain's own pattern when visible on its site) with mx-only / smtp-valid / smtp-catch-all verification |
movedAt, announcedAt, changeDetectedAt | Start date only when a source states it ("effective …"), the announcement date, when this run detected the move |
evidenceUrl, evidenceTitle, evidenceSnippet, signals[], signalCount, sources[] | The proof |
linkedinUrl | Public profile URL as the search engine shows it |
seniority, department, whyNow, sellTo[] | Outreach hints |
isNewSinceLastRun | With a watchId: whether this move is new to the watch |
searchesUsed, scrapedAt, error | Provenance |
How to track job changes for your contacts
- Open the Actor and click Try for free.
- Under Contacts to check paste your list — JSON objects (
{"name": "Jane Doe", "company": "Acme", "title": "VP Sales"}) or plain linesJane Doe, Acme, VP Sales. A title or LinkedIn URL helps with common names. - Leave Confirm on the new company's website and Guess the new work e-mail on. Set a Watch id if you will run the same list again.
- Click Start. About 10–15 seconds per contact; results stream into the Output tab.
- Export as CSV / Excel / JSON, or use the Job changes view for the outreach-ready columns.
Scheduling
Create a schedule with the same input and the same watchId. Every run re-checks the contacts who had not moved, skips the ones already reported as moved (not charged), and reports only new moves as isNewSinceLastRun: true.
How much does it cost?
Pay-per-event, no subscription: $0.01 per contact checked plus $0.05 per confirmed job change (first report only) and a small run-start fee. A 100-contact list with 20 confirmed moves ≈ $2. Compute and proxy usage is a small fraction of that (about $0.001–0.003 per contact).
Input
Only contacts is required. Example:
{"contacts": [{ "name": "Laura Zwahlen", "company": "NextRoll", "title": "Chief Revenue Officer" },{ "name": "Arnab Bose", "company": "Okta", "title": "Chief Product Officer" },{ "name": "Amy Hood", "company": "Microsoft", "title": "Chief Financial Officer" }],"onlyChanged": false,"findEmails": true,"verifyEmails": true,"confirmOnTeamPage": true,"watchId": "customers-q4"}
| Input | Default | Notes |
|---|---|---|
contacts | — | Objects with name, company (+ optional title, email, linkedinUrl) or Name, Company, Title lines |
onlyChanged | false | Deliver (and charge) only confirmed moves |
daysBack | 365 | Ignore announcements older than this |
confirmOnTeamPage | true | Read the candidate company's site (authoritative evidence) |
findEmails, verifyEmails | true | New e-mail guess + MX / SMTP verification |
watchId | — | Memory across runs; each move reported once |
maxContacts, maxSearchesPerContact, maxConcurrency | 5000 / 3 / 6 | Limits |
searchEngine | auto | Yahoo → Bing → Google SERP proxy |
proxyConfiguration | residential | Fallback when a site challenges the run's own connection |
Output sample
{"contactId": "0c2f3c1e9c7d4a1b","fullName": "Laura Zwahlen","previousCompany": "NextRoll","previousTitle": "Chief Revenue Officer","currentCompany": "Airship","currentTitle": "Chief Revenue Officer","currentDomain": "airship.com","changed": true,"status": "confirmed-move","confidence": 97,"movedAt": null,"announcedAt": "2026-06-23","changeDetectedAt": "2026-09-26T13:26:46.970Z","evidenceUrl": "https://www.airship.com/company/why-airship/","linkedinUrl": "https://www.linkedin.com/in/laura-zwahlen-2613514","newEmail": "laura.zwahlen@airship.com","emailPattern": "first.last","emailVerification": "mx-only","signals": ["profile-headline:linkedin.com → Airship (Chief Revenue Officer)","company-site:airship.com → Airship (Chief Revenue Officer)","team-page:airship.com → Airship (Chief Revenue Officer)"],"whyNow": "Laura Zwahlen moved from NextRoll to Airship as Chief Revenue Officer (3 months ago, announced 2026-06-23) — inside the first-90-days window when a new leader picks their tools.","sellTo": ["Laura Zwahlen at Airship (Chief Revenue Officer) — a champion in a new seat re-buys sales engagement, CRM/RevOps, data & enrichment", "Their successor at NextRoll — the seat they left is re-evaluating the same vendors"]}
The key-value store holds OUTPUT (run summary: checked, confirmed, possible, unchanged, not found, e-mails, search-engine stats, watch state) and CONTACTS.csv.
FAQ
How accurate is it? On a 70-contact benchmark (43 executives whose moves were announced in 2025–2026 press releases, 28 who stayed) confirmed moves were right 9 times out of 10 and about half of the real moves were confirmed; most of the rest came back as possible-move (one source) or not-found, never as a wrong "confirmed". See docs/DECISIONS.md §3.
Why is a move only "possible"? One public source named the new company (usually the profile headline) and neither an announcement nor the company's own site confirmed it yet. It is delivered for you to verify and is not charged as a job change.
Does it read LinkedIn? No page on linkedin.com is ever fetched. It reads what search engines show publicly about profiles (title and snippet), announcements and company websites.
Will a promotion inside the same company count as a move? No — changed stays false, currentTitle carries the new title.
Why is the e-mail "mx-only"? Outbound SMTP (port 25) is blocked on the platform, so addresses are verified down to the mail server; the pattern is the domain's own where it is visible on its site, otherwise the most common one.
Common names? Add title and/or linkedinUrl to the contact. A lone profile that neither mentions the last-known company nor matches the title nor agrees with an announcement is not trusted.