

How to Track Job Applications from Gmail to Google Sheets with Make
Auto-log job applicant emails into a spreadsheet with name, email, date received, and resume link based on subject line filters.
Steps and UI details are based on platform versions at time of writing β check each platform for the latest interface.
Best for
HR teams or hiring managers who receive 10+ job applications per week and want automated organization
Not ideal for
Companies that get fewer than 5 applications per month or prefer manual review of each application
Sync type
pollingUse case type
importReal-World Example
A 25-person marketing agency receives 30-40 applications per week for various roles. Before automation, their HR coordinator spent 45 minutes every morning manually copying applicant details into their tracking spreadsheet and often missed applications that arrived after hours or on weekends. Now applications get logged within 15 minutes of arrival with resume links ready for quick review.
What Will This Cost?
Drag the slider to your expected monthly volume.
Each platform counts differently β Zapier: 1 task per trigger. Make: 1 operation per module per record. n8n: 1 execution per run.





Prices shown for annual billing. Based on published pricing as of April 2026.
Estimated ROI
1000
min saved/mo
$583
labor value/mo
Free
no platform cost
Based on ~2 min manual effort per operation at $35/hr fully loaded labor cost.
Implementation
Import this workflow directly into Make
Copy the pre-built Make blueprint and paste it straight into Make. All modules, filters, and field mappings are already configured β you just need to connect your accounts.
Before You Start
Make sure you have everything ready.
Field Mapping
Map these fields between your apps.
| Field | API Name | |
|---|---|---|
| Required | ||
| Name | from_name | |
from_email | ||
| Date | date | |
| Subject | subject | |
1 optional fieldβΈ show
| Resume Link | textPlain + attachments |
Step-by-Step Setup
Dashboard > Create scenario > Gmail > Watch Emails
Create New Scenario
Start a new Make scenario to connect Gmail with Google Sheets. This creates the automation workflow that will monitor your inbox for job applications.
- 1Click 'Create a new scenario' from Make dashboard
- 2Click the + button to add your first module
- 3Select 'Gmail' from the app list
- 4Choose 'Watch Emails' trigger
Gmail module > Connection > Create connection
Connect Gmail Account
Authenticate your Gmail account so Make can access your incoming emails. This establishes the permission to read job application emails.
- 1Click 'Create a connection' button
- 2Sign in with your Google account
- 3Grant Make permission to read Gmail
- 4Click 'Save' to confirm the connection
Gmail module > Configuration
Configure Email Filter
Set up the filter to only capture emails that match job application patterns. This prevents the automation from logging every single email you receive.
- 1Set 'Label' field to 'INBOX'
- 2In 'Query' field, enter: subject:application OR subject:"applying for" OR subject:resume
- 3Set 'Maximum number of results' to 10
- 4Leave 'Criteria' as 'Unread emails only'
Gmail module > Run once
Test Gmail Trigger
Run a test to verify Make can find job application emails in your inbox. This confirms your filter is working correctly.
- 1Click 'Run once' at the bottom of the Gmail module
- 2Wait 10-15 seconds for results
- 3Review the sample email data that appears
- 4Verify it shows sender name, subject, and body content
Gmail module > + > Google Sheets > Add a Row
Add Google Sheets Module
Connect the second module to write job application data into your spreadsheet. This is where the parsed email information gets stored.
- 1Click the + button after the Gmail module
- 2Select 'Google Sheets' from the app list
- 3Choose 'Add a Row' action
- 4Click 'Create a connection' for Google Sheets
Google Sheets module > Configuration
Select Target Spreadsheet
Choose which Google Sheets file and worksheet will store your job application data. Make needs to know exactly where to write the information.
- 1Click the 'Spreadsheet' dropdown
- 2Select your job applications spreadsheet from the list
- 3Choose the correct worksheet tab (usually 'Sheet1')
- 4Confirm the selection shows your spreadsheet name
Google Sheets module > Column mapping
Map Email Fields
Configure which email data goes into each spreadsheet column. This determines how the job application information gets organized in your sheet.
- 1Click in the 'Name' column field
- 2Select 'from_name' from the Gmail data
- 3Map 'Email' column to 'from_email'
- 4Map 'Date' column to 'date'
- 5Map 'Subject' column to 'subject'
Google Sheets module > Resume Link field > Functions
Extract Resume Links
Set up logic to find resume attachments or Google Drive links in the email body. This captures the actual resume files for easy access.
- 1In the 'Resume Link' field, click the function button (fx)
- 2Enter: {{if(contains(1.textPlain; "drive.google.com"); get(split(1.textPlain; "https://drive.google.com"); 2); if(length(1.attachments) > 0; 1.attachments[1].filename; "No resume attached"))}}
- 3Test the formula by clicking 'OK'
- 4Verify it shows either a drive link, filename, or 'No resume attached'
Scenario > Run once
Test Complete Workflow
Run the full automation to verify emails get properly logged into your spreadsheet. This confirms all field mapping works correctly.
- 1Click 'Run once' at the bottom of the scenario
- 2Wait for both modules to complete (green checkmarks)
- 3Open your Google Sheets file
- 4Verify new rows appear with correct data in each column
Gmail module > Schedule settings
Configure Schedule
Set how often Make checks for new job application emails. Real-time monitoring ensures you don't miss applications.
- 1Click the clock icon on the Gmail module
- 2Select 'Every 15 minutes' from the schedule dropdown
- 3Click 'OK' to save the schedule
- 4Toggle the scenario 'ON' in the top right
Drop this into a Make custom function.
JavaScript β Custom Function{{if(contains(1.textPlain; "linkedin.com/in/"); get(split(get(split(1.textPlain; "linkedin.com/in/"); 2); " "); 1); "No LinkedIn")}}βΈ Show code
{{if(contains(1.textPlain; "linkedin.com/in/"); get(split(get(split(1.textPlain; "linkedin.com/in/"); 2); " "); 1); "No LinkedIn")}}... expand to see full code
{{if(contains(1.textPlain; "linkedin.com/in/"); get(split(get(split(1.textPlain; "linkedin.com/in/"); 2); " "); 1); "No LinkedIn")}}Scaling Beyond 100+ applications/day+ Records
If your volume exceeds 100+ applications/day records, apply these adjustments.
Use Gmail Labels
Create a 'Processed Applications' label and modify the trigger to skip already-labeled emails. This prevents reprocessing the same applications if the scenario reruns.
Batch Processing
Increase the Gmail module's 'Maximum number of results' to 50 to process applications in larger batches. This reduces the total number of scenario runs and operations consumed.
Going live
Production Checklist
Before you turn this on for real, confirm each item.
Troubleshooting
Common errors and how to fix them.
Frequently Asked Questions
Common questions about this workflow.
Analysis
Use Make for this if you need real-time job application tracking with minimal setup time. Make's Gmail trigger polls every 15 minutes and handles complex email filtering better than Zapier's basic subject line matching. The visual scenario builder makes it simple to extract resume links from email bodies or attachments. Skip Make if you only get 1-2 applications per month β a manual copy-paste takes less time than maintaining automation.
This workflow uses 2 operations per job application email (1 for Gmail trigger, 1 for Google Sheets write). At 50 applications/month, that's 100 operations total. The Make free tier covers 1,000 operations/month, so this runs free unless you get 500+ applications monthly. Zapier's free tier only includes 100 tasks/month, so you'd hit the limit at 50 applications and need their $20/month plan. N8n is free self-hosted but requires server maintenance.
Zapier has better Gmail parsing for extracting phone numbers from email signatures automatically. N8n offers more advanced text processing functions for parsing unstructured resume data from email bodies. But Make wins on the key factor: its Gmail trigger can handle multiple subject line variations in one query (subject:application OR subject:resume) while Zapier requires separate Zaps for each variation, burning through your task limit faster.
Gmail's API only returns the first 100 emails per query, so if you rarely check a high-volume inbox, older applications might get skipped. Make's error handling stops the entire scenario if Google Sheets hits its write rate limit (100 requests per 100 seconds), so batches of applications can fail together. The resume link extraction breaks if candidates paste Google Drive links without proper sharing permissions β you'll see the link but get access denied when clicking.
Ideas for what to build next
- βAdd Slack Notifications β Create a second scenario that sends new application alerts to your hiring team's Slack channel with applicant details and quick action buttons.
- βIntegrate with ATS β Connect your spreadsheet data to applicant tracking systems like Greenhouse or Lever using Make's webhooks to automatically create candidate profiles.
- βSet Up Follow-up Automation β Build a delayed automation that sends confirmation emails to applicants 24 hours after their application is received, pulling data from your tracking spreadsheet.
Related guides
How to Share Notion Meeting Notes to Slack with Pipedream
~15 min setup
How to Share Notion Meeting Notes to Slack with Power Automate
~15 min setup
How to Share Notion Meeting Notes to Slack with n8n
~20 min setup
How to Send Notion Meeting Notes to Slack with Zapier
~8 min setup
How to Share Notion Meeting Notes to Slack with Make
~12 min setup
How to Create Notion Tasks from Slack with Pipedream
~15 min setup