محمدرضا شاقوزی
خواندن ۳ دقیقه·۳ ماه پیش

از تنبلی تا خودکارسازی: چگونه با هوش مصنوعی رزومه اختصاصی ساختم و ارسال کردم

همه ما در مقطعی از زندگی به دنبال شغل بوده‌ایم و می‌دانیم که چقدر این فرآیند می‌تواند زمان‌بر و خسته‌کننده باشد. من هم از این قاعده مستثنی نبودم. اما یک تفاوت عمده داشتم: تنبلی! خب، شاید این کلمه کمی بی‌رحمانه باشد، اما اعتراف می‌کنم که انگیزه زیادی برای انجام دستی کارهای تکراری مثل پر کردن درخواست‌های آنلاین استخدام نداشتم. این شد که تصمیم گرفتم یک پروژه شخصی راه بیاندازم: ساخت یک سیستم خودکار برای ارسال رزومه. هدف این بود که از صفر تا صد کار، بدون دخالت مستقیم من انجام شود. در این مقاله، ماجرای این پروژه را با شما به اشتراک می‌گذارم.

نمونه لاگ اجرای برنامه
نمونه لاگ اجرای برنامه


فاز اول: خزیدن در دنیای آگهی‌ها (Crawling)

اولین قدم، جمع‌آوری آگهی‌های استخدامی بود. برای این کار، از یکی از پلتفرم‌های موجود استفاده کردم. خوشبختانه، این قسمت با وجود چالش‌هایی که داشت، با موفقیت انجام شد.

پایگاه داده آگهی‌ها
پایگاه داده آگهی‌ها

یکی از مشکلات اذیت‌کننده، CDN بود که خوشبختانه قبلاً با یک تکنیک دیگر دور زده بودیم. برای اطلاع بیشتر از این موضوع، می‌توانید به این مخزن نگاهی بیندازید:

مخزن گیت دور زدن cdn
مخزن گیت دور زدن cdn


فاز دوم: معجزه مدل زبانی بزرگ(LLM) در ساخت رزومه‌های اختصاصی

بعد از جمع‌آوری آگهی‌ها، نوبت به مرحله جذاب‌تر یعنی ساخت رزومه متناسب با هر آگهی می‌رسید. اینجاست که هوش مصنوعی وارد میدان شد. از بین مدل‌های مختلف، Gemini گوگل به دلیل API رایگان و کارآمدی که داشت، انتخاب شد. گوگل مستندات خوبی برای استفاده از این API در کتابخانه genai ارائه کرده، اما توصیه می‌کنم حتماً جایگزین‌های دیگر را هم بررسی کنید. اگر کنجکاو هستید، می‌توانید از Google AI Studio پرامپت مناسب برای Gemini را مهندسی کنید.

صفحه Google AI Studio
صفحه Google AI Studio


برای اینکه بتوانم این قسمت را سریع‌تر راه بیاندازم، از یک سری پرامپت عجله‌ای و شاید کمی شلخته استفاده کردم. ایده اصلی این بود که رزومه اصلی من به صورت JSON در سیستم ذخیره شده باشد و بر اساس توضیحات آگهی، یک رزومه جدید به صورت PDF ساخته شود.

نمونه رزومه اختصاصی 1
نمونه رزومه اختصاصی 1


نمونه رزومه اختصاصی 2
نمونه رزومه اختصاصی 2


فاز سوم: ارسال خودکار رزومه‌ها، پایان کار؟

فاز سوم و پایانی، ارسال خودکار رزومه‌ها در صفحات آگهی بود. این بخش هم با استفاده از کدنویسی و اسکرپینگ انجام شد. پیچیدگی این مرحله نسبت به دو مرحله قبلی کمتر بود، اما به جرات می‌توانم بگویم که نمود اصلی پروژه در همین بخش نمایان شد. پس از تکمیل این مراحل، سیستم من به صورت خودکار برای چند ده آگهی رزومه فرستاد.

نمونه کد آپلود و ارسال رزومه
نمونه کد آپلود و ارسال رزومه


کدها کجاست؟

کل این پروژه به صورت یک اسکریپت منتشر شده و می‌توانید توضیحات نصب و اجرای آن را در گیت‌هاب پیدا کنید.

گیت‌هاب پروژه
گیت‌هاب پروژه


درس‌هایی که آموختم و چالش‌های پیش رو:

با وجود موفقیت نسبی پروژه، چند نکته مهم وجود دارد که برای توسعه آن باید به آن‌ها توجه کرد:

  • پروژه‌های مشابه خارجی(alternatives): بررسی پروژه‌های مشابه خارجی برای بهبود سیستم ضروری است. تفاوت‌ها و شباهت‌ها می‌تواند ایده‌های خوبی برای توسعه به ما بدهد.
  • پلتفرم‌محور بودن(Generalized Platforms): در حال حاضر، سیستم ما برای هر پلتفرم به صورت جداگانه پیاده‌سازی می‌شود. یک معماری پلتفرم-آگنوستیک (مستقل از پلتفرم) می‌تواند بسیار مفید باشد.
  • توهم مدل‌های زبانی(Hallucination): باید مراقب توهمات مدل‌های زبانی باشیم و یک حد مناسب برای تولید رزومه تعیین کنیم تا از ارائه اطلاعات نادرست و غیرواقعی جلوگیری شود. تنظیم هایپرپارامترهایی مانند temperature می‌تواند در این زمینه کمک کند.
  • تولید خودکار تمپلیت(Intelligent Template Builder): در حال حاضر، از یک تمپلیت Markdown برای ساخت رزومه استفاده می‌شود، اما این تمپلیت هم می‌تواند به صورت هوشمند تولید شود.
  • هوش مصنوعی عاملیت‌مند(Agentic AI): این پروژه با وجود استفاده از LLM برای هوشمندی، همچنان با هوش مصنوعی عاملیت‌مند یا Agentic AI فاصله دارد. به عنوان توسعه می‌توان با استفاده از تکنیک‌های جدید از وزن کدنویسی ایستای پروژه کاهید.

انتقادات و پیشنهادات شما؟

این پروژه برای من یک تجربه بسیار ارزشمند بود و امیدوارم برای شما هم مفید بوده باشد. اگر شما هم انتقاد یا پیشنهادی دارید، خوشحال می‌شوم در بخش نظرات با من در میان بگذارید.

پاورقی فایل pdf تولید شده توسط اسکریپت
پاورقی فایل pdf تولید شده توسط اسکریپت


پژوهشگر هوش مصنوعی، توسعه‌دهنده نرم‌افزار، علاقه‌مند به استفاده از هوش مصنوعی برای حل مسائل پیچیده. بیزار از چالش‌های تکراری، ماشینیست
شاید از این پست‌ها خوشتان بیاید