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
- Presents a simple form that accepts a PDF résumé and the candidate’s email.
- Extracts résumé text automatically.
- Sends the text and a consulting-style prompt to GPT-4-mini to decide fit.
- 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
- Form Trigger – two required fields: PDF upload and email.
- Extract From File – operation
pdf, binary property set to the upload field. - OpenAI – model
gpt-4.1-mini; system + user messages already in the JSON. - Send Email – maps subject and body from GPT’s JSON response to an email sent from your mailbox.
Step-by-step setup
- Spin up n8n
- Sign up or deploy self-hosted. My fast start link is Powerful Workflow Automation Software & Tools - n8n
- Log in, click Create workflow.
- 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
- 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
- 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_subjectandemail_bodyfields inside$json.message.content. docs.n8n.io
- 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 }}
- Turn off Append attribution in Options. docs.n8n.io
- 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.