Mindket

ERPNext job applicants scored against the opening by AI

Newversion 1 · updated

Overview

An n8n workflow for ERPNext. A webhook sends each new job applicant to Google Gemini, which scores the resume against the job opening. The workflow saves the score and sets the applicant’s status.

ERPNext job applicants scored against the opening by AI 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, and let ERPNext post to the webhook’s production address
  • Your own n8n server: the same file, with the webhook open to your ERPNext
  • ERPNext: a webhook on the Job Applicant doctype that fires on insert, plus three custom fields
  • Google Gemini: reads the resume and the job description, then writes the score

Platform

Connects 4 apps

How it works

Trigger

New job applicant in ERPNext

It starts when ERPNext sends a new applicant to the webhook, with:

  • The applicant’s ID, as name
  • The opening applied for, as Job_opening
  • A link to the resume, as resume_link

Actions

  1. An applicant with no resume link is set to Rejected, and one with no opening is set to Hold
  2. The PDF resume is downloaded and turned into text
  3. The job opening and its description are fetched from ERPNext
  4. Google Gemini compares the resume with the opening and writes a fit level, a score, a rating and a reason
  5. The four values are saved on the applicant in ERPNext
  6. A score under 80 sets the status to Rejected, and 80 or more sets Accepted

Result

Each applicant carries an AI score and a reason in ERPNext, with a status of Accepted, Rejected or Hold

Integrations

What you need before you start.

ERPNext

Applicants and openings

Sends each new applicant to the webhook, returns the job opening, and takes the score and the status back.

NeedsAn ERPNext API credential, a webhook on Job Applicant and three custom fields

Google Gemini

Language model

Reads the resume text and the job description, then writes the fit level, score, rating and reason.

NeedsA Google Gemini API key

Microsoft Outlook

Applicant notice, empty

An empty node after a rejection, left for you to write an email to the applicant. It sends nothing until you fill it in.

NeedsA Microsoft Outlook OAuth2 credential, if you use it

WhatsApp

Applicant notice, empty

An empty node after an acceptance, left for you to write a message to the applicant. It sends nothing until you fill it in.

NeedsA WhatsApp Business Cloud credential, if you use it

Workflow check

Checked by Mindket on 13 Nov 2026

Steps
21 steps, starting when its webhook is called
Not reached
1 node no run reaches: Txt File to Text (Example)
AI
1 step calls an AI model: Recruitment AI Agent
Sign-ins
Signs in to: ERPNext, Microsoft Outlook, WhatsApp Business and Google Gemini
API keys
No API key is left in the file
Step types
Mindket’s checker reads all 12 of its step types

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

About

What it is

This n8n workflow scores each new ERPNext job applicant against the opening they applied for. ERPNext calls a webhook when an applicant is added. A resume link that does not start with http gets the applicant rejected, and an applicant who named no opening is put on hold. For everyone else the workflow downloads the PDF resume, turns it into text and fetches the job opening. Google Gemini reads both and writes a fit level, a score from 0 to 100, a rating and a short reason. The workflow saves those four values on the applicant. A score under 80 sets the status to Rejected, and 80 or more sets Accepted. Two empty message nodes follow, ready for an email or a WhatsApp notice. The file holds 38 nodes, fifteen of them sticky notes.

Who it suits

HR teams and recruiters who run ERPNext and want a first screen of each application, with a score they can sort by. Skip it if a person must approve every rejection. As imported, an applicant who scores under 80 is set to Rejected with nobody looking.

Who uses it, and how
IndustryWho uses itHow they use itExample
StaffingRecruitersSort a large pile of applicants by fit before reading anyA staffing agency gets 200 applicants for one warehouse role and opens the highest scores first.
ManufacturingHR officersCheck technical applicants against the skills in the postingA factory scores each welder applicant against the skills its opening lists.
EducationSchool administratorsShortlist teaching applicants for a subjectA school ranks the applicants for its physics post by score.
RetailStore managersScreen seasonal applicants quicklyA retailer scores the applicants for a holiday supervisor role.

