Mindket

Job applicant CV scored by AI and logged to Google Sheets

Newversion 1 · updated

Overview

An n8n workflow with a CV form: an applicant sends a name, an email address and a PDF. OpenAI pulls out the details, summarizes them and votes from 1 to 10 against your profile, and one row per applicant lands in a Google Sheet.

Job applicant CV scored by AI and logged to Google Sheets is an n8n workflow in the Business category, listed by Mindket. It is free. This is version 1, last updated on . Download it on this page or copy its JSON, then import it into an n8n canvas. Nothing runs until you activate it in n8n.

At a glance

Runs in
  • n8n Cloud: import the file into a new workflow there
  • Your own n8n server: the same file and steps
  • Google Sheets: the shortlist lives in your sheet, one row for each applicant
  • A careers page: link to the form’s production address, or add a node after Google Sheets to alert the person who hires

Platform

Connects 3 apps

How it works

Trigger

CV form

It starts when someone sends the Send CV form with:

  • Their name
  • Their email address
  • Their CV, as a PDF file

Actions

  1. The PDF is saved to a folder in your Google Drive
  2. The text is read out of the PDF
  3. OpenAI pulls out the phone number, city and birthdate, then the education, job history and skills
  4. The answers are joined and summarized in 100 words or less
  5. The profile you want is set, and OpenAI votes from 1 to 10 with its reasons
  6. A new row with the details, the summary, the vote and the reasons is added to your Google Sheet

Result

One row for each applicant in your sheet, with contact details, career facts, a summary, a vote and its reasons

Integrations

What you need before you start.

OpenAI

Language model

Runs gpt-4o-mini four times for each CV: to pull out the personal data, to pull out the career, to summarize, and to vote against the profile.

NeedsOpenAI API key

Google Drive

CV storage

Saves each PDF in a folder, named with the date and the original file name.

NeedsA Google account, for a Google Drive OAuth2 credential, and a folder

Google Sheets

Applicant log

Takes one new row for each applicant, filled by column header.

NeedsA Google account, for a Google Sheets OAuth2 credential, and a sheet with twelve headers

Workflow check

Checked by Mindket on 13 Nov 2026

Steps
10 steps, starting on a form
AI
4 steps call an AI model: Personal Data, Summarization Chain, HR Expert and Qualifications
Sign-ins
Signs in to: Google Drive, Google Sheets and OpenAI
API keys
No API key is left in the file
Step types
Mindket’s checker reads all 9 of its step types

Read from the workflow’s file, not from a run.

About

What it is

This n8n workflow scores job applicants from their CVs. Someone sends a form with a name, an email address and a PDF. An OpenAI model reads the text and pulls out the phone number, city and birthdate, then the education, job history and skills. A summary of 100 words or less is compared with a profile you wrote, and the model gives a vote from 1 to 10 with its reasons. One row per applicant is added to a Google Sheet, and the PDF is saved to a Drive folder on the way. Twelve nodes do the work, beside six sticky notes.

Who it suits

Small companies, agencies and recruiters who collect CVs through a careers page and keep their shortlist in a Google Sheet. It gives a first sorted view of a pile of applications. Skip it if nobody should see a score before reading the CV, or if the place you hire in limits automated screening. The profile in the file looks for a web developer.

Who uses it, and how
IndustryWho uses itHow they use itExample
Web and software agenciesOwners and office managersPut the form on a careers page and get a row for each applicantAn agency hiring a full-stack developer sorts twenty applicants by VOTE.
RecruitmentAgency recruitersKeep one copy of the workflow for each open role, each with its own Profile Wanted textA recruiter runs a copy for every role a client has open.
Small businessFoundersHire a first support or operations person without an HR teamA founder opens the sheet each morning and reads the reasons beside each vote.
Freelance and project hiringTeam leadsGet a quick skills list from a stack of CVsA lead scans the SKILLS column to see who knows the tools a project needs.

You need some n8n: importing a file, adding three credentials and building a sheet whose twelve headers match the file. Nothing in the file states a setup time.

Where to use it

Any n8n that can reach OpenAI and Google will run it. Plan where the CVs and the sheet live, since both hold personal data.

  • n8n Cloud: import the file into a new workflow there
  • Your own n8n server: the same file and steps
  • Google Sheets: the shortlist lives in your sheet, one row for each applicant
  • A careers page: link to the form’s production address, or add a node after Google Sheets to alert the person who hires

Setup

Download saves a zip with workflow.json and Mindket’s setup notes in your downloads folder. Build the sheet and the folder before you import the file.

