GeminiCreativeWritingAI score · 79/100AI-assisted edit · no obvious prompt-injection riskn8n.io

n8n Resume Screening & Behavioral Interviews with Gemini, ElevenLabs & Notion ATS

Applicant submits via Notion page → n8n extracts and parses resume → Gemini scores and creates ATS record → ElevenLabs AI voice interview → auto-writes assessment and audio back to Notion

ExperiencedStepsWorkflowPromptTip
Who
HR teams, recruiters, and talent acquisition professionals
You get
Automated resume screening (1-10), AI voice behavioral interview (1-5), Notion ATS records with drag-and-drop progress management
You need
n8n · google-drive · google-sheets · notion · gemini · elevenlabs

Constraints

Prerequisites: n8n instance (hosted or self-hosted), Notion account with free recruiting template, Google Drive/Sheets OAuth2 credentials, Google Gemini (googlePalmApi) credentials, ElevenLabs account with API key, Gmail and Calendly accounts for follow-up emails and scheduling. Template supports 3 requisitions in parallel by default; expandable.

What they did

Author Brian Coyle published this workflow in the n8n official template library, integrating a free Notion recruiting template, Google Drive/Sheets, Gemini LLM, and ElevenLabs AI voice agent to automate the full pipeline from application submission to AI behavioral interview assessment. The template defaults to 3 parallel requisitions across 67 nodes, split into Workflow 1 (resume processing) and Workflow 2 (interview assessment).

How it went

Per author report, the template automatically matches resumes against job descriptions and generates a 1-10 score; Notion auto-notifies the hiring manager at score ≥ 8. The ElevenLabs AI agent conducts voice interviews using preset behavioral questions and scoring rubrics, evaluating each response 1-5. Interview transcripts, scores, rationale, and audio are automatically written back to the Notion ATS, supporting drag-and-drop advancement to the next interview round.

Worth knowing

Compliance note: consult your jurisdiction's AI hiring regulations, including bias audits, risk assessments, and disclosure requirements, before deploying. The ElevenLabs Extract Audio node requires a valid xi-api-key in JSON headers; the placeholder reads "insert elevenlabs api key". Workflow 2's AI Agent depends on a Notion tool to dynamically pull evaluation_criteria, which must be non-empty in the Notion database. Template database IDs are placeholders and must be replaced with actual Notion databases. Each distinct job requisition requires its own ElevenLabs Conversation Agent URL. This site has not tested the workflow (reproduction=not_tested).

n8n workflow template

Structure checked · Not run-tested

Use “Import from File” in n8n, or copy the JSON and paste it into the editor. Connect your own accounts, then try test data. The template is inactive by default.

Setup and test checklist

Credentials to connect

  • Upload CV node: connect Google Drive OAuth2 credentials.
  • Link Audio in Notion node: connect Notion API credentials.
  • Get Applicant Record node: connect Notion API credentials.
  • Embed Resume in Notion node: connect Notion API credentials.
  • Get Job Description node: connect Notion API credentials.
  • Applicant Data Backup node: connect Google Sheets OAuth2 credentials.
  • Create Applicant Record node: connect Notion API credentials.
  • Upload Audio to Drive node: connect Google Drive OAuth2 credentials.
  • Google Gemini node: connect Google Gemini/PaLM API credentials.
  • Evaluation Criteria node: connect Notion API credentials.
  • Applicant Record node: connect Notion API credentials.
  • Update_Applicant_Record node: connect Notion API credentials.
  • Google Gemini Model node: connect Google Gemini/PaLM API credentials.

Configuration to replace

  • Source template is n8n public workflow #3765 (~67 nodes). Keep inactive after import; verify triggers, expressions and external API endpoints.
  • Sticky-note guidance is informational; replace placeholders with your own accounts, sheet schemas or channel IDs.

Test input and expected output

  • Manually run the main path once in a test workspace and confirm credentialed nodes authenticate without errors.
  • Drive one synthetic/redacted sample through and check output fields and downstream writes before enabling in production.

Template changes

  • Author credential bindings, webhookId and execution data are removed; the workflow is inactive. Nodes, connections and original prompts are preserved. Not run-tested in n8n.
  • No business-logic edits; verify keys, quotas and privacy compliance before use.

Template retrieved: 2026-10-25