You need to know n8n and ERPNext: a webhook with a custom body, three custom fields on the applicant, two credentials and resume links that end in .pdf.

Where to use it

Any n8n that can reach your ERPNext and Google Gemini will run it. ERPNext has to reach the webhook’s address over the internet, and n8n has to open each resume link without a login.

  • n8n Cloud: import the file, and let ERPNext post to the webhook’s production address
  • Your own n8n server: the same file, with the webhook open to your ERPNext
  • ERPNext: a webhook on the Job Applicant doctype that fires on insert, plus three custom fields
  • Google Gemini: reads the resume and the job description, then writes the score

Setup

Download saves a zip with workflow.json and Mindket’s setup notes in your downloads folder. Add the three custom fields in ERPNext first.

What you need first
NeedDetail
n8nOn n8n Cloud or on a server of your own
ERPNextAn API credential, permission to add a webhook, and three custom fields on Job Applicant
GoogleA Google Gemini API key, added as a credential in n8n
ResumesPDF files whose link opens without a login, kept in the applicant’s Link field
The custom fields
Field nameWhat it holds
custom_fit_levelStrong Fit, Moderate Fit or Weak Fit
custom_scoreThe score from 0 to 100
custom_justification_by_aiThe reason Gemini gives
  1. In n8n, create a workflow, open its menu, choose Import from File and pick workflow.json.
  2. In ERPNext, add the three custom fields above to the Job Applicant doctype. applicant_rating is already there.
  3. Add an ERPNext API credential and select it in the three ERPNext nodes and in the three HTTP nodes that call ERPNext.
  4. In the three HTTP nodes, replace <YOUR_ERPNEXT_HOST> in the address with your ERPNext host, such as erp.example.com.
  5. Add a Google Gemini credential and select it in Google Gemini Chat Model.
  6. Fill in Microsoft Outlook and WhatsApp Business Cloud, or delete one or both. As they stand, neither has a recipient or a message.
  7. In ERPNext, add a webhook on the Job Applicant doctype that fires on insert. Its JSON body must carry name, Job_opening and resume_link. Use the Webhook test address first.
  8. Add a test applicant with a PDF link and an opening that has a description. Read the result, press Publish, then point ERPNext at the production address.

How to use it

Nothing to open once it is published. Add an applicant in ERPNext with a resume link and a job opening. The workflow runs for each new applicant and leaves a status on the record.

What to change for a different result
To changeWhere
How Gemini scores and what it writesThe prompt in Recruitment AI Agent
The pass mark, 80 by defaultIf score less than 80
Which resumes are acceptedResume Link Provided, and the rules in File Type
Whether an opening is requiredApplied Against Job
The modelGoogle Gemini Chat Model

Example

A school adds a physics teacher applicant, with a link to a PDF resume and its Physics Teacher opening. ERPNext posts the applicant to the webhook.

The workflow downloads the PDF and turns it into text, then fetches the opening and its description. Gemini compares the two and answers Strong Fit, a score of 86, a rating of 4 and a short reason. The applicant gets those values, and the status becomes Accepted because 86 is above 80.

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. This one has two gates near the start, then one long path to the AI step. Three statuses can come out: Rejected, Hold and Accepted. Test with an applicant of your own first.

For experts. Only the PDF route is wired, and Gemini’s answer is read back by fixed labels.

Where to look closer
NodeWhat it doesWhat to know
File TypeSorts the link by its ending: .pdf, .doc or .jpgOnly the .pdf output leads on, and the match is case sensitive, so .PDF goes nowhere
Download PDF ResumeFetches the link with no credentialThe link has to open without a login
Recruitment AI AgentRuns a ReAct agent on Gemini with the job description and the resume textA scanned PDF gives it no text to read
Convert to FieldsReads the fit level, score, rating and reason from the answer by text patternsThe answer must keep the labels FitLevel:, Score:, Rating: and Justification:
If score less than 80Rejects below 80 and accepts the restA score of exactly 80 is accepted

