8
n8n 中文网amn8n.com

简历信息提取器

高级

这是一个HR, AI领域的自动化工作流,包含 22 个节点。主要使用 If, Set, SplitOut, Supabase, HttpRequest 等节点,结合人工智能技术实现智能自动化。 从邮件附件提取简历数据并存储至Supabase

前置要求
  • Supabase URL 和 API Key
  • 可能需要目标 API 的认证凭证
  • Google 账号和 Gmail API 凭证
工作流预览
可视化展示节点连接关系,支持缩放和平移
导出工作流
复制以下 JSON 配置到 n8n 导入,即可使用此工作流
{
  "id": "GtN4XdkLIPMBIqSU",
  "meta": {
    "instanceId": "82cad572864ecfae931ea0fa4a2122d5ad401b8f2cb25fb3ff144b553e0d676d"
  },
  "name": "简历信息提取器",
  "tags": [],
  "nodes": [
    {
      "id": "76cdbf85-39be-4617-8215-10d728f281eb",
      "name": "Gmail 触发器",
      "type": "n8n-nodes-base.gmailTrigger",
      "position": [
        80,
        80
      ],
      "parameters": {
        "simple": false,
        "filters": {},
        "options": {
          "downloadAttachments": true
        },
        "pollTimes": {
          "item": [
            {
              "mode": "everyMinute"
            }
          ]
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "cd0204d2-07b5-4ca7-821a-4a69289f5af1",
      "name": "从文件提取",
      "type": "n8n-nodes-base.extractFromFile",
      "position": [
        560,
        80
      ],
      "parameters": {
        "options": {},
        "operation": "pdf",
        "binaryPropertyName": "attachment_0"
      },
      "typeVersion": 1
    },
    {
      "id": "4814f698-4598-4f07-8493-3ffa5d256847",
      "name": "编辑字段",
      "type": "n8n-nodes-base.set",
      "position": [
        780,
        80
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "b5b82b5d-ae4e-43d9-835b-13c9f86555e7",
              "name": "text",
              "type": "string",
              "value": "={{ $json.text }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "7e5b3608-b081-4c1a-b349-9ab4fc2d0a1c",
      "name": "基础 LLM 链",
      "type": "@n8n/n8n-nodes-langchain.chainLlm",
      "position": [
        1000,
        80
      ],
      "parameters": {
        "text": "=You are an HR expert, you are given a detailed CV text \nextract \nName \nEmail \nTelephone \nExperience \nSkills \nEducation \nThis is the CV text: {{ $json.text }}",
        "promptType": "define",
        "hasOutputParser": true
      },
      "typeVersion": 1.6
    },
    {
      "id": "04745a86-bf30-46e1-a8e0-b81bd88cf4fe",
      "name": "OpenRouter Chat Model",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenRouter",
      "position": [
        1000,
        300
      ],
      "parameters": {
        "model": "meta-llama/llama-4-scout:free",
        "options": {}
      },
      "typeVersion": 1
    },
    {
      "id": "9410f9c8-5df8-4c57-9c50-8f54e14eb14e",
      "name": "多表:您可以连接多个表以实现有组织的数据结构",
      "type": "@n8n/n8n-nodes-langchain.outputParserStructured",
      "position": [
        1180,
        300
      ],
      "parameters": {
        "jsonSchemaExample": "{ \n\"Name\": \"Firstname Lastname\", \n\"Telephone\": \"01788798797\", \n\"Email\": \"a@b.com\", \n\"Education\": [\"University 1\", \"University 2\"], \n\"Skill\": [\"Skill 1\", \"Skill 2\", \"Skill 3\"], \n\"Experience\": [\"Job 1\", \"job 2\", \"job 3\"] \n}"
      },
      "typeVersion": 1.2
    },
    {
      "id": "4aeae52b-8d83-4b01-9731-931d49916afa",
      "name": "HTTP 请求",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        1360,
        80
      ],
      "parameters": {
        "url": "[supabase URL]",
        "method": "POST",
        "options": {},
        "sendBody": true,
        "sendHeaders": true,
        "bodyParameters": {
          "parameters": [
            {
              "name": "name",
              "value": "={{ $json.output.Name }}"
            },
            {
              "name": "telephone",
              "value": "={{ $json.output.Telephone }}"
            },
            {
              "name": "email",
              "value": "={{ $json.output.Email }}"
            }
          ]
        },
        "headerParameters": {
          "parameters": [
            {
              "name": "apikey",
              "value": "[key]"
            },
            {
              "name": "Authorization",
              "value": "Bearer [key]"
            },
            {
              "name": "Prefer",
              "value": "return=representation"
            }
          ]
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "b0df6998-5b82-44df-8cee-81db46b5cf00",
      "name": "Supabase",
      "type": "n8n-nodes-base.supabase",
      "position": [
        2000,
        80
      ],
      "parameters": {
        "tableId": "experiences",
        "fieldsUi": {
          "fieldValues": [
            {
              "fieldId": "cv_id",
              "fieldValue": "={{ $('HTTP Request').item.json.id }}"
            },
            {
              "fieldId": "text",
              "fieldValue": "={{ $json.Expr }}"
            }
          ]
        }
      },
      "typeVersion": 1
    },
    {
      "id": "5f08115f-da1c-49e3-b9ee-799a0a051c1d",
      "name": "编辑字段 1",
      "type": "n8n-nodes-base.set",
      "position": [
        1580,
        80
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "2bd4d4e4-2d0c-4310-b9f9-a7236ac58f74",
              "name": "Expr",
              "type": "array",
              "value": "={{ $('Basic LLM Chain').item.json.output.Experience }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "cffc687f-5dbc-45b6-b5b6-328c567eb2d6",
      "name": "分离",
      "type": "n8n-nodes-base.splitOut",
      "position": [
        1800,
        80
      ],
      "parameters": {
        "options": {},
        "fieldToSplitOut": "Expr"
      },
      "typeVersion": 1
    },
    {
      "id": "3e676d37-1f0c-4833-8108-62abc882bc1e",
      "name": "Supabase1",
      "type": "n8n-nodes-base.supabase",
      "position": [
        2000,
        280
      ],
      "parameters": {
        "tableId": "skills",
        "fieldsUi": {
          "fieldValues": [
            {
              "fieldId": "cv_id",
              "fieldValue": "={{ $('HTTP Request').item.json.id }}"
            },
            {
              "fieldId": "text",
              "fieldValue": "={{ $json.skill }}"
            }
          ]
        }
      },
      "typeVersion": 1
    },
    {
      "id": "a6d6b1eb-26b5-4e0d-aee3-1f82c4aeb264",
      "name": "编辑字段2",
      "type": "n8n-nodes-base.set",
      "position": [
        1580,
        280
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "2bd4d4e4-2d0c-4310-b9f9-a7236ac58f74",
              "name": "skill",
              "type": "array",
              "value": "={{ $('Basic LLM Chain').item.json.output.Skill }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "f93e92e1-5c0e-47dd-9b90-9482df23f4b3",
      "name": "分离1",
      "type": "n8n-nodes-base.splitOut",
      "position": [
        1800,
        280
      ],
      "parameters": {
        "options": {},
        "fieldToSplitOut": "skill"
      },
      "typeVersion": 1
    },
    {
      "id": "e5f33b95-0b10-4fbf-96c4-9054d9c2f36f",
      "name": "Supabase2",
      "type": "n8n-nodes-base.supabase",
      "position": [
        2000,
        500
      ],
      "parameters": {
        "tableId": "education",
        "fieldsUi": {
          "fieldValues": [
            {
              "fieldId": "cv_id",
              "fieldValue": "={{ $('HTTP Request').item.json.id }}"
            },
            {
              "fieldId": "text",
              "fieldValue": "={{ $json.Educ }}"
            }
          ]
        }
      },
      "typeVersion": 1
    },
    {
      "id": "fe182a17-f251-419a-a3e7-6601c1bda065",
      "name": "编辑字段3",
      "type": "n8n-nodes-base.set",
      "position": [
        1580,
        500
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "2bd4d4e4-2d0c-4310-b9f9-a7236ac58f74",
              "name": "Educ",
              "type": "array",
              "value": "={{ $('Basic LLM Chain').item.json.output.Education }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "e947dd88-027c-4bfc-9c8b-289efe514679",
      "name": "拆分输出2",
      "type": "n8n-nodes-base.splitOut",
      "position": [
        1800,
        500
      ],
      "parameters": {
        "options": {},
        "fieldToSplitOut": "Educ"
      },
      "typeVersion": 1
    },
    {
      "id": "d90fd5f8-8b29-4c75-874c-cb2c783a924e",
      "name": "便签",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        0,
        0
      ],
      "parameters": {
        "height": 280,
        "content": "## 邮件触发器"
      },
      "typeVersion": 1
    },
    {
      "id": "7465aa08-4604-4d0d-b36c-17aabba2dbe0",
      "name": "便签1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        520,
        0
      ],
      "parameters": {
        "color": 4,
        "width": 400,
        "height": 280,
        "content": "## 准备数据"
      },
      "typeVersion": 1
    },
    {
      "id": "2a751d1c-1c1f-40dc-93e4-45195dc397dc",
      "name": "便签2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        960,
        0
      ],
      "parameters": {
        "color": 3,
        "width": 360,
        "height": 440,
        "content": "## 提取信息"
      },
      "typeVersion": 1
    },
    {
      "id": "0ff39e87-a016-4bb9-8c00-53178b2ad4bf",
      "name": "便签3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1340,
        0
      ],
      "parameters": {
        "color": 6,
        "width": 900,
        "height": 680,
        "content": "## 保存信息"
      },
      "typeVersion": 1
    },
    {
      "id": "6e367ac0-8191-4530-94b7-a6ab7582fbac",
      "name": "如果",
      "type": "n8n-nodes-base.if",
      "position": [
        320,
        80
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "0047fdcf-2c7b-4286-a54e-7018028dea1c",
              "operator": {
                "type": "string",
                "operation": "exists",
                "singleValue": true
              },
              "leftValue": "attachment_0",
              "rightValue": ""
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "b7e60ceb-d556-4140-a5fb-6d86a798097f",
      "name": "便签4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        260,
        0
      ],
      "parameters": {
        "color": 5,
        "height": 280,
        "content": "## 检查附件是否存在"
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "pinData": {},
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "6c3db08e-b96b-4273-8e26-cceec49844a0",
  "connections": {
    "If": {
      "main": [
        [
          {
            "node": "Extract from File",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Split Out": {
      "main": [
        [
          {
            "node": "Supabase",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Split Out1": {
      "main": [
        [
          {
            "node": "Supabase1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Split Out2": {
      "main": [
        [
          {
            "node": "Supabase2",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Edit Fields": {
      "main": [
        [
          {
            "node": "Basic LLM Chain",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Edit Fields1": {
      "main": [
        [
          {
            "node": "Split Out",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Edit Fields2": {
      "main": [
        [
          {
            "node": "Split Out1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Edit Fields3": {
      "main": [
        [
          {
            "node": "Split Out2",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "HTTP Request": {
      "main": [
        [
          {
            "node": "Edit Fields1",
            "type": "main",
            "index": 0
          },
          {
            "node": "Edit Fields2",
            "type": "main",
            "index": 0
          },
          {
            "node": "Edit Fields3",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Gmail Trigger": {
      "main": [
        [
          {
            "node": "If",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Basic LLM Chain": {
      "main": [
        [
          {
            "node": "HTTP Request",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Extract from File": {
      "main": [
        [
          {
            "node": "Edit Fields",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "OpenRouter Chat Model": {
      "ai_languageModel": [
        [
          {
            "node": "Basic LLM Chain",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Structured Output Parser": {
      "ai_outputParser": [
        [
          {
            "node": "Basic LLM Chain",
            "type": "ai_outputParser",
            "index": 0
          }
        ]
      ]
    }
  }
}
常见问题

如何使用这个工作流?

复制上方的 JSON 配置代码,在您的 n8n 实例中创建新工作流并选择「从 JSON 导入」,粘贴配置后根据需要修改凭证设置即可。

这个工作流适合什么场景?

高级 - 人力资源, 人工智能

需要付费吗?

本工作流完全免费,您可以直接导入使用。但请注意,工作流中使用的第三方服务(如 OpenAI API)可能需要您自行付费。

工作流信息
难度等级
高级
节点数量22
分类2
节点类型11
难度说明

适合高级用户,包含 16+ 个节点的复杂工作流

作者
外部链接
在 n8n.io 查看

分享此工作流