Automating Resume Matching with AI: A Low-Code Workflow Using Zapier, Google Sheets & Gemini
✨ How I Built a Cost-Effective Resume Optimization System and What I Learned
🧠 Why I Built This System
Having worked as a job application specialist, I spent hours daily reviewing resumes, searching for matching job descriptions, comparing the two, and optimizing documents for better results. The process was time-consuming, repetitive, and draining.
I needed to automate it — but without expensive tools.
So I created a low-code workflow using Google Sheets, Gemini (Google AI Studio), Zapier, and Google Forms to match resumes to job descriptions, score them using AI, and return results to the applicant — all in a streamlined system.
🔁 The Workflow at a Glance
✅ Phase 1: Resume Intake
- A Google Form collects full name, email address, resume (in text format), and job description (in text format).
- Responses are saved to Google Sheets which serves as the automation hub.
✅ Phase 2: Resume vs JD Matching via Gemini API
- A Google Apps Script runs through each row.
- It sends the resume and job description to the Gemini 1.5 Pro API with a prompt:
“Compare the resume and JD. Return a match score out of 100 and a brief evaluation.”
- Gemini responds with a score and feedback, which are logged back into the sheet.
✅ Phase 3: Email Notifications via Zapier
Using Zapier, I built a multi-step automation:
- Trigger: When the score column in Google Sheets is updated.
- Filter: Only continue if Score is not “N/A”.
- Action: Send an email to the applicant with their:
- Match score
- Resume feedback
- (Optional) Link to optimized resume in Google Drive
✅ Phase 4: Process Control
Get Abdulraheem Sodiq’s stories in your inbox
Join Medium for free to get updates from this writer.
To add manual control, I included a column in the Sheet labeled: “Process Status” with options like:
- ✅
Running - ⏸
Pause - 🛑
Stop
A second Zap:
- Detects changes in status
- Sends email alerts to applicants when their resume status is paused, resumed, or stopped
✅ What Worked Well
- Cut down manual work by over 70%
- Reduced resume-to-job description mismatch
- Centralized everything in Google tools
- Applicants received real-time feedback and match scores
⚠️ What Didn’t Go So Smoothly
- Gemini prompt rejected due to large text size (fixed: Limited input to 7,000 characters using
.substring()) - Google AI Studio API errors (model not found or access denied) (fixed: Switched to
gemini-1.5-prowith correct endpoint) - Zapier quota limitations (Fixed: Used only free-tier triggers and avoided premium steps)
- Rtoesume or JD missing → "undefined" (Fixed: Added validation logic to skip incomplete rows)
💡 Pros & Cons
Pros:
- 💰 Cost-Effective: Uses free tiers of Zapier, Sheets, and Gemini
- 🧠 AI-Driven: Evaluates resumes using generative AI
- ⏱️ Time-Saving: Auto-scores and sends results
- 🧩 Modular: Easily extendable (e.g., auto-apply to jobs, log to CRM)
Cons:
- 📝 Only works with text-format resumes and job descriptions
- 🚫 Gemini API sometimes fails with long/complex inputs
- 📂 No integration with file uploads (yet)
- ⚙️ Requires initial scripting knowledge (Apps Script)
🛠️ Planned Improvements
- File Parsing: Add PDF/DOCX parsing via Make.com or n8n to extract text from uploaded resumes.
- AI Scoring Benchmark: Calibrate Gemini outputs with real-world recruiter feedback for accuracy.
- Job Auto-Matching: Add job scraping automation using SerpAPI or PhantomBuster.
- Resume Optimization: Use OpenAI/Gemini to auto-edit resumes based on feedback.
- Industry Integration: Connect with ATS tools like Greenhouse or Workable via API.
🚀 Final Thoughts
This workflow boosted productivity and helped deliver value faster. If you work in resume review, HR, or job applications, this system is a game-changer.
📩 Want to build your own?
Drop a comment or connect via x.