Good to know

A low score sets Rejected with nobody looking, and two of its nodes are empty.

  • Model: the file named gemini-2.0-flash-exp. Google’s deprecations page, read on 12 November 2026, shows the 2.0 flash family shut down on 1 June 2026, with gemini-3.6-flash as the replacement, and Mindket set that one
  • Automatic rejection: a score under 80 sets Rejected with nobody reading it. Rules on automated hiring decisions differ by country and city, so check yours first, or point the rejecting HTTP node at Hold
  • Empty notices: Microsoft Outlook and WhatsApp Business Cloud have no recipient, subject or message. Fill them in or delete them before the first test
  • Rating: Frappe’s Rating field stores a share from 0 to 1 (its rating control, read the same day), and the workflow sends the model’s 0 to 5 as it is. If the stars all show full, divide the rating by 5 in the node that saves the values
  • Resume files: only .pdf links go on. A .doc or .jpg link ends the run with no change to the applicant, and a scanned PDF reaches Gemini with no text
  • Open webhook: Webhook has no authentication, so anyone who learns its address can post a fake applicant. Add Header Auth in the node and in ERPNext
  • Your data: the resume text and the job description go to Google Gemini, and both can hold personal data
  • Credentials: the JSON holds none. Mindket changed the webhook path, which carried its author’s site name, and left out a sticky note that held its author’s credit, a payment link and an advert

README and files

README

ERPNext job applicants scored against the opening by AI

An n8n workflow for ERPNext. When a job applicant is added, it reads the PDF resume, compares it with the job opening and has
Google Gemini write a fit level, a score, a rating and a reason. It saves them on the applicant, and a score under 80 sets the
status to Rejected while 80 or more sets Accepted.

What is inside

  • workflow.json: the workflow as n8n exports it, 38 nodes. Fifteen are sticky notes that explain its steps. It holds no
    credential.
  • README.md: these notes.

What we changed from the original copy

  • The model was gemini-2.0-flash-exp. It is now models/gemini-3.6-flash, which Google names as the replacement for its 2.0
    flash family.
  • The prompt asked for FitLevel with no colon, while Convert to Fields looks for FitLevel:. The prompt now has the colon,
    so the fit level is found.
  • Three HTTP nodes called its author's own ERPNext address. They now say <YOUR_ERPNEXT_HOST>, so put in your own.
  • The webhook path carried its author's site name. It is now erpnext-job-applicant-shortlist.
  • A sticky note with its author's credit, a payment link and an advert is left out.
  • Every credential link is gone, so select your own in each node that needs one.
  • Nothing else. Microsoft Outlook, WhatsApp Business Cloud and Txt File to Text (Example) are as the original left them.

Before you start

  • An n8n instance, on n8n Cloud or your own server.
  • An ERPNext site with the Job Applicant doctype, an API credential for n8n, and permission to add a webhook and custom fields.
  • A Google Gemini API key.
  • Resumes stored as PDF links that open without a login. The download node sends no credential.

Set it up

  1. In n8n, create a workflow, open its menu and choose Import from File. Pick workflow.json.
  2. In ERPNext, add three custom fields to the Job Applicant doctype, with these field names: custom_fit_level,
    custom_score and custom_justification_by_ai. applicant_rating is already there.
  3. Add an ERPNext API credential and select it in ERPNext - Reject if Resume not Attached, ERPNext - Hold Applicant,
    Get Job Opening, Reject Applicant, Update Applicant Data and Accept Applicant.
  4. In Reject Applicant, Update Applicant Data and Accept Applicant, replace <YOUR_ERPNEXT_HOST> in the address with your
    ERPNext host, such as erp.example.com.
  5. Add a Google Gemini credential and select it in Google Gemini Chat Model.
  6. Fill in Microsoft Outlook and WhatsApp Business Cloud, or delete one or both. As they stand, neither has a recipient or a
    message.
  7. In ERPNext, add a webhook on the Job Applicant doctype that fires on insert. Its JSON body must carry name, Job_opening
    (the opening applied for, or the text None) and resume_link (a link ending in .pdf). Use the Webhook test address first.
  8. Add a test applicant with a PDF link and an opening that has a description. Read the result in ERPNext, press Publish, then
    point ERPNext at the production address.

