Rank resumes by job description similarity using Gemini embeddings
Ready for 3.0What this workflow does
This workflow has 7 nodes and runs when someone submits an n8n form (“Sort Resumes by Job Description Similarity”). It uses only n8n's built-in nodes. It also calls generativelanguage.googleapis.com over HTTP.
How it runs
Trigger: When someone submits an n8n form (“Sort Resumes by Job Description Similarity”).
- Split Resume PDFs (Code): runs custom JavaScript code
- Create Job Description Embedding (HTTP Request): calls generativelanguage.googleapis.com (POST)
- Convert PDF to Base (Extract from File): extracts data from a file (binary to propery)
- Create Resume Embedding (HTTP Request): calls generativelanguage.googleapis.com (POST)
- Rank Resumes by Similarity (Code): runs custom JavaScript code
- Show Results (n8n Form): shows the next form page
HTTP calls to: generativelanguage.googleapis.com
Before you upgrade to n8n 3.0
Nothing in this workflow is removed in n8n 3.0, so it should import and run after the upgrade.
Nodes used (5)
- n8n Form Trigger
n8n-nodes-base.formTrigger - Code
n8n-nodes-base.code - n8n Form
n8n-nodes-base.form - Extract from File
n8n-nodes-base.extractFromFile - HTTP Request
n8n-nodes-base.httpRequest
From the author
Quick overview This workflow collects resume PDFs and a job description via an n8n form, generates embeddings with Google Gemini, calculates cosine similarity between each resume and the job description, and returns a CSV-style ranked list of filenames. How…