Skip to main content

Detect duplicate candidates from Gmail to Slack using Google Sheets

Workflow preview

Workflow preview
100%
Detect duplicate candidates from Gmail to Slack using Google Sheets preview
Open on n8n.io

Important notice

This workflow is provided as-is. Please review and test before using in production.

1. Workflow Overview

Detect duplicate candidates by email/phone from Gmail to Slack using Google Sheets This workflow automatically detects duplicate job applicants by checking incoming emails from Gmail against existi...

Best for

  • Content Creation automation workflows
  • Multimodal AI automation workflows
  • intermediate n8n builders looking for reusable templates

Tools used

n8n-nodes-base.scheduletrigger, n8n-nodes-base.gmail, n8n-nodes-base.code, n8n-nodes-base.googlesheets, n8n-nodes-base.if, n8n-nodes-base.slack, n8n-nodes-base.stickynote

Source and attribution

This workflow is cataloged by N8N Workflows and links back to its original n8n.io source page by WeblineIndia.

Original n8n.io source

1.1 Workflow description

Title
Detect duplicate candidates from Gmail to Slack using Google Sheets
Workflow name
Detect duplicate candidates from Gmail to Slack using Google Sheets

Detect duplicate candidates by email/phone from Gmail to Slack using Google Sheets

This workflow automatically detects duplicate job applicants by checking incoming emails from Gmail against existing records in Google Sheets. If a candidate's email is already found in the sheet, it sends an alert to Slack; otherwise, it adds the candidate to the sheet.

Who’s it for

  • HR and recruitment teams processing candidate emails manually
  • Startups or SMEs handling job applications via Gmail
  • Anyone who wants to automate resume collection and deduplication
  • Teams using Slack and Google Workspace

How it works

  1. Triggers every few minutes via the Schedule Trigger node
  2. Fetches recent emails labeled "applicant" from Gmail
  3. Extracts candidate details from the email body using regex
  4. Reads all existing rows from the Google Sheet
  5. Compares the candidate’s email with existing entries
  6. If duplicate → Sends a Slack alert
  7. If new → Appends to the Google Sheet

How to set up

  1. Label candidate emails in Gmail with a label like applicant

  2. Connect Gmail, Google Sheets, and Slack credentials in n8n

  3. Create a Google Sheet with these columns:

    • candidate_name, candidate_email, candidate_phone, role_applied, years_of_experience, recruiter, resume_url, source_email
  4. Import the workflow JSON

  5. Update:

    • Gmail label ID
    • Google Sheet ID
    • Slack channel or user
  6. Activate the workflow

Requirements

  • n8n (self-hosted or cloud)
  • Gmail account with access to labeled application emails
  • Google Sheet to store candidates
  • Slack account with chat:write scope
  • Basic regex familiarity (optional)

How to customize

  • Change comparison logic to include phone numbers.
  • Add fallback logic to check for similar names.
  • Add filters for roles, experience levels.
  • Forward resumes to Drive or Notion.
  • Trigger an approval flow for screened candidates.

Add‑ons

  • Google Drive: Upload parsed resumes.
  • Notion / Airtable: Store structured candidate records.
  • Webhooks: Forward to ATS or CRM.
  • PDF parsers: Extract data from attachments.

Use Case Examples

Use Case Description
Resume deduplication Avoid processing the same applicant twice
Auto Slack alert Instantly notify recruiter of repeat candidates
Centralized tracking Keep candidate records in Sheets for filtering/export
Passive sourcing Run hourly checks on labeled Gmail inboxes

Common troubleshooting

Issue Possible Cause Solution
Slack message not sent Invalid Slack token / channel not selected Reauthorize Slack connection and select correct user/channel
Google Sheet not updated Sheet ID or tab name is incorrect Double-check the Sheet URL and worksheet tab
Email data not extracted Email body format doesn’t match regex Adjust regex in the "Code" node
Nothing happens Gmail label or date filter is too strict Ensure emails exist with the right label in the last X minutes

Need Help?

Need help setting it up or tweaking regex for your custom email format? We’re happy to help — just ask!

Want to add phone number duplication checks or auto-resume upload to Google Drive? Our Automation team at WeblineIndia can guide you step-by-step.

1.2 Logical Blocks

This catalog entry is organized from the workflow JSON. The node-level section below shows the executable blocks available for review before importing the template.

2. Block-by-Block Analysis

Block 1 - Schedule Trigger

Type / Role
n8n-nodes-base.scheduleTrigger - scheduleTrigger
Config choices
Version 1.2

Block 2 - Gmail

Type / Role
n8n-nodes-base.gmail - gmail
Config choices
Version 2.1

Block 3 - Code

Type / Role
n8n-nodes-base.code - code
Config choices
Version 2

Block 4 - Google Sheets

Type / Role
n8n-nodes-base.googleSheets - googleSheets
Config choices
Version 4.6

Block 5 - Google Sheets1

Type / Role
n8n-nodes-base.googleSheets - googleSheets
Config choices
Version 4.6

Block 6 - If

Type / Role
n8n-nodes-base.if - if
Config choices
Version 2.2

Block 7 - Slack

Type / Role
n8n-nodes-base.slack - slack
Config choices
Version 2.3

Block 8 - Code1

Type / Role
n8n-nodes-base.code - code
Config choices
Version 2

Block 9 - Sticky Note

Type / Role
n8n-nodes-base.stickyNote - stickyNote
Config choices
Version 1

Block 10 - Sticky Note1

Type / Role
n8n-nodes-base.stickyNote - stickyNote
Config choices
Version 1

3. Summary Table

Workflow Detect duplicate candidates from Gmail to Slack using Google Sheets
Complexity intermediate
Nodes 10
Categories Content Creation, Multimodal AI
Author WeblineIndia
Published 05 Aug 2025

4. Reproducing the Workflow from Scratch

  1. 1. Download the workflow JSON

    Use the JSON export at /data/workflows/7001/7001.json as the source template for this automation.

  2. 2. Import the template into n8n

    Open n8n, import the downloaded JSON, and review each node before activating the workflow.

  3. 3. Configure credentials and variables

    Replace placeholder credentials, API keys, webhook URLs, account IDs, and environment-specific values with your own settings.

  4. 4. Test with sample data

    Run the workflow manually or in a staging workspace, inspect node output, and confirm downstream systems receive the expected data.

  5. 5. Activate and monitor

    Enable the workflow only after testing, then monitor executions, errors, and rate limits during the first production runs.

5. General Notes & Resources

Review imported nodes carefully before activation. This catalog entry is intended to help you inspect the workflow structure, understand required services, and find related templates faster.

Node names, credentials, schedules, webhook paths, and external service limits may need adjustment for your workspace.

Frequently asked questions

What does Detect duplicate candidates from Gmail to Slack using Google Sheets do?

Detect duplicate candidates by email/phone from Gmail to Slack using Google Sheets This workflow automatically detects duplicate job applicants by checking incoming emails from Gmail against existi...

What do I need before importing this workflow?

Review the workflow JSON, configure any required credentials in n8n, and test the automation in a safe workspace before using it in production.

Can I customize this workflow?

Yes. Use the block-by-block analysis and the downloadable JSON to inspect each node, then adjust credentials, prompts, schedules, filters, or destinations for your Content Creation, Multimodal AI use case.