Back to Browse

Career Change Signal Engine MCP Server

Developer ToolsLow Risk10.0MCP RegistryLocal
Free

Server data from the Official MCP Registry

Watch your contacts and get back only job changes: leavers, landings, replacements, new hires.

About

Watch your contacts and get back only job changes: leavers, landings, replacements, new hires.

Security Report

10.0
Low Risk10.0Low Risk

Valid MCP server (2 strong, 3 medium validity signals). No known CVEs in dependencies. Package registry verified. Imported from the Official MCP Registry. Trust signals: trusted author (54/54 approved).

7 files analyzed · 1 issue found

Security scores are indicators to help you make informed decisions, not guarantees. Always review permissions before connecting any MCP server.

Permissions Required

This plugin requests these system permissions. Most are normal for its category.

file_system

Check that this permission is expected for this type of plugin.

HTTP Network Access

Connects to external APIs or services over the internet.

env_vars

Check that this permission is expected for this type of plugin.

Shell Command Execution

Runs commands on your machine. Be cautious — only use if you trust this plugin.

What You'll Need

Set these up before or after installing:

Apify API token from https://console.apify.com/account/integrationsRequired

Environment variable: APIFY_TOKEN

How to Install

Add this to your MCP configuration file:

{
  "mcpServers": {
    "com-mambabuilt-mcp-career-change-signal-engine": {
      "env": {
        "APIFY_TOKEN": "your-apify-token-here"
      },
      "args": [
        "-y",
        "@mambalabsdev/mcp-career-change-signal-engine"
      ],
      "command": "npx"
    }
  }
}

Documentation

View on GitHub

From the project's GitHub README.

Career Change Signal Engine MCP Server

Smithery Glama score MCP Registry npm version npm downloads license mcpservers.org

An MCP server for the Mamba Labs Career Change Signal Engine actor on Apify. Career Change Signal Engine reads the people on your watch list and returns only what changed since you last checked: who left, who landed where, who replaced them, and who started after a role closed. Every row says how the person was matched, which source answered, and how old that source is.

What's Inside

What it does

Read a watch list of contacts and return only what changed since the last run: who left, who landed where, who replaced them, and who started after a role closed. Each row carries evidence, a source date, a segment, a first line draft, and Slack, HubSpot, HeyReach, and Instantly payloads. Pass people (required) and, optionally, replies, bounces, posting changes, suppression, and your own provider keys in providerKeys; it never fetches LinkedIn and holds no key of its own. State is kept per watch_list_id. A run that does not succeed is returned as an error with its run ID. Requires an APIFY_TOKEN and consumes Apify credits per call.

All of the work runs on Apify. This package is a thin client that starts the actor run, waits for it, and hands back the dataset rows.

Quick start

You need Node.js 18 or newer and an Apify account with an API token.

Add this to your Claude Desktop config (claude_desktop_config.json), Cursor, or any MCP client:

{
  "mcpServers": {
    "mamba-career-change-signal-engine": {
      "command": "npx",
      "args": [
        "-y",
        "@mambalabsdev/mcp-career-change-signal-engine"
      ],
      "env": {
        "APIFY_TOKEN": "your-apify-token"
      }
    }
  }
}

Restart the client. The watch_career_changes tool appears.

Prerequisites

Example prompts

  • "Check my 50 past champions and tell me who left and where they landed."
  • "Run my watch list and draft a first line for each person who changed jobs."

Tool

watch_career_changes. One tool. Example arguments:

{
  "people": [
    {
      "person_name": "Jane Doe",
      "company_domain": "example.com",
      "company_name": "Example Inc",
      "title": "Head of Content",
      "external_id": "example-1"
    }
  ],
  "watch_list_id": "default"
}

Inputs

Every buyer facing input of the live actor, unchanged. Omitted inputs take the actor's own defaults.

InputTypeRequiredDescription
peoplearrayyesYour watch list, one object per person: person_name, profile_url (optional), company_domain, company_name, title, work_email, relationship (prospect, mgl, deal_contact, customer_champion), external_id, crm_id, deal_id, known_history (a HeyReach copy, a Proofed LinkedIn reader row, or generic roles), last_reading (with state_source caller). The engine reads only these people. At most max_people_per_run per run.
watch_list_idstringnoNames the list. State is kept per watch list id when state_source is actor.
state_sourcestringnoactor: the engine keeps state between runs in a named store. caller: you send last_reading per person and keep state yourself.
read_modestringnostored_first: your known_history first, then your keys. live_only: ignore known_history. stored_only: only known_history, no key calls.
first_run_modestringnoreport: the first run returns every change it finds. baseline: the first run stores state and returns nothing, charging only contact_checked.
max_people_per_runintegernoA list longer than this fails the run before any read or charge. Default 150, at most 1,000.
providerKeysobjectnoYour own keys: serper or serpapi (web search), prospeo, bounceban (verifier), findymail, exa. Never written to state, output, logs, or the webhook. Your own key, sent as a run input; never stored by the actor.
linkedin_reader_dataset_idstringnoOptional: the dataset id of a Proofed LinkedIn reader run on the same Apify account. Rows join to people by profile URL.
repliesarraynoOptional reply texts: external_id or work_email or profile_url, text, received_at, channel, is_auto_reply. Text is classified and dropped; only its sha1 is kept.
bouncesarraynoOptional bounces: work_email, bounce_type, smtp_code, smtp_text, bounced_at.
posting_changesarraynoOptional Account Hiring Watch rows. A closed posting starts a new hire search at that company.
suppressionobjectnoemails, profile_urls, opted_out_emails, opted_out_profile_urls, company_domains, company_names. Suppressed people are dropped before the read and cost nothing.
icp_tiersobjectnoOptional map of company domain to tier, shown on landed rows. Never blocks a row.
featuresobjectnoSwitches: replacement, closed_posting, contact_data, first_line, icp, include_promotions. Defaults on except include_promotions.
sender_contextstringnoOptional topic phrase for the first line draft, for example: content production at scale.
max_replacement_candidatesintegernoCandidates proposed per leaver. A person confirms each.
max_spend_usdintegernoStops the run before a charge that would cross it.
sweep_interval_daysintegernoWith state_source actor, a person read within this many days is skipped.
concurrencyintegernoPeople read at once.
webhook_urlstringnoOptional: signed Standard Webhooks POST of up to 100 signal rows per request.
webhook_secretstringnoSigning secret; a whsec_ value is base64 decoded. Your own key, sent as a run input; never stored by the actor.

Pricing

Pay per event on Apify, billed to your Apify account. Prices in USD.

EventFree planBronzeSilverGold
contact_checked, per contact checked$0.02$0.019$0.018$0.017
signal_delivered, per change row delivered$0.068$0.0646$0.0612$0.0578
apify-actor-start, per run start$0.001$0.001$0.001$0.001

Your keys

The actor holds no provider key of its own. Every paid provider key is yours, passed as an input and stored by Apify as a secret input. Without a key, the actor skips that step and says so in the run.

Full actor documentation

apify.com/mambalabs/career-change-signal-engine

License

MIT. See LICENSE.

Reviews

No reviews yet

Be the first to review this server!