How an applicant runs

  1. Webhook receives the applicant. Code adds a field called myNewField that nothing uses, and ApplicantData keeps the
    request body.
  2. Resume Link Provided checks that body.resume_link starts with http. If not, ERPNext - Reject if Resume not Attached
    sets the status to Rejected and the run ends.
  3. Applied Against Job checks that body.Job_opening is not the text None. If it is, ERPNext - Hold Applicant sets the
    status to Hold and the run ends.
  4. Reume Attachment Link copies the link into body.resume_attachment, and File Type sorts it by its ending. Only the pdf
    output leads on.
  5. Download PDF Resume fetches the file, PDF to Text reads its text and Merge1 passes it on.
  6. Get Job Opening fetches the opening from ERPNext by name.
  7. Recruitment AI Agent sends Gemini the job title, the description and the resume text, and asks for FitLevel, Score,
    Rating and Justification.
  8. Convert to Fields reads the four values out of the answer, and Update Applicant Data saves them on the applicant.
  9. If score less than 80 decides. Reject Applicant sets Rejected, and Accept Applicant sets Accepted. The empty
    Microsoft Outlook and WhatsApp Business Cloud nodes come after them.

Change the result

  • The scoring: the prompt in Recruitment AI Agent. It says what to compare and how to grade.
  • The pass mark: the 80 in If score less than 80.
  • What a low score does: Reject Applicant. Set its status to Hold if a person should decide.
  • What counts as a resume: Resume Link Provided, and the three rules in File Type.
  • The model: Google Gemini Chat Model.
  • A message to the applicant: fill in Microsoft Outlook or WhatsApp Business Cloud.

Good to know

  • Google's deprecations page, read on 12 November 2026, shows the 2.0 flash family shut down on 1 June 2026, with
    gemini-3.6-flash as its replacement. It does not list the experimental gemini-2.0-flash-exp by name.
  • A score under 80 sets Rejected with nobody reading it. Rules on automated hiring decisions differ by country and city, so
    check yours first, or point Reject Applicant at Hold.
  • Microsoft Outlook and WhatsApp Business Cloud are empty. They have no recipient, subject or message, so fill them in or
    delete them before the first test.
  • Frappe's Rating field stores a share from 0 to 1 (Frappe's rating control, read on 12 November 2026), and `Update Applicant
    Data` sends the model's 0 to 5 as it is. If the stars all show full, divide the rating by 5 in that node.
  • Only .pdf links go on, and the match is case sensitive. A .doc or .jpg link ends the run with no change to the
    applicant, and a scanned PDF reaches Gemini with no text to score.
  • Txt File to Text (Example) has no input. It is a sketch of a second file type.
  • Webhook has no authentication, so anyone who learns its address can post a fake applicant. Add Header Auth in the node and
    in ERPNext.
  • The resume text and the job description go to Google Gemini. Both can hold personal data.
  • Each applicant that gets this far costs at least one Gemini call under your key's plan.
Files
NOTICE.md  640 B
README.md  6 KB
workflow.json  29 KB

3 files, 35 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

Bonsai-27B-GGUF

lmstudio-community · Kit

A GGUF conversion of the 27B Bonsai model for LM Studio, with a 3.80 GB Q1_0 language file and a 0.93 GB BF16 vision projector. Tested for text, vision and par…

New

Runs DeepSeek-V4.1-Flash-1017 as a 2.9 bits-per-weight EXL3 quantization, a 196 GiB copy for people serving large models on their own hardware. Perplexity stay…

New

MusicGen Small

facebook · Kit

Generates short music clips from a text description or an audio prompt, in the small checkpoint of facebook's MusicGen. It suits developers and music hobbyists…

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