応募者追跡の自動化
中級
これはContent Creation, Multimodal AI分野の自動化ワークフローで、13個のノードを含みます。主にIf, Code, Gmail, FormTrigger, GoogleSheetsなどのノードを使用。 GPT-4.1で履歴書の解析、Google SpreadsheetとGmailを組み合わせて応募者追跡の自動化
前提条件
- •Googleアカウント + Gmail API認証情報
- •Google Sheets API認証情報
- •OpenAI API Key
ワークフロープレビュー
ノード接続関係を可視化、ズームとパンをサポート
ワークフローをエクスポート
以下のJSON設定をn8nにインポートして、このワークフローを使用できます
{
"meta": {
"instanceId": "cb5caf45c9475b848c7e83772505bb02340e165acdd8de77e25011192306257c",
"templateCredsSetupCompleted": true
},
"nodes": [
{
"id": "c30700f0-60c1-4c18-bd05-93d28ae09c42",
"name": "Code",
"type": "n8n-nodes-base.code",
"position": [
-1552,
208
],
"parameters": {
"jsCode": "// Binary data'nın gerçek yapısını görmek için\nconsole.log(\"JSON Keys:\", Object.keys($input.first().json));\nconsole.log(\"Binary Keys:\", Object.keys($input.first().binary || {}));\nconsole.log(\"Full Binary:\", $input.first().binary);\n\nreturn $input.all();"
},
"typeVersion": 2
},
{
"id": "a61166c0-b977-4482-bb70-f36c022613a1",
"name": "No Operation, do nothing",
"type": "n8n-nodes-base.noOp",
"position": [
0,
0
],
"parameters": {},
"typeVersion": 1
},
{
"id": "3b700a92-f90e-458e-a17f-942d483cff5f",
"name": "1. 応募者フォーム送信",
"type": "n8n-nodes-base.formTrigger",
"position": [
-1760,
208
],
"webhookId": "e92eb47d-5fd9-4055-bd89-6eeff65a00b7",
"parameters": {
"options": {},
"formTitle": "test",
"formFields": {
"values": [
{
"fieldLabel": "Name surname",
"requiredField": true
},
{
"fieldLabel": "email",
"requiredField": true
},
{
"fieldType": "file",
"fieldLabel": "CV",
"multipleFiles": false,
"requiredField": true,
"acceptFileTypes": ".pdf"
},
{
"fieldType": "number",
"fieldLabel": "Experience Years",
"requiredField": true
}
]
}
},
"typeVersion": 2.3,
"alwaysOutputData": true
},
{
"id": "bf5e61be-2934-4b99-aaf0-6c264a0b55b7",
"name": "2. PDF履歴書からテキスト抽出",
"type": "n8n-nodes-base.extractFromFile",
"position": [
-1360,
208
],
"parameters": {
"options": {},
"operation": "pdf",
"binaryPropertyName": "CV"
},
"typeVersion": 1
},
{
"id": "4d93769b-1807-4b42-af08-b86cf92f30de",
"name": "3. AIによる履歴書分析・構造化",
"type": "@n8n/n8n-nodes-langchain.openAi",
"position": [
-1120,
208
],
"parameters": {
"modelId": {
"__rl": true,
"mode": "list",
"value": "gpt-4.1-mini",
"cachedResultName": "GPT-4.1-MINI"
},
"options": {},
"messages": {
"values": [
{
"content": "=FORM DATA:\n- Name: {{ $node[\"On form submission1\"].json[\"Name surname\"] }}\n- Email: {{ $node[\"On form submission1\"].json[\"email\"] }}\n- Experience Years: {{ $node[\"On form submission1\"].json[\"Experience Years\"] }}\n\nCV TEXT:\n{{ $json.text }}\n\nExtract the data into the following JSON format for Google Sheets:\n{\n \"name\": \"use_name_from_form\",\n \"email\": \"use_email_from_form\",\n \"phone\": \"phone_extracted_from_cv\",\n \"experience_years\": \"use_experience_years_from_form\",\n \"education\": \"All education as a single string - school, degree, year\",\n \"work_experience\": \"All work experience as a single string - company, position, duration\",\n \"skills\": \"All skills, comma-separated\",\n \"certifications\": \"All certifications, comma-separated\",\n \"languages\": \"Languages and their proficiency levels\",\n \"address\": \"address_extracted_from_cv\",\n \"cv_summary\": \"A 10-sentence summary of the CV for an HR manager\",\n \"application_date\": \"{{ new Date().toLocaleDateString('en-US') }}\",\n \"status\": \"New Application\"\n}\n\nIMPORTANT: Respond ONLY in the valid JSON format. Do not add any other text or explanations."
}
]
},
"jsonOutput": true
},
"credentials": {
"openAiApi": {
"id": "7ZvT0NzDJ8AjFf1B",
"name": "OpenAi account"
}
},
"typeVersion": 1.8
},
{
"id": "14a1c88a-20cc-46b5-a9d3-1c26c6a230e2",
"name": "4. AI出力の解析",
"type": "n8n-nodes-base.code",
"position": [
-752,
208
],
"parameters": {
"jsCode": "// content zaten object, parse etmeye gerek yok\nconst data = items[0].json.message.content;\n\nreturn [{ json: data }];"
},
"typeVersion": 2
},
{
"id": "d1bff2d5-b644-441b-b76d-7b41dda8800f",
"name": "5. 重複応募者の確認",
"type": "n8n-nodes-base.googleSheets",
"position": [
-512,
208
],
"parameters": {
"options": {},
"filtersUI": {
"values": [
{
"lookupValue": "={{ $node[\"4. Parse AI Output\"].json.email }}",
"lookupColumn": "email"
}
]
},
"sheetName": {
"__rl": true,
"mode": "list",
"value": "gid=0",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1UvFYOE5C47Q8eQpGq0fLmxHwRjXpZTzssQiv7mOsC1E/edit#gid=0",
"cachedResultName": "Sheet1"
},
"documentId": {
"__rl": true,
"mode": "url",
"value": "https://docs.google.com/spreadsheets/d/1UvFYOE5C47Q8eQpGq0fLmxHwRjXpZTzssQiv7mOsC1E/edit?gid=0#gid=0"
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"id": "df8r9D022KIAOHTC",
"name": "Google Sheets account"
}
},
"typeVersion": 4.7,
"alwaysOutputData": true
},
{
"id": "4bce4857-f0b0-4ac9-b11b-d57f41d7c72c",
"name": "6. 応募者が新規の場合...",
"type": "n8n-nodes-base.if",
"position": [
-240,
208
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "3009324b-7124-488e-931d-37221b4b57f9",
"operator": {
"type": "string",
"operation": "notEmpty",
"singleValue": true
},
"leftValue": "={{ $json.email }}",
"rightValue": ""
}
]
}
},
"typeVersion": 2.2
},
{
"id": "b4320ad6-1d8c-491d-b7fa-78734aa6ff36",
"name": "7. 応募者データを Google シートに保存",
"type": "n8n-nodes-base.googleSheets",
"position": [
16,
368
],
"parameters": {
"columns": {
"value": {
"email": "={{ $node[\"4. Parse AI Output\"].json.email }}",
"status": "= {{ $node[\"4. Parse AI Output\"].json.status }}",
"address": "={{ $node[\"4. Parse AI Output\"].json.address }}",
"talents": "={{ $node[\"4. Parse AI Output\"].json.skills }}",
"education": "={{ $node[\"4. Parse AI Output\"].json.education }}",
"languages": "={{ $node[\"4. Parse AI Output\"].json.languages }}",
"telephone": "={{ $node[\"4. Parse AI Output\"].json.phone }}",
"cv_summary": "={{ $node[\"4. Parse AI Output\"].json.cv_summary }}",
"experience": "={{ $node[\"4. Parse AI Output\"].json.work_experience }}",
"certificates": "={{ $node[\"4. Parse AI Output\"].json.certifications }}",
"name surname": "={{ $node[\"4. Parse AI Output\"].json.name }}",
"application_date": "={{ $node[\"4. Parse AI Output\"].json.application_date }}",
"experience_years": "={{ $node[\"4. Parse AI Output\"].json.experience_years }}"
},
"schema": [
{
"id": "name surname",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "name surname",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "email",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "email",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "telephone",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "telephone",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "experience_years",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "experience_years",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "education",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "education",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "experience",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "experience",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "talents",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "talents",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "certificates",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "certificates",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "languages",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "languages",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "address",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "address",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "cv_summary",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "cv_summary",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "application_date",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "application_date",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "status",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "status",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "submittedAt",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "submittedAt",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "formMode",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "formMode",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "index",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "index",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "message",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "message",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "logprobs",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "logprobs",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "finish_reason",
"type": "string",
"display": true,
"removed": true,
"required": false,
"displayName": "finish_reason",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [
"email"
],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {},
"operation": "appendOrUpdate",
"sheetName": {
"__rl": true,
"mode": "list",
"value": "gid=0",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1UvFYOE5C47Q8eQpGq0fLmxHwRjXpZTzssQiv7mOsC1E/edit#gid=0",
"cachedResultName": "Sheet1"
},
"documentId": {
"__rl": true,
"mode": "url",
"value": "https://docs.google.com/spreadsheets/d/1UvFYOE5C47Q8eQpGq0fLmxHwRjXpZTzssQiv7mOsC1E/edit?gid=0#gid=0"
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"id": "df8r9D022KIAOHTC",
"name": "Google Sheets account"
}
},
"typeVersion": 4.7
},
{
"id": "fb6b0443-dfda-4bc6-a1d7-f86ce2df4ada",
"name": "8a. 応募者へ確認メール送信",
"type": "n8n-nodes-base.gmail",
"position": [
368,
208
],
"webhookId": "c7bed720-0890-42ca-a2d1-e5a80e931250",
"parameters": {
"sendTo": "={{ $node[\"4. Parse AI Output\"].json.email }}",
"message": "=Dear {{ $node[\"4. Parse AI Output\"].json.name }},\n\nYour application has been received successfully.\n\nHere are your application details:\n- Email: {{ $node[\"4. Parse AI Output\"].json.email }}\n- Experience: {{ $node[\"4. Parse AI Output\"].json.experience_years }} years\n- Application Date: {{ $node[\"4. Parse AI Output\"].json.application_date }}\n\nWe will review your application and get back to you shortly.\n\nThank you.",
"options": {},
"subject": "Your Application Has Been Received"
},
"typeVersion": 2.1
},
{
"id": "1177788a-8ce6-40b1-8e71-5825afefb22e",
"name": "8b. 採用担当者へ通知メール送信",
"type": "n8n-nodes-base.gmail",
"position": [
368,
512
],
"webhookId": "38206975-448a-4964-a917-e03e2445356c",
"parameters": {
"sendTo": "bsezi1409@gmail.com",
"message": "=A new CV application has been received:\n\nName: {{ $node[\"4. Parse AI Output\"].json.name }}\nEmail: {{ $node[\"4. Parse AI Output\"].json.email }}\nExperience: {{ $node[\"4. Parse AI Output\"].json.experience_years }} years\n\nAI-Generated CV Summary:\n{{ $node[\"4. Parse AI Output\"].json.cv_summary }}\n\nThe applicant's data has been saved to Google Sheets.",
"options": {},
"subject": "=New Application - {{ $node[\"4. Parse AI Output\"].json.name }}"
},
"typeVersion": 2.1
},
{
"id": "0fa496ba-afdb-4290-a6cb-cf15cacae9e2",
"name": "Sticky Note",
"type": "n8n-nodes-base.stickyNote",
"position": [
-2384,
16
],
"parameters": {
"width": 544,
"height": 512,
"content": "# AI-Powered Applicant Tracking System (ATS)\n\n**Purpose:** This workflow automates your initial hiring process. It captures job applications via an n8n form, uses AI to read and structure the candidate's PDF CV, saves the data to Google Sheets, and sends confirmation emails.\n\n### Quick Setup Guide\n\n1. **Configure Credentials:**\n * `OpenAI` (Node 3): Set up your OpenAI credentials.\n * `Google Sheets` & `Gmail` (Nodes 5, 7, 8a, 8b): Configure your Google account credentials.\n2. **Customize Form:** In the `1. Applicant Submits Form` node, customize your form fields if needed. **Activate the workflow** and copy the \"Production URL\" to share with applicants.\n3. **Set Recruiter Email:** In the `8b. Send Notification...` node, change the \"To\" address to your own email.\n4. **Link Your Sheet:** In nodes `5` and `7`, select your Google Sheet for storing applicant data."
},
"typeVersion": 1
},
{
"id": "f3165533-3506-48b3-9524-496252336362",
"name": "Sticky Note1",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1424,
-80
],
"parameters": {
"color": 3,
"width": 752,
"height": 240,
"content": "### Phase 1: AI CV Parsing Engine\n\n**Purpose:** This is the core of the automation. It transforms an unstructured CV into a structured database entry.\n\n* **2. Extract Text:** Reads all the text content from the uploaded PDF file.\n* **3. Analyze with AI:** Sends the raw CV text to OpenAI with a detailed prompt, instructing it to extract key information (experience, skills, education, etc.) and return it as a clean JSON object.\n* **4. Parse AI Output:** Converts the AI's text response into a usable JSON object for the next steps."
},
"typeVersion": 1
}
],
"pinData": {},
"connections": {
"c30700f0-60c1-4c18-bd05-93d28ae09c42": {
"main": [
[
{
"node": "bf5e61be-2934-4b99-aaf0-6c264a0b55b7",
"type": "main",
"index": 0
}
]
]
},
"14a1c88a-20cc-46b5-a9d3-1c26c6a230e2": {
"main": [
[
{
"node": "d1bff2d5-b644-441b-b76d-7b41dda8800f",
"type": "main",
"index": 0
}
]
]
},
"3b700a92-f90e-458e-a17f-942d483cff5f": {
"main": [
[
{
"node": "c30700f0-60c1-4c18-bd05-93d28ae09c42",
"type": "main",
"index": 0
}
]
]
},
"4bce4857-f0b0-4ac9-b11b-d57f41d7c72c": {
"main": [
[
{
"node": "a61166c0-b977-4482-bb70-f36c022613a1",
"type": "main",
"index": 0
}
],
[
{
"node": "b4320ad6-1d8c-491d-b7fa-78734aa6ff36",
"type": "main",
"index": 0
}
]
]
},
"bf5e61be-2934-4b99-aaf0-6c264a0b55b7": {
"main": [
[
{
"node": "4d93769b-1807-4b42-af08-b86cf92f30de",
"type": "main",
"index": 0
}
]
]
},
"d1bff2d5-b644-441b-b76d-7b41dda8800f": {
"main": [
[
{
"node": "4bce4857-f0b0-4ac9-b11b-d57f41d7c72c",
"type": "main",
"index": 0
}
]
]
},
"4d93769b-1807-4b42-af08-b86cf92f30de": {
"main": [
[
{
"node": "14a1c88a-20cc-46b5-a9d3-1c26c6a230e2",
"type": "main",
"index": 0
}
]
]
},
"b4320ad6-1d8c-491d-b7fa-78734aa6ff36": {
"main": [
[
{
"node": "fb6b0443-dfda-4bc6-a1d7-f86ce2df4ada",
"type": "main",
"index": 0
},
{
"node": "1177788a-8ce6-40b1-8e71-5825afefb22e",
"type": "main",
"index": 0
}
]
]
}
}
}よくある質問
このワークフローの使い方は?
上記のJSON設定コードをコピーし、n8nインスタンスで新しいワークフローを作成して「JSONからインポート」を選択、設定を貼り付けて認証情報を必要に応じて変更してください。
このワークフローはどんな場面に適していますか?
中級 - コンテンツ作成, マルチモーダルAI
有料ですか?
このワークフローは完全無料です。ただし、ワークフローで使用するサードパーティサービス(OpenAI APIなど)は別途料金が発生する場合があります。
関連ワークフロー
自動予約テンプレート
GPT-5とGmailのコンテキスト分析を使って、パーソナライズされた音楽プロモーションメールを作成
If
Code
Gmail
+
If
Code
Gmail
27 ノードVáclav Čikl
コンテンツ作成
✨🩷自動化ソーシャルメディアコンテンツ公開工厂 + 系统提示组合
基于动态系统提示とGPT-4oのAI驱动多平台ソーシャルメディアコンテンツ工厂
If
Set
Code
+
If
Set
Code
100 ノードAmit Mehta
コンテンツ作成
Azure OpenAI とGoogle Workspace で DEI 資格フィルター Automation
Azure GPT-4o、Googleドライブ、テーブルを使ってDEI資格フィルタリングを自動化
If
Code
Gmail
+
If
Code
Gmail
19 ノードRahul Joshi
コンテンツ作成
Apollo データスクレイピングとタッチアウトフロー 1 ✅
Apollo、AI による解析と計画されたメール.follow-up によるリード生成の自動化
If
Code
Wait
+
If
Code
Wait
39 ノードDeniz
コンテンツ作成
Zoom会議を簡素化するための安全なステripe決済の自動化
Stripe、Gmail、そしてGoogle Sheetsを使って有料Zoomミーティングと追跡を自動化
If
Set
Zoom
+
If
Set
Zoom
20 ノードAmit Mehta
コンテンツ作成
Groq、Gemini、Slack承認システムを使用してRSSからMediumへの公開を自動化
Groq、Gemini、Slack承認システムを用いたRSSからMediumへの自動公開プロセス
If
Set
Code
+
If
Set
Code
41 ノードObisDev
コンテンツ作成
ワークフロー情報
難易度
中級
ノード数13
カテゴリー2
ノードタイプ9
作成者
Onur
@onurpolat05Hello, I'm Onur I've been working as a freelance software developer for about four years. In addition, I develop my own projects. For some time, I have been improving myself and providing various services related to AI and AI workflows. Both by writing low code and code. If you have any questions, don't hesitate to contact me.
外部リンク
n8n.ioで表示 →
このワークフローを共有