이력서 도구
중급
이것은HR, AI Summarization분야의자동화 워크플로우로, 15개의 노드를 포함합니다.주로 Code, Merge, Webhook, Aggregate, GoogleDrive 등의 노드를 사용하며. Llama3.1 대규모 언어 모델 기반 AI 이력서 선별, Google 드라이브 및 스프레드시트 통합
사전 요구사항
- •HTTP Webhook 엔드포인트(n8n이 자동으로 생성)
- •Google Drive API 인증 정보
- •Google Sheets API 인증 정보
사용된 노드 (15)
워크플로우 미리보기
노드 연결 관계를 시각적으로 표시하며, 확대/축소 및 이동을 지원합니다
워크플로우 내보내기
다음 JSON 구성을 복사하여 n8n에 가져오면 이 워크플로우를 사용할 수 있습니다
{
"id": "7wkmOQEEUAJIwFEP",
"meta": {
"instanceId": "558d88703fb65b2d0e44613bc35916258b0f0bf983c5d4730c00c424b77ca36a",
"templateCredsSetupCompleted": true
},
"name": "cv-tool",
"tags": [],
"nodes": [
{
"id": "0cae9383-b4da-43ec-9962-afc97d56ddad",
"name": "항목 반복",
"type": "n8n-nodes-base.splitInBatches",
"position": [
-280,
160
],
"parameters": {
"options": {}
},
"executeOnce": false,
"typeVersion": 3
},
{
"id": "c027ca47-5415-4f7a-9028-a0637acc195f",
"name": "병합",
"type": "n8n-nodes-base.merge",
"position": [
380,
360
],
"parameters": {
"mode": "chooseBranch"
},
"typeVersion": 3
},
{
"id": "2bd255ee-e3d8-46a6-9112-14b348852eae",
"name": "집계",
"type": "n8n-nodes-base.aggregate",
"position": [
600,
360
],
"parameters": {
"options": {},
"aggregate": "aggregateAllItemData"
},
"typeVersion": 1
},
{
"id": "ae51c305-87e4-4404-816e-4f2b30b80c6d",
"name": "Ollama 모델",
"type": "@n8n/n8n-nodes-langchain.lmOllama",
"position": [
920,
840
],
"parameters": {
"model": "llama3.1:latest",
"options": {
"temperature": 0.1
}
},
"credentials": {
"ollamaApi": {
"id": "7CIt42W14b1MCgxQ",
"name": "Ollama account"
}
},
"typeVersion": 1
},
{
"id": "42fd32cf-1787-45c5-a2df-08955534ae64",
"name": "자동 수정 출력 파서",
"type": "@n8n/n8n-nodes-langchain.outputParserAutofixing",
"position": [
1020,
660
],
"parameters": {
"options": {}
},
"typeVersion": 1
},
{
"id": "097e8558-2a30-4c1e-a7bd-4620bc9d22a6",
"name": "구조화된 출력 파서",
"type": "@n8n/n8n-nodes-langchain.outputParserStructured",
"position": [
1060,
1100
],
"parameters": {
"schemaType": "manual",
"inputSchema": "{\n \"$schema\": \"https://json-schema.org/draft/2020-12/schema\",\n \"title\": \"Evaluation Form\",\n \"type\": \"object\",\n \"properties\": {\n \"candidate_file_name\": {\"$ref\": \"#/definitions/candidateFileName\"},\n \"candidate_name\": {\"$ref\": \"#/definitions/candidateName\"},\n \"questions\": {\"$ref\": \"#/definitions/questions\"},\n \"overall_points\": {\"$ref\": \"#/definitions/overallPoints\"}\n },\n \"required\": [\"candidate_file_name\", \"candidate_name\", \"questions\", \"overall_points\"],\n \"definitions\": {\n \"candidateFileName\": {\n \"$schema\": \"https://json-schema.org/draft/2020-12/schema\",\n \"title\": \"Candidate File Name\",\n \"type\": \"string\"\n },\n \"candidateName\": {\n \"$schema\": \"https://json-schema.org/draft/2020-12/schema\",\n \"title\": \"Candidate Name\",\n \"type\": \"string\"\n },\n \"questions\": {\n \"$schema\": \"https://json-schema.org/draft/2020-12/schema\",\n \"title\": \"Questions\",\n \"type\": \"array\",\n \"items\": {\n \"$ref\": \"#/definitions/question\"\n }\n },\n \"question\": {\n \"$schema\": \"https://json-schema.org/draft/2020-12/schema\",\n \"title\": \"Question\",\n \"type\": \"object\",\n \"properties\": {\n \"question\": {\"$ref\": \"#/definitions/questionText\"},\n \"answer\": {\"$ref\": \"#/definitions/candidateAnswer\"}\n },\n \"required\": [\"question\", \"answer\"]\n },\n \"questionText\": {\n \"$schema\": \"https://json-schema.org/draft/2020-12/schema\",\n \"title\": \"Question Text\",\n \"type\": \"string\"\n },\n \"candidateAnswer\": {\n \"$schema\": \"https://json-schema.org/draft/2020-12/schema\",\n \"title\": \"Candidate Answer\",\n \"type\": \"string\"\n },\n \"overallPoints\": {\n \"$schema\": \"https://json-schema.org/draft/2020-12/schema\",\n \"title\": \"Overall Points\",\n \"type\": \"string\"\n }\n }\n}"
},
"typeVersion": 1.2
},
{
"id": "79957386-3e4b-4650-9490-8a29f948d5f0",
"name": "코드",
"type": "n8n-nodes-base.code",
"position": [
1260,
360
],
"parameters": {
"jsCode": "// Extract input data\nconst items = $input.all();\nlet results = [];\nlet allQuestions = new Set();\n\n// Collect all possible question fields dynamically\nitems.forEach(item => {\n let output = item.json.output;\n let questions = output.questions;\n \n Object.keys(questions).forEach(q => allQuestions.add(q));\n});\n\n// Convert to array format\nitems.forEach(item => {\n let output = item.json.output;\n let row = {\n \"Candidate File Name\": output.candidate_file_name,\n \"Candidate Name\": output.candidate_name\n };\n\n // Add all dynamically available question scores\n allQuestions.forEach(question => {\n row[question] = output.questions[question] || \"\";\n });\n\n // Add overall points\n row[\"Overall Points\"] = output.overall_points;\n results.push(row);\n});\n\nreturn results.map(row => ({ json: row }));"
},
"executeOnce": false,
"typeVersion": 2
},
{
"id": "b0c56e05-f929-496d-9482-ff2f61a6e544",
"name": "파일 다운로드",
"type": "n8n-nodes-base.googleDrive",
"position": [
-100,
380
],
"parameters": {
"fileId": {
"__rl": true,
"mode": "id",
"value": "={{ $json.id }}"
},
"options": {
"googleFileConversion": {
"conversion": {
"docsToFormat": "application/pdf",
"slidesToFormat": "application/pdf",
"drawingsToFormat": "application/pdf"
}
}
},
"operation": "download"
},
"credentials": {
"googleDriveOAuth2Api": {
"id": "",
"name": "Google Drive account"
}
},
"typeVersion": 3
},
{
"id": "5dc07e0a-900f-407e-be7e-da4db4168e30",
"name": "입력 기준",
"type": "n8n-nodes-base.googleSheets",
"position": [
20,
180
],
"parameters": {
"options": {},
"sheetName": {
"__rl": true,
"mode": "list",
"value": 714429904,
"cachedResultUrl": "",
"cachedResultName": "Search_Criteria_t2"
},
"documentId": {
"__rl": true,
"mode": "list",
"value": "1VoJbCMXbgQm8lO37h1kAp-wFo_7rC_xthL7H4PXCNxg",
"cachedResultUrl": "",
"cachedResultName": "Criteria-sheet"
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"id": "",
"name": "Google Sheets account"
}
},
"typeVersion": 4.5
},
{
"id": "e917b4e5-ca96-4d08-b43c-bf832710b1f4",
"name": "PDF에서 추출",
"type": "n8n-nodes-base.extractFromFile",
"position": [
140,
380
],
"parameters": {
"options": {},
"operation": "pdf"
},
"typeVersion": 1
},
{
"id": "fbee4bec-65af-4017-98b7-9074c4fd5770",
"name": "출력 시트",
"type": "n8n-nodes-base.googleSheets",
"position": [
1500,
360
],
"parameters": {
"columns": {
"value": {},
"schema": [
{
"id": "Candidate File Name",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Candidate File Name",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Candidate Name",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Candidate Name",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Business Analysis",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Business Analysis",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Project Management (PMO)",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Project Management (PMO)",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Banking",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Banking",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Communication Skills",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Communication Skills",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Overall Points",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Overall Points",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "autoMapInputData",
"matchingColumns": []
},
"options": {},
"operation": "append",
"sheetName": {
"__rl": true,
"mode": "list",
"value": 1534129230,
"cachedResultUrl": "",
"cachedResultName": "Sheet2"
},
"documentId": {
"__rl": true,
"mode": "list",
"value": "1TvYZwuCeTVImsXdd3cNh6zYf7neJbHvCkqLjNzsCk5w",
"cachedResultUrl": "",
"cachedResultName": "Output-sheet"
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"id": "",
"name": "Google Sheets account"
}
},
"typeVersion": 4.5
},
{
"id": "1d77e98d-20fa-4301-93ea-175881cac1dc",
"name": "웹훅",
"type": "n8n-nodes-base.webhook",
"position": [
-880,
160
],
"webhookId": "6751c9a2-4bf9-416e-8e98-905498867431",
"parameters": {
"path": "6751c9a2-4bf9-416e-8e98-905498867431",
"options": {},
"httpMethod": "POST",
"responseMode": "responseNode"
},
"typeVersion": 2
},
{
"id": "d7644e7c-2abb-4bb2-ac81-7595cc918a9b",
"name": "웹훅 응답",
"type": "n8n-nodes-base.respondToWebhook",
"position": [
20,
-60
],
"parameters": {
"options": {},
"respondWith": "json",
"responseBody": "{\n \"Status\": \"Workflow Completed!\"\n}"
},
"typeVersion": 1.1,
"alwaysOutputData": false
},
{
"id": "14869643-9588-42de-a238-195f47875d78",
"name": "폴더 검색",
"type": "n8n-nodes-base.googleDrive",
"position": [
-580,
160
],
"parameters": {
"filter": {
"folderId": {
"__rl": true,
"mode": "list",
"value": "1z0DTQL4nfB7lQFETQw8-fnxg1YaOpgoL",
"cachedResultUrl": "",
"cachedResultName": "test"
}
},
"options": {},
"resource": "fileFolder"
},
"credentials": {
"googleDriveOAuth2Api": {
"id": "",
"name": "Google Drive account"
}
},
"typeVersion": 3
},
{
"id": "8f920f78-86d3-45ed-b59c-4a74e6fb108b",
"name": "기본 LLM 체인",
"type": "@n8n/n8n-nodes-langchain.chainLlm",
"position": [
860,
360
],
"parameters": {
"text": "=%Candidate_Profile%: \n{{ $('Extract from PDF').first().json.text}}\n\nAnalyze the %Candidate_Profile% against the %Questions%:{{ $json.data.map(item => item.Matching_Criteria + \" - Output Type:\" + item.Output_Type) + \"\\n\" }}. \n\nUse this question format as input to the AI-Model : How do you rate your experiance in {{ $json.data.map(item => item.Matching_Criteria + \"Output Type:\" + item.Output_Type) + \"\\n\" }}\n\nTake candidate_file_name as {{ $('Download-file').first().json.name }} and fetch the candidate_name from the %Candidate_Profile%\n\nFor each question output format should be : {{ $json.data[0].Output_Type}}\n\nAt the end please calculate overall point(Total Point = sum({{ $json.data[0].Output_Type}} for each criteria)).\n\n\nIf he or she didn't have any experiance under specific area please mark rating as 0.\n",
"messages": {
"messageValues": [
{
"message": "Output should be a one specific format for all outputs"
}
]
},
"promptType": "define",
"hasOutputParser": true
},
"typeVersion": 1.5
}
],
"active": false,
"pinData": {},
"settings": {
"executionOrder": "v1"
},
"versionId": "3a4961eb-24af-44a3-b727-9e11b39ee823",
"connections": {
"79957386-3e4b-4650-9490-8a29f948d5f0": {
"main": [
[
{
"node": "fbee4bec-65af-4017-98b7-9074c4fd5770",
"type": "main",
"index": 0
}
]
]
},
"c027ca47-5415-4f7a-9028-a0637acc195f": {
"main": [
[
{
"node": "2bd255ee-e3d8-46a6-9112-14b348852eae",
"type": "main",
"index": 0
}
]
]
},
"1d77e98d-20fa-4301-93ea-175881cac1dc": {
"main": [
[
{
"node": "14869643-9588-42de-a238-195f47875d78",
"type": "main",
"index": 0
}
]
]
},
"2bd255ee-e3d8-46a6-9112-14b348852eae": {
"main": [
[
{
"node": "8f920f78-86d3-45ed-b59c-4a74e6fb108b",
"type": "main",
"index": 0
}
]
]
},
"ae51c305-87e4-4404-816e-4f2b30b80c6d": {
"ai_languageModel": [
[
{
"node": "8f920f78-86d3-45ed-b59c-4a74e6fb108b",
"type": "ai_languageModel",
"index": 0
},
{
"node": "42fd32cf-1787-45c5-a2df-08955534ae64",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"fbee4bec-65af-4017-98b7-9074c4fd5770": {
"main": [
[
{
"node": "0cae9383-b4da-43ec-9962-afc97d56ddad",
"type": "main",
"index": 0
}
]
]
},
"b0c56e05-f929-496d-9482-ff2f61a6e544": {
"main": [
[
{
"node": "e917b4e5-ca96-4d08-b43c-bf832710b1f4",
"type": "main",
"index": 0
}
]
]
},
"14869643-9588-42de-a238-195f47875d78": {
"main": [
[
{
"node": "0cae9383-b4da-43ec-9962-afc97d56ddad",
"type": "main",
"index": 0
}
]
]
},
"5dc07e0a-900f-407e-be7e-da4db4168e30": {
"main": [
[
{
"node": "c027ca47-5415-4f7a-9028-a0637acc195f",
"type": "main",
"index": 0
}
]
]
},
"8f920f78-86d3-45ed-b59c-4a74e6fb108b": {
"main": [
[
{
"node": "79957386-3e4b-4650-9490-8a29f948d5f0",
"type": "main",
"index": 0
}
]
]
},
"0cae9383-b4da-43ec-9962-afc97d56ddad": {
"main": [
[
{
"node": "d7644e7c-2abb-4bb2-ac81-7595cc918a9b",
"type": "main",
"index": 0
}
],
[
{
"node": "b0c56e05-f929-496d-9482-ff2f61a6e544",
"type": "main",
"index": 0
},
{
"node": "5dc07e0a-900f-407e-be7e-da4db4168e30",
"type": "main",
"index": 0
}
]
]
},
"e917b4e5-ca96-4d08-b43c-bf832710b1f4": {
"main": [
[
{
"node": "c027ca47-5415-4f7a-9028-a0637acc195f",
"type": "main",
"index": 1
}
]
]
},
"097e8558-2a30-4c1e-a7bd-4620bc9d22a6": {
"ai_outputParser": [
[
{
"node": "42fd32cf-1787-45c5-a2df-08955534ae64",
"type": "ai_outputParser",
"index": 0
}
]
]
},
"42fd32cf-1787-45c5-a2df-08955534ae64": {
"ai_outputParser": [
[
{
"node": "8f920f78-86d3-45ed-b59c-4a74e6fb108b",
"type": "ai_outputParser",
"index": 0
}
]
]
}
}
}자주 묻는 질문
이 워크플로우를 어떻게 사용하나요?
위의 JSON 구성 코드를 복사하여 n8n 인스턴스에서 새 워크플로우를 생성하고 "JSON에서 가져오기"를 선택한 후, 구성을 붙여넣고 필요에 따라 인증 설정을 수정하세요.
이 워크플로우는 어떤 시나리오에 적합한가요?
중급 - 인사, AI 요약
유료인가요?
이 워크플로우는 완전히 무료이며 직접 가져와 사용할 수 있습니다. 다만, 워크플로우에서 사용하는 타사 서비스(예: OpenAI API)는 사용자 직접 비용을 지불해야 할 수 있습니다.
관련 워크플로우 추천
시각화 참조 라이브러리에서 n8n 노드를 탐색
可视化 참조 라이브러리에서 n8n 노드를 탐색
If
Ftp
Set
+
If
Ftp
Set
113 노드I versus AI
기타
매일 WhatsApp 그룹 지능형 분석: GPT-4.1 분석 및 음성 메시지 변환
매일 WhatsApp 그룹 지능 분석: GPT-4.1 분석 및 음성 메시지 트랜스크립션
If
Set
Code
+
If
Set
Code
52 노드Daniel Lianes
기타
자동화된 비디오 생성기
DeepSeek, TTS, Together.ai를 사용하여 스크립트에서 AI 비디오 생성
Set
Code
Wait
+
Set
Code
Wait
81 노드Lakindu Siriwardana
콘텐츠 제작
第一轮 Telegram 및 LinkedIn 快速通道 AI 招聘어시스턴트
AI候选人筛选流程:LinkedIn로Telegram,통합Gemini与Apify
If
Set
Code
+
If
Set
Code
55 노드Dean Pike
인사
TalentFlow AI - 배치 이력서 필터링 및 직업 설명 매칭
GPT-4를 사용하여 HR 팀의 대량 이력서 필터링 및 직위 설명 매칭
If
Code
Merge
+
If
Code
Merge
30 노드Trung Tran
인사
반려동물 가게 4
🐶 펫 샵 예약 AI 대리자
If
Set
Code
+
If
Set
Code
187 노드Bruno Dias
인공지능