Steps

  1. Configure Notion career page and n8n application forms

    Duplicate the free Notion recruiting template and set up job descriptions, interview questions, and evaluation criteria. In n8n, configure 3 Form Trigger nodes (Application Form 1/2/3), matching form titles and job codes to Notion postings. Edit each 'Click to Apply' button to point to the corresponding n8n form production URL. Configure Notion email automation templates: the AI interview invite must include the ElevenLabs Conversation Agent link; the HR interview invite must include the Calendly scheduling link. [First-test safety] Before the first test, duplicate the Notion template and Google Sheet as a test workspace, use a test Drive folder, and submit the form with your own test resume; only point "Click to Apply" at the production URL after writes look correct.

  2. Extract and parse resume

    When an applicant submits a form, n8n triggers Workflow 1. A hidden job_code field matches the applicant to the requisition. The PDF resume uploads to a designated Google Drive folder, and Extract from File extracts its text. Two Information Extractor nodes run in parallel: Applicant Personal Data extracts name, email, phone, and city; Applicant Qualifications extracts education, work history, skills, total years, and most recent title/employer.

    Execution prompt · Source text。Applicant Personal Data node systemPromptTemplate field

    You are an expert extraction algorithm.
    Only extract relevant information from the text.
    If you do not know the value of an attribute asked to extract, include the  attribute's value as N/A.

    Execution prompt · Source text。Applicant Qualifications node systemPromptTemplate field

    You are an expert extraction algorithm.
    Only extract relevant information from the text.
    If you do not know the value of an attribute asked to extract, you may omit the attribute's value.
  3. Summarize applicant and match job description

    The Merge node combines personal and qualification data. The Applicant Summary node generates a ≤300-word summary of education, job history, and skills. Concurrently, Get Job Description pulls the matching requisition from Notion by job_code, and Job Description Summary compresses it to ≤250 words.

    Execution prompt · Source text。Applicant Summary node combineMapPrompt field

    =Write a concise summary of the following:
    
    Educational qualification: {{ $json.output["Educational qualification"] }}
    Job History: {{ $json.output["Job History"] }}
    Skills: {{ $json.output.Skills }}
    
    Use 300 words or less. Be concise and conversational.

    Execution prompt · Source text。Job Description Summary node messages.messageValues[0].message field

    summarize this in less than 250 words
  4. Score resume and back up data

    The HR Expert node receives the job description summary and applicant summary, and Gemini evaluates fit, outputting a 1-10 resume score with rationale. A Structured Output Parser enforces resume_score and resume_evaluation fields. Then Applicant Data Backup appends applicant data to Google Sheets for compliance reporting.

    Execution prompt · Source text。HR Expert node text field (input template)

    =Profile received:
    {{ $json.job_description }}
    
    Candidate:
    {{ $('Applicant Summary').item.json.response.text }}

    Execution prompt · Source text。HR Expert node messages.messageValues[0].message field (system instruction)

    You are an HR expert and you need to understand if the candidate aligns with the profile sought by the company. You must give a score from 1 to 10, where 1 means the candidate does not align with what is required, while 10 means they are the ideal candidate because they fully reflect the desired profile. Furthermore, in the 'consideration' field, explain the reasoning behind your score.
  5. Create applicant record in Notion ATS

    The Create Applicant Record node creates a page in the Notion Applicant Tracker database, writing name, contact info, education, work history, skills, years of experience, resume score, AI assessment, and requisition title. Meanwhile, Resume URL generates a Google Drive preview link, Wait delays briefly, Get Applicant Record fetches the record, and Embed Resume in Notion attaches the resume. Notion automatically notifies the hiring manager when the resume score is ≥ 8.

  6. Process AI voice interview and write back assessment

    The hiring manager drags the applicant to the 'AI Interview' stage in Notion, triggering Notion automation to send the ElevenLabs interview link. After the interview, ElevenLabs sends a POST to n8n Workflow 2 via webhook. The ai_convo_items node maps conversation data: evaluation criteria results and rationale, phone number, name, call time, conversation ID, and full transcript. The AI Agent node uses Gemini to analyze the transcript, calling a Notion tool to fetch the evaluation_criteria for that role, and outputs a 1-5 overall interview score with a ≤300-word assessment. Filter_Notion_db matches the applicant record by phone, Update_Applicant_Record writes the score and criteria results. Extract_Audio downloads the recording (requires xi-api-key), Upload Audio to Drive saves it to Google Drive, and Link Audio in Notion embeds it for manager review.

    Execution prompt · Source text。AI Agent node options.systemMessage field

    You are an AI agent embodying the role of a skilled and objective Talent Acquisition Specialist. Your primary purpose is to review and critically evaluate answers to behavior-based interview questions. Review the full transcript and provide an expert evaluation of the candidate, based on their answers, using the evaluation criteria in the attached Notion tool to form the basis of your assessment. 
    
    Filter Criteria Instructions:
    Search the Notion database (attached tool) for the evaluation_criteria that matches the Job or Position title in the transcript First Message.  
    
    
    Provide a written assessment of the overall interview in a concise summary less than 300 words. Also provide a score 1 low to 5 high for the overall interview and place this at the start of the assessment. Confirm if you were able to use the evaluation criteria to make your assessment. Format the output as a text string.
    
    Example Output:
      "Score: 2 | The candidate's responses..."

Prompt you can copy

Setup guidance · Editorial suggestion。Hand to setup assistant; confirm inputs and permissions first

This block is the prompt. Ads are never placed here.

You are setting up an n8n automated recruiting workflow. First confirm you have the following credentials and permissions: n8n instance, Notion integration (notionApi), Google Drive/Sheets OAuth2 (googleDriveOAuth2Api, googleSheetsOAuth2Api), Google Gemini API (googlePalmApi), and ElevenLabs API key. Then proceed in order: 1) Duplicate the Notion recruiting template and configure job descriptions; 2) Import the template workflow into n8n and configure the 3 form triggers; 3) Connect the Google Drive folder for resumes and audio storage; 4) Configure Gemini model nodes; 5) Create an ElevenLabs Conversation Agent and set its Post-Call Webhook to the production URL from the n8n Webhook node; 6) Test end-to-end.

Before building, verify the ElevenLabs Post-Call Webhook URL matches the n8n Webhook node production URL; each requisition needs its own ElevenLabs Agent and interview link.

Source

Resume screening & behavioral interviews with Gemini, Elevenlabs, & Notion ATS · brianpcoyle · n8n.io · 2025-04-28

Comments & feedback

Tried this method? Share results, problems or improvements. Comments appear after moderation. Please avoid sensitive information.

Loading…

    Related