The Scenario
End of month. Your talent ops manager has been tracking referrals in a shared Excel sheet since January — 50 rows, each one a candidate ID, a job ID, a referrer email, and a source label of "Referral." Finance wants the referral bonus pipeline visible in Ashby before the monthly sync tomorrow morning.
None of those 50 applications exist in Ashby yet.
The bad version:
- Open Ashby, find the first candidate record by ID, navigate to their applications tab, click "Add Application," select the job from the dropdown, set the source to Referral, save.
- Go back to the sheet, find the next row, copy the candidate ID, search for it in Ashby, start over.
- Around row 18 you realize the dropdown doesn't have a "Referral" option — it's "Employee Referral" — and you've been setting it wrong for the last six records.
There's a real cost to getting this wrong. The referral bonus audit depends on source attribution being accurate. Fixing 18 records after the fact is not a quick job.
The Easy Way: One Prompt in SheetXAI
SheetXAI is an AI agent that lives inside your Google Sheet. It reads the data and talks to Ashby through a built-in integration. You write the instruction once and it works through all 50 rows.
For each row in this sheet, create an Ashby application linking the candidate ID in column A to the job ID in column B, setting the source to 'Referral' and crediting the user email in column C.
SheetXAI creates one application per row, in order. Each result — the new application ID, or an error message — goes into column D so you have a full audit trail of what happened.
What You Get
- Column D fills with Ashby application IDs for every successfully created record.
- Rows that error (duplicate application, invalid candidate ID, missing job) show the exact error so you know what to fix.
- Source attribution is set from the sheet — no manual dropdown selection.
- The referrer email in column C gets credited in Ashby's sourcing attribution.
What If the Data Is Not Quite Ready
Some candidate IDs in column A do not exist in Ashby yet
For each row in this sheet, first check whether a candidate with the ID in column A exists in Ashby. If not, write "Candidate not found" in column D and skip. For candidates that exist, create the application linking to the job ID in column B with source "Referral" and write the application ID into column D.
Source labels in column C vary — some say "Employee Referral," some say "Referral"
Normalize all values in column C: treat "Employee Referral", "Referral", and "Ref" as the Ashby source "Employee Referral". Then create one Ashby application per row using the normalized source and write the application ID into column D.
The sheet has a mix of new and already-submitted referrals
For each row in this sheet, check column D. If column D already has an Ashby application ID, skip that row. For rows where column D is blank, create the Ashby application using columns A, B, and C and write the result into column D.
Clean the list, validate jobs, and submit all in one pass
Check column B in this sheet — look up each job ID in Ashby and confirm the job is still open. Mark "Job Closed" in column D for any that are not. For rows with open jobs, create the Ashby application with source "Employee Referral" crediting the referrer in column C, and write the application ID into column D.
Combining the validation and the submission means you catch closed jobs before submitting — not after discovering orphaned applications in Ashby three weeks later.
Try It
Get the 7-day free trial of SheetXAI and open any Google Sheet tracking referrals, inbound leads, or sourcing batches, then ask it to push the applications into Ashby in one go. See also the spoke on bulk importing candidates, or return to the Ashby overview.
