The Scenario
End of month. Your talent ops manager has been tracking referrals in a shared Excel workbook since January — 50 rows, each one a candidate ID, a job ID, a referrer email, and a source label. 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 workbook, find the next row, copy the candidate ID, search for it in Ashby, start over.
- Around row 18 you realize the dropdown does not have a "Referral" option — it is "Employee Referral" — and you have been setting it wrong for the last six records.
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 Excel workbook. 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.
Read the ReferralApps table — columns: CandidateID, JobID, ReferrerEmail, SourceName. Create one Ashby application per row. Write 'Created' or error into the Result column.
SheetXAI creates one application per row, in order. Each result — the new application ID, or an error message — goes into the Result column so you have a full audit trail.
What You Get
- Result column fills with Ashby application IDs for every successfully created record.
- Rows that error (duplicate application, invalid candidate ID, missing job) show the exact error.
- Source attribution is set from the workbook — no manual dropdown selection.
- ReferrerEmail gets credited in Ashby's sourcing attribution.
What If the Data Is Not Quite Ready
Some candidate IDs in CandidateID do not exist in Ashby yet
For each row in the ReferralApps table, first check whether a candidate with the ID in CandidateID exists in Ashby. If not, write "Candidate not found" in Result and skip. For candidates that exist, create the application with the source in SourceName and write the application ID into Result.
Source labels in SourceName vary
Normalize all values in SourceName: treat "Employee Referral", "Referral", and "Ref" as the Ashby source "Employee Referral". Then create one Ashby application per row and write the application ID or error into Result.
The table has a mix of new and already-submitted referrals
For each row in the ReferralApps table, check the Result column. If Result already has an Ashby application ID, skip that row. For rows where Result is blank, create the Ashby application and write the result into Result.
Check jobs are open, normalize sources, and submit all in one pass
Check each JobID in the ReferralApps table against Ashby — if the job is closed, write "Job Closed" in Result and skip. For open jobs, normalize SourceName to "Employee Referral" if it contains the word "referral", create the application crediting ReferrerEmail, and write the application ID into Result.
Try It
Get the 7-day free trial of SheetXAI and open any Excel workbook 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.
