Back to Ashby in Excel
SheetXAI logo
Ashby logo
Ashby · Excel Guide

Bulk Import Candidates Into Ashby From an Excel workbook

2026-05-14
5 min read

The Scenario

You are wrapping up a LinkedIn sourcing campaign. The export landed as a CSV — 200 rows, each one a potential backend engineer with name, email, LinkedIn URL, and current company. You opened it in Excel two hours ago. It's still sitting there.

Your outreach sequence goes live Monday. All 200 candidates need to exist as Ashby records before end of day Friday so your team can assign them to jobs and queue the first touchpoints.

The bad version:

  • Open Ashby, click "Add Candidate," type the name from row 1, paste the email, find the LinkedIn URL field, paste it, hit save.
  • Repeat for row 2. Then row 3. Somewhere around row 15 you realize you forgot to paste the current company for rows 6 through 12, so you go back.
  • By row 40 you are going so fast you are making typos, and you will not know which ones until outreach bounces.

The sourcing was the hard part. You are supposed to be thinking about pipeline strategy now — not spending three hours on data entry that a system should handle.

The Easy Way: One Prompt in SheetXAI

SheetXAI is an AI agent that lives inside your Excel workbook. It reads the data, understands the structure, and talks to Ashby through its built-in integration. You describe what you want and it does the work.

Read the SourcingBatch table and create one Ashby candidate per row using FirstName, LastName, Email, CurrentCompany, and LinkedInURL columns. Write the Ashby candidate ID into the CandidateID column.

SheetXAI reads the table, calls the Ashby API once per row, and writes the candidate ID back into CandidateID as it goes. Rows that error get the error text in CandidateID so you know exactly what failed.

What You Get

  • CandidateID fills with Ashby candidate IDs — one per successfully created record.
  • Rows that fail show the error reason (usually a duplicate email or a malformed URL), not a blank.
  • Your coordinator can see at a glance which rows went through and which need a fix.
  • No Ashby UI tab-switching required.

What If the Data Is Not Quite Ready

The email column has a mix of formats

Before creating Ashby candidates from the SourcingBatch table, check the Email column for any entries missing an @ sign or with a trailing space. Mark those rows "Invalid Email" in the Status column, then create Ashby candidates for all valid rows and write the candidate ID into CandidateID.

LinkedIn URLs are missing for some rows

Create Ashby candidates from the SourcingBatch table. For rows where LinkedInURL is blank, omit that field. Use FirstName, LastName, and Email for the record. Write the candidate ID or "Created — no LinkedIn" into CandidateID.

The data spans two worksheets — names on Sheet1, emails on Sheet2

Join the data from the Names table on Sheet1 (FirstName and LastName columns) and the Contacts table on Sheet2 (Email column, matched by row number), then create one Ashby candidate per paired row and write the candidate ID into the CandidateID column of Sheet1.

Clean, deduplicate, and import in one shot

Check the SourcingBatch table for duplicate values in the Email column and mark any second occurrence "Duplicate" in the Status column. For all remaining rows, normalize Email to lowercase, then create one Ashby candidate per row using FirstName, LastName, Email, and LinkedInURL, and write the candidate ID into CandidateID.

Try It

Get the 7-day free trial of SheetXAI and open any Excel workbook with a sourcing list — LinkedIn export, conference attendees, inbound form responses — and ask it to push the batch into Ashby. See also the spoke on exporting pipeline data, or return to the Ashby integration overview.

Stop memorizing formulas.
Tell your spreadsheet what to do.

Join 4,000+ professionals saving hours every week with SheetXAI.

Learn more