71 lines
5.4 KiB
Markdown
71 lines
5.4 KiB
Markdown
# النمط: pipeline — معالجة روابط الوظائف المنتظرة (Second Brain)
|
|
|
|
معالجة وفحص روابط الوظائف المخزنة في صندوق الوارد بملف `data/pipeline.md`. يقوم المستخدم بإضافة روابط الفرص التي تسترعي انتباهه في أي وقت، ثم يقوم بتشغيل الأمر `/career-ops pipeline` ليقوم النظام بمعالجتها وتقييمها بالكامل تلقائياً.
|
|
|
|
---
|
|
|
|
## مسار العمل التنفيذي
|
|
|
|
1. **قراءة الملف** `data/pipeline.md` ← البحث عن العناصر المحددة بـ `- [ ]` (غير المكتملة) في قسم "Pending" (الفرص المنتظرة).
|
|
2. **لكل رابط منتظر في القائمة**:
|
|
a. حساب الرقم التسلسلي القادم للتقرير `REPORT_NUM` (بقراءة محتويات مجلد `reports/` وأخذ أكبر رقم مضافاً إليه 1).
|
|
b. **استخراج تفاصيل متطلبات الوظيفة (JD)** باستخدام Playwright (`browser_navigate` + `browser_snapshot`) ← ثم استخدام WebFetch ← كخيار بديل أخير استخدام WebSearch.
|
|
c. إذا كان الرابط غير قابل للوصول ← قم بتغيير العلامة إلى `- [!]` مع تدوين سبب الخطأ واستمر في معالجة الروابط الأخرى.
|
|
d. **تنفيذ المسار التلقائي بالكامل**: تشغيل التقييم من A إلى G ← إنشاء ملف تقرير بصيغة md ← توليد ملف PDF للسيرة الذاتية المخصصة (فقط إذا كان التقييم 3.0 فما فوق) ← التوثيق الفوري في جدول التتبع.
|
|
e. **نقل العنصر من قسم "Pending" إلى قسم "Processed" (المعالجة)** بصيغة: `- [x] #NNN | URL | Company | Role | Score/5 | PDF ✅/❌`.
|
|
3. **إذا كان هناك 3 روابط أو أكثر منتظرة**: قم بإطلاق وكلاء فرعيين بالتوازي (باستخدام أداة الوكلاء الفرعيين مع خيار التشغيل في الخلفية `run_in_background`) لرفع سرعة المعالجة للحد الأقصى.
|
|
4. **بعد اكتمال جميع التقييمات**: قم بتشغيل `node merge-tracker.mjs` لدمج جميع إضافات التتبع في ملف `data/applications.md` وتجنب التكرارات.
|
|
5. **في النهاية**: اعرض جدولاً يلخص الفرص التي تمت معالجتها:
|
|
|
|
```text
|
|
| # | الشركة | الوظيفة | التقييم | السيرة الذاتية PDF | الإجراء المقترح |
|
|
```
|
|
|
|
---
|
|
|
|
## هيكل وصيغة ملف pipeline.md
|
|
|
|
```markdown
|
|
## Pending
|
|
- [ ] https://jobs.example.com/posting/123
|
|
- [ ] https://boards.greenhouse.io/company/jobs/456 | Company Inc | Senior PM
|
|
- [!] https://private.url/job — Error: login required
|
|
|
|
## Processed
|
|
- [x] #143 | https://jobs.example.com/posting/789 | Acme Corp | AI PM | 4.2/5 | PDF ✅
|
|
- [x] #144 | https://boards.greenhouse.io/xyz/jobs/012 | BigCo | SA | 2.1/5 | PDF ❌
|
|
```
|
|
|
|
---
|
|
|
|
## الاستخراج الذكي لمتطلبات الوظيفة (JD) من الرابط
|
|
|
|
1. **أداة Playwright (الخيار المفضل):** استخدام أداة التنقل وأخذ لقطة للصفحة (`browser_navigate` + `browser_snapshot`). تعمل بكفاءة عالية مع كافة تطبيقات الصفحة الواحدة (SPAs).
|
|
2. **أداة WebFetch (الخيار الاحتياطي الأول):** للصفحات الساكنة أو عند عدم توفر Playwright في البيئة المحلية.
|
|
3. **أداة WebSearch (الخيار الاحتياطي الأخير):** للبحث في المنصات الثانوية التي تقوم بنسخ وفهرسة الإعلان الأصلي للوظيفة.
|
|
|
|
**حالات خاصة:**
|
|
- **LinkedIn:** قد تطلب المنصة تسجيل الدخول لقراءة محتوى الوصف الوظيفي ← في هذه الحالة، ضع العلامة `[!]` واطلب من المستخدم نسخ ولصق نص الإعلان يدوياً في المحادثة.
|
|
- **ملفات PDF:** إذا كان الرابط يشير مباشرة إلى ملف PDF، فاستخدم أداة قراءة الملفات مباشرة لقراءة محتوياته.
|
|
- **البادئة `local:`:** لقراءة ملف محلي على الجهاز. مثال: `local:jds/linkedin-pm-ai.md` ← سيقوم النظام بفتح وقراءة الملف المحلي `jds/linkedin-pm-ai.md`.
|
|
|
|
---
|
|
|
|
## الترقيم التلقائي للتقارير
|
|
|
|
1. فحص وسرد كافة الملفات الموجودة في مجلد `reports/`.
|
|
2. استخراج الرقم التسلسلي من البادئة الخاصة بكل ملف (مثال: الملف `142-company...` يمثل الرقم 142).
|
|
3. تعيين الرقم الجديد للتقرير القادم = أكبر رقم تم العثور عليه مضافاً إليه 1.
|
|
|
|
---
|
|
|
|
## التحقق من مزامنة وتناسق البيانات
|
|
|
|
قبل البدء في معالجة أي رابط، تحقق دائماً من سلامة ومزامنة مصادر البيانات وسيرتك الذاتية عن طريق تشغيل:
|
|
|
|
```bash
|
|
node cv-sync-check.mjs
|
|
```
|
|
|
|
إذا تم اكتشاف أي عدم تطابق أو مشاكل في المزامنة، فقم بتنبيه وتحذير المستخدم فوراً قبل متابعة العمل.
|