أدوات الذكاء الاصطناعي والإنتاجية6 مهارات AI مع Excel رح تغيّر طريقة شغلك!
تعلّم كيف يساعدك الذكاء الاصطناعي في تنظيف بيانات Excel وكتابة المعادلات وتحليل البيانات وبناء Dashboards وأتمتة المهام ودعم القرارات.
دراسة حالة تفاعلية — درس مكتوب بدون فيديو
HR Smart — From First Prompt to Final Product
رحلة عملية كاملة نشرح فيها كيف بنينا منصة HR Smart للتوظيف الذكي، من أول فكرة وأول Prompt إلى تطوير الواجهات، ربط GitHub، استخدام Claude وChatGPT وLovable، حل المشكلات، اختبار النظام والوصول للنتيجة النهائية.
التحدي كان بناء نظام HR Smart للتوظيف بمساعدة الذكاء الاصطناعي مع الاستفادة من الأدوات المجانية. الهدف التعليمي هو فهم طريقة توزيع العمل بين الأدوات وتعلّم التعامل مع القيود — لا الادعاء أن المنتج جاهز للتوظيف الحقيقي.
نحن هنا أمام التطوير بمساعدة الذكاء الاصطناعي (AI-assisted development): الأداة تكتب الكود، وأنت تحدد المتطلبات والقيود، وتراجع، وتتحمل مسؤولية النتيجة. هذا يختلف عن No-code (منصات مرئية بالكامل) وعن التطوير التقليدي.
منذ البداية وُضع قيد أخلاقي حاسم: النظام لا يرفض أي مرشح تلقائيًا، ويعرض الأدلة ودرجة عدم اليقين في كل نتيجة. وكل البيانات المستخدمة وهمية.
المدة
حوالي 8 ساعات — تقدير من المالك، وليس سجلًا بتوقيتات دقيقة.
الأدوات
Lovable للأساس، GitHub لإدارة الكود وCI، Claude للتطوير اللاحق.
القيد المالي
الالتزام بحدود الخطط المجانية، دون APIs مدفوعة.
القيد الأخلاقي
لا رفض تلقائي؛ النتائج استشارية مع أدلة وعدم يقين.
ملاحظة للمدرّب: اعرض أول Prompt، واطلب من الطلاب تحديد: الهدف، التقنيات، الوحدات، الأمان، اللغة، القيود، وأول مرحلة.
بدأ المشروع ببرومبت واحد منظم في Lovable (تجده كاملًا وحرفيًا أدناه). البرومبت لم يطلب «كل شيء الآن»، بل حدد الرؤية الكاملة ثم قال صراحة: ابدأ بالمصادقة وجداول قاعدة البيانات وDashboard وإدارة الوظائف.
أعلن Lovable تنفيذ المرحلة الأولى: تسجيل الدخول، قاعدة البيانات، Dashboard، إدارة الوظائف، Settings، والعربية والإنجليزية مع RTL. وذكر أن الجداول تشمل jobs وcandidates وcv_files وanalysis_results مع سياسات خصوصية حسب المستخدم، وأن الاختبارات الآلية لقواعد نماذج الوظائف والترجمات نجحت.
لكن Lovable صرّح أنه لم يتمكن من اختبار الصفحات المحمية يدويًا لعدم وجود حساب آنذاك. وبقيت Candidates وCV Upload وAnalysis Results مراحل لاحقة. هذا التصريح الصادق هو أول درس في التمييز بين مستويات الإنجاز.
أربع حالات مختلفة — لا تخلط بينها
Generated (الكود كُتب) ≠ Tested (اختبارات آلية نجحت) ≠ Deployed (منشور) ≠ Manually Verified (جرّبه إنسان فعلًا). كل ادعاء في هذا الدرس موسوم بالحالة التي يثبتها مصدره فقط.

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

