Analyze a Resume with an AI Agent and Match It to a Job Offer (Free n8n Workflow + Video Guide + Tutorial + Download)

This guide shows you how to automate the analysis of a PDF resume using an AI agent integrated into n8n, which extracts key data and compares it to a job offer.

In just seconds, you’ll get a structured candidate profile and a precise matching score — no manual sorting or copy-pasting required.

You can download the ready-to-use workflow, follow the step-by-step video tutorial, and adapt it to your own hiring process — without writing a single line of code.

This n8n workflow includes an AI agent that automatically analyzes a resume against a job description. It calculates a match score and triggers automated actions like sending emails based on the result.

Hack’celeration: What the so-called experts never show you? We give it to you.

Qonto logo, online banking solution for professionals.
Gymlib logo, fitness and wellness platform for companies.
Yousign logo, electronic signature service.
Spendesk logo, spend management platform.
Liligo logo, travel comparison tool.
Online restaurant reservation platform.

What the n8n Automation Enables to Automatically Analyze a Resume with an AI Agent and Measure Matching

Want to instantly know if a resume matches a job offer without spending hours reviewing profiles? This n8n automation helps you pre-qualify every candidate with an AI agent.

Here’s how it works: download the ready-to-use workflow, upload a PDF resume and a job description, and get a detailed matching score with all data sorted in Google Sheets.

Bonus: you can fully customize the trigger (e.g. fetch applications via email or API) and automatically send a rejection email or alert when a strong candidate is identified.

No more guessing or manual review — with n8n and this AI agent, you qualify the right candidates in seconds, for free and with zero effort.

To make things easy, the workflow you download is fully ready to use: each step in the scenario includes clear annotations directly inside n8n. You can see exactly how the AI agent compares the resume to the job offer.

Along with the workflow, you’ll get a detailed video tutorial and a step-by-step guide that walk you through setup and customization. You can use it as-is or connect it to your existing tools.

The goal: help you automatically pre-qualify each application with no coding, using an AI agent that scores profiles based on your job criteria.

This video shows the complete n8n workflow: it first extracts structured resume data from a PDF, then uses an AI agent to assess the candidate's fit for a job offer. A matching score is generated and actions (like sending emails) are triggered automatically.

Tutorial Video – Analyze a Resume with an AI Agent and Compare It to a Job Offer

n8n Workflow Details: Step-by-Step Guide with Screenshots (AI Agent Matching Resume & Job Offer)

This video shows the prerequisite n8n workflow: it automatically extracts key data (name, email, experience, languages…) from a PDF resume. The results are neatly structured in Google Sheets, ready for the next step: AI-powered matching analysis.

Prerequisite: Start with Resume Data Extraction (First Part of the Workflow)

This automation relies on an essential first step: automatically extracting and structuring data from a resume using an AI Agent. This initial setup is fully explained in a dedicated tutorial on a separate page.

You’ll learn how to turn a PDF resume into a structured file ready for analysis in Google Sheets, Notion, or your CRM. It comes with a ready-to-use n8n workflow, a step-by-step guide, and a detailed video tutorial.

Before setting up this new automation, make sure to complete the first part explained in the previous guide. This ensures all resume data is clean and ready for the matching analysis.

In this first step of the n8n workflow, the scenario automatically retrieves the content of a job offer stored in Google Docs. The module lets you connect your document and extract the job description in real time for the upcoming AI analysis.

Step 1: Fetch the Job Offer from a Google Docs

This first step connects your workflow to a Google Docs document containing a job offer. The job description will be used by the AI agent to automatically assess compatibility with each resume received.

The Google Docs module makes it easy to extract the job posting text directly from a document, without manual copy-paste. This makes your automation fully dynamic and reusable.

➡️ Parameters to configure:

  • Operation: Get (read existing document)
  • Document URL: paste the URL of the Google Docs containing the job offer
  • Authentication: select your Google Docs account (OAuth2)

You can use a different URL for each execution, depending on the job you’re hiring for. That makes the AI matching adaptable to any recruitment process.

This video shows the core step of the n8n workflow where the AI Agent is triggered with two prompts. The System Prompt defines the matching logic and custom scoring, while the User Prompt dynamically includes both resume data and job description. This process delivers an accurate compatibility score.

