Skip to content

Building a Smart Sourcing Agent in Google Sheets: A Step-by-Step Guide

Today, recruiters work across multiple tools: LinkedIn, ATSs, CRMs, email, and more. But what if we could bring part of that logic into the spreadsheet?

This guide shows how I built a fully functional sourcing assistant inside Google Sheets using Apps Script, a tool that:

  • Filter profiles by timing in their current role
  • Filters profiles by tech skills or keywords
  • Highlights sensitive companies (like clients or blacklist)
  • Count outreach activity
  • Helps recruiters move faster with zero extra software

🔍 Step 1: Defining the Goal

The goal was to create a “smart filtering assistant” inside Sheets that helps:

  • Analyze candidate lists fast
  • Prioritize whom to contact.
  • Avoid risky outreach (e.g., to clients)
  • Work visually: with colors, menus, filters

I chose Google Sheets because it’s flexible, familiar, and scriptable.

🧱 Step 2: Setting Up the Sheet

The main sheet includes these columns:

  • Full Name
  • Current Role Dates
  • Profile Link
  • Current CompanyPrevious Company
  • SkillsSummaryHeadline
  • Email Sent (checkbox or marker)

And additional sheets:

  • Blacklist – Companies to avoid
  • Clients – your clients
  • Target List – Companies of interest
  • Top Companies – prestigious orgs
  • in process/rejected – candidates in the pipeline

✨ Step 3: Adding the Script

I opened Extensions → Apps Script and added code to:

  • Calculate tenure (e.g. “Jan 2020 — Present” → 52 months)
  • Color-code rows based on company matches
  • Filter rows with specific keywords
  • Create a custom menu called Profile Scanner

Sample menu structure:

ui.createMenu("Profile Scanner")
  .addItem("🕒 Calculate LinkedIn Tenure", "calculateLinkedInTenure")
  .addItem("🚫 Mark Blacklist", "markBlacklist")
  .addItem("🔽 Filter Over 3 Years Tenure", "filterOverThreeYears")
  .addItem("🧠 Filter by Skills", "filterBySkills")
  .addItem("📘 Generate Documentation", "generateDocumentationSheet")
  .addToUi();

🎯 Step 4: Sample Logic — Marking Risk

I built logic to mark candidates who:

  • Have > 3 years in current role
  • Work at blacklisted companies
  • Already in process

Example logic:

if (tenure >= 36) risk += 1;
if (blacklist.includes(company)) risk += 2;
if (alreadyInProcess.includes(profileLink)) risk += 2;

And then we color-code rows accordingly.

🧪 Step 5: Testing with Real Data

We loaded a test set of 100+ candidates and used the menu to:

  • Calculate time
  • Filter for skills
  • Tag risk via colors
  • Export a filtered shortlist to a new sheet.

Results: Saved hours of manual scanning.

📌 Tips for Building Your Own

  • Think about your flow
  • Write to ChatGPT (or another tool like it) what you want to build
  • Keep everything in the sheet
  • Use PhantomBooster to scrape your data from your LinkedIn search
  • Start filter fast and smart

✅ Summary

You don’t need AI to be smart. With just Google Sheets + Apps Script, you can:

  • Automate sourcing logic
  • Prevent errors
  • Focus your energy on engagement

Want to build your own? Start simple:

  • Define the filters you use every day
  • Create columns to track them
  • Automate the rest ✨

You write the GPT what you want, and it gives you the code to copy into the Apps Script (inside every Google Sheet):

Goog luck!

Share:

STAY UPDATED

Related Posts

Let’s Talk Growth

Ready to Scale
Your Team?

Share your details and we’ll get back with a personalized hiring strategy tailored to your needs.