Weekly Coresignal champion job change tracker for Salesforce

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.

Agentic Task
SalesforceCoresignalSlack BotSalesNotifications & AlertsLead EnrichmentResearch & Monitoring
PromptCreate

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.

Additional information

What does this prompt do?
  • Scans your Salesforce champions and closed-won contacts every Monday morning and checks each one against the latest employer data from Coresignal.
  • Flags only real moves by comparing the current company and title in Coresignal against what Salesforce has stored, so still-in-seat champions are quietly skipped.
  • Updates the Salesforce contact with the new company and title, and stamps a detection timestamp so the same move never gets re-alerted next week.
  • Files a Salesforce task on the account owner with a short, warm re-engagement angle they can act on the same day.
  • Posts a single grouped Slack summary to your champion moves channel listing every move from the week, and stays silent when there is nothing to report.
What do I need to use this?
  • A Salesforce login with access to your contacts, opportunities, and tasks.
  • A Coresignal account so we can look up each champion's current employer and title.
  • A Slack workspace with a channel like #champion-moves for the weekly recap.
  • LinkedIn or professional profile URLs stored on your Salesforce contacts. Champions without a profile URL on file are skipped.
  • A way to identify your champions in Salesforce, either a champion flag on the contact or a link to a Closed Won opportunity.
How can I customize it?
  • Change the schedule. Monday at 7am ET is the default, but you can run this daily, twice a week, or on a Friday wrap-up instead.
  • Adjust the champion filter. Widen it to every contact on a Closed Won account, or narrow it to a specific product line, region, or account owner.
  • Pick your Slack destination. Send the recap to a shared #champion-moves channel, DM each rep with only their movers, or do both.
  • Tune the re-engagement task. Change the due date, priority, or the tone of the suggested angle the account owner sees.
  • Decide when to trust the fresh scrape. By default we only fall back to a real-time profile scrape when the cheaper multi-source lookup looks stale, so you can dial that up if you need every champion refreshed on every run.

Frequently asked questions

How does it know a champion actually changed jobs?
It compares the current company Coresignal returns for each champion's profile against the account name already stored on their Salesforce contact. If they match, the champion is still in seat and we skip them silently. If they do not match, we treat it as a probable job change and surface it.
Will my reps get spammed with the same move every Monday?
No. When we detect a move, we write a detection timestamp back onto the Salesforce contact and update the stored company and title. Next week's run reads that timestamp and skips anyone already flagged, so each move only surfaces once.
What happens to champions without a LinkedIn URL on file?
They are skipped. The first time you run this it is a good prompt to backfill profile URLs on your best champions so future runs can catch their moves.
Can I send the summary to a shared channel instead of blasting DMs?
Yes. The default is a single grouped post to a channel like #champion-moves so everyone sees the week's moves in one place. You can switch to per-owner DMs, or do both.
Will Coresignal burn through my credits every week?
The workflow uses the cheaper multi-source profile lookup first, and only falls back to a real-time scrape when a profile looks stale or missing. You can also narrow the champion filter so it only checks your top accounts.

Never miss a champion moving to a new company again.

Connect Salesforce, Coresignal, and Slack once, and Geni runs this every Monday at 7am ET so you reach out during the warm window.