What you need first
NeedDetail
n8nOn n8n Cloud or on a server of your own
OpenAIAn API key. The one chat model node uses gpt-4o-mini
GoogleAn account for a Google Drive OAuth2 credential and a Google Sheets OAuth2 credential
A Drive folderWhere the CVs are saved
A sheetA first row with DATA, NAME, PHONE, CITY, EMAIL, DATA NASCITA, EDUCATIONAL, JOB HISTORY, SKILLS, SUMMARIZE, VOTE and CONSIDERATION, spelled as written
  1. In n8n, create a workflow, open its menu, choose Import from File and pick workflow.json.
  2. Add an OpenAI credential and select it in OpenAI. That one node serves all four AI steps.
  3. Add a Google Drive OAuth2 credential and select it in Upload CV. Replace YOUR_FOLDER_ID with your folder’s ID, the part of its address after /folders/.
  4. Add a Google Sheets OAuth2 credential and select it in Google Sheets. Replace YOUR_SHEET_ID with the sheet’s ID, the part of its address between /d/ and /edit.
  5. Check that the sheet’s first row holds the twelve headers from the table. The node stops if one is missing.
  6. Open Profile Wanted and write the profile you are hiring for.
  7. Save, open the form’s test address and send a CV of your own as a PDF.
  8. Check the new row, then press Publish and share the form’s production address.

How to use it

Share the form’s address with applicants. Each one types a name and an email address and attaches a PDF. The form confirms at once, and the run goes on behind it. Open the sheet for the row. Open the run under Executions to see what each step returned.

What to change for a different result
To changeWhere
The profileThe text in Profile Wanted
The scoring ruleThe message in HR Expert, which asks for a vote from 1 to 10 and its reasons, in Italian
What is pulled outThe attributes of Qualifications and the schema of Personal Data
The summaryThe prompt in Summarization Chain, which asks for 100 words or less
The modelOpenAI, shared by all four steps

Example

A web agency keeps the profile that ships in the file, a full-stack developer who knows PHP, Python and JavaScript and lives in northern Italy. An applicant sends a PDF that lists those three languages and two years at another agency in Milan.

One row lands in the sheet. It holds today’s date, the name and email from the form, and the phone, city and birthdate from the CV. The career fields follow, then the summary, a vote and the reasons for it. The prompt is in Italian, so expect the reasons in Italian until you translate it.

For newcomers and experts

If you are new. n8n draws a workflow as boxes joined by lines, and each box, a node, does one job. The form feeds two branches, one that saves the PDF and one that reads it. Two AI steps pull facts out of the text, Merge joins them, and two more write the summary and the vote. Test it with your own CV first, then open HR Expert in the run to see how it reasoned.

For experts. One chat model node feeds four chains, and the vote comes back as structured JSON.

Where to look closer
NodeWhat it doesWhat to know
Qualifications and Personal DataTwo Information Extractor nodes read the same PDF textBoth answer under output, so Merge folds them into one output object
Summarization ChainSummarization 2 with its own prompt, which carries the merged fieldsThe text lands in response.text, which HR Expert and the sheet read
HR ExpertA basic LLM chain with a Structured Output ParserIts answer is vote, a string, and consideration
Google SheetsAppends with the columns defined belowVersion 4.5 compares the sheet’s headers with the node’s column list and stops when one is missing

Good to know

A vote is a model’s opinion, and each run sends a CV to OpenAI.

  • A hint: a person should read the vote and the CV. A badly laid out PDF can lose details before the model sees them, and a scan with no text gives the model nothing
  • Personal data: each CV’s text goes to OpenAI, and the phone number and birthdate land in your sheet. Tell applicants what happens to their data, and check the hiring and data-protection rules where you operate
  • Files: Upload CV is a branch of its own, so the sheet holds no link to the saved PDF
  • Models: OpenAI’s deprecations page, read on 12 November 2026, gives 14 January 2027 as the shutdown date of gpt-4o-mini and names gpt-6-luna as its replacement. Pick the replacement in OpenAI before then
  • Billing: OpenAI bills at least four model calls for each CV, one in each of Personal Data, Qualifications, Summarization Chain and HR Expert
  • Open form: once the workflow is published, anyone with the form’s address can send CVs and spend your OpenAI key
  • A repair: the original copy read the name from Nome and filled a column called TELEFONO, which left two columns empty. Mindket’s copy fixes both
  • Credentials: the JSON holds none

README and files

README

Job applicant CV scored by AI and logged to Google Sheets

An n8n workflow with a CV form. An applicant sends a name, an email address and a PDF. The workflow keeps the PDF in
Google Drive, has an OpenAI model pull out the contact details and the career, summarizes them, and scores the applicant
from 1 to 10 against a profile you wrote. One row per applicant lands in a Google Sheet.

What is inside

  • workflow.json: the workflow as n8n exports it, 12 nodes beside 6 sticky notes. It holds no credential.
  • README.md: these notes.

What we changed from the original copy

The copy Mindket started from had two slips that left a column empty. Mindket fixed both:

  • Google Sheets read the applicant's name from Nome, but the form's field is called Name, so the NAME column
    stayed blank. It now reads Name.
  • The same node filled a column called TELEFONO, while the sheet's column list in the file calls it PHONE. A row is
    written by header name, so the phone number never arrived. The value now goes to PHONE.

The sheet's address and the Drive folder's address belonged to the original copy's own account. They now read
YOUR_SHEET_ID and YOUR_FOLDER_ID, and the cached names of that sheet are gone.