إدارة الوظائف
صفحة الوظائف: إنشاء وتعديل وحذف، بحث وفلاتر حسب الحالة (الكل، مسودة، مفتوحة، متوقفة مؤقتًا، مغلقة)، ووسوم المهارات لكل وظيفة.
ملاحظة للمدرّب: اشرح الفرق بين Generated وTested وDeployed وManually Verified.
عند نفاد Lovable Credits انتقل التطوير إلى Claude + GitHub. المستودع أصبح نقطة الالتقاء: Lovable يزامن الكود إلى GitHub، وClaude يعمل على فرع مستقل، والتغييرات تدخل main فقط عبر Pull Request.
أول طلب لـ Claude لم يكن «ابنِ»، بل «افحص»: حدد الملفات التي تستطيع الوصول إليها فعلًا وما هو مفقود، حلّل البنية والمصادقة وقاعدة البيانات ووحدة الوظائف، وقدّم خطة فقط دون تعديل أي كود. راجع Claude في البداية نحو 115 ملفًا مرفقًا، ولم يدّعِ وصولًا مباشرًا لقاعدة البيانات.
لاحقًا استطاع Claude استنساخ المستودع والدفع إلى فرع مستقل. سير العمل صار: Branch ← Commit ← Push ← Pull Request ← CI ← Merge.
Branch
نسخة عمل منفصلة؛ التجارب لا تمس main.
Commit
حفظة موثقة برسالة تشرح التغيير.
Pull Request
طلب مراجعة ودمج — مكان CI والنقاش.
لماذا لا نعدّل main مباشرة؟
لأن main هو ما يُنشر؛ أي خطأ فيه يصل للمستخدمين مباشرة.
ملاحظة للمدرّب: اشرح Branch وCommit وPull Request، ولماذا لا نعدل main مباشرة.
بعد الموافقة على الخطة أعطى المالك قراراته مسبقًا: صفحة CV Upload مستقلة في الشريط الجانبي مع رفع من ملف كل مرشح، لا OCR الآن مع تحذير عند تعذّر استخراج النص، وتحذير من البريد المكرر دون منعه.
تمت إضافة قائمة المرشحين وصفحاتهم والإضافة والتعديل والحذف والبحث والتحذير من البريد المكرر دون منعه، مع دعم RTL، على الفرع feature/candidates-management.
Claude صرّح أن الكود دُفع أولًا دون تشغيل كامل الاختبارات في بيئته. هذه نقطة محورية: اكتمال الكود ليس نجاح CI. ولهذا كان البرومبت التالي مباشرة هو إعداد GitHub Actions قبل الدمج.

