Automate HR recruitment emails from Google Sheets - send personalized Gmail messages with resume downloads, track delivery status, and log results automatically.
This agent works seamlessly with these platforms to deliver powerful automation.
Send, receive, and manage Gmail messages with full email automation capabilities
Read / Write data from / to Google Sheets
This powerful automation workflow streamlines your HR recruitment process by automatically sending personalized emails to job candidates with their resumes attached, all while maintaining a comprehensive log of every interaction. The agent reads candidate information from a Google Sheet, processes each contact individually, sends customized emails via Gmail, and records the results back to a tracking spreadsheet—eliminating hours of manual, repetitive work.
Key benefits include:
Perfect use cases:
This workflow is designed for HR professionals, recruiters, and hiring managers who need to communicate with multiple candidates efficiently while maintaining a personal touch. Whether you're part of a small startup handling your first hiring wave or an established HR team managing hundreds of applications, this automation adapts to your scale.
Ideal users include:
No coding experience required—if you can use Google Sheets and Gmail, you can configure this workflow!
Why it's needed: Google Sheets serves as both your input source (candidate database) and output destination (activity log). The workflow reads candidate information from one sheet and writes execution results to another, creating a complete paper trail of your recruitment communications.
Setup steps:
Enable Google Sheets API access in your Google Cloud Console
Create service account credentials
Generate and download the JSON key
Configure in TaskAGI
Why it's needed: Gmail handles the actual email delivery to candidates, including attachments like resumes. This integration allows the workflow to send professional emails from your company email address while maintaining full control over content and timing.
Setup steps:
Enable Gmail API access
Configure OAuth consent screen
Create OAuth 2.0 credentials
https://app.taskagi.com/oauth/callback
Configure in TaskAGI
Step 1: Prepare Your Google Sheets
Create two Google Sheets:
Email, Name, ResumeURL, emailSubject, and emailBody
Timestamp, Email, Status, ErrorMessage
Share both sheets with the service account email address (found in your JSON key file) with "Editor" permissions.
Step 2: Configure the Manual Trigger
The workflow starts with a manual trigger, requiring no configuration. Simply click "Run" when you're ready to process your candidate batch.
Step 3: Set Up "Get HR Data from Sheets"
googlesheets.getSheetFromUrl
sheet_url - Replace YOUR_GOOGLE_SHEETS_URL_HERE with your actual Candidate Data Sheet URLhttps://docs.google.com/spreadsheets/d/1abc123xyz/edit
Step 4: Configure "Process Data" Function
This node validates and structures your data. The function should:
Step 5: Set Up the Loop Over Contacts
core.loop
Step 6: Configure "Wait Between Emails"
core.wait
Step 7: Set Up "Download Resume"
core.http_request
[[loop.item.ResumeURL]] to dynamically fetch each candidate's resumeStep 8: Configure "Send Gmail"
gmail.sendEmail
[[loop.item.Email]]
[[loop.item.emailSubject]]
[[loop.item.emailBody]]
Step 9: Set Up "Check Email Success"
core.if_condition
Step 10: Configure Success and Failure Handlers
Both nodes format the result data for logging:
Step 11: Set Up "Merge Results"
core.merge
Step 12: Configure "Prepare Log Data"
core.edit_data
Step 13: Set Up "Log to Google Sheets"
googlesheets.appendRowFromUrl
sheet_url - Replace YOUR_LOG_SHEET_URL_HERE with your Log Sheet URL1. Start with a small test batch
Before processing your entire candidate database, create a test sheet with 2-3 entries using your own email addresses. This allows you to verify the complete workflow without impacting real candidates.
2. Execute the workflow
3. Verify each stage
4. Success indicators
✅ All nodes show green status ✅ Test emails received with correct personalization ✅ Resume attachments are present and downloadable ✅ Log Sheet contains accurate status entries ✅ No error messages in the execution log
Problem: "Permission denied" error on Google Sheets
Solution: Ensure you've shared both sheets with your service account email address (looks like taskagi-hr@project-name.iam.gserviceaccount.com). The account needs "Editor" permissions.
Problem: Gmail sends fail with "Rate limit exceeded"
Solution: Increase the wait time between emails to 5-10 seconds. Gmail has daily sending limits (500 for free accounts, 2,000 for Google Workspace). Consider breaking large batches across multiple days.
Problem: Resume downloads fail
Solution: Verify that resume URLs are publicly accessible or that authentication is properly configured. Test URLs in a browser first. Ensure URLs are direct file links, not sharing links.
Problem: Email personalization shows [[loop.item.Name]] instead of actual names
Solution: Check that your data mapping is correct in the "Process Data" node. Verify column names in your Google Sheet match exactly (case-sensitive). Ensure the loop is properly configured to iterate over the processed array.
Problem: Some emails send but aren't logged
Solution: Check the "Merge Results" node configuration. Ensure both success and failure paths are properly connected. Verify the "Prepare Log Data" node has correct field mappings.
Problem: Workflow stops mid-execution
Solution: Check your TaskAGI account's execution limits. Large batches may require a higher-tier plan. Consider breaking your candidate list into smaller batches of 50-100 contacts.
After successful setup:
Optimization suggestions:
Advanced usage tips:
Congratulations! You've now automated one of the most time-consuming aspects of recruitment. Your workflow will handle the repetitive tasks while you focus on building relationships with top candidates. Start small, test thoroughly, and scale confidently! 🚀