Back to Recruitee in Google Sheets
SheetXAI logo
Recruitee logo
Recruitee · Google Sheets Guide

Bulk Import Sourced Candidates Into Recruitee From a Google Sheet

2026-05-14
5 min read

The Scenario

Your sourcing call wrapped up an hour ago. You have a Google Sheet with 50 software engineers — name in column A, email in column B, LinkedIn URL in column C, source channel in column D, initial notes in column E. All sourced in the last two weeks. All need to be in Recruitee as candidate profiles before the team starts outreach tomorrow morning.

The bad version:

  • Open Recruitee, click New Candidate, type the name, paste the email, paste the LinkedIn URL, type the source, paste the notes. Repeat.
  • Lose track of which rows you've entered and accidentally skip row 23.
  • Finish at 7 PM and still need to go back and add the notes you left blank because copy-pasting 50 records in sequence erodes your ability to read.

You were hired to evaluate candidates, not to be a data entry operator for 90 minutes. The sourcing list is ready. The Recruitee profiles are not. That gap shouldn't take this long to close.

The Easy Way: One Prompt in SheetXAI

SheetXAI is an AI agent that runs inside your Google Sheet and connects to Recruitee directly. It reads the sheet, processes all 50 rows, calls the Recruitee API to create each candidate profile, and writes the returned candidate IDs back into the sheet. You don't open Recruitee once.

For each row in my sheet (columns A through E: name, email, LinkedIn URL, source channel, notes), create a Recruitee candidate profile tagged Sourced-Q2 and write the returned candidate ID into column F

What You Get

  • One new Recruitee candidate profile per row, with all five fields mapped to the right fields in the record.
  • The Recruitee candidate ID written into column F for each row as confirmation.
  • Rows that fail — duplicate email, malformed LinkedIn URL — flagged in column F with the error message instead of an ID.
  • All 50 profiles available in Recruitee immediately for recruiter assignment and outreach.

What If the Data Is Not Quite Ready

Some LinkedIn URLs are missing the https:// prefix

For each row in my sheet, before creating the Recruitee candidate, check the LinkedIn URL in column C — if it starts with linkedin.com without a protocol prefix, prepend https:// before creating the profile, then write the candidate ID into column F

Two sheets of sourced candidates need to be combined first

Combine the rows in Sheet1 (columns A through E) and Sheet2 (columns A through E) into a single list, deduplicate by email address keeping the first occurrence, then create a Recruitee candidate profile for each unique row and write the candidate ID into column F of Sheet1

Source channel values are inconsistent — some say LinkedIn, some say LI, some are blank

For each row in my sheet, normalize the source channel in column D — map LI to LinkedIn, IN to Indeed, and leave blanks as Unknown — then create the Recruitee candidate profile using the normalized value and write the candidate ID into column F

Full cleanup, dedup, normalize, and create in one shot

Check column B for duplicate emails and remove duplicates keeping the first row; normalize the source channel in column D mapping LI to LinkedIn and IN to Indeed; prepend https:// to any LinkedIn URLs in column C that are missing a protocol; then create a Recruitee candidate profile for each remaining row using all five columns and write the candidate ID into column F

The pattern is to ask for both the data cleanup and the Recruitee write in one prompt — there is no need to clean the sheet separately before creating profiles.

Try It

Get the 7-day free trial of SheetXAI and open the Google Sheet where your sourced candidates live, then ask it to push all rows into Recruitee as profiles. You can also explore how to pull a full pipeline snapshot or export candidates by stage from the hub overview.

Stop memorizing formulas.
Tell your spreadsheet what to do.

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

Learn more