Keeping track of job applications is surprisingly hard. By week three of an active job search, most people have applications scattered across browser tabs, email threads, LinkedIn messages, and sticky notes. You forget who you followed up with, miss interview scheduling windows, and lose track of which version of your resume you sent where.
This Make.com scenario (formerly Integromat) solves that completely. It monitors your Gmail for job-related emails, automatically logs applications to a Google Sheet, detects status changes like interview invites and rejections, sets reminder follow-ups, and emails you a weekly pipeline summary โ all without you lifting a finger after the initial setup.
โก What You'll Build
- โ Automatic logging of job applications from Gmail to Google Sheets
- โ AI classifier that identifies job-related emails vs. spam/newsletters
- โ Smart data extractor (company, role, date, hiring manager)
- โ Status detection โ automatically marks Interview, Offer, Rejected
- โ Follow-up reminder scheduler (7-day nudge if no response)
- โ Weekly digest email with pipeline stats and pending actions
Why Make.com for This?
Make.com's visual drag-and-drop interface makes building multi-step automations especially intuitive. Unlike n8n (which requires more setup) or Zapier (which gets expensive quickly), Make.com's free tier includes 1,000 operations/month โ easily enough to monitor an active job search. The scenario builder's routing and filtering capabilities are particularly powerful for the email classification logic this workflow relies on.
| Feature | Make.com | n8n | Zapier |
|---|---|---|---|
| Free tier | 1,000 ops/month | Free self-hosted | 100 tasks/month |
| Visual builder | โ Excellent | โ Good | โ Simple |
| Conditional routing | โ Native | โ Native | โ ๏ธ Limited (paid) |
| AI/OpenAI module | โ Built-in | โ Built-in | โ ChatGPT action |
| Learning curve | Low | Medium | Very Low |
| Self-hosting | โ | โ | โ |
Prerequisites
- Make.com account: Sign up free at make.com
- Gmail account: The email you use for job applications
- Google Sheets: Will be created automatically by the scenario
- OpenAI API key (optional): For the AI email classifier; you can use keyword matching as a free alternative
Set Up Your Tracking Spreadsheet
Before building the scenario, create a Google Sheet named "Job Applications 2025" with these column headers in row 1:
A: Date Applied
B: Company
C: Job Title
D: Location
E: Status
F: Email Subject
G: Hiring Manager
H: Application URL
I: Resume Version
J: Follow-up Date
K: Notes
L: Email Thread ID
Column L (Email Thread ID) is crucial โ it lets the scenario match future emails about the same job to the original application row, avoiding duplicates when you receive interview invites or rejections weeks later.
Step-by-Step Scenario Setup
In Make.com, click Create a new scenario. Add each module below in sequence.
Step 1: Gmail Watch Trigger
๐ฌ Gmail โ Watch Emails
Monitors your Gmail inbox for new emails every 15 minutes. Only passes emails to the next module if they match a broad initial filter, reducing unnecessary processing of unrelated messages.
Add the Gmail โ Watch Emails module:
- Connection: Connect your Gmail account (OAuth2)
- Folder: INBOX
- Criteria: All mail (the classifier in the next step handles filtering)
- Maximum number of emails: 10 (per 15-minute check)
- Mark as read: No (don't interfere with your normal email workflow)
Step 2: AI Email Classifier
๐ค OpenAI โ Classify Email Type
Uses GPT to determine if the email is job-related and, if so, what type: new application confirmation, interview invite, rejection, offer, or other. This structured output drives all the routing in subsequent steps.
Add the OpenAI โ Create a Completion module:
After this module, add a Router to split the flow based on the classification result.
Step 3: Data Extractor
๐ง JSON Parser + Text Parser โ Extract Structured Data
Parses the OpenAI JSON response and extracts individual fields for use in the Google Sheets module. Also calculates the follow-up reminder date as 7 days from today.
Add a JSON โ Parse JSON module to deserialize the OpenAI response, then use Make.com's built-in functions to compute derived values:
// In the Google Sheets "Add a Row" module, use these mapped expressions:
Date Applied: {{formatDate(now; "YYYY-MM-DD")}}
Company: {{3.company}} // from parsed JSON
Job Title: {{3.job_title}}
Location: extracted via regex from email body
Status: {{if(3.email_type = "application_confirmation"; "Applied"; "Unknown")}}
Email Subject: {{1.subject}}
Hiring Manager: {{3.hiring_manager}}
Follow-up Date: {{formatDate(addDays(now; 7); "YYYY-MM-DD")}}
Email Thread ID: {{1.threadId}}
Step 4: Google Sheets Row Appender
๐ Google Sheets โ Add a Row
Writes the new application to your tracking spreadsheet. Only runs for new applications โ not for interview/rejection updates, which are handled by the Status Updater module in the next route.
This module is in the "New Application" route of your router. Configure it:
- Spreadsheet: Select your "Job Applications 2025" sheet
- Sheet: Sheet1
- Table contains headers: Yes
- Map each column to the extracted values from Step 3
Add a Filter before this module: {{3.is_job_related}} = true AND {{3.email_type}} = application_confirmation. This ensures only confirmed new applications create new rows โ not every job-related email.
Step 5: Status Updater
๐ Google Sheets โ Update Existing Row
When an interview invite, rejection, or offer email arrives, this module finds the matching row in your sheet by Thread ID and updates its Status column. This keeps your single tracking row per application accurate through the entire lifecycle.
This module is in a separate route for interview/rejection/offer emails. It uses Google Sheets โ Search Rows first to find the matching row by Thread ID, then Update a Row:
- Search column: L (Email Thread ID)
- Search value:
{{1.threadId}} - Update โ Status column:
{{if(3.email_type = "interview_invite"; "Interview Scheduled"; if(3.email_type = "rejection"; "Rejected"; if(3.email_type = "offer"; "Offer Received"; "Follow-up Needed")))}}
Step 6: Follow-up Reminder Scheduler
โฐ Scheduled Check โ Follow-up Nudge
A separate scenario (or a second route triggered on a daily schedule) that scans the sheet for applications where the Follow-up Date has passed and status is still "Applied." Sends a reminder email for each one.
Create a second scenario with a Schedule trigger (runs daily at 9 AM):
- Google Sheets โ Get Rows: Filter where column J (Follow-up Date) โค today AND column E (Status) = "Applied"
- Iterator: Process each overdue application one at a time
- Gmail โ Send an Email: Send yourself a reminder with the company name, role, and a suggested follow-up message template
- Google Sheets โ Update a Row: Push the Follow-up Date forward by 7 more days so you get reminded again if still no response
Step 7: Weekly Digest Email
๐ Weekly Summary โ Pipeline Stats
A third scenario triggered every Monday morning that reads your entire tracking sheet, calculates pipeline stats, and emails you a formatted weekly progress report. Gives you a clear view of your job search momentum.
Create a third scenario with a Schedule trigger (every Monday at 8 AM):
- Google Sheets โ Get All Rows: Fetch all application rows
- Aggregator: Count rows by status value (Applied, Interview, Rejected, Offer)
- Gmail โ Send an Email: Send the weekly digest
The digest email should show: total applications, active pipeline (Applied + Interview Scheduled), interview rate (Interviews รท Total Applied), and a list of applications with upcoming follow-up dates this week. This weekly review is also a great time to update any statuses you changed manually (e.g., applications you withdrew).
Tips & Customizations
Label job emails in Gmail first
Create a Gmail label called "Job Search" and set up a Gmail filter that labels any email from common job boards (linkedin.com, indeed.com, glassdoor.com, greenhouse.io, lever.co, workday.com) with this label. Then set your Make.com Watch trigger to only monitor emails with this label instead of your entire inbox โ this cuts processing by 90% and reduces false positives dramatically.
Add a Slack notification
Replace or supplement the Gmail reminder with a Slack module that posts interview invites and follow-up reminders directly to a dedicated #job-search Slack channel. Seeing a Slack ping is often more actionable than another email in an already-crowded inbox.
Connect to a Notion database
If you use Notion, swap the Google Sheets modules for Notion โ Create a Database Item. Notion's gallery view makes for a much more visual application pipeline, and you can add custom properties like interview notes, company research, and salary expectations per application.