إدارة المرشحين
صفحة المرشحين التي بناها Claude في PR #1: قائمة المرشحين مع البحث، سنوات الخبرة، الموقع، ووسوم المهارات — مع بيانات تجريبية وهمية فقط.
الأدلة التاريخية الموثقة:
ملاحظة للمدرّب: قارن بين اكتمال الكود ونجاح CI؛ لا تنسب لـ Claude اختبارًا لم يجره.
تم إعداد GitHub Actions على نفس فرع PR #1 لتشغيل الاختبارات وTypeScript وlint وbuild. وفور التشغيل ظهرت مشاكل حقيقية — لا أمثلة افتراضية.
شملت المشاكل توقعًا خاطئًا في اختبار الأحرف الأولى لاسم عربي («سامر النجار» متوقَّع «سن» بدل «سا» — صُحّح الاختبار لا التطبيق)، و509 أخطاء Formatting مرتبطة بدين تقني سابق، وخطأ YAML في تعريف workflow (قيمة run: بلا اقتباس تحتوي نقطتين، أُصلحت بـ block scalar).
بعد الإصلاح: 19 اختبارًا ناجحًا، build وtypecheck ناجحان، وESLint بلا أخطاء مع 8 تحذيرات (حسب تقرير Claude).
حلقة التصحيح
Fail → Diagnose → Fix → Re-run. ولماذا لم نُنسّق كل ملفات Lovable دفعة واحدة؟ لأن تغييرًا ضخمًا شكليًا يخفي التغييرات الحقيقية ويصعّب المراجعة — فحُصر فحص التنسيق في الملفات الجديدة.
الأدلة التاريخية الموثقة:
ملاحظة للمدرّب: اعرض سلسلة: Fail → Diagnose → Fix → Re-run، وفسّر لماذا لا يجب تنسيق كل ملفات Lovable دفعة واحدة.
بعد نجاح اختبار إضافة المرشحين، كان رصيد Lovable صفرًا. فطُلب من Claude أولًا تحقيق للقراءة فقط: هل يمكن إكمال التخزين والأمان يدويًا دون رصيد؟ وفي المحاولة التالية فشل أمر ls supabase/migrations لأن المجلد غير موجود — فشل غير ضار.
جرى إعداد bucket خاص اسمه cv-files يدويًا مع حد 10MB وصيغ PDF/DOCX/TXT، وأربع سياسات Storage للمستخدمين المسجلين (SELECT/INSERT/UPDATE/DELETE) تقصر الوصول على مسارات تبدأ بـ UUID المستخدم.
ثم طُلبت مراجعة أمنية: أشار Claude إلى ثغرة محتملة في تحقق ملكية السجلات المرتبطة (parent ownership)، وإلى ضرورة اختبار العزل بين حسابين. ما قُدّم كان خطة واستعلامات — ليس دليلًا على تشغيل اختبار العزل. وتقرر لاحقًا تأجيل التشديد الأمني لأن المشروع Demo تعليمي.
التخزين الخاص وحده لا يثبت أمن النظام للإنتاج. لا تستخدم هذا التطبيق لسير ذاتية حقيقية قبل إكمال التشديد واختبار العزل.
ملاحظة للمدرّب: نبّه الطلاب أن التخزين الخاص لا يكفي وحده لإثبات أمن النظام للإنتاج.
على فرع feature/cv-upload أضاف Claude الرفع والتنزيل والحذف واستخراج النصوص باستخدام pdfjs-dist (PDF) وmammoth (DOCX) وقراءة TXT مباشرة، مع تحرير النص المستخرج ودعم العربية، وصفحة رفع في الشريط الجانبي، ومسار تخزين {user_id}/{candidate_id}/{uuid}.{ext}.
واجه مشكلة jsdom (قيود قراءة الملفات في بيئة الاختبار) ومحارف Unicode غير المرئية وbun.lock؛ استخدم CI مؤقتًا لتحديث lockfile ثم أعاد strict frozen install.
نجاح CI لا يثبت جودة الاستخراج لكل ملفات PDF الحقيقية. ولم يشمل هذا PR خاصية OCR للملفات الممسوحة ضوئيًا ولا الرفع الجماعي لـ20 ملفًا.
الأدلة التاريخية الموثقة:
ملاحظة للمدرّب: جرّب ملفات CV خيالية فقط، واشرح الفرق بين PDF نصي وPDF ممسوح ضوئيًا.
بُني محرك Rule-Based حتمي (Deterministic) لا يحتاج OpenAI API أو Gemini. يقارن نص السيرة المستخرج ومهارات المرشح والمسمى الوظيفي ووصف الوظيفة والمهارات المطلوبة والخبرة.
الأوزان: المهارات 50%، الخبرة 20%، الكلمات المفتاحية 20%، المسمى الوظيفي 10%. عند نقص بيانات متطلب ما يُعاد توزيع الأوزان على المكونات القابلة للتقييم، ولا تُخترع مؤهلات مفقودة؛ وإن لم يكن هناك شيء قابل للتقييم لا تُعرض درجة أصلًا بدل 0%.
يعرض المحرك confidence وNeeds review، ولا يستخدم الاسم أو الجنس أو العمر أو الجنسية أو الصور في حساب الدرجة. اجتاز 68 اختبارًا منها 30 خاصة بالمطابقة (حسب تقرير Claude). تفاصيل المعادلات الرياضية الدقيقة غير معروضة هنا لأنها تحتاج مراجعة الكود المصدري أولًا.
الدرجة مؤشر مساعد، لا قرار توظيف
استبعاد السمات الحساسة خطوة ضرورية، لكنه لا يثبت العدالة بالكامل — العدالة تحتاج مراجعة بشرية وتحققًا مستمرًا.

