AI 기반 GPT-4o-mini 채용 프로세스: 이력서 스크리닝부터 면접 일정 잡기까지
고급
이것은HR, AI Summarization분야의자동화 워크플로우로, 21개의 노드를 포함합니다.주로 Slack, Filter, Webhook, Airtable, EmailSend 등의 노드를 사용하며. GPT-4o-mini를 사용한 Airtable 내 채용 자동화: 이력서 스크리닝부터 면접 일정 잡기까지
사전 요구사항
- •Slack Bot Token 또는 Webhook URL
- •HTTP Webhook 엔드포인트(n8n이 자동으로 생성)
- •Airtable API Key
- •대상 API의 인증 정보가 필요할 수 있음
- •OpenAI API Key
사용된 노드 (21)
워크플로우 미리보기
노드 연결 관계를 시각적으로 표시하며, 확대/축소 및 이동을 지원합니다
워크플로우 내보내기
다음 JSON 구성을 복사하여 n8n에 가져오면 이 워크플로우를 사용할 수 있습니다
{
"id": "i7hRouNsQLAJJg4F",
"meta": {
"instanceId": "b91e510ebae4127f953fd2f5f8d40d58ca1e71c746d4500c12ae86aad04c1502"
},
"name": "AI-Powered GPT-4o-mini Recruitment Pipeline: CV Screening to Interview Scheduler",
"tags": [],
"nodes": [
{
"id": "2a69b990-5536-4825-81e2-682ef75fe7a2",
"name": "Webhook - 이력서 수신",
"type": "n8n-nodes-base.webhook",
"position": [
112,
352
],
"webhookId": "21c60b52-4d15-48a2-9a70-d51be54905e1",
"parameters": {
"path": "candidate-cv",
"options": {},
"httpMethod": "POST",
"responseMode": "responseNode"
},
"typeVersion": 2
},
{
"id": "6e476a4e-e2bb-4298-9ddc-5829aeb8306f",
"name": "Airtable - 지원자 정보 저장",
"type": "n8n-nodes-base.airtable",
"position": [
304,
208
],
"parameters": {
"base": {
"__rl": true,
"mode": "list",
"value": "appXXXXXXXXXXXXXX",
"cachedResultName": "Candidates"
},
"table": {
"__rl": true,
"mode": "list",
"value": "tblCandidates",
"cachedResultName": "Candidates"
},
"columns": {
"value": {
"Name": "={{ $json.body.name }}",
"Email": "={{ $json.body.email }}",
"Phone": "={{ $json.body.phone }}",
"CV_URL": "={{ $json.body.cv_url }}",
"Status": "New Application",
"Application_Date": "={{ $now.toISO() }}",
"Position_Applied": "={{ $json.body.position }}"
},
"mappingMode": "defineBelow"
},
"options": {},
"operation": "create",
"authentication": "oAuth2"
},
"typeVersion": 2
},
{
"id": "56b8fd3c-8f51-44c5-a39c-80c002da4cc7",
"name": "HTTP 요청 - 이력서 다운로드",
"type": "n8n-nodes-base.httpRequest",
"position": [
272,
432
],
"parameters": {
"url": "={{ $('Webhook - Receive CV').item.json.body.cv_url }}",
"options": {}
},
"typeVersion": 4.2
},
{
"id": "477e1bb2-ddce-4655-b148-5eddff7a0672",
"name": "AI - 이력서 데이터 추출",
"type": "@n8n/n8n-nodes-langchain.informationExtractor",
"position": [
400,
432
],
"parameters": {
"options": {}
},
"typeVersion": 1
},
{
"id": "0fdb2b79-b63d-42be-9ddc-2cee4cf5a83c",
"name": "OpenAI 채팅 모델",
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
"position": [
400,
592
],
"parameters": {
"options": {}
},
"typeVersion": 1
},
{
"id": "ea434fe7-5922-4413-9d94-a1bb049a1a13",
"name": "Airtable - 채용 요건 가져오기",
"type": "n8n-nodes-base.airtable",
"position": [
464,
224
],
"parameters": {
"base": {
"__rl": true,
"mode": "list",
"value": "appXXXXXXXXXXXXXX",
"cachedResultName": "Candidates"
},
"table": {
"__rl": true,
"mode": "list",
"value": "tblJobRequirements",
"cachedResultName": "Job Requirements"
},
"options": {},
"operation": "search",
"authentication": "oAuth2",
"filterByFormula": "=AND({Position}='{{ $('Webhook - Receive CV').item.json.body.position }}', {Active}=TRUE())"
},
"typeVersion": 2
},
{
"id": "529064ba-9f1e-4a4c-aa5e-ccbae81f2e57",
"name": "AI 에이전트 - 자격 평가",
"type": "@n8n/n8n-nodes-langchain.agent",
"position": [
704,
352
],
"parameters": {
"text": "=You are a recruitment AI assistant. Analyze if this candidate matches the job requirements.\n\nCandidate Profile:\n{{ $json.text }}\n\nJob Requirements:\n- Position: {{ $('Airtable - Get Job Requirements').item.json.Position }}\n- Required Experience: {{ $('Airtable - Get Job Requirements').item.json.Required_Experience }} years\n- Required Skills: {{ $('Airtable - Get Job Requirements').item.json.Required_Skills }}\n- Education Required: {{ $('Airtable - Get Job Requirements').item.json.Education_Required }}\n- Nice to Have: {{ $('Airtable - Get Job Requirements').item.json.Nice_To_Have }}\n\nProvide:\n1. Match Score (0-100)\n2. Qualification Status (Highly Qualified / Qualified / Potentially Qualified / Not Qualified)\n3. Strengths (3 key points)\n4. Gaps (areas where candidate doesn't meet requirements)\n5. Recommendation (Interview / Phone Screen / Reject)\n\nFormat as JSON: {\"match_score\": number, \"status\": string, \"strengths\": [string], \"gaps\": [string], \"recommendation\": string, \"reasoning\": string}",
"options": {
"systemMessage": "You are an expert recruitment AI that provides objective, fair candidate assessments based on qualifications and job requirements."
},
"promptType": "define",
"hasOutputParser": true
},
"typeVersion": 1.7
},
{
"id": "2f34882a-fce9-4f89-9563-438f9aa82795",
"name": "OpenAI 채팅 모델 평가",
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
"position": [
704,
576
],
"parameters": {
"model": "gpt-4o",
"options": {
"temperature": 0.3
}
},
"typeVersion": 1
},
{
"id": "c68e5f48-5033-45f5-b7a7-75bfa8f472b6",
"name": "구조화된 출력 파서",
"type": "@n8n/n8n-nodes-langchain.outputParserStructured",
"position": [
864,
576
],
"parameters": {},
"typeVersion": 1.2
},
{
"id": "259d8989-fd79-402d-8993-00eafc43e86c",
"name": "Airtable - 평가 결과 업데이트",
"type": "n8n-nodes-base.airtable",
"position": [
976,
352
],
"parameters": {
"base": {
"__rl": true,
"mode": "list",
"value": "appXXXXXXXXXXXXXX",
"cachedResultName": "Candidates"
},
"table": {
"__rl": true,
"mode": "list",
"value": "tblCandidates",
"cachedResultName": "Candidates"
},
"columns": {
"value": {
"Skills": "={{ $('AI - Extract CV Data').item.json.skills.join(', ') }}",
"Status": "={{ $json.recommendation === 'Reject' ? 'Rejected' : 'Qualified' }}",
"AI_Gaps": "={{ $json.gaps.join(', ') }}",
"Education": "={{ $('AI - Extract CV Data').item.json.education }}",
"Match_Score": "={{ $json.match_score }}",
"AI_Reasoning": "={{ $json.reasoning }}",
"AI_Strengths": "={{ $json.strengths.join(', ') }}",
"Years_Experience": "={{ $('AI - Extract CV Data').item.json.years_experience }}",
"AI_Recommendation": "={{ $json.recommendation }}",
"Qualification_Status": "={{ $json.status }}"
},
"mappingMode": "defineBelow"
},
"options": {},
"operation": "update",
"authentication": "oAuth2"
},
"typeVersion": 2
},
{
"id": "dda61fa4-8d96-40d3-aa9f-2feac1b03fe9",
"name": "필터 - 적격 지원자",
"type": "n8n-nodes-base.filter",
"position": [
1136,
224
],
"parameters": {
"options": {},
"conditions": {
"options": {
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "f8db4e5d-3c5e-4e0a-a0a5-d4c8e2d0a3f1",
"operator": {
"type": "string",
"operation": "notEquals"
},
"leftValue": "={{ $json.recommendation }}",
"rightValue": "Reject"
}
]
}
},
"typeVersion": 2.1
},
{
"id": "eb06c596-bfed-4bd2-8d5d-6eec33740b1b",
"name": "AI 에이전트 - 이메일 생성",
"type": "@n8n/n8n-nodes-langchain.agent",
"position": [
1296,
224
],
"parameters": {
"text": "=Generate a personalized recruitment email for this candidate.\n\nCandidate: {{ $('Airtable - Store Candidate').item.json.Name }}\nPosition: {{ $('Webhook - Receive CV').item.json.body.position }}\nMatch Score: {{ $json.match_score }}\nStatus: {{ $json.status }}\nRecommendation: {{ $json.recommendation }}\n\nKey Strengths:\n{{ $json.strengths.join('\\n') }}\n\nEmail should:\n- Be professional and warm\n- Congratulate them on their application\n- Mention 1-2 specific strengths that stood out\n- {{ $json.recommendation === 'Interview' ? 'Invite them for a formal interview' : 'Suggest a preliminary phone screening' }}\n- Include next steps\n- Be concise (150-200 words)\n\nProvide: {\"subject\": string, \"body\": string}",
"options": {
"systemMessage": "You are a professional recruitment communications specialist. Write engaging, personalized emails that make candidates feel valued."
},
"promptType": "define"
},
"typeVersion": 1.7
},
{
"id": "558ed33e-f2e1-41a6-af31-699ba4324675",
"name": "OpenAI 채팅 모델 이메일",
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
"position": [
1296,
448
],
"parameters": {
"options": {}
},
"credentials": {
"openAiApi": {
"id": "OGYj7DgYv5GFLFZk",
"name": "OpenAi account 2"
}
},
"typeVersion": 1
},
{
"id": "12222fa6-a277-4af1-8cbb-7b27c67ea2d0",
"name": "이메일 전송 - 지원자 연락",
"type": "n8n-nodes-base.emailSend",
"position": [
1584,
224
],
"webhookId": "88019c7f-4d4b-4fda-af01-f3021ccb399c",
"parameters": {
"options": {},
"subject": "={{ $json.subject }}",
"toEmail": "={{ $('Airtable - Store Candidate').item.json.Email }}",
"fromEmail": "recruitment@company.com"
},
"typeVersion": 2.1
},
{
"id": "72a2753a-535f-4e77-9901-a4007124c76a",
"name": "필터 - 면접 대상자",
"type": "n8n-nodes-base.filter",
"position": [
1760,
224
],
"parameters": {
"options": {},
"conditions": {
"options": {
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "a2c4f6e8-1b3d-4a7c-9e5f-0d8b2c4a6e1f",
"operator": {
"type": "string",
"operation": "equals"
},
"leftValue": "={{ $('AI Agent - Qualification Assessment').item.json.recommendation }}",
"rightValue": "Interview"
}
]
}
},
"typeVersion": 2.1
},
{
"id": "0a7e25e8-767a-4e1f-ae2e-c398efabca7c",
"name": "Google 캘린더 - 면접 일정 잡기",
"type": "n8n-nodes-base.googleCalendar",
"position": [
1984,
224
],
"parameters": {
"end": "={{ $now.plus({ days: 3, hours: 1 }).toISO() }}",
"start": "={{ $now.plus({ days: 3 }).toISO() }}",
"calendar": {
"__rl": true,
"mode": "list",
"value": "primary",
"cachedResultName": "Primary"
},
"additionalFields": {}
},
"typeVersion": 1.2
},
{
"id": "7d6c9426-4719-4516-b8f5-dcd5e86170f3",
"name": "Airtable - 면접 세부사항 업데이트",
"type": "n8n-nodes-base.airtable",
"position": [
2208,
224
],
"parameters": {
"base": {
"__rl": true,
"mode": "list",
"value": "appXXXXXXXXXXXXXX",
"cachedResultName": "Candidates"
},
"table": {
"__rl": true,
"mode": "list",
"value": "tblCandidates",
"cachedResultName": "Candidates"
},
"columns": {
"value": {
"Status": "Interview Scheduled",
"Interview_Link": "={{ $json.hangoutLink }}",
"Calendar_Event_ID": "={{ $json.id }}",
"Interview_Scheduled": "={{ $json.start.dateTime }}"
},
"mappingMode": "defineBelow"
},
"options": {},
"operation": "update",
"authentication": "oAuth2"
},
"typeVersion": 2
},
{
"id": "993a2d90-9ec0-4ba5-9c3f-0704704dd8ae",
"name": "Slack - 알림 전송",
"type": "n8n-nodes-base.slack",
"position": [
1664,
432
],
"webhookId": "e7445fd1-5292-4e82-923a-e979940ba3b3",
"parameters": {
"text": "=🎯 *New Candidate Processed*\n\n*Candidate:* {{ $('Airtable - Store Candidate').item.json.Name }}\n*Position:* {{ $('Webhook - Receive CV').item.json.body.position }}\n*Match Score:* {{ $('AI Agent - Qualification Assessment').item.json.match_score }}%\n*Status:* {{ $('AI Agent - Qualification Assessment').item.json.status }}\n*Recommendation:* {{ $('AI Agent - Qualification Assessment').item.json.recommendation }}\n\n*Key Strengths:*\n{{ $('AI Agent - Qualification Assessment').item.json.strengths.map((s, i) => `${i+1}. ${s}`).join('\\n') }}\n\n{{ $('AI Agent - Qualification Assessment').item.json.recommendation === 'Interview' ? '📅 *Interview Scheduled:* ' + $now.plus({ days: 3 }).toFormat('MMM dd, yyyy HH:mm') : '📞 *Next Step:* Phone screening' }}\n\n<https://airtable.com/appXXXXXXXXXXXXXX/tblCandidates/{{ $('Airtable - Store Candidate').item.json.id }}|View in Airtable>",
"select": "channel",
"channelId": {
"__rl": true,
"mode": "list",
"value": "C0123456789",
"cachedResultName": "#recruitment"
},
"otherOptions": {}
},
"typeVersion": 2.2
},
{
"id": "9d640257-d798-4d6a-97ad-0e1344c459b9",
"name": "Webhook 응답",
"type": "n8n-nodes-base.respondToWebhook",
"position": [
2384,
352
],
"parameters": {
"options": {},
"respondWith": "json",
"responseBody": "={{ {\n \"success\": true,\n \"candidate_id\": $('Airtable - Store Candidate').item.json.id,\n \"name\": $('Airtable - Store Candidate').item.json.Name,\n \"match_score\": $('AI Agent - Qualification Assessment').item.json.match_score,\n \"status\": $('AI Agent - Qualification Assessment').item.json.status,\n \"recommendation\": $('AI Agent - Qualification Assessment').item.json.recommendation,\n \"message\": \"Application processed successfully\"\n} }}"
},
"typeVersion": 1.1
},
{
"id": "1ca1599c-5e50-4231-b384-73e58678fce9",
"name": "스티커 메모",
"type": "n8n-nodes-base.stickyNote",
"position": [
-400,
-80
],
"parameters": {
"width": 480,
"height": 640,
"content": "## Introduction\nAutomate candidate evaluation from CV submission to interview booking. Perfect for HR teams and recruiters.\n## How It Works\nWebhook receives CVs, extracts Airtable data, AI assesses qualifications, filters candidates, sends emails, schedules Google Calendar interviews, and updates records.\n## Workflow Template\nWebhook → Airtable (Get Data) → AI Extract CV → AI Assessment → Filter Qualified → Generate Email → Send Email → Filter Interview Candidates → Schedule Calendar → Update Airtable → Slack Notification → Respond\n## Workflow Steps\n1. Receive & Store: Webhook receives CVs, saves to Airtable.\n2. Fetch & Download: Gets job criteria, downloads CVs.\n3. AI Assessment: Parses skills, scores candidates.\n4. Filter & Email: Routes qualified, sends messages.\n5. Schedule & Update: Books interviews, updates Airtable.\n6. Notify: Alerts via Slack, confirms status.\n## Setup Instructions\n1. **Webhook & Airtable:** Set URL, create tables, add credentials.\n2. **AI Configuration:** Add OpenAI key, define schema, customize scoring.\n3. **Communication:** Connect Gmail, Calendar, and Slack.\n"
},
"typeVersion": 1
},
{
"id": "7c2b3a99-8480-4344-a98f-7a223ad253ef",
"name": "스티커 메모1",
"type": "n8n-nodes-base.stickyNote",
"position": [
640,
-80
],
"parameters": {
"color": 6,
"width": 448,
"height": 384,
"content": "\n## Prerequisites\n- Airtable account\n- OpenAI API key\n- Gmail and Google Calendar\n- Slack workspace (optional)\n\n## Customization\n- Multi-stage scheduling\n- ATS integration (Greenhouse, Lever)\n\n## Benefits\n- Reduces screening time by 90%\n- Ensures uniform evaluation\n- Cuts time-to-hire by 60%"
},
"typeVersion": 1
}
],
"active": false,
"pinData": {},
"settings": {
"executionOrder": "v1"
},
"versionId": "32b604ba-da3d-49a1-89dc-7e8a37f787b7",
"connections": {
"0fdb2b79-b63d-42be-9ddc-2cee4cf5a83c": {
"ai_languageModel": [
[
{
"node": "477e1bb2-ddce-4655-b148-5eddff7a0672",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"477e1bb2-ddce-4655-b148-5eddff7a0672": {
"main": [
[
{
"node": "529064ba-9f1e-4a4c-aa5e-ccbae81f2e57",
"type": "main",
"index": 0
}
]
]
},
"2a69b990-5536-4825-81e2-682ef75fe7a2": {
"main": [
[
{
"node": "6e476a4e-e2bb-4298-9ddc-5829aeb8306f",
"type": "main",
"index": 0
},
{
"node": "56b8fd3c-8f51-44c5-a39c-80c002da4cc7",
"type": "main",
"index": 0
}
]
]
},
"558ed33e-f2e1-41a6-af31-699ba4324675": {
"ai_languageModel": [
[
{
"node": "eb06c596-bfed-4bd2-8d5d-6eec33740b1b",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"c68e5f48-5033-45f5-b7a7-75bfa8f472b6": {
"ai_outputParser": [
[
{
"node": "529064ba-9f1e-4a4c-aa5e-ccbae81f2e57",
"type": "ai_outputParser",
"index": 0
}
]
]
},
"eb06c596-bfed-4bd2-8d5d-6eec33740b1b": {
"main": [
[
{
"node": "12222fa6-a277-4af1-8cbb-7b27c67ea2d0",
"type": "main",
"index": 0
}
]
]
},
"993a2d90-9ec0-4ba5-9c3f-0704704dd8ae": {
"main": [
[
{
"node": "9d640257-d798-4d6a-97ad-0e1344c459b9",
"type": "main",
"index": 0
}
]
]
},
"6e476a4e-e2bb-4298-9ddc-5829aeb8306f": {
"main": [
[
{
"node": "ea434fe7-5922-4413-9d94-a1bb049a1a13",
"type": "main",
"index": 0
}
]
]
},
"56b8fd3c-8f51-44c5-a39c-80c002da4cc7": {
"main": [
[
{
"node": "477e1bb2-ddce-4655-b148-5eddff7a0672",
"type": "main",
"index": 0
}
]
]
},
"259d8989-fd79-402d-8993-00eafc43e86c": {
"main": [
[
{
"node": "dda61fa4-8d96-40d3-aa9f-2feac1b03fe9",
"type": "main",
"index": 0
},
{
"node": "993a2d90-9ec0-4ba5-9c3f-0704704dd8ae",
"type": "main",
"index": 0
}
]
]
},
"2f34882a-fce9-4f89-9563-438f9aa82795": {
"ai_languageModel": [
[
{
"node": "529064ba-9f1e-4a4c-aa5e-ccbae81f2e57",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"72a2753a-535f-4e77-9901-a4007124c76a": {
"main": [
[
{
"node": "0a7e25e8-767a-4e1f-ae2e-c398efabca7c",
"type": "main",
"index": 0
}
]
]
},
"dda61fa4-8d96-40d3-aa9f-2feac1b03fe9": {
"main": [
[
{
"node": "eb06c596-bfed-4bd2-8d5d-6eec33740b1b",
"type": "main",
"index": 0
}
]
]
},
"ea434fe7-5922-4413-9d94-a1bb049a1a13": {
"main": [
[
{
"node": "529064ba-9f1e-4a4c-aa5e-ccbae81f2e57",
"type": "main",
"index": 0
}
]
]
},
"12222fa6-a277-4af1-8cbb-7b27c67ea2d0": {
"main": [
[
{
"node": "72a2753a-535f-4e77-9901-a4007124c76a",
"type": "main",
"index": 0
}
]
]
},
"529064ba-9f1e-4a4c-aa5e-ccbae81f2e57": {
"main": [
[
{
"node": "259d8989-fd79-402d-8993-00eafc43e86c",
"type": "main",
"index": 0
}
]
]
},
"7d6c9426-4719-4516-b8f5-dcd5e86170f3": {
"main": [
[
{
"node": "9d640257-d798-4d6a-97ad-0e1344c459b9",
"type": "main",
"index": 0
}
]
]
},
"0a7e25e8-767a-4e1f-ae2e-c398efabca7c": {
"main": [
[
{
"node": "7d6c9426-4719-4516-b8f5-dcd5e86170f3",
"type": "main",
"index": 0
}
]
]
}
}
}자주 묻는 질문
이 워크플로우를 어떻게 사용하나요?
위의 JSON 구성 코드를 복사하여 n8n 인스턴스에서 새 워크플로우를 생성하고 "JSON에서 가져오기"를 선택한 후, 구성을 붙여넣고 필요에 따라 인증 설정을 수정하세요.
이 워크플로우는 어떤 시나리오에 적합한가요?
고급 - 인사, AI 요약
유료인가요?
이 워크플로우는 완전히 무료이며 직접 가져와 사용할 수 있습니다. 다만, 워크플로우에서 사용하는 타사 서비스(예: OpenAI API)는 사용자 직접 비용을 지불해야 할 수 있습니다.
관련 워크플로우 추천
자동 채점 기준 생성 기능을 갖춘 AI 기반 동료 검토 과제 시스템
GPT-4-nano, Slack 및 이메일 알림을 사용한 동료 검토 할당 자동화
Set
Code
Slack
+
Set
Code
Slack
22 노드Cheng Siong Chin
문서 추출
Sonar Pro AI 과제 평가 및 다중 마감일 알림
Sonar Pro AI 및 다중 채널 마감일 알림을 통한 동료 검토 할당 자동화
Set
Filter
Discord
+
Set
Filter
Discord
23 노드Cheng Siong Chin
문서 추출
AI 기반 GPT-4-Turbo 과제 채점 및 다중 형식 출력
GPT-4-Turbo를 사용한 과제 채점 및 다중 형식 보고서 생성 자동화
Set
Code
Webhook
+
Set
Code
Webhook
15 노드Cheng Siong Chin
문서 추출
시각화 참조 라이브러리에서 n8n 노드를 탐색
可视化 참조 라이브러리에서 n8n 노드를 탐색
If
Ftp
Set
+
If
Ftp
Set
113 노드I versus AI
기타
AI로운 Grok-3 건강 경고 시스템(가족 알림 기능 포함)
Grok-3 AI 분석을 기반으로 한 건강 모니터링 시스템, 가족/의사 이메일 알림 포함
If
Set
Merge
+
If
Set
Merge
17 노드Cheng Siong Chin
개인 생산성
GPT 실시간 항공편 할인 분석기: 자동 추출, 평가 및 WordPress에 발행
GPT, Google 항공, WordPress 항공 할인 분석기, 기후 데이터 포함
Set
Html
Slack
+
Set
Html
Slack
19 노드Cheng Siong Chin
콘텐츠 제작
워크플로우 정보
난이도
고급
노드 수21
카테고리2
노드 유형13
저자
Cheng Siong Chin
@cschinProf. Cheng Siong CHIN serves as Chair Professor in Intelligent Systems Modelling and Simulation in Newcastle University, Singapore. His academic credentials include an M.Sc. in Advanced Control and Systems Engineering from The University of Manchester and a Ph.D. in Robotics from Nanyang Technological University.
외부 링크
n8n.io에서 보기 →
이 워크플로우 공유