Before you start

  • An n8n instance, on n8n Cloud or your own server.
  • An OpenAI API key. The one chat model node uses gpt-4o-mini.
  • A Google account that can use both Drive and Sheets.
  • A Drive folder for the CVs.
  • A Google Sheet whose first row holds these twelve headers, spelled exactly as written: DATA, NAME, PHONE,
    CITY, EMAIL, DATA NASCITA, EDUCATIONAL, JOB HISTORY, SKILLS, SUMMARIZE, VOTE and CONSIDERATION. The
    node stops with "Column names were updated after the node's setup" when one is missing. Extra columns are fine.

Set it up

  1. In n8n, create a workflow, open its menu and choose Import from File. Pick workflow.json.
  2. Add an OpenAI credential and select it in OpenAI. That one node serves all four AI steps.
  3. Add a Google Drive OAuth2 credential and select it in Upload CV. Replace YOUR_FOLDER_ID with your folder's ID,
    the part of its address after /folders/.
  4. Add a Google Sheets OAuth2 credential and select it in Google Sheets. Replace YOUR_SHEET_ID with the sheet's ID,
    the part of its address between /d/ and /edit. The node writes to the sheet's first tab.
  5. Open Profile Wanted and replace its text with the profile you are hiring for.
  6. Save, open the form's test address, and send a test CV of your own as a PDF.
  7. Check the new row, then press Publish and share the form's production address.

How a run goes

  1. On form submission is the form, titled Send CV. It takes Name, Email and CV, which must be a .pdf.
  2. Upload CV saves the PDF in your Drive folder as CV- plus the date and the original file name.
  3. Extract from File reads the text out of the PDF.
  4. Personal Data asks the model for the telephone number, the city and the birthdate. Qualifications asks for the
    education and the job history, each in 100 words at most, and for the skills as a bulleted list.
  5. Merge joins the two answers into one item.
  6. Summarization Chain writes a summary of 100 words or less, in a conversational tone.
  7. Profile Wanted holds the profile text. It ships with a web agency looking for a full-stack developer in northern
    Italy.
  8. HR Expert compares the summary with that profile. A Structured Output Parser makes it answer with a vote and a
    consideration.
  9. Google Sheets appends one row: the date, the name, the phone, the city, the email, the birthdate, the education, the
    job history, the skills, the summary, the vote and its reasons.

Change the look

  • The profile: the text in Profile Wanted.
  • The scoring rule: the message in HR Expert. It asks for a vote, where the top mark is the ideal candidate, and
    for the reasons in consideration. It is written in Italian, as are the labels Profilo ricercato and Candidato.
    Translate it if you want the reasons in another language.
  • What is pulled out: the attributes of Qualifications and the schema of Personal Data.
  • The summary: the prompt in Summarization Chain.
  • The columns: the Google Sheets node and the sheet's first row, which must stay in step.
  • The model: OpenAI.

Good to know

  • A person should read the vote. It is a model's opinion of a summary of a PDF, and a badly laid out CV can lose
    details before the model sees them.
  • Each run sends the CV's text to OpenAI and writes the applicant's phone number and birthdate to your sheet. Tell
    applicants what happens to their data, and check the hiring and data-protection rules where you operate.
  • Upload CV is a branch of its own. Nothing later reads the saved file, so the sheet holds no link to it.
  • The form takes PDFs only, and a scanned PDF with no text layer gives the model nothing to read.
  • OpenAI's deprecations page, read on 12 November 2026, gives 14 January 2027 as the shutdown date of gpt-4o-mini
    and names gpt-6-luna as its replacement. Pick the replacement in OpenAI before then.
  • Billing: OpenAI bills at least four model calls for each CV, one in each of Personal Data, Qualifications,
    Summarization Chain and HR Expert.
  • Once the workflow is published, anyone with the form's address can send CVs and spend your OpenAI key.
  • The JSON holds no credential. The Profile Wanted text is an example for the original copy's own search.
Files
NOTICE.md  639 B
README.md  5 KB
workflow.json  18 KB

3 files, 24 KB, downloaded as a zip.

What’s new

  • Version 1 · 2026-11-12

Reviews

No ratings yet

Write a review

No reviews yet.

More from Mindket

See all from Mindket

anaksor-ocr

Sokheng · Kit

Reads Khmer and English text from documents, receipts and photos of signs, using a detector for text lines and a recogniser for each line. Suits developers who…

New

Qwen2.5-7B-Instruct as GGUF files in eight quantization sizes, to chat with locally through llama.cpp. For people who want a capable 7.6B model on their own co…

New

ACE-Step 1.5 XL SFT

ACE-Step · Kit

Generates music from text with a 4B diffusion decoder, 50 steps and guidance control, aiming for higher audio quality than the base. For creators with a GPU of…

New

Similar in Business

See all in Business

pplx-decider-v1.1-27b

perplexity-ai · Kit

Picks the best option for a decision from text and images, such as which team should handle a request, with a probability for each choice, for developers who b…

New

NuExtract3

numind · Kit

Reads documents as text or images and fills a JSON template with the fields you ask for, or converts the pages to Markdown. A 4B model for teams that process s…

New

Drex DLM

nace-ai · Kit

Scores yes or no, multiple choice and rating questions about a document in one pass, with a probability for every option. An 8B decision model from Nace.AI tha…

New