نتائج التحليل
صفحة نتائج التحليل من PR #3: درجة مطابقة مع تفصيل الأوزان — المهارات 50%، الخبرة 20%، الكلمات المفتاحية 20%، المسمى الوظيفي 10% — والمهارات المطابقة والناقصة ومؤشر موثوقية البيانات.
الأدلة التاريخية الموثقة:
ملاحظة للمدرّب: اشرح أن Score مؤشر مساعد وليس قرار توظيف، وأن استبعاد السمات الحساسة لا يثبت العدالة بالكامل.
سجل Claude عند إغلاق PR #3 كان يقول إنه لم يدمج أو ينشر بعد. سجل Lovable اللاحق الذي قدمه المالك يحتوي إشعارات Merge لـ PR #1 و#2 و#3. هذا تسلسل زمني وليس تناقضًا.
حالة النشر والاختبار اليدوي النهائي لكل ميزة تحتاج تحققًا منفصلًا: إشعار الدمج يثبت أن الكود دخل main، ولا يثبت أن كل ميزة جُرّبت يدويًا في النسخة المنشورة.
النتيجة: نموذج أولي تعليمي يعمل ويمكنك استكشافه مباشرة — وليس نظام توظيف جاهزًا للإنتاج.
موثّق
إشعارات دمج PR #1 و#2 و#3 في سجل نشاط قدّمه المالك؛ تقارير CI من Claude.
غير موثّق
اختبار يدوي نهائي لكل ميزة بعد النشر، واختبار عزل بحسابين.
الأدلة التاريخية الموثقة:
ملاحظة للمدرّب: افتح روابط PRs وتحدث عن الفرق بين Merge وDeployment.
البرومبت الجيد يحدد الحدود، والتطوير المرحلي يقلل التعقيد، والاختبارات تصحح افتراضات AI، والتوثيق الصادق يذكر الفشل والقيود، والأمان ليس ميزة مؤجلة في التطبيقات الحقيقية.
البرومبت الجيد يحدد الحدود
كل برومبت هنا قال ما لا يجب فعله بقدر ما قال ما يجب بناؤه: لا تعيد البناء، لا تعدّل migrations، لا تدمج، لا تنشر.
التطوير المرحلي يقلل التعقيد
Auth/Jobs ← Candidates ← CI ← Storage ← CV Upload ← Matching.
الاختبارات تصحح افتراضات AI
CI كشف اختبارًا عربيًا خاطئًا وYAML مكسورًا ودين تنسيق.
التوثيق الصادق يذكر الفشل
Lovable وClaude صرّحا بما لم يختبراه — وهذا ما جعل التاريخ قابلًا للتحقق.
الأمان ليس ميزة مؤجلة
تأجيله مقبول في Demo تعليمي فقط، لا في تطبيق يحمل بيانات حقيقية.
ملاحظة للمدرّب: اطلب من الطلاب كتابة Prompt لمشروع صغير مع خطة أول Module واختبار واحد واضح.
ثلاثة طلبات دمج وثّقت رحلة البناء بعد الانتقال إلى Claude. نتائج CI أدناه كما أفاد بها Claude، والدمج كما يُظهره سجل النشاط الذي قدّمه المالك.
سبع مشكلات واجهها المشروع فعلًا كما ورد في سجل Claude — لا أمثلة افتراضية.
1. اختبار الأحرف الأولى العربية
المشكلة: توقّع الاختبار أن تكون الأحرف الأولى لاسم «سامر النجار» هي «سن» بدل «سا».
الإصلاح: صُحّح توقّع الاختبار نفسه — لا منطق التطبيق.
أحيانًا الخطأ في الاختبار لا في الكود؛ افهم السبب قبل «إصلاح» أي شيء.
2. 509 أخطاء Formatting
المشكلة: ظهر دين تنسيق Prettier على مستوى المستودع كله أثناء تشغيل lint.
الإصلاح: أُبقي ESLint للفحوصات المعنوية، وحُصر فحص التنسيق في الملفات الجديدة.
لا تعِد تنسيق كل ملفات Lovable المولّدة دفعة واحدة — تغيير ضخم بلا قيمة يصعّب المراجعة.
3. YAML في GitHub Actions
المشكلة: قيمة run: غير محاطة بعلامات اقتباس وتحتوي نقطتين (:) كسرت قراءة ملف workflow.
الإصلاح: استُبدلت بـ block scalar.
YAML حساس للصياغة؛ خطأ حرف واحد يوقف CI بالكامل.
4. مجلد غير موجود
المشكلة: أمر ls supabase/migrations فشل لأن المجلد غير موجود أصلًا.
الإصلاح: صُحّح الفحص للقراءة فقط دون تغيير أي كود.
فشل أمر استكشافي ليس عطلًا في المشروع — شخّص قبل أن تقلق.
5. jsdom ومحارف Unicode
المشكلة: اختبارات استخراج السير الذاتية واجهت قيود قراءة الملفات في jsdom ومحارف اتجاه غير مرئية.
الإصلاح: عُدّل توافق الاختبار/المتصفح واستُخدمت escapes صريحة للمحارف.
النصوص العربية تحمل محارف خفية؛ اختبرها صراحة.
6. bun.lock
المشكلة: مخرجات CI لم تكن متاحة لـ Claude، فتعذّر تحديث ملف القفل محليًا.
الإصلاح: commit مؤقت لملف lockfile مولَّد من CI، ثم إعادة فرض frozen lockfile الصارم.
الحل المؤقت مقبول إذا أعدت القاعدة الصارمة بعده مباشرة.
7. تحذيرات git hook كاذبة
المشكلة: استنساخ سطحي لفرع واحد بلا مراجع تتبع محلية لـ origin أظهر تحذيرات مضللة.
الإصلاح: تحقق Claude من المراجع البعيدة (remote refs) لإثبات أن الـcommits دُفعت فعلًا.
تحقّق من الحقيقة في المصدر، لا من رسالة تحذير.
تكامل Gemini API الاختياري غير متحقق منه
طُلب كخيار فقط في البرومبت الأول، ولم يُتحقق من تنفيذه.
OCR والرفع الجماعي لـ20 سيرة غير منفّذ
لم يُنفّذا في المرحلة الثالثة؛ حالتهما اللاحقة غير متحقق منها بشكل مستقل.
التحقق الإنتاجي بعد الدمج غير متحقق منه
لا يوجد في السجل اختبار عزل نهائي بحسابين ولا اختبار نشر لكل ميزة.
تشديد الأمان مؤجّل
تشديد سياسات ملكية السجلات الأم واختبار العزل بين مستخدمَين أُجّلا صراحةً لأن المشروع Demo تعليمي. لا يُسوَّق التطبيق كجاهز لسير ذاتية حقيقية.
التوقيتات الدقيقة لا يدعمه مصدر
لا توجد أوقات موثقة لكل مرحلة — نعرض مراحل مرتبة فقط. المدة الإجمالية ~8 ساعات تقدير من المالك.
برومبت التخطيط في ChatGPT لا يدعمه مصدر
لم يُقدَّم نصه الحرفي، فلا نعرضه ولا نخترعه. البرومبت الأول في Lovable هو الموثّق.
رد Lovable الأول لا يدعمه مصدر
مصدره نص لصقه المالك؛ نلخّصه بدقة دون اقتباسات مباشرة مختلَقة.
مصادر الأدلة
البرومبتات التسعة الأصلية مرتبة زمنيًا، منسوخة حرفيًا دون اختصار: البرومبت الأول في Lovable، وثمانية برومبتات من سجل Claude مع أرقام الأسطر. افتح أي بطاقة لقراءة النص الكامل ونسخه. برومبت التخطيط في ChatGPT غير معروض لأن نصه الحرفي لم يُقدَّم.
Evidence A — owner-supplied first Lovable prompt
حدد في البرومبت: الهدف، التقنيات، الوحدات، الأمان، اللغة، القيود الأخلاقية، قيود الخطة المجانية، وأول مرحلة. جملة «Build and test one module at a time» هي محور المنهجية كلها.
Create HR Smart, a personal AI-assisted recruitment management web application. Use React, TypeScript, Tailwind CSS and Supabase Free. Build a professional responsive dashboard with Jobs, Candidates, CV Upload, Analysis Results and Settings. Implement secure authentication, job CRUD, candidate management, private CV storage and user-scoped database policies. Prepare a modular matching engine with keyword matching and an optional Gemini API integration through secure backend functions. Support Arabic and English, including RTL layout. Never automatically reject applicants. Show evidence and uncertainty for every matching result. Keep the application compatible with free-tier limits. Build and test one module at a time. Start with authentication, database tables, Dashboard and Jobs management. Use fictional data only.
Evidence B — Claude transcript lines 1–8
افحص قبل أن تعدّل، واطلب خطة قبل الكود، واطلب من الأداة أن تقول بوضوح ما لا تستطيع الوصول إليه.
I am continuing development of HR Smart, originally built with Lovable. My GitHub repository is hatemkhatib96-web/talent-compass. Please inspect the project files currently available to you. First, identify which files you can actually access and which important files are missing. Then analyze the existing architecture, authentication, database integration, and Jobs module. My next goal is to implement Candidates Management and CV Upload while preserving the existing Arabic/English design and Lovable Cloud backend. Do not rebuild the application from scratch, change the database blindly, or use paid services. For now, provide an implementation plan only. Do not modify any code yet.
Evidence B — Claude transcript lines 94–113
لاحظ القرارات المسبقة (تحذير التكرار دون منع، لا OCR الآن) والسؤال الصريح: هل يمكنك فعلًا الـcommit؟ و«لا تدّعِ النشر ما لم يحدث».
Go ahead with Step 0 and Step 1. My decisions: CV Upload should have its own sidebar page, and uploading should also be available from each candidate's profile. Later, I want to support bulk uploads of up to 20 CVs. No OCR for scanned PDFs for now. Show a warning when text cannot be extracted. Warn about duplicate candidates with the same email, but do not automatically block them. Important requirements: Preserve the existing HR Smart application and its current design. Keep Arabic and English support, including RTL. Reuse the existing Lovable Cloud database. Do not create a new database or Supabase project. Do not modify generated migration files. Keep the implementation compatible with free online services. Never automatically reject candidates based on matching results. Start with Step 0 verification and Step 1 Candidates Management only. Before writing code, explain whether you can actually modify and commit files to my GitHub repository. If you cannot, provide complete, ready-to-apply code changes with exact file paths. Do not claim that changes have been deployed unless they actually have been deployed. After completing Step 1, show me how to test Candidates Management before proceeding to CV Upload.
Evidence B — Claude transcript lines 187–197
«لا تدمج ولا تنشر» + «إن فشل أي فحص فأصلحه على الفرع» = حلقة Fail → Diagnose → Fix → Re-run.
I successfully created Pull Request #1 for the Candidates Management module. Before merging, please set up free GitHub Actions CI on the existing feature/candidates-management branch. Requirements: Inspect package.json and the lockfile to identify the correct package manager. Create a GitHub Actions workflow that runs tests, TypeScript checks, lint, and production build. Make sure generated routes are handled correctly. Commit and push the workflow to the same feature branch. Do not merge into main or deploy anything. If any check fails, investigate and fix the code on the feature branch. Please provide the GitHub Actions run link and tell me whether all checks passed.
Evidence B — Claude transcript lines 246–253
عند نفاد الرصيد: قسّم العمل بين ما يمكن فعله يدويًا وما تكتبه الأداة، واطلب تحقيقًا قبل التغيير.
Important update: Lovable currently has 0 available credits. Phase 2 Candidates Management has been successfully tested, and adding candidates works correctly. Our goal is to continue Phase 3 with minimal cost. Prioritize Claude + GitHub for development. First, investigate whether the existing Lovable Cloud Storage and database security configuration can be completed manually without using Lovable AI credits. Do not make any changes yet. Provide the safest free implementation path, including any limitations or steps that require Lovable Cloud access.
Evidence B — Claude transcript lines 259–263
برومبت قصير يحافظ على القيود نفسها (لا تعديل، لا دفع، لا نشر) ويطلب الإيجاز لتقليل التكلفة.
Continue the previous read-only investigation. One command failed in the previous attempt. Identify the reason and retry safely if needed. Check the existing Lovable Cloud Storage setup and determine whether Phase 3 can be implemented without Lovable AI credits. Do not modify code, push commits, or deploy anything yet. Keep the response concise to minimize token usage.
Evidence B — Claude transcript lines 298–317
طلب تحقيق أمني قبل التنفيذ، وفصل صريح بين «صمّم الاختبار» و«شغّله».
We have successfully configured Lovable Cloud Storage manually without using Lovable AI credits. Confirmed: Private bucket: cv-files Maximum file size: 10 MB Allowed MIME types: PDF, DOCX, TXT Four storage.objects RLS policies exist for authenticated users: SELECT, INSERT, UPDATE, DELETE. Storage policies restrict access to paths beginning with the authenticated user's UUID. Next task: Security verification before Phase 3 implementation. Review the existing cv_files table RLS policies and candidate ownership checks. Identify any cross-user access vulnerabilities. Provide read-only SQL queries to verify the live database configuration. Design a safe two-user isolation test for Storage and database records. Check whether additional policy hardening is required. Do not modify migrations or generated files. Do not commit, push, merge, or deploy anything yet. Our priority is security, minimal cost, and continuing development through Claude + GitHub without Lovable AI credits. After verification, prepare the implementation plan for Phase 3: CV Upload, PDF/DOCX/TXT text extraction, Arabic/English support, and CI tests. Do not start implementation until I approve.
Evidence B — Claude transcript lines 420–460
لاحظ تحديد مسار التخزين {user_id}/{candidate_id}/{uuid}.{ext} وقيود «لا تُضعف RLS» و«لا ميزات غير ضرورية».
I approve starting Phase 3 — CV Upload & Management.
This project is an educational AI development demo, not a production application. We will postpone additional database security hardening and two-user isolation testing for now.
Current setup:
Lovable Cloud Storage bucket cv-files is configured.
The bucket is private.
Maximum file size: 10 MB.
Allowed formats: PDF, DOCX, TXT.
Four authenticated Storage RLS policies are configured.
Candidates Management is already working.
Your task: Implement Phase 3.
Create a new branch: feature/cv-upload.
Implement CV upload for existing candidates.
Support PDF, DOCX and TXT files.
Extract CV text using pdfjs-dist and mammoth.
Support Arabic and English.
Add CV upload, list, download and delete functionality to candidate profiles.
Create a functional CV Upload page in the sidebar.
Show upload progress, success and error messages.
Allow users to view and edit extracted CV text.
Handle unreadable or scanned PDFs gracefully without OCR.
Use the existing database schema and private Storage bucket.
Follow the existing UI design and responsive layout.
Add appropriate tests and run CI.
Important constraints:
Do not modify database migrations.
Do not weaken or bypass existing RLS policies.
Use the storage path format {user_id}/{candidate_id}/{uuid}.{ext}.
Use fictional CVs for testing.
Keep implementation simple and suitable for a demo.
Do not add unnecessary features or paid services.
GitHub workflow:
Implement on the feature branch.
Commit and push your changes.
Open a Pull Request to main.
Do not merge the PR or deploy automatically.
Report the CI results and any remaining limitations.
Start implementing Phase 3 now.Evidence B — Claude transcript lines 554–650
برومبت تنفيذ مباشر بلا تخطيط بعد أن ثبتت البنية — مع قيود العدالة: لا اسم ولا جنس ولا عمر ولا جنسية ولا صور في التسجيل، والنتيجة استشارية.
Phase 4 — Implement Job Matching Engine Phase 3 is successfully merged, deployed, and manually tested on Lovable. CV Upload, text extraction, download, editing, and deletion are working. Start implementing Phase 4 immediately. Do not perform a preliminary repository audit, security review, or planning phase. Do not ask questions. Keep token usage minimal. Goal Build a fully functional, free, rule-based CV-to-Job Matching Engine for HR Smart. Use the existing project architecture, database tables, UI components, and bilingual support. 1. Matching Engine Implement a deterministic matching algorithm that compares: Extracted CV text Candidate skills Job title Job description Required job skills Candidate experience Return: Overall Match Score (0–100%) Matched Skills Missing Skills Experience Match Keyword Match Clear explanation of the score Use a transparent weighted scoring system: Skills Match: 50% Experience Match: 20% Keyword Relevance: 20% Job Title Relevance: 10% Normalize scores fairly when some job requirements are unspecified. Do not invent missing qualifications. Support Arabic and English text, including basic normalization and common skill synonyms. 2. Database Integration Use the existing analysis_results, candidates, jobs, and cv_files tables. Save matching results to the database. Associate each result with its candidate and job. Allow users to rerun matching. Prevent duplicate results when possible. Respect existing RLS policies. Do not modify migrations or database schema. Matching UI Activate the existing Analysis Results page. Display: Candidate name Job title Match percentage Skills matched and missing Score breakdown Explanation of results Analysis date Provide an Analyze Candidate action that lets the user select a candidate and job. Add clear empty, loading, success, and error states. 4. Candidate Profile Integration Add a Match with Job button to candidate profiles. Allow selecting an existing job and viewing the resulting analysis. 5. UI & Localization Follow the existing HR Smart design system. Fully responsive. Arabic RTL and English LTR. Reuse existing components and translation patterns. No unnecessary redesign. Important Constraints No paid APIs. No OpenAI API key or external LLM required. No backend AI services. No unnecessary dependencies. No database migrations. Use fictional test data only. Results are advisory, not automatic hiring decisions. Do not use names, gender, age, nationality, photos, or other protected/personal attributes for scoring. Avoid presenting the score as an objective measure of candidate quality. GitHub Workflow Start from the latest main. Create branch feature/job-matching. Implement the complete feature. Add focused unit tests for matching calculations, Arabic/English normalization, missing data, and edge cases. Run existing CI checks. Fix errors. Commit and push. Open Pull Request #3 targeting main. Do not merge or deploy automatically. Final Response Keep your final report short. Include: PR link CI status Features implemented Any limitations Manual testing steps Begin coding now. No preliminary analysis, no approval checkpoint, and no unnecessary explanations.
من الفكرة الأولى إلى النتيجة النهائية — افتح أي مرحلة لاستكشاف تفاصيلها.
تعريف نظام توظيف بمساعدة AI ضمن حدود الخطط المجانية، بقيد: لا رفض تلقائي.
النتيجةرؤية ونطاق وقيود واضحة.
الدرس المستفادالوضوح قبل الأدوات.
طبّق المنهجية نفسها على فكرة صغيرة من اختيارك:
أعجبتك طريقة البناء بالبرومبتات؟ تعمّق أكثر في هندسة الأوامر وبناء وكلاء الذكاء الاصطناعي في كورسنا المتخصص.
اكتشف كورس هندسة الأوامر ووكلاء الذكاء الاصطناعي ←
أدوات الذكاء الاصطناعي والإنتاجيةتعلّم كيف يساعدك الذكاء الاصطناعي في تنظيف بيانات Excel وكتابة المعادلات وتحليل البيانات وبناء Dashboards وأتمتة المهام ودعم القرارات.
تعلم كيفية كتابة برومبت احترافي باستخدام ChatGPT، واكتشف العناصر الخمسة الأساسية لهندسة الأوامر، مع تطبيق عملي لتحليل بيانات 10 مشاريع باستخدام Excel والذكاء الاصطناعي.
أدوات الذكاء الاصطناعي والإنتاجيةوفر وقتك واشتراكاتك! تعلم مع المدرب حاتم الخطيب على منصة HatemAcademy طريقة تشغيل واستخدام ChatGPT وClaude وGemini مجاناً من واجهة ومكان واحد.