Weekly Coresignal champion job change tracker for Salesforce

By General Input

Every Monday at 7am ET, catch the champions who quietly switched jobs, update their Salesforce record, file a re-engagement task, and post one clean Slack recap.

Integrations

  • Salesforce
  • Coresignal
  • Slack Bot

Type

Agentic Task

Categories

  • Sales

Every Monday at 7am America/New_York, run a champion job change tracker across my Salesforce champions using Coresignal, update each moved contact in Salesforce, file a re-engagement task on their account owner, and post one grouped Slack recap for the week.

Trigger: a weekly cron, Mondays at 7am ET (America/New_York).

Step 1. Pull my champions from Salesforce. Use Salesforce Get Many Contacts with a SOQL query that returns Contact Id, FirstName, LastName, Title, AccountId, Account.Name, Account.OwnerId, the stored LinkedIn or professional profile URL, and my custom last_job_change_detected timestamp field. Filter to contacts flagged as a champion (either a Champion__c boolean, or Contact.AccountId in (SELECT AccountId FROM Opportunity WHERE StageName = 'Closed Won')). Only include contacts that have a profile URL on file. If the LinkedIn URL and last_job_change_detected field names are custom in my org, use those custom field API names.

Step 2. For each champion with a profile URL, call Coresignal Collect Employee by Shorthand Name (Multi-source) using the profile URL. Prefer this endpoint because it is cheaper and returns the merged, most current view across sources. Read back the current experience: current employer name, current employer LinkedIn or website domain when available, and current job title. If the multi-source record is missing, empty, or the last_updated on the profile is older than 60 days, fall back to Coresignal Scrape Employee Profile (Real-time) for that one profile to get a fresh scrape. Do not call the real-time scrape for every champion, only as a fallback, to conserve credits.

Step 3. Decide whether each champion actually changed jobs. Compare Coresignal's current employer to the Account.Name stored on their Salesforce contact. Prefer matching on company domain or LinkedIn company URL when either is available, and fall back to a fuzzy name match otherwise. If the enriched employer still matches the stored Account, skip the contact entirely. Also skip the contact if last_job_change_detected on the Salesforce contact is already set to a date after Coresignal's reported start date at the new company, because that move has already been surfaced in a prior run.

Step 4. For every contact confirmed as a job change, use Salesforce Update Contact to write back the new company (into a Current_Company__c text field, or whatever field my org uses to track the champion's employer), the new Title, and today's date as last_job_change_detected. This is the idempotency mechanism, so it must run before the Slack post.

Step 5. For every moved contact, use Salesforce Create Task assigned to the Account Owner (OwnerId = the champion's Account.OwnerId, WhoId = the Contact Id, WhatId = the AccountId). ActivityDate = 3 days from today. Priority = High. Status = Not Started. Subject = 'Champion job change: <Contact Name> now <Title> at <New Company>'. Description should include the old company (the stored Salesforce account), the new company, the new title, a link to the Salesforce contact, the profile URL, and a 1 to 2 sentence suggested re-engagement angle for the account executive. Keep the angle short and factual (former customer at new company, likely buyer, prior product context). Do not fabricate outreach copy, do not draft the actual email, and do not invent details about the champion's new role beyond what Coresignal returned.

Step 6. Post one grouped Slack summary. Use Slack Bot Send a Message to post to #champion-moves. The message should list every move detected this week as a single tidy summary: one line per champion with the champion's name, old company, new company, new title, and a link to the Salesforce contact record. Group by account owner so each rep can quickly find their people. If zero moves were detected this run, skip the Slack post entirely and end the workflow silently. Never post an empty 'no moves this week' message.

Rules to enforce. Only alert once per move by persisting last_job_change_detected on the Salesforce contact and reading it on the next run. Prefer the cheaper Coresignal multi-source lookup, and only call the real-time scrape as a fallback for stale or missing profiles. Never fabricate outreach copy beyond a 1 to 2 sentence angle for the rep. Never post a Slack recap when no moves were detected. Skip champions without a profile URL on file.

Related prompts

Explore more prompts
A brand asset library your marketing team actually searchesTurn Mailjet email clicks into ranked HubSpot follow-upsClean out the Looker dashboards and Looks nobody opensLiveKit live operations console for room moderationWake up dormant Keap leads with a researched reasonLiveChat coverage board for planning next week's shiftsPhone routing control panel for LiveKit voice agentsLinkedIn Ads budget pacing dashboard for every client accountGive your team Looker numbers without buying more seatsPause marketing emails to escalated customers, then restore them