Step 2: Analyze the Resume Against the Job Description

This step activates an AI Agent integrated into n8n that automatically compares a resume to a job description. Both the job listing and the resume content are processed in a structured prompt to generate an accurate compatibility score.

By default, the analysis uses 4 weighted criteria out of a total of 100 points:

  • Key Skills (40 points): checks how well the candidate’s skills match the requirements
  • Relevant Experience (30 points): compares past experience with the job responsibilities
  • Tools & Methodologies (20 points): verifies familiarity with the tools or processes mentioned in the job offer
  • Education (10 points): assesses how the degree level and specialization align with the job requirements

The result is a structured JSON output containing individual scores for each criterion, plus a global matching score that can be reused throughout the workflow.

Note: This scoring system is fully customizable. You can adjust the analysis criteria, change the weights, or add new ones like location, spoken languages, availability, and more.

This lets you tailor the AI Agent to your unique evaluation standards or specific recruitment workflows.

This step shows the connection between the AI Agent and the GPT language model used for automated analysis. The workflow here is set up with OpenAI's GPT-4o, but it's fully customizable — you can switch to any model, API, or provider that fits your needs.

Step 3: Connect the AI Model (GPT-4o)

This step connects the workflow to an advanced language model used to analyze both the resume and the job description. By default, it uses OpenAI’s GPT-4o, a powerful and reliable model known for its accuracy and performance.

The model is called through the LangChain Chat Model node, allowing the AI Agent to handle semantic matching and scoring logic, returning a clean and structured JSON response.

Good to know: you can replace GPT-4o with another compatible model. For example, use GPT-3.5 to reduce costs, or switch to a self-hosted model to keep your data private.

Everything is customizable at this step: model selection, generation settings, temperature, token limits, and more. The n8n automation is built to stay fully flexible and adaptable to your tech stack and privacy constraints.

In this step, the workflow uses the Structured Output module to define the expected format of the analysis result. Here you can see the target JSON, including detailed scores (skills, experience, tools, education) as well as a summary, to obtain a clean and usable output for the rest of the automation.

Step 4: Parse the AI Agent Results (Structured Output)

Once the AI Agent has compared the resume and the job offer, it returns a structured response including the total score, a breakdown by category, and a summary.

This step uses the Structured Output Parser module to convert the AI response into clean JSON data. You’ll be able to retrieve key fields such as:

  • match_score: overall matching score (out of 100)
  • criteria.skills, criteria.experience, etc.: individual sub-scores
  • summary: a human-readable summary of the evaluation

The main benefit is getting a well-structured and usable JSON output that can be pushed to Google Sheets, Notion, Airtable, or used to trigger other workflow actions like automated emails or internal alerts.

Bonus: everything is already formatted, so you can directly plug these values into the next steps of your n8n automation — no extra processing needed.

Once the AI analysis is complete, the workflow automatically updates the corresponding row in Google Sheets with the matching score, individual criteria scores, and the generated summary. This lets you centralize all candidate data in a structured table, ready to be filtered and used.

Step 5: Automatically Update a Row in Google Sheets

Once the resume analysis is complete, this step lets you centralize all data in Google Sheets. Each row represents a candidate, identified by their email address.

The Google Sheets node is set to “Update” mode to modify an existing row based on the candidate’s email. This avoids duplicates and keeps your table always up to date.

Automatically updated fields:

  • match_score: overall score calculated by the AI
  • skills, experience, tools, education: individual scores by category
  • summary: analysis summary
  • job_title: analyzed job position

All values come from the structured parser in the previous step. Thanks to this integration, you can visualize results in a clear spreadsheet, filter or sort them, or link them to other workflows (e.g., alerts, follow-up emails, CRM updates…)

Pro tip: you can fully customize which columns get updated, how matching is done (e.g., with a unique ID), and even add more fields to improve your candidate tracking system.

This step showcases the use of the IF module in n8n: based on the matching score generated by the AI agent, the workflow follows two different paths. If the score is below a defined threshold, it moves to the FALSE path (e.g., rejection email). Otherwise, it follows the TRUE path for positive follow-up (e.g., recruiter alert, meeting scheduling…).

