AutomationFlowsAI & RAG › AI Resume Job Title Extractor with Google Gemini

AI Resume Job Title Extractor with Google Gemini

ByNavneet Singh Arora @navneet-singh-arora on n8n.io

AI Resume Job Title Extractor with Google Gemini

Event trigger★★★★☆ complexityAI-powered10 nodesRead Write FileExecute Workflow TriggerGoogle Gemini
AI & RAG Trigger: Event Nodes: 10 Complexity: ★★★★☆ AI nodes: yes Added:

This workflow corresponds to n8n.io template #14983 — we link there as the canonical source.

The workflow JSON

Copy or download the full n8n JSON below. Paste it into a new n8n workflow, add your credentials, activate. Full import guide →

Download .json
{
  "id": "resume-analyser-workflow",
  "meta": {
    "templateCredsSetupCompleted": true
  },
  "name": "AI-Resume-Job-Title-Extractor-with-Google-Gemini",
  "tags": [],
  "nodes": [
    {
      "id": "sticky-overview",
      "name": "Overview",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1088,
        -992
      ],
      "parameters": {
        "color": "#FEC942",
        "width": 372,
        "height": 812,
        "content": "## AI Resume Job Title Extractor\n\nAnalyses a PDF resume using Google Gemini and extracts the candidate's current job title. Designed to run as a sub-workflow called by the Job Search automation.\n\n### How it works\n1. Triggered by a parent workflow via the Execute Workflow trigger\n2. Reads the candidate's PDF resume from the local filesystem\n3. Extracts raw text from the PDF\n4. Sends the text to Gemini with a prompt to identify the current job title\n5. Returns the extracted job title and Gemini response parts to the calling workflow\n\n### Setup\n1. **Resume File**: Update the file path in the 'Read/Write Files from Disk' node to point to your resume PDF\n2. **Google Gemini**: Connect your Google Gemini (PaLM) API credentials in the 'Message a model' node\n3. **Model**: Uses Gemma-4-31B by default \u2014 swap in any Gemini model you prefer\n\n### Customisation\n- Adjust the prompt in 'Message a model' to extract different info (skills, years of experience, etc.)\n- Edit 'Return' to pass additional fields back to the parent workflow"
      },
      "typeVersion": 1
    },
    {
      "id": "sticky-section-1",
      "name": "Setup & PDF Extraction",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -560,
        -880
      ],
      "parameters": {
        "color": "#AEADAD",
        "width": 656,
        "height": 552,
        "content": "## Setup & PDF Extraction\nTrigger the workflow from a parent automation, read the resume PDF from disk, and extract its raw text for processing."
      },
      "typeVersion": 1
    },
    {
      "id": "sticky-section-2",
      "name": "AI Analysis & Output",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        128,
        -880
      ],
      "parameters": {
        "color": "#AEADAD",
        "width": 556,
        "height": 556,
        "content": "## AI Analysis & Output\nSend the extracted resume text to Google Gemini to identify the current job title, then return the result to the calling workflow."
      },
      "typeVersion": 1
    },
    {
      "id": "c337df28-cd6e-4411-ad84-12b33356c957",
      "name": "Read/Write Files from Disk",
      "type": "n8n-nodes-base.readWriteFile",
      "position": [
        -288,
        -704
      ],
      "parameters": {
        "options": {},
        "fileSelector": "/home/node/.n8n-files/Navneet-Resume.pdf"
      },
      "typeVersion": 1.1
    },
    {
      "id": "7208b89a-301d-4bac-b73c-9a6e9f02977b",
      "name": "Extract from File",
      "type": "n8n-nodes-base.extractFromFile",
      "position": [
        -64,
        -704
      ],
      "parameters": {
        "options": {},
        "operation": "pdf"
      },
      "typeVersion": 1.1
    },
    {
      "id": "5a32f956-b316-4a28-b50f-c25ec8f328f4",
      "name": "Return",
      "type": "n8n-nodes-base.set",
      "position": [
        496,
        -704
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "338084ba-f9f9-4f26-85d2-7b37d7853aa8",
              "name": "text",
              "type": "string",
              "value": "={{ $('Extract from File').item.json.text }}"
            },
            {
              "id": "c3571360-cfaa-4bd1-ad17-f25106799a3b",
              "name": "content_parts",
              "type": "string",
              "value": "={{ $json.content.parts }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "2261e908-c791-46e0-ab38-a042ee2f9a1b",
      "name": "Start",
      "type": "n8n-nodes-base.executeWorkflowTrigger",
      "position": [
        -512,
        -768
      ],
      "parameters": {
        "inputSource": "passthrough"
      },
      "typeVersion": 1.1
    },
    {
      "id": "e3bcb3c5-816d-41ad-bb53-2d07e13ddbe1",
      "name": "Message a model",
      "type": "@n8n/n8n-nodes-langchain.googleGemini",
      "position": [
        208,
        -704
      ],
      "parameters": {
        "modelId": {
          "__rl": true,
          "mode": "list",
          "value": "models/gemma-4-31b-it",
          "cachedResultName": "models/gemma-4-31b-it"
        },
        "options": {},
        "messages": {
          "values": [
            {
              "content": "=Analyse the resume text: {{ $json.text }}.\n\nIdentify the current job title.\nOutput ONLY a single search string."
            }
          ]
        },
        "builtInTools": {}
      },
      "credentials": {
        "googlePalmApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1.1
    },
    {
      "id": "c77e2a21-9104-495c-bff5-7b4946cea1fe",
      "name": "Setup & PDF Extraction1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -336,
        -736
      ],
      "parameters": {
        "color": "#C96464",
        "width": 192,
        "height": 360,
        "content": "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nUpdate the path for the Resume:\n1. Open this node.\n2. Update the path under File(s) Selector"
      },
      "typeVersion": 1
    },
    {
      "id": "9409fbf9-0c7a-4f11-b1e7-6123c6b497e0",
      "name": "Setup & PDF Extraction2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        176,
        -736
      ],
      "parameters": {
        "color": "#C96464",
        "width": 288,
        "height": 376,
        "content": "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nUpdate your Google Credentials:\n1. In Google AI Studio, create your API Key.\n2. Open this node and under Credentials, click on Create New Credentials and update the Host and the API Key"
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "shared": [
    {
      "role": "workflow:owner",
      "project": {
        "id": "gWkPS3Yo6L03U87I",
        "icon": null,
        "name": "Navneet Singh Arora <navneetsingh790@gmail.com>",
        "type": "personal",
        "createdAt": "2026-04-10T15:01:49.389Z",
        "creatorId": "fd932e6f-0271-41b5-9363-6f2454ac13dc",
        "updatedAt": "2026-04-10T15:07:46.566Z",
        "description": null
      },
      "createdAt": "2026-04-10T15:14:31.924Z",
      "projectId": "gWkPS3Yo6L03U87I",
      "updatedAt": "2026-04-10T15:14:31.924Z",
      "workflowId": "resume-analyser-workflow"
    }
  ],
  "settings": {
    "binaryMode": "separate",
    "availableInMCP": false,
    "executionOrder": "v1"
  },
  "createdAt": "2026-04-10T15:14:31.924Z",
  "updatedAt": "2026-04-15T22:00:28.793Z",
  "versionId": "b377fe59-bd35-4ee9-b1ec-c83bd14a973a",
  "isArchived": false,
  "staticData": null,
  "connections": {
    "Start": {
      "main": [
        [
          {
            "node": "Read/Write Files from Disk",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Message a model": {
      "main": [
        [
          {
            "node": "Return",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Extract from File": {
      "main": [
        [
          {
            "node": "Message a model",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Read/Write Files from Disk": {
      "main": [
        [
          {
            "node": "Extract from File",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  },
  "description": null,
  "triggerCount": 0,
  "versionCounter": 134,
  "activeVersionId": null,
  "versionMetadata": {
    "name": null,
    "description": null
  }
}

Credentials you'll need

Each integration node will prompt for credentials when you import. We strip credential IDs before publishing — you'll add your own.

Pro

For the full experience including quality scoring and batch install features for each workflow upgrade to Pro

About this workflow

AI Resume Job Title Extractor with Google Gemini

Source: https://n8n.io/workflows/14983/ — original creator credit. Request a take-down →

More AI & RAG workflows → · Browse all categories →

Related workflows

Workflows that share integrations, category, or trigger type with this one. All free to copy and import.

AI & RAG

This workflow transforms hours of manual video editing into an automated AI-powered pipeline. Perfect for anyone looking to repurpose long-form content into viral short-form clips.

Form Trigger, Execute Workflow Trigger, Gmail +3
AI & RAG

TEST_Child. Uses executeWorkflowTrigger, openAi, readWriteFile, agent. Event-driven trigger; 15 nodes.

Execute Workflow Trigger, OpenAI, Read Write File +4
AI & RAG

Sora 2 + Nano Banana Shot Generator | 单镜头生成器(子工作流,异步轮询 + 失败重试). Uses googleDrive, executeWorkflowTrigger, httpRequest, agent. Event-driven trigger; 74 nodes.

Google Drive, Execute Workflow Trigger, HTTP Request +3
AI & RAG

Sora 2 Pro Talking-Head Video Generator | AI 数字人口播视频生成(Sora 2 Pro + MiniMax TTS + FFmpeg 自动合成). Uses httpRequest, agent, lmChatOpenRouter, dataTable. Event-driven trigger; 74 nodes.

HTTP Request, Agent, OpenRouter Chat +5
AI & RAG

&gt; AI-powered nutrition assistant for Telegram — log meals, set goals, and get personalized daily reports with Google Sheets integration.

Telegram, Google Gemini, Google Gemini Chat +7