MCP TOOL
cubeshell.job_change.detectJob Change Check
Use when the user has a person's professional profile URL and the company they are expected to work for, and needs to know whether that person has moved on. Requires profile_url plus company_domain or company_name. Always returns a definite answer, changed or still employed, and every call is billed, including when no change is found. It does not find people, fetch full profiles (use cubeshell.person.profile), or monitor continuously. Each call is one point-in-time check.
i
A person plus the employer to check against
profile_url is always required. On top of it, send company_domain or company_name to say which employer the person is being checked against. Without a company there is nothing to compare the person's current role to, so the check has no question to answer.Request
Workspace identity comes from the authenticated MCP connection, not from the call arguments. There is no workspace field to set.
| Parameter | Type | Description |
|---|---|---|
request_idrequired | string | Stable idempotency key, 1 to 200 characters. Replaying the same request_id with the same input returns the original result without a second charge. |
quote_onlyrequired | false | Must be false. Quote-only preview is not available in this version. |
input.profile_urlrequired | string | Professional profile URL or profile username. Up to 500 characters. |
input.company_domain | string | Bare company domain such as example.com. Not a URL. Up to 253 characters. The employer the person is expected to be at. |
input.company_name | string | The expected employer by name, used when you have no domain. Up to 200 characters. |
max_microcredits | integer | Optional ceiling. If the authoritative price is higher, the call is rejected before anything is charged. |
tools/call
{
"name": "cubeshell.job_change.detect",
"arguments": {
"request_id": "job-change-2026-07-17-001",
"quote_only": false,
"input": {
"profile_url": "https://example.com/in/jane-doe",
"company_domain": "example.com"
}
}
}Result
| Parameter | Type | Description |
|---|---|---|
result.job_changed | boolean | True when the person has moved on from the expected employer. |
result.still_employed | boolean | True when the person is still at the expected employer. |
result.current_company | string | The employer the person is at now. |
result.current_title | string | The job title the person holds now. |
result.expected_company | string | The employer the check was made against. |
!
Every call is billed
This tool always reaches a definite answer. Either the person changed job or they did not, and both are settled outcomes. A still employed answer is a real result, not a miss, and it is charged like any other. There is no not_found status here and no unbilled outcome to hope for, so budget for a charge on every call rather than only on the ones that report a change.
Each call is one point-in-time check, not continuous monitoring. Nothing watches the person between calls. To track a list over time, call the tool again on your own schedule and expect to pay for each check.
Each call is one point-in-time check, not continuous monitoring. Nothing watches the person between calls. To track a list over time, call the tool again on your own schedule and expect to pay for each check.