Step 6: Filter Applications with a Low Matching Score

Thanks to the “If” node, you can automate the first decision: should this application be processed further?

In this example, we’ve set a threshold of 20 points (out of 100). If the candidate’s overall match_score is below that threshold, the workflow can:

  • Send an automated rejection message
  • Completely skip the candidate in the next steps
  • Store the candidate separately in a dedicated tab or database

This step helps filter out candidates who don’t match the job requirements before triggering more advanced actions (CRM updates, notifications, etc.).

Of course, you can fully customize this logic: change the score threshold, combine it with additional filters (e.g., missing tool experience), or create multiple conditional paths for different evaluation levels.

When the matching score is low, this n8n module automatically sends a rejection email via Gmail. The message is fully customizable and lets you politely inform the candidate of the decision, while keeping your recruitment process automated and efficient.

Step 7: Automatically Send a Rejection Email if the Score Is Too Low

In this scenario, if the candidate’s score is too low (below 20 in our example), you can automatically send a rejection email using Gmail.

The message is dynamically personalized with the job title, adding just enough context for a professional and respectful message:

Subject: Your Application – {{ $json.job_title }}

Hi,

Thank you for your interest in the {{ $json.job_title }} position. After reviewing your application, we’ve carefully assessed the match between your profile and the key requirements for this role.

At this time, we believe there is not enough alignment to proceed with the next steps of the process.

We appreciate the time and effort you put into your application and wish you all the best in your job search and future professional endeavors.

Warm regards,  
Romain  
CEO

This step clearly demonstrates what can be automated once the AI analysis is complete.

But nothing is mandatory: you could choose to send a Slack notification, store the candidate for manual review, or create a follow-up task in your CRM. Everything is fully customizable.

Here, the automated email simply illustrates how far you can take the logic of pre-qualification — all the way to action.

If the AI analysis deems the resume relevant, this module triggers an automatic email notification to the recruiter. The email highlights a promising application ready for further review or an interview. Everything is fully automatable and customizable.

Step 8: Automatically Notify the Recruiter When a Strong Profile Is Detected

If a candidate reaches a sufficient score, the workflow can automatically send an email to a recruiter or decision-maker. The goal is to streamline the review process and only notify when a profile matches the position.

Here’s an example of an internal automated email:

Subject: Potential Candidate – {{ $json.job_title }} Application

Hi Romain,

A new application for the {{ $json.job_title }} position has been processed.

The candidate shows a strong match with the job requirements and may be worth reviewing in more detail.

Let me know if you’d like to receive their profile or schedule a follow-up.

Best,

This is, of course, just one example.

You can replace this action with whatever suits your workflow best:

  • Create a new record in a Notion or Airtable database
  • Send a notification via Slack, Discord, or Teams
  • Reach out to the candidate directly (with a Calendly link)
  • Add a follow-up task in your CRM (HubSpot, Pipedrive…)

Every part of this logic is 100% customizable based on your tools, team, and hiring process.

Why Automatically Analyzing a Resume and Matching It with a Job Offer Will Transform Your Hiring Process

Managing candidate applications or profiles in your CRM or ATS is essential to automate your recruitment process and make faster, smarter decisions. Reading a PDF resume is no longer enough — you need to analyze it in context, against a specific job offer, to instantly know whether a candidate is worth moving forward. Challenges with manual resume evaluation:
  • Partial or biased reading of resumes depending on the role or candidate profile.
  • Time wasted manually comparing resumes to job requirements.
  • Lack of consistent and objective scoring across candidates.
  • High risk of missing great profiles due to unclear evaluation.
Benefits of automatic resume-to-job scoring:
  • Instant and objective evaluation of every application.
  • Customizable scoring based on key job criteria (skills, tools, education, etc.).
  • Faster decisions and better prioritization of top profiles.
  • Seamless automation with Google Sheets, Notion, Airtable, or your CRM.
By connecting an AI agent to your recruitment process via n8n, you can not only extract data from a resume, but also intelligently match it against a specific job offer. The result: fast, reliable, automated pre-qualification — fully tailored to your scoring system.