SOYOMA LogoSOYOMA

Automating CV-to-Job Matching

2025-07-23
Workflow
Featured image for Automating CV-to-Job Matching

Introduction

In this blog post, we’ll walk you through a powerful n8n automation that uses Telegram, Google Sheets, PDF parsing, and AI agents to evaluate a candidate's CV against a job description—all through a simple Telegram message.

Whether you're a recruiter, HR professional, or startup founder trying to streamline hiring, this workflow will help you automatically score resumes based on a defined rubric and return structured feedback using AI.

Let’s break it down step-by-step.


Use Case Overview

Imagine a scenario where:

  • You receive a CV in PDF format via Telegram.
  • The system automatically extracts the text from the PDF.
  • A matching job description is fetched from Google Sheets.
  • An AI agent compares the candidate CV to the job description using a detailed rubric.
  • The AI returns a JSON-formatted evaluation directly back to you in Telegram.

This n8n automation makes that flow completely seamless.


Workflow Architecture

Here’s a simplified overview of what the automation does:

  1. Telegram Trigger – Captures incoming messages and files.
  2. Extract from File – Extracts text from the PDF CV.
  3. Google Sheets – Pulls the relevant job description.
  4. AI Agent – Uses a pre-configured prompt to evaluate the CV vs. JD.
  5. Telegram Response – Sends the structured evaluation back to the sender.

Step-by-Step Breakdown

1. Telegram Trigger

The workflow starts with the Telegram Trigger node. It listens for incoming messages with file attachments (usually the candidate's CV in PDF format).

Updates: message
Download: true

This ensures any uploaded file is downloaded and passed into the next node.


2. Extract from File (PDF)

The Extract from File node processes the uploaded PDF and extracts its text content.

Operation: pdf
Binary Property: data

The output is the raw CV text, which will be used for comparison by the AI.


3. Fetch Job Description from Google Sheets

The Google Sheets node is used to retrieve the job description from a centralized document. This allows easy management and updating of job roles.

Sheet URL: [Link to your spreadsheet]
Sheet Name: Sheet1 (gid=0)

You can set up filters if needed, but in this case, it fetches the job description for matching against the incoming CV.


4. AI Agent – TalentMatch-GPT

This is the core intelligence of the workflow. We use a LangChain-powered AI agent to process and evaluate the match between the CV and job description.

AI Prompt Highlights:

  • The agent is instructed to score based on a custom rubric:

    • Skills match
    • Domain experience
    • Years of relevant experience
    • Education & certifications
    • Location & availability
    • Cultural fit
  • The output is returned in a strict JSON format with:

    • Overall score (0–100)
    • Sub-score breakdown
    • Top relevant experience bullets
    • Strengths and concerns
    • Final recommendation (Hire / No-Hire / Shortlist)

Here’s a snippet of what the output looks like:

{
  "candidate_name": "John Doe",
  "overall_score": 78,
  "breakdown": {
    "skills_match": 80,
    "domain_experience": 70,
    "years_relevant": 85,
    "education_certs": 90,
    "location_availability": 60,
    "cultural_values": 75
  },
  "top_relevant_experience": [
    "3 years in SaaS product marketing",
    "Managed cross-functional hiring projects",
    "Certified in HR analytics"
  ],
  "notes": {
    "strengths": ["Strong domain experience", "Relevant certifications"],
    "concerns": ["Limited info on cultural values"]
  },
  "verdict": "Shortlist"
}

The AI agent uses DeepSeek as the underlying language model with a low temperature setting for consistent, reliable outputs.


5. Return Result to Telegram

Finally, the result is sent back to the Telegram user who submitted the CV.

Chat ID: Taken dynamically from incoming message
Text: JSON output from the AI

The recruiter receives a clean, structured evaluation without any manual effort.


Benefits of This Automation

  • Real-time Resume Screening via Telegram
  • 🎯 Objective Scoring using an AI rubric
  • 📄 PDF Parsing without needing external tools
  • 📊 Google Sheets Integration for easy JD management
  • 🤖 Reliable AI Agent with strict output format
  • 🔄 End-to-End Automation from input to evaluation

Final Thoughts

This n8n automation brings a mini hiring assistant right into your Telegram. With a few smart integrations and a well-crafted AI prompt, you can automate what typically takes hours—resume screening, scoring, and decision-making.

You can further enhance this setup by:

  • Logging results to Airtable or Notion
  • Sending alerts via Slack or Email
  • Automatically populating applicant tracking systems (ATS)

Try It Yourself

If you’re comfortable setting up workflows in n8n, all you need to do is:

  1. Set up a Telegram bot and get the credentials.
  2. Connect Google Sheets with job descriptions.
  3. Use the LangChain Agent node and paste in the full prompt.
  4. Add the flow as described in this blog.

Let automation do the heavy lifting for your hiring process!