مُحسِّن طلبات التوظيف مع LlamaIndex

تعرف على كيفية استخراج المعلومات المنظمة من السيرة الذاتية واستخدام LLMs لإنشاء تعليقات مخصصة بناءً على أوصاف الوظائف.

سنغطي ما يلي...

في هذا الدرس، بناء مساعدًا مدعمًا بالذكاء الاصطناعي لمساعدة المرشحين على تصميم سيرهم الذاتية بما يتناسب مع طلبات التوظيف المحددة. سيستخرج النظام معلومات مُهيكلة من السيرة الذاتية، مثل الخبرة العملية والتعليم والمهارات، ويستخدم هذه البيانات لتقييم مدى توافقها مع وصف الوظيفة المُحدد.

بناءً على هذا التحليل، سيُقدّم المساعد اقتراحات مُخصّصة لتحسين السيرة الذاتية. قد يشمل ذلك إبراز الخبرات ذات الصلة، أو تحديد الكلمات المفتاحية الناقصة، أو التوصية بتصنيف أوضح للمهارات.

يعد هذا النوع من التطبيقات مفيدًا للباحثين عن عمل، أو مدربي التوظيف، أو المنصات التي توفر ميزات فحص السيرة الذاتية وتحسينها.

Press + to interact
Application interface
Application interface

ملاحظة: يستخدم هذا النظام استخراج البيانات المنظمة لتحليل السير الذاتية وأوصاف الوظائف، والذاكرة للحفاظ على السياق عبر الأدوار، والإنشاء الفوري لتوليد محتوى تطبيق مخصص.

لتنفيذ هذا التطبيق، سنستخدم الوحدات والمكتبات التالية:

Modules and Libraries

Library/Module

Purpose

LlamaIndex

Structured data extraction and LLM interaction

Streamlit

Front-end interface for user input and result display

Groq

LLM backend to generate feedback and improvement suggestions

Pydantic

Define and enforce schema for structured resume fields

إعداد واجهة Streamlit

سنستخدم Streamlit لإنشاء واجهة بسيطة تقبل مدخلين من المستخدم:

  1. ملف السيرة الذاتية بصيغة PDF: سيتم تحليله وتحويله إلى حقول منظمة باستخدام مخطط محدد مسبقًا.

  2. وصف الوظيفة: يمكن لصقه كنص حر.

سنضيف أيضًا زر لبدء عملية التحليل، والتي ستستخرج البيانات المنظمة من السيرة الذاتية وتولد اقتراحات للتحسين باستخدام نموذج لغوي.

نقوم بناء واجهة المستخدم بالكود التالي:

import streamlit as st
# Page config and title
st.set_page_config(page_title="Job Application Optimizer")
st.title("🎯 Job Application Optimizer")
st.markdown("Upload your resume and paste a job description to get personalized feedback.")
# File uploader for resume
uploaded_resume = st.file_uploader("📄 Upload your resume (PDF)", type=["pdf"])
# Text area for job description
job_description = st.text_area("📝 Paste the job description")
# Action button to trigger analysis
analyze_clicked = st.button("Analyze Resume")
Set up the Streamlit interface to accept a resume file and job description text, and provide a button to run the analysis

بعد ذلك، سنقوم بتحديد المخطط المنظم لاستخراج المعلومات مفتاح من السيرة الذاتية.

تحديد مخطط السيرة الذاتية

لمساعدة نموذج اللغة على فهم السيرة الذاتية، نُحوّل أولاً محتوى PDF غير المُهيكل إلى صيغة مُهيكلة. يتضمن ذلك تحديد مُخطط يُلخص الحقول مفتاح الموجودة عادةً في السيرة الذاتية. ...