Build an Employee Onboarding Document Processor with n8n + Google Drive + Slack

HR teams deal with the same paperwork problem every time someone new joins. Offer letter, I-9, W-4, direct deposit form, emergency contact, NDA, benefits enrollment — each one arrives separately, gets saved somewhere, and someone has to manually check that everything is filled in correctly and signed. When you’re onboarding multiple people at once, incomplete documents get missed. Someone starts on Monday and their I-9 is missing a signature that nobody caught until payroll flags it two weeks later.

Built a workflow that processes every onboarding document the moment it lands in Google Drive and flags any issues immediately.

What it does

Document dropped in Drive folder → downloads and extracts all HR data → checks completeness and compliance → logs to onboarding tracker → notifies HR team on Slack with status

Takes about 10-12 seconds per document.

Document types supported

  • Offer Letter

  • I-9 Form

  • W-4 Form

  • Direct Deposit

  • Emergency Contact

  • Policy Acknowledgment

  • Benefits Enrollment

  • NDA

What gets extracted

Employee:

  • Full name, employee ID, email, phone, address

  • Date of birth (where applicable)

Employment:

  • Start date, department, position, manager

  • Employment type, salary, pay frequency

Tax info (W-4):

  • Filing status, allowances, additional withholding

Direct deposit:

  • Bank name and account type only — no account numbers extracted for security

Emergency contacts:

  • Name, relationship, phone for each contact

Signatures:

  • Signer name, role, and date for each signature

Completeness:

  • isComplete flag — true/false

  • missingFields array — lists exactly what’s missing

Compliance checks

The Code node runs automatic checks on every document:

  • Missing signatures detected and flagged

  • Missing required fields listed explicitly

  • I-9 status — Complete or Incomplete / Action Required

  • Document status assigned: Complete / Incomplete / Needs Review

What lands in Slack


📋 Onboarding Document Processed

Employee: Sarah Chen

Document: I-9 Form

Department: Engineering

Start Date: 2025-03-24

Status: ⚠️ Incomplete

Issues: Missing employer signature, Section 2 not completed

📄 View Document

Complete documents get a :white_check_mark:. Anything with issues gets :warning: so HR knows immediately without opening the file.

What lands in Google Sheets

Each row: Employee Name, Employee ID, Email, Document Type, Department, Position, Start Date, Status, Issues, Emergency Contacts, Document Link, Processed Date

Filter by Status to see every incomplete document across all active onboarding employees. Filter by Employee Name to see all documents for one person and check who’s still missing what.

Setup

You’ll need:

  • Google Drive (dedicated onboarding documents folder)

  • Google Sheets (free)

  • n8n instance (self-hosted — uses PDF Vector community node)

  • PDF Vector account (free tier: 100 credits/month, ~25-30 documents)

  • Slack (for HR team notifications)

About 15 minutes to configure.

Download

Workflow JSON:

employee-onboarding-docs.json

Full workflow collection:

khanhduyvt0101/workflows


Setup Guide

Step 1: Get your PDF Vector API key

Sign up at pdfvector.com — free plan works for testing. Go to API Keys and generate a key.

Step 2: Create your Google Drive folder

Create a folder called “Onboarding Documents” or per-employee subfolders. Copy the folder ID from the URL.

Step 3: Create your Google Sheet

Headers in Row 1:


Employee Name | Employee ID | Email | Document Type | Department | Position | Start Date | Status | Issues | Emergency Contacts | Document Link | Processed Date

Step 4: Import the workflow

Download JSON from GitHub → n8n → Import from File.

Step 5: Configure the nodes

Google Drive Trigger:

  • Connect Google Drive account (OAuth2)

  • Paste your folder ID

  • Event: File Created

Download Document:

  • Same Google Drive credential

PDF Vector - Extract HR Data:

  • Add new credential (Bearer Token)

  • Paste your API key

  • Extracts to full JSON schema including completeness flags

Process Document:

  • No config needed — compliance checks and status assignment run automatically

Log to Onboarding Tracker:

  • Connect Google Sheets

  • Paste your Sheet ID

Notify HR Team:

  • Connect Slack

  • Select your HR notifications channel

Step 6: Test it

Drop any HR document PDF into your Drive folder. Check Slack and your Sheet after about 30 seconds.


Accuracy

Tested on standard US HR forms (I-9, W-4), offer letter templates, and NDA documents.

  • Employee name, email, start date: ~97% on typed/digital documents

  • Department and position: ~95% when clearly labeled

  • Signatures and dates: ~92% — reliable on digital forms; lower on handwritten signatures

  • Missing field detection: ~88% — works best on structured forms with clear field labels

  • Tax info (W-4 specifics): ~90% on standard IRS form format

Handwritten or scanned paper forms: accuracy drops to ~75-80%. Digital PDFs from HRIS systems work best.

Privacy note

The workflow is designed to avoid extracting full SSNs and bank account numbers. The schema requests bank name and account type only. If your documents contain sensitive fields, run this on a self-hosted n8n instance with proper access controls — never on a shared or public instance.

Cost

Each document uses 3-4 PDF Vector credits. Free tier of 100 credits handles roughly 25-30 documents per month — enough for a small team’s onboarding batch.

Basic plan ($25/month) gives 3,000 credits.

Customizing it

Per-employee folders:

Change the Drive Trigger to watch a parent folder and use the subfolder name as the employee identifier. Useful if each new hire has their own folder.

Add email notification to the employee:

After the Slack node, add a Gmail node to send the new hire a confirmation that their document was received.

Benefits enrollment deadline alert:

Add a second workflow that reads your Sheets tracker and flags any employee whose start date is within 30 days and has no Benefits Enrollment document logged yet.

Connect to your HRIS:

Replace or supplement the Sheets node with an HTTP Request to create or update employee records in BambooHR, Workday, or any HRIS with an API.

Route incomplete docs to a separate channel:

Add an IF node before Slack that routes complete documents to #hr-notifications and incomplete ones to #hr-urgent for faster follow-up.


Limitations

  • Requires self-hosted n8n (PDF Vector is a community node)

  • Missing field detection depends on how clearly the form labels required fields

  • No cross-document validation — doesn’t check that the name on the I-9 matches the offer letter

  • Doesn’t track document versions if a corrected form is re-uploaded

  • SSN and full account number fields are intentionally excluded from extraction


PDF Vector n8n integration

Full workflow collection

Questions? Drop a comment.

This is really thorough — thanks for sharing the setup guide and the GitHub repo. The privacy approach with avoiding SSN and account numbers is smart. One thing that would be useful: how do you handle versioning when documents get resubmitted with corrections?

1 Like