
تحلیل خودکار رزومه با n8n و OpenAI GPT
11 دقیقه مطالعه · منتشر شده ۱۴۰۵/۴/۲۸
دانلود workflow
فایل JSON آماده import در n8n — credentialها باید در n8n شما تنظیم شوند.
- فایل JSON را دانلود کنید.
- در n8n: Workflows → Import from File.
- Credentialهای هر node را متصل کنید.
- workflow را فعال کنید.
شناسه workflow: 10101 · منبع: کاتالوگ Axeto
تحلیل چندین رزومه در برابر شرح شغل با OpenAI GPT
این گردش کار فرآیند تحلیل چندین رزومه کاندیدا در برابر یک شرح شغل (JD) واحد را با استفاده از OpenAI GPT خودکار میکند. این ابزار برای استخدامکنندگان و متخصصان منابع انسانی طراحی شده است که به دنبال ارزیابی کارآمد تعداد زیادی رزومه برای موقعیتهای شغلی باز هستند و امتیازات تناسب دقیق، تطابق دامنه و توصیهها را ارائه میدهد.
شما میتوانید این گردش کار و موارد دیگر را در کاتالوگ Axeto بیابید: Axeto.ai/n8n
نمای کلی گردش کار
این گردش کار به طور منطقی به سه مرحله اصلی تقسیم میشود:
1. دریافت ورودی و مدیریت فایل: دریافت شرح شغل و چندین فایل رزومه (CV) از طریق یک وبهوک. فراداده (metadata) و محتوای base64 فایلها استخراج شده و سپس مشخص میشود که آیا هر PDF رزومه مبتنی بر متن است یا اسکن شده.
2. استخراج متن و آمادهسازی فراداده کاندیدا: تبدیل فایلهای base64 به باینری، استخراج متن قابل خواندن از PDFها، پیوست مجدد فراداده (شرح شغل، نام فایل، نام کاندیدا، نقش)، و ترکیب تمام دادههای رزومه در یک آرایه ساختاریافته برای پردازش توسط هوش مصنوعی.
3. پردازش هوش مصنوعی و مدیریت خروجی: استفاده از یک عامل هوش مصنوعی مبتنی بر LangChain با OpenAI GPT برای تجزیه و تحلیل و امتیازدهی هر رزومه در برابر شرح شغل. سپس خروجی هوش مصنوعی تجزیه شده، بهترین کاندیدا انتخاب میشود و با یک نتیجه JSON جامع به درخواست وبهوک پاسخ داده میشود.
---
تشریح جزئیات نودها
۱. دریافت ورودی و مدیریت فایل
این بخش به دریافت اولیه فایلهای شرح شغل (Job Description) و رزومه (CV)، همراه با پردازش مقدماتی برای تعیین بهترین روش استخراج متن میپردازد.
- Webhook
* نوع: n8n-nodes-base.webhook
* نقش: به عنوان نقطه ورود HTTP POST برای دریافت فایلهای شرح شغل و رزومه عمل میکند.
* پیکربندی: روی مسیر /chat-new تنظیم شده، به همه مبدأها اجازه میدهد، از متد POST استفاده میکند و برای بازگرداندن پاسخ پس از پردازش پیکربندی شده است.
* ورودی/خروجی: بدنه JSON حاوی شرح شغل و فایلها را دریافت میکند؛ بدنه دریافتی را به نود بعدی خروجی میدهد.
* ملاحظات: در صورت عمومی کردن این نقطه پایانی، اقدامات امنیتی مناسب را تضمین کنید. فرمتهای نامعتبر فایل یا دادههای ناقص ممکن است منجر به خطا شوند.
- List_File
* نوع: n8n-nodes-base.code
* نقش: بدنه JSON ورودی از وبهوک را تجزیه و تحلیل کرده و متن شرح شغل و فراداده فایل (نام فایل و محتوای base64) را برای هر رزومه استخراج میکند.
* منطق: هر فایل را به یک آیتم شامل شرح شغل، یک ایندکس، نام فایل و محتوای base64 نگاشت میکند.
* ورودی/خروجی: بدنه JSON ورودی را میگیرد؛ آرایهای از اشیاء فایل را خروجی میدهد که هر کدام دارای فراداده مرتبط هستند.
* موارد مرزی: با خروجی دادن یک لیست خالی، به طور موثر با آرایه خالی فایلها برخورد میکند.
- Detect PDF Type
* نوع: n8n-nodes-base.code
* نقش: برای هر فایل اجرا میشود تا مشخص کند آیا PDF مبتنی بر متن است یا یک تصویر اسکن شده. این موضوع روش استخراج متن بعدی را تعیین میکند.
* منطق: رشته base64 را به یک بافر تبدیل میکند، تلاش برای استخراج متن UTF-8 را انجام میدهد و از عبارات منظم برای تشخیص وجود متن قابل خواندن استفاده میکند.
* خروجی: یک فیلد pdf_type به آیتم اضافه میکند که "text"، "scan"، "unknown" یا "error" را با یادداشتهای مرتبط نشان میدهد.
* موارد مرزی: با دادههای base64 گمشده یا خطاهای رمزگشایی با افزودن یادداشتهای هشدار برخورد میکند.
- If
* نوع: n8n-nodes-base.if
* نقش: یک نود شرطی که گردش کار را بر اساس فیلد pdf_type منشعب میکند. PDFهای مبتنی بر متن را به یک مسیر پردازش و PDFهای اسکن شده/ناشناخته را به مسیر دیگری هدایت میکند.
* کاربرد: پردازش متمایز را بر اساس ماهیت PDF امکانپذیر میسازد.
* موارد مرزی: اگر pdf_type "unknown" یا "error" باشد، گردش کار شاخه "false" را دنبال میکند که در این تنظیمات منجر به تبدیل باینری میشود.
۲. استخراج متن و آمادهسازی فراداده کاندیدا
این مرحله بر استخراج محتوای متنی از رزومهها و غنیسازی آن با فراداده مرتبط قبل از ارسال برای تجزیه و تحلیل هوش مصنوعی تمرکز دارد.
- Convert Base64 to Binary
* نوع: n8n-nodes-base.code
* نقش: رشته کدگذاری شده base64 هر رزومه را به فرمت باینری تبدیل میکند که برای استخراج متن PDF لازم است.
* منطق: اگر دادههای base64 گمشده باشند، یک یادداشت برمیگرداند؛ در غیر این صورت، دادههای باینری را با نوع MIME و نام فایل مناسب خروجی میدهد.
* ورودی/خروجی: دادههای base64 را دریافت میکند؛ دادههای باینری مناسب برای استخراج فایل را خروجی میدهد.
* موارد مرزی: با دادههای base64 گمشده با پیام هشدار برخورد میکند.
- Loop Over Items
* نوع: n8n-nodes-base.splitInBatches
* نقش: پردازش را برای مدیریت هر فایل رزومه به صورت جداگانه از طریق نودهای بعدی تقسیم میکند.
* ورودی/خروجی: لیست فایلهای باینری را میگیرد و آنها را یکی یکی پردازش میکند.
- Extract from File
* نوع: n8n-nodes-base.extractFromFile
* نقش: محتوای متنی را به طور بومی از فایلهای PDF باینری استخراج میکند.
* ورودی/خروجی: دادههای PDF باینری را دریافت میکند؛ متن استخراج شده را به همراه هرگونه فراداده مرتبط خروجی میدهد.
* موارد مرزی: PDFهای اسکن شده بدون لایه متن منجر به استخراج خالی میشوند.
- Reattach_Metadata_After_Extract
* نوع: n8n-nodes-base.code
* نقش: شرح شغل اصلی و نام فایل را به متن استخراج شده مجدداً پیوست میکند. همچنین با تلاش برای تشخیص نام کاندیدا، موقعیت شغلی و نوع نقش با استفاده از عبارات منظم و اکتشافی، دادهها را غنی میکند.
* عبارات کلیدی:
* از regex برای شناسایی نامهای کامل (شامل حروف ویتنامی و لهجهدار)، نامهای مختصر و بلوکهای اطلاعاتی رایج استفاده میکند.
* موقعیت کاندیدا را با تطبیق کلمات کلیدی عنوان شغلی استخراج میکند.
* نقش را بر اساس کلمات کلیدی موقعیت شغلی به مدیر (Manager)، کاربردی (Functional)، فنی (Technical)، اداری (Admin) یا سایر (Other) دستهبندی میکند.
* ورودی/خروجی: تمام متن و فراداده استخراج شده را میگیرد؛ یک شیء JSON برای هر رزومه با اطلاعات غنی شده خروجی میدهد.
* موارد مرزی: اگر نام کاندیدا شناسایی نشود، به null تنظیم میشود. با متن گمشده یا بدشکل به طور موثر برخورد میکند.
- Combine_Candidates_For_AI
* نوع: n8n-nodes-base.code
* نقش: تمام اشیاء JSON رزومه غنی شده را در یک بار داده (payload) واحد جمعآوری میکند. این بار داده شامل شرح شغل و یک آرایه candidates است که برای پردازش هوش مصنوعی بهینه شده است.
* منطق: تلاش میکند تا یک خط نام خام کاندیدا را از خطوط اولیه متن رزومه استخراج کند، با حذف اصطلاحات رایج سربرگ مانند "CV" یا "Thông tin cá nhân".
* ورودی/خروجی: چندین آیتم رزومه را در یک شیء واحد شامل شرح شغل و آرایه candidates ترکیب میکند.
* موارد مرزی: با متن خالی یا گمشده برخورد میکند و در صورت شکست استخراج اولیه، نامهای کاندیدای جایگزین را حفظ میکند.
- Preprocess_CV_Names
* نوع: n8n-nodes-base.code
* نقش: نامهای کاندیدا را با انتخاب اولین خط معتبر در متن رزومه که حاوی کلمات کلیدی خاصی نیست، بیشتر اصلاح میکند. این کار قالببندی و لهجههای اصلی را حفظ میکند.
* لاگگیری: لاگهای اشکالزدایی را برای نام فایلها و نامهای استخراج شده به کنسول خروجی میدهد.
* ورودی/خروجی: دادههای ترکیبی کاندیدا را دریافت میکند و فیلدهای candidate_name را قبل از مرحله تجزیه و تحلیل هوش مصنوعی بهروز میکند.
* موارد مرزی: با رزومههای خالی یا پر سر و صدا با بازگشت به یک رشته خالی برای نام، برخورد میکند.
۳. پردازش هوش مصنوعی و مدیریت خروجی
این مرحله نهایی از OpenAI GPT برای تجزیه و تحلیل رزومهها در برابر شرح شغل، پردازش پاسخ هوش مصنوعی و بازگرداندن نتایج استفاده میکند.
- OpenAI Chat Model
* نوع: @n8n/n8n-nodes-langchain.lmChatOpenAi
* نقش: مدل OpenAI GPT (مانند gpt-4o-mini) را فراخوانی میکند و پرامپت هوش مصنوعی تعریف شده در نود LangChain agent بعدی را به آن تغذیه میکند.
* اعتبارنامهها: نیاز به اعتبارنامههای پیکربندی شده OpenAI API دارد.
* ورودی/خروجی: متن پرامپت را دریافت میکند؛ پاسخ خام هوش مصنوعی را به نود agent خروجی میدهد.
* موارد مرزی: احتمال خطاهای شبکه، مشکلات API یا محدودیت نرخ.
- AI Recruiter Agent
* نوع: @n8n/n8n-nodes-langchain.agent
* نقش: حاوی منطق اصلی هوش مصنوعی است. با ترکیب شرح شغل و دادههای کاندیدا، پرامپت را میسازد و به GPT دستور میدهد تا هر رزومه را مطابق با قوانین اونتولوژی خاص تجزیه و تحلیل و امتیازدهی کند.
* نکات برجسته پرامپت:
* یک اونتولوژی دامنه شغل و رزومه دقیق با قوانین تطبیق تعریف میکند.
* شامل قوانین سختگیرانه برای استخراج نام کاندیدا برای جلوگیری از جعل است.
* منطق امتیازدهی و طرحواره خروجی JSON مورد نظر را مشخص میکند.
* به مدل دستور میدهد تا به زبان ویتنامی خروجی دهد و اصطلاحات فنی را حفظ کند.
* ورودی/خروجی: دادههای ترکیبی شرح شغل و کاندیدا را دریافت میکند؛ یک آرایه JSON حاوی تجزیه و تحلیل هوش مصنوعی برای هر کاندیدا خروجی میدهد.
* موارد مرزی: خطرات توهم مدل با قوانین سختگیرانه پرامپت کاهش مییابد. دادههای ورودی بدشکل میتواند منجر به خطاهای تجزیه شود.
- Parse Recruiter Output
* نوع: n8n-nodes-base.code
* نقش: رشته خروجی JSON هوش مصنوعی را به طور قوی تجزیه میکند. نتایج تطبیق دامنه را نرمال میکند و منطق شکستن تساوی را برای انتخاب بهترین کاندیدا اعمال میکند.
* منطق کلیدی:
* پرچمهای domain_match ناسازگار را اصلاح میکند.
* کاندیداها را بر اساس حداقل fit_score (مثلاً ≥ ۷۰) فیلتر میکند.
* معیارهای شکستن تساوی را اعمال میکند: fit_score، برابری دامنه، شباهت دامنه، تعداد کلمات کلیدی تطبیق داده شده و سالهای تجربه.
* یک متن خلاصه بر اساس تجزیه و تحلیل ایجاد میکند.
* ورودی/خروجی: خروجی خام هوش مصنوعی را میگیرد؛ یک خلاصه ساختاریافته و لیستی رتبهبندی شده از کاندیداها را برمیگرداند.
* موارد مرزی: با شکستهای تجزیه JSON و خروجی بدشکل هوش مصنوعی به طور موثر برخورد میکند.
- Respond to Webhook
* نوع: n8n-nodes-base.respondToWebhook
* نقش: آخرین نود در گردش کار. نتیجه کامل پردازش شده JSON را به درخواست کننده اصلی HTTP POST ارسال میکند.
* پیکربندی: کد وضعیت HTTP 200 را با هدرهای CORS مناسب برمیگرداند.
* موارد مرزی: احتمال قطع شدن شبکه یا قطع اتصال کلاینت.
---
جدول خلاصه
| نام نود (Node Name) | نوع نود (Node Type) | نقش عملکردی (Functional Role) | نود(های) ورودی (Input Node(s)) | نود(های) خروجی (Output Node(s)) | یادداشت چسبان (Sticky Note) |
|---|---|---|---|---|---|
| Webhook | n8n-nodes-base.webhook | نقطه ورود برای فایلهای شرح شغل و رزومه | List_File | 🟩 مرحله ۱: بارگذاری فایلها (شرح شغل + رزومهها) - نود Webhook فایل شرح شغل و چندین فایل رزومه را دریافت میکند. | |
| List_File | n8n-nodes-base.code | استخراج نام فایلها و دادههای base64 از فایلها | Webhook | Detect PDF Type | |
| Detect PDF Type | n8n-nodes-base.code | تشخیص نوع PDF: مبتنی بر متن یا اسکن شده | List_File | If | |
| If | n8n-nodes-base.if | انشعاب بر اساس نوع PDF (متنی یا اسکن شده) | Detect PDF Type | Convert Base64 to Binary | |
| Convert Base64 to Binary | n8n-nodes-base.code | تبدیل رشتههای base64 به باینری برای استخراج | If | Loop Over Items | 🟨 مرحله ۲: استخراج و ادغام متن - تبدیل Base64 به باینری هر رزومه را برای استخراج متن آماده میکند. |
| Loop Over Items | n8n-nodes-base.splitInBatches | پردازش هر فایل رزومه به صورت جداگانه | Convert Base64 to Binary | Extract from File, NoOp | |
| Extract from File | n8n-nodes-base.extractFromFile | استخراج محتوای متنی از باینری PDF | Loop Over Items | Reattach_Metadata_After_Extract | |
| NoOp | n8n-nodes-base.noOp | نود جایگزین برای مدیریت اتصال | Loop Over Items | Loop Over Items | |
| Reattach_Metadata_After_Extract | n8n-nodes-base.code | پیوست مجدد شرح شغل/نام فایل و فراداده کاندیدای استخراج شده | Extract from File | Combine_Candidates_For_AI | |
| Combine_Candidates_For_AI | n8n-nodes-base.code | تجمیع تمام رزومهها در آرایه کاندیداها | Reattach_Metadata_After_Extract | Preprocess_CV_Names | |
| Preprocess_CV_Names | n8n-nodes-base.code | پالایش نام کاندیداها قبل از تحلیل هوش مصنوعی | Combine_Candidates_For_AI | OpenAI Chat Model | |
| OpenAI Chat Model | @n8n/n8n-nodes-langchain.lmChatOpenAi | فراخوانی مدل OpenAI GPT برای تحلیل | Preprocess_CV_Names | AI Recruiter Agent | 🟦 مرحله ۳: تحلیل و خروجی هوش مصنوعی - مدل OpenAI Chat، پرامپت را به GPT ارسال میکند. |
| AI Recruiter Agent | @n8n/n8n-nodes-langchain.agent | منطق اصلی هوش مصنوعی: ساخت پرامپت و تحلیل | OpenAI Chat Model | Parse Recruiter Output | |
| Parse Recruiter Output | n8n-nodes-base.code | تجزیه خروجی هوش مصنوعی، نرمالسازی و انتخاب بهترین کاندیدا | AI Recruiter Agent | Respond to Webhook | |
| Respond to Webhook | n8n-nodes-base.respondToWebhook | ارسال نتایج نهایی JSON به درخواستکننده | Parse Recruiter Output | 🟢 تکمیل گردش کار: نتایج از طریق وبهوک بازگردانده شد. |
Nodeهای استفادهشده
سوالات متداول
این گردش کار n8n چگونه رزومهها را تحلیل میکند؟▾
این گردش کار از OpenAI GPT از طریق LangChain برای تجزیه و تحلیل و امتیازدهی هر رزومه در برابر شرح شغل استفاده میکند. سپس خروجی هوش مصنوعی تجزیه شده و بهترین کاندیدا انتخاب میشود.
چه نوع فایلهایی را میتوان با این گردش کار پردازش کرد؟▾
این گردش کار برای پردازش فایلهای شرح شغل و چندین فایل رزومه (CV) طراحی شده است. همچنین میتواند PDFهای مبتنی بر متن و اسکن شده را تشخیص داده و پردازش کند.
مزایای اصلی استفاده از این گردش کار چیست؟▾
مزایای اصلی شامل خودکارسازی تحلیل رزومه، صرفهجویی در زمان استخدام، امتیازدهی دقیق کاندیداها، شناسایی تطابق دامنه و ارائه توصیههای برتر برای انتخاب کارآمدتر است.
workflowهای مرتبط
- طبقهبندی خودکار حوادث امنیتی با GPT-4 و Google SheetsSecOps
- دستهبندی خودکار ایمیل جیمیل با GPT-4o و هشدار SlackAI Summarization
- دستهبندی خودکار پستهای وبلاگ با هوش مصنوعی و گیتهابContent Creation
- اتوماسیون جستجوی لینکدین با GPT-4 و جستجوی بولی گوگلHR
- خودکارسازی اصلاح نقطه پایانی با Wazuh، ClamAV و GPT-4SecOps
- تغییر نام خودکار گرههای n8n با هوش مصنوعیEngineering
