n8n

How to Automate Gmail to Sheets Resume Scoring?

Review resumes faster by turning Gmail into an intake tool and Google Sheets into a shortlist. New emails with PDF resumes are scanned, scored, and logged so recruiters can focus on outreach instead of reading every line. Great fit for small HR teams that need quick triage.

An email trigger checks the inbox for unread messages with attachments every hour and downloads the files. The PDF text is pulled from the first attachment and sent to an AI model for evaluation. A structured parser forces clean fields like name, email, LinkedIn, and a score, while the agent also returns the full resume text. The row is appended to a chosen sheet with columns mapped for Name, Email, Score, LinkedIn, and the raw resume. Because the system message stays the same, every candidate is judged by the same rules.

Setup needs a Gmail account, a Google Sheets connection, and an OpenAI API key. Expect screening time to drop from about 15 minutes to roughly 2 minutes per resume, with cleaner data ready for filters and charts. This fits inbox based hiring, campus drives, and staffing teams that receive many attachments. Once live, the team gets a live spreadsheet that updates itself without manual copy and paste.

What are the key features?

  • Gmail trigger watches for unread emails with attachments and downloads files every hour
  • PDF text extraction from the first attachment using the Extract From File node
  • AI analysis with GPT 4o mini scores the resume and extracts key details
  • Structured Output Parser enforces clean fields for name, email, LinkedIn, and score
  • Google Sheets append adds a new row with mapped columns and full resume text
  • Consistent scoring driven by a fixed system message for fair comparisons

What are the benefits?

  • Reduce manual review from 15 minutes to 2 minutes per resume
  • Automate about 90% of initial screening work from email to sheet
  • Reduce copy and paste errors by 90% with structured fields
  • Handle up to 5 times more applicants with the same team
  • Connect Gmail, OpenAI, and Google Sheets without custom code
  • Keep a full text archive of resumes for search and audits

How do you set it up?

  1. Import the template into n8n: Create a new workflow in n8n > Click the three dots menu > Select 'Import from File' > Choose the downloaded JSON file.
  2. You'll need accounts with Gmail, Google Sheets and OpenAI. See the Tools Required section above for links to create accounts with these services.
  3. In n8n, open the Gmail trigger node. In the credential dropdown, click Create new credential and follow the on screen steps to connect your Gmail account. Approve the requested scopes.
  4. In the Gmail trigger node, set Filters to has:attachment and UNREAD, enable Download Attachments, and keep the hourly check. Save the node.
  5. Send a test email with a PDF resume to the connected inbox. Execute the Gmail node and confirm an attachment appears as binary data named attachment_0.
  6. Open the Extract From File node. Set Operation to pdf and Binary Property to attachment_0 so the node reads the attached resume. Run the node and confirm the text field is populated.
  7. Open the OpenAI Chat Model node. In the credential dropdown, click Create new credential, choose API Key, and paste your key from the OpenAI API page. Save the credential and confirm the model is set to gpt 4o mini.
  8. Check the Structured Output Parser node. Confirm the schema includes name, email, linkedin, and score so the AI returns clean fields.
  9. Open the AI Agent node and verify it uses the OpenAI model and the structured parser. Keep the provided system message and prompt so scoring stays consistent.
  10. Open the Google Sheets node. In the credential dropdown, click Create new credential and connect your Google account with access to the target spreadsheet. Select the document and sheet.
  11. In the Google Sheets node, keep Operation as Append and confirm the column mappings for Name, Email, Score, LinkedIn, and Resume text. Save the node.
  12. Run an end to end test by sending another email with a PDF resume. Wait for the hourly poll or click Execute workflow to force a run. Check that a new row appears in the sheet with all fields and the full resume text.
  13. If no text appears, confirm the attachment is a PDF and the binary property name is attachment_0. If no row is added, check Google Sheets permissions. If parsing fails, review the schema and simplify the resume file name or try a different PDF.

Tools Required

$24 / mo or $20 / mo billed annually to use n8n in the cloud. However, the local or self-hosted n8n Community Edition is free.

Gmail

Sign up

No cost: Personal Gmail (Gmail API has no usage-based pricing; quotas apply)

Google Sheets

Sign up

Free: $0 (Google Sheets API usage has no additional cost; quota limits apply)

OpenAI

Sign up

Pay-as-you-go: GPT-5 at $1.25 per 1M input tokens and $10 per 1M output tokens

Similar Templates

Join Futurise to access 1,200+ automation templates

Get instant access to ready-made automation workflows for n8n, Make.com, AI agents, and more. Download, customise, and deploy in minutes.