Automate Résumé Screening with n8n + GPT-4 – form-to-email in one flow

Why you’ll love this workflow

  • Speed at scale – every PDF is screened in seconds while candidates are still warm.
  • Consistent judgment – the same prompt reviews each applicant, reducing bias and reviewer drift.
  • Instant insight – GPT returns clean JSON, so scores drop straight into your CRM or analytics stack.

What the flow does

  1. Presents a simple form that accepts a PDF résumé and the candidate’s email.
  2. Extracts résumé text automatically.
  3. Sends the text and a consulting-style prompt to GPT-4-mini to decide fit.
  4. Emails a pre-written assessment back to you (or your team).

Prerequisites

  • Running n8n instance (cloud or self-hosted).
  • OpenAI API key.
  • SMTP credentials for outbound mail.

Node-by-node setup

  1. Form Trigger – two required fields: PDF upload and email.
  2. Extract From File – operation pdf, binary property set to the upload field.
  3. OpenAI – model gpt-4.1-mini; system + user messages already in the JSON.
  4. Send Email – maps subject and body from GPT’s JSON response to an email sent from your mailbox.

Step-by-step setup

  1. Spin up n8n
  1. Add a Form Trigger
  • Drag Form Trigger onto the canvas.
  • Form title: Resume Screener.
  • Click Add field twice.
    • Field 1: Please upload your resume → type File, accept .pdf, single file, required.
    • Field 2: What is your email? → type Email, required.
  • In Options, turn off Append attribution.
  • Save; n8n shows a public URL you can share or embed. docs.n8n.io
  1. Extract text from the PDF
  • Add Extract From File and connect it to the Form Trigger.
  • Operation: pdf.
  • Binary property: choose the upload field (n8n autogenerates a slug such as Please_upload_your_resume).
  • Leave other settings default. This node outputs plain text in $json.text. docs.n8n.io
  1. Call GPT-4 for the assessment
  • Add an OpenAI node, connect from the Extract node.
  • Select your OpenAI credential.
  • Model: gpt-4.1-mini (or any GPT-4-o variant).
  • Turn on JSON output.
  • Messages:
    • System:

css

CopyEdit

You are a talent-screening assistant for a top tier management consulting company (eg BCG, Bain, McKinsey).

Your output must be JSON with:
email_subject
email_body
* **User**:

perl

CopyEdit

=Make an assessment as to the strength of this resume and the candidate's fit for a top tier management consulting company.

Here is the résumé text:

{{ $json.text }}

Output should form the basis of an email in txt formatting. It should address the person in the resume and sign off with: Jc

There should be CTA at the end of the email: Subscribe to my newsletter: https://aineversleeps.substack.com
  • Save. The node returns email_subject and email_body fields inside $json.message.content. docs.n8n.io
  1. Send the email
  • Add Send Email, connect from the OpenAI node.
  • Configure your SMTP credential.
  • From: Jonathan Chan <jonathan@aineversleeps.net> (replace as needed).
  • To:

javascript

CopyEdit

={{ $('On form submission').item.json['What is your email?'] }}
  • Subject:

bash

CopyEdit

={{ $json.message.content.email_subject }}
  • Body (set Email format to text):

bash

CopyEdit

={{ $json.message.content.email_body }}
  1. Activate and test
  • Click Activate in the top-right corner.
  • Open the public form URL, upload a PDF résumé, add your email, and submit.
  • Within seconds you’ll receive the GPT-crafted assessment in your inbox.

Re-use the pattern elsewhere

  • Swap the PDF field for a Pitch deck upload, change the prompt to “VC analyst”, and auto-score startups.
  • Feed contract PDFs, prompt GPT to highlight renewal deadlines and risky clauses, then email legal.
  • Accept research papers, ask GPT to summarise methodology and findings, and push the output to a knowledge base.

Trigger → Extract → GPT → Route/Store is a versatile backbone for any document-heavy workflow.


Grab the ready-to-run file

Download the full workflow JSON

Import into n8n, drop in your OpenAI and SMTP credentials, and you’re live.