Daily decision maker roster from target accounts
Every weekday at 6am, refresh a sheet of VPs, Directors, and Heads at your target accounts so your reps wake up to a current contact list.
Build a code workflow that runs on a cron trigger every weekday at 6am local time and refreshes a decision maker roster in a Google Sheets spreadsheet.
Inputs the workflow should accept: the Google Sheets spreadsheet ID, the name of the source tab (default "Accounts") with two columns (company name in column A, website domain in column B), the name of the output tab (default "Decision Makers"), and a hard cap on employees per company (default 7, allowed range 5 to 10).
Step 1. Use Google Sheets Get Values to read the Accounts tab range (for example Accounts!A2:B). Each row gives a company name and a website domain.
Step 2. For each account row, call Coresignal Enrich Company by Website (Multi-source) with the website domain to resolve the company to a Coresignal company ID. If the enrich call returns no match, skip the row and continue.
Step 3. For each resolved company ID, call Coresignal Search Employees (ES DSL) (Multi-source) with a fixed Elasticsearch DSL query held verbatim in the node. The query is a bool with a must clause that term-filters on the company ID (active employment) and a should clause that regex-matches the current job title against the patterns VP, Director, Head, Chief, and Founder (case insensitive). Set items_per_page to the configured cap. Sort by score so the most relevant titles come first.
Step 4. Take the top N employee IDs from the search result (N = the configured cap, default 7). For each ID, call Coresignal Collect Employee by ID (Multi-source) to pull the full profile. Extract: full name, current job title, location, and the professional-network shorthand URL.
Step 5. Build one output row per person with these columns in this order: source_company, source_website, full_name, current_title, location, profile_url, fetched_on (today's date in ISO format), and dedupe_key. The dedupe_key is the source company slug concatenated with the profile shorthand (for example "acme-corp::jane-doe"). This is the stable key used to dedupe across reruns.
Step 6. Before appending, read the existing Decision Makers tab and collect the set of dedupe_keys already present. Drop any new row whose dedupe_key already exists, so reruns do not create duplicates. Then call Google Sheets Append Values on the Decision Makers tab with the remaining new rows.
Keep the pipeline deterministic. The ES DSL query template is fixed text in the workflow, not generated at runtime. The per-company cap is a hard ceiling so Coresignal credit spend scales predictably with the number of accounts in the sheet. Handle Coresignal 404 (company or employee not found) and 402 (insufficient credits) gracefully: log and skip the row, do not fail the whole run.
Use Google Sheets as the integration for both the read and the append, and Coresignal as the integration for company enrich, employee search, and employee collect.
What does this prompt do?
- Reads your list of target accounts from a Google Sheets tab so you only have to maintain one source of truth.
- Looks up each company in Coresignal and pulls the top decision makers, filtered to senior titles like VP, Director, Head, Chief, and Founder.
- Writes a fresh row per person to a Decision Makers tab with name, current title, location, profile link, source company, and the date we pulled them.
- Runs every weekday morning and dedupes cleanly across reruns so the sheet stays clean instead of ballooning.
What do I need to use this?
- A Google account with edit access to the spreadsheet that holds your target accounts.
- A Coresignal account with API access on a plan that includes company enrichment and employee search.
- A spreadsheet with an Accounts tab containing two columns: company name and website domain.
How can I customize it?
- Change the schedule. Move it to once a week, twice a day, or any time zone your team wakes up in.
- Tune the title filter. Add or remove keywords like Owner, Partner, or Manager to match how your buyers actually title themselves.
- Set the cap per company. Pull the top 5 names for a tight list, or stretch to 10 if you want broader coverage per account.
- Point it at a different tab. Use the same pattern for a competitor watch list, an event attendee list, or a churned account win-back list.
FAQs
How does the deduplication work across days?
Will this burn through my Coresignal credits?
Can I change which titles count as a decision maker?
What if a company is not in Coresignal?
Do I need a separate spreadsheet, or can I use one I already have?
Related templates
Every weekday at 10am, an AI voice agent phones your most overdue Xero accounts, logs what each customer promised, and reports back to finance in Slack.
See every Google Maps listing you manage on one screen, ranked worst first, with an audit button that writes the fix list for you.
Your team picks a template, finds the customer, checks they are safe to email, then sends it, with every send logged where the whole team can see it.
Every night at 2am, pull the contacts on your open and won deals and block them from your cold outreach before the next send goes out.
Build every text campaign in one screen: check who is actually reachable, see a realistic send plan, then watch delivery land row by row.
See every LinkedIn ad account's spend against the budget you committed to, catch overspend early, and rebalance without rebuilding a spreadsheet.
Wake up to a fresh decision maker list.
Connect Google Sheets and Coresignal once, and Geni rebuilds your target account contact list every weekday at 6am.