career-ops

وكيل ذكاء اصطناعي مفتوح المصدر للبحث عن عمل.

English | Español | Deutsch | Français | Português (Brasil) | 한국어 | 日本語 | 简体中文 | 繁體中文 | Українська | Русский | Polski | Dansk | தமிழ் | العربية | हिन्दी | Türkçe | Tiếng Việt | Bahasa Indonesia

Santiago Fernández de Valderrama Aparicio  أنشأه @santifer، بمشاركة    ⁦700+⁩ مساهم

أشهر من إرسال السير الذاتية إلى الصمت.
فبنيت المرشِّح الذي كنت أحتاجه.

740 إعلانًا مقيَّمًا. 68 طلبًا. 12 مقابلة. 1 عرض.
كنت أول مستخدم له. حصلت على الوظيفة. ثم جعلته مفتوح المصدر.

الصق إعلان وظيفة. على جهازك، يخبرك إن كانت الوظيفة لا تزال مفتوحة وإن كانت تناسبك.
يكيّف سيرتك الذاتية ويكتب مسودات إجاباتك. أنت تضغط «إرسال».

بحث المؤلف نفسه في لوحة تحكم career-ops: إعلانات مقيَّمة بالدرجات، وعدد بالأحمر لتلك الموسومة «لا تقدّم»، ثم تقرير تقييم كامل

بحثي أنا، في منتصف الطريق، والواجهة باللغة الإسبانية.

تستخدم الشركات الذكاء الاصطناعي لتصفية المرشحين.
أنا ببساطة أعطيت المرشحين الذكاء الاصطناعي ليختاروا الشركات.

بعد ستة أشهر، تركت تلك الوظيفة.
والآن نبني career-ops لكي تحصل أنت على وظيفتك.

جرّبه على وظيفة واحدة ↓ · اقرأ القصة كاملة ←

تفضّل ألّا تستخدم الطرفية؟ انضم إلى قائمة الانتظار لنسخة الويب ←


Hired with career-ops: public stories on the record

من جاؤوا بعدي كتبوا كيف حصلوا على وظائفهم.

قصص توظيف يمكنك فتحها وقراءتها

كل بطاقة هي issue علنية يمكنك فتحها. حصلت على وظيفتك؟ اترك بطاقتك ←

⭐ إن ساعدك career-ops، فنجمة منك تساعد الشخص التالي على إيجاده.


WIRED      Business Insider

Vercel OSS Program

GitHub Trending: #1 repository of the day (Trendshift)      Featured on Product Hunt

## دورك الصق إعلان وظيفة كنت ستقدّم عليه الليلة. إن عاد بـلا تقدّم، فقد استعدت ليلتك للتو. وإن عاد بخطة، فأنت تعرف الخطوة التالية. ```bash npx @santifer/career-ops init ```

مفتوح المصدر. محلي. داخل واجهة الذكاء الاصطناعي التي تستخدمها أصلًا. النماذج المجانية والمحلية مشمولة.

## لست مضطرًا للبحث وحدك الصمت بعد أن تضغط إرسال لا يتعلق بك. رأى ما يكفي من الناس الشيء نفسه فكتبوا الممارسة في ستة أسطر: > قدّم أفضل على عدد أقل. الإشارة قبل الكم. الدليل قبل الكلمات المفتاحية. الإنسان هو من يقرر. المحلي أولًا. الكرامة على جانبي الطاولة.

بيان CareerOps: عدد الموقّعين مباشرة

بعضهم، بكلماتهم هم.

ثلاثة توقيعات على بيان CareerOps، بكلمات أصحابها

كل توقيع هو commit يمكنك تدقيقه. اقرأها كلها، أو أضف توقيعك ←


التوظيف لن يصلح نفسه بنفسه. من يمرّون به يستطيعون، وهم في الغرفة أصلًا، يقارنون ملاحظاتهم ويصلحون إعدادات بعضهم بعضًا.

جدار متحرك لصور المساهمين الرمزية على GitHub، يمتلئ بترتيب الوصول منذ أبريل 2026، مع ترك المربع التالي مفتوحًا.

[هنا يُكتب الإصلاح](CONTRIBUTING.md). غرفة، لا نادٍ. **لنبنِ معًا.**

Discord: عدد أعضاء خادم career-ops مباشرة

## الرعاة career-ops مجاني للمرشحين، إلى الأبد. هذه الشركات ترعى المشروع:

SerpApi

SerpApi · Build a portfolio project with live search data. SerpApi gives developers structured JSON/Markdown from Google Search, Maps, Shopping, and other engines through a simple API call.

> الرعاية تشتري ظهورًا موسومًا بوضوح، لا نفوذًا أبدًا: لا مبلغ من المال يغيّر خارطة الطريق أو يضع شيئًا داخل المنتج. الرعاة لا يظهرون أبدًا في التقييمات أو الترتيبات أو التوصيات. ## ماذا يفعل career-ops من أجلك الصق إعلان وظيفة. يخبرك إن كانت تلك الليلة تستحق. - **أما زالت مفتوحة؟** يتحقق من أن الإعلان لا يزال منشورًا قبل أن تكتب كلمة واحدة. - **ليس أنت؟** يقيّم الدور مقابل سيرتك الذاتية الحقيقية ويطلب منك تخطي التوافق الضعيف. يمكنك تجاوز رأيه. - **يستحق؟** يصوغ السيرة الذاتية وخطاب التقديم والإجابات. أنت تقرؤها. أنت ترسلها. - **مع من أتحدث؟** يجد الشخص ويصوغ الرسالة. لا يرسلها أبدًا. - **إلى أين يذهب كل هذا؟** كل طلب يبقى على جهازك. لا يُرفع إلينا شيء. - **ماذا ينبغي أن أتعلم؟** بعد سلسلة من الرفض، يسمّي الفجوة. الجولات الأولى خشنة. هو لا يعرفك بعد. تحدّث إليه: سيرتك الذاتية، ما تريده، ما ترفضه. اعتبرها الأسبوع الأول لمسؤول توظيف. عند التشغيل الأول يسألك عن كل ذلك في الدردشة. لا شيء يُضبط يدويًا. ## ما لا يفعله career-ops - **إرسال طلب تقديم تلقائيًا.** يصوغ الإجابة لكل حقل؛ أنت تراجع وتضغط إرسال. السكربت لا يرسل POST أبدًا (`prepare-application.mjs`). - **إرسال بريد إلكتروني.** مسودات فقط. لا يوجد أي وسيلة لإرسال البريد في هذا الكود كله. - **الاتصال بالخارج.** لا قياس عن بُعد، ولا خادم خلفي لنا. سيرتك الذاتية تنتقل من جهازك إلى مزوّد الذكاء الاصطناعي الذي اخترته، ولا مكان آخر. السجل العلني الوحيد هو هذا المستودع: `HIRED.md` وقضاياه. - **دفعك للتقديم تحت 4.0/5.** سيقول لك ألا تفعل. يمكنك تجاوز ذلك، وسيخبرك بذلك. يعيد صياغة سيرتك الذاتية؛ ولا يجوز له أبدًا اختلاقها. يوقف فحصٌ في الكود أي ملف PDF يتضمن أرقامًا أو حقائق غير موجودة في سيرتك الذاتية ولا في ملف article digest الخاص بك، لكنه لا يستطيع بعدُ الحكم على كل إعادة صياغة. اقرأ كل سيرة ذاتية قبل إرسالها. التفاصيل في [الأسئلة الشائعة](#الأسئلة-الشائعة-faq). ## الميزات | الميزة | الوصف | | ------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------- | | **تقييم A-H** | ملخص الدور، مطابقة السيرة الذاتية (مع مدى أهمية كل متطلب لهذا الإعلان، وما إذا كان ذلك الوزن مستمدًا من صياغة الوصف نفسه أو بنيته أو من تقدير، مع تسمية كل متطلب، ولا يمكن لتقدير أن يكون في الشريحة العليا أبدًا)، استراتيجية المستوى، بحث التعويضات، التخصيص، التحضير للمقابلة (STAR+R)، بالإضافة إلى فحص مصداقية الإعلان في الكتلة G (أما زال مفتوحًا، وهل هو إعادة نشر: ملاحظات، لا أحكام)، وإشارة تصريح العمل التي تعلّم أي وصف وظيفي ينص صراحة على عدم كفالة التأشيرة كعائق قاطع | | **Human-in-the-Loop** | الذكاء الاصطناعي يقيّم ويوصي، وأنت تقرر وتتصرف. النظام لا يقدّم طلب توظيف أبدًا: القرار الأخير دائمًا لك | | **إنشاء PDF متوافق مع ATS** | سير ذاتية تقرؤها أنظمة ATS، مكيّفة لكل وصف وظيفي انطلاقًا من خبرتك أنت، بتصميم Space Grotesk + DM Sans | | **مولّد خطابات التقديم** | خطابات تقديم مبنية على البحث مع مرآة الكلمات المفتاحية، وأربعة أسئلة تفاعلية للزاوية (لماذا/المشكلات/المنهج/النبرة)، وبوابة موافقة على المسودة داخل المحادثة، وPDF بحجم A4 عبر خط عمل HTML + Playwright نفسه المستخدم للسير الذاتية. يصيغ مسودة تلقائيًا مع كل تقييم؛ أكملها وأنشئها عند الطلب عبر `/career-ops cover` | | **ما وراء السيرة الذاتية** | بحث الشركة ([`deep`](modes/deep.md)) يكشف استراتيجية الذكاء الاصطناعي والتحركات الأخيرة وثقافة الهندسة والزاوية التي ينبغي لملفك أن يتخذها. اكتشاف جهات الاتصال ([`contacto`](modes/contacto.md)) يحدد مدير التوظيف أو مسؤول التوظيف أو زميل الفريق الذي يستحق التواصل ويصيغ رسالة LinkedIn لا تتجاوز 300 حرف مضبوطة لكل نوع من جهات الاتصال. مسودات رسائل التقديم الرسمية ([`email`](modes/email.md)) تحوّل تقريرًا مقيّمًا أو وصفًا ملصقًا إلى سطر موضوع ونص وقائمة مرفقات دون إرسال أو تقديم أو نقر على أي شيء. التقديم يضعك في الطابور؛ والبحث يمنحك محادثة. | | **تحليل الأنماط** | أنماط الرفض ومعدلات التقدم لكل قناة ATS (`analyze-patterns.mjs`)، إحصاءات القمع طوال البحث (`stats.mjs`)، رصد إعادة نشر الإعلانات، وهي علامة محتملة على وظيفة وهمية (`detect-reposts.mjs`) |
كل ما يفعله غير ذلك | الميزة | الوصف | | ------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------- | | **خط عمل تلقائي** | الصق رابطًا واحصل على تقييم كامل + PDF + سجل في المتتبع | | **بنك قصص المقابلات** | يراكم قصص STAR+Reflection عبر التقييمات: 5 إلى 10 قصص رئيسية يمكنك تكييفها مع الأسئلة السلوكية التي تُطرح عليك | | **نصوص التفاوض** | أطر التفاوض على الراتب، الرد على الخصم الجغرافي، استخدام العروض المنافسة كورقة ضغط | | **مسودات رسائل التقديم** | رسائل رسمية لمسؤول التوظيف أو للإحالة أو للتقديم البارد من تقرير أو وصف ملصق، مع سطر الموضوع، وقائمة المرفقات، ونقاط ملاءمة موثقة بمصادرها، وكتلة تواصل مستمدة من ملفك. مسودة فقط: career-ops لا يرسل ولا يقدّم ولا ينقر على أي شيء أبدًا. | | **ماسح البوابات** | أكثر من 100 شركة مهيأة مسبقًا (Anthropic و OpenAI و ElevenLabs و Retool و n8n...) + استعلامات بحث ويب مخصصة عبر Ashby و Greenhouse و Lever و Wellfound | | **اكتشاف الشركات الممولة** | أمر `company:funded` القائم على المراجعة أولًا يُظهر الشركات التي حصلت على تمويل حديثًا وتشخيصات المصادر من تغذيات عامة منظمة دون تعديل بياناتك | | **المعالجة الجماعية** | تقييم متوازٍ عبر عمّال CLI بلا واجهة (`claude -p` / `opencode run`) | | **لوحة تحكم TUI** | واجهة طرفية لتصفح خط عملك وتصفيته وترتيبه | | **سلامة خط العمل** | دمج تلقائي، إزالة التكرار، توحيد الحالات، فحوصات صحية | | **حزمة المقابلات** | خطط تحضير بكتل زمنية، جلسات تدريب مع ملاحظات، مراجعات ما بعد المقابلة ([`interview/`](modes/interview/README.md))، وكاشف للإشارات التحذيرية في الشركة ([`interview-redflag`](modes/interview-redflag.md)) | | **مرحلة العرض** | رفيق قراءة العقد: مرور بندًا بندًا مع قائمة أسئلة للمحامي ([`offer-prep`](modes/offer-prep.md))، ومحلل للفجوة بين الراتب المطلوب والمعلن والفعلي (`salary-gap.mjs`) | | **المتابعات والردود** | حاسبة إيقاع المتابعة وتذكيرات مُعدّة مسبقًا (`followup-cadence.mjs`، `followup-seed.mjs`)؛ تصنيف ردود جهة التوظيف إلى تحديثات في المتتبع ([`reply-watch`](modes/reply-watch.md)) | | **نظام الإضافات** | تكاملات اختيارية (Gmail و Notion و Apify + سجل مجتمعي)، معطّلة افتراضيًا؛ انظر [docs/PLUGINS.md](docs/PLUGINS.md) |
## كيف يعمل النظام؟

How it works: you paste a job URL or description. Archetype Detection classifies it as LLMOps, Agentic, PM, SA, FDE or Transformation. The A-H Evaluation reads cv.md and covers match, gaps, comp research, STAR stories and legitimacy. It produces a report (reports/*.md), the tailored CV in the format set by cv.output_format — a PDF by default — and a tracker entry (data/applications.md).

## البدء السريع **أسرع طريقة، بأمر واحد:** ```bash npx @santifer/career-ops init ``` > 💡 `npx` يأتي مع [Node.js](https://nodejs.org): يشغّل المثبّت مرة واحدة > دون تثبيت أي شيء بشكل عام. لا يوجد Node بعد؟ ثبّته أولًا. > (تستخدم بالفعل واجهة Claude Code / Codex؟ إذن لديك بالفعل.) يستنسخ هذا أحدث إصدار في `./career-ops` ويثبّت الاعتماديات. ثم: ```bash cd career-ops claude # or codex / qwen / opencode / agy / grok — open your AI CLI here ``` **عند التشغيل الأول، يرشدك career-ops خلال الإعداد (سيرتك الذاتية وملفك والأدوار المستهدفة) بمجرد الدردشة. لا شيء يُحرَّر يدويًا.**
تفضّل الإعداد اليدوي؟ (git clone) ```bash git clone https://github.com/career-ops-hq/career-ops.git cd career-ops && npm install npx playwright install chromium # only needed for PDF generation # On a non-Debian/Ubuntu Linux distro (Fedora, Arch, ...), Chromium's system # libraries aren't installed by the line above — install them yourself with # your distro's package manager if PDF generation fails to launch the browser # (Playwright's own docs list the required libraries per platform). # 2. Open your AI CLI in this directory. On first launch it walks you # through setup (your CV, profile and target roles) by chatting claude # or codex / opencode / qwen / agy / grok # Then ask your CLI to adapt the system to you: # "Change the archetypes to backend engineering roles" # "Translate the modes to English" # "Add these 5 companies to portals.yml" # "Update my profile with this CV I'm pasting" # 3. Start using # الصق رابط وظيفة أو نص وصفها لتشغيل auto-pipeline. # بقية الأوضاع وكيفية طلبها في واجهتك: انظر «الاستخدام» أدناه. ```
### التثبيت العام ```bash npm i -g @santifer/career-ops ``` يثبّت هذا الملف التنفيذي `career-ops` بشكل عام لتتمكن من تشغيل `career-ops init [folder]` دون `npx`. الأمر `init` هو أمره الوحيد: يُعِدّ مساحة عمل، وكل ما يأتي بعد ذلك يجري داخل واجهة الذكاء الاصطناعي البرمجية التي تستخدمها (انظر الاستخدام أدناه)، لا عبر هذا الملف التنفيذي. **أيهما تستخدم؟** - `npx @santifer/career-ops init`: الأفضل للاستخدام الأول؛ ينشئ مجلد مشروع مخصصًا. - `npm i -g @santifer/career-ops`: إذا كنت تفضّل كتابة `career-ops init` بدلًا من صيغة `npx`. لا يضيف أي أوامر أخرى. ### طرق أخرى للتشغيل - **من أي مجلد، كإضافة Claude Code:** [docs/CLAUDE_PLUGIN.md](docs/CLAUDE_PLUGIN.md). - **بدون واجهة أوامر ذكاء اصطناعي:** تقيّم سكربتات Gemini وOllama والسكربتات المتوافقة مع OpenAI وصفًا وظيفيًا بمفردها. راجع [docs/SCRIPTS.md](docs/SCRIPTS.md#geminieval--ollamaeval--openaieval). > **النظام مصمم ليخصّصه وكيل واجهة الذكاء الاصطناعي نفسه.** الأوضاع والأنماط وأوزان التقييم ونصوص التفاوض: اطلب منه تغييرها فحسب. إنه يقرأ الملفات نفسها التي يستخدمها، لذا يعرف تمامًا ما الذي يجب تحريره. انظر [docs/SETUP.md](docs/SETUP.md) لدليل الإعداد الكامل، و[docs/RUNNING_ON_A_BUDGET.md](docs/RUNNING_ON_A_BUDGET.md) لتشغيل career-ops بتكلفة منخفضة باستخدام نماذج مخصصة أو محلية (و[docs/FREE_TIER.md](docs/FREE_TIER.md) لتشغيله دون تكلفة على الطبقة المجانية من Antigravity CLI)، و[docs/AUTOMATION.md](docs/AUTOMATION.md) لجدولة عمليات الفحص المتكررة ووصفة الفرز إلى قائمة مختصرة دون استهلاك رموز، و[docs/APPLY_AUTOFILL.md](docs/APPLY_AUTOFILL.md) لتفاصيل تدفق التعبئة التلقائية لنماذج ATS، و[docs/LINKEDIN_JOIN.md](docs/LINKEDIN_JOIN.md) لمقارنة تصدير جهات اتصالك في LinkedIn مع الشركات في قمعك، و[docs/FAQ.md](docs/FAQ.md) لإجابات أسئلة الإعداد الشائعة، بما فيها [كيف يمنع تتبع مصدر القصص الأرقام المختلقة](docs/FAQ.md#why-does-career-ops-refuse-to-use-a-number-from-my-story-bank). مبادئ التصميم في [ARCHITECTURE.md](ARCHITECTURE.md)؛ وتدفقات التشغيل في [docs/ARCHITECTURE.md](docs/ARCHITECTURE.md). ## الاستخدام الصق رابط وظيفة أو وصفها في واجهة الذكاء الاصطناعي لديك. يتحقق career-ops من أن الوظيفة ذات الرابط ما زالت متاحة (النص الملصوق ليس له رابط للتحقق منه)، ويقيّمها مقابل سيرتك الذاتية، ويكتب تقريرًا، ويكيّف سيرتك الذاتية (بصيغة PDF افتراضيًا)، ويضيف صفًا إلى متتبّعك. هذا يكفي في معظم الأيام. وكل ما عدا ذلك وضع تطلبه باسمه. إذا تعذّرت قراءة الإعلان، يتوقف خط المعالجة ويطلب منك لصق النص. ### كيف تطلب وضعًا | الواجهة | كيف تطلب `scan` | | --- | --- | | Claude Code, OpenCode, Antigravity CLI (`agy`), Grok Build CLI | `/career-ops scan` | | Pi | `/skill:career-ops scan` | | Codex أو Qwen أو Cursor أو أي واجهة أخرى مدعومة | لغة عادية: "Run the career-ops scan mode" | كتابة `/career-ops` وحدها تعرض قائمة الأوامر في الواجهات التي تستخدمه. واللغة العادية تعمل في كل واجهة مدعومة. عند استخدامه كإضافة لـ Claude Code يكون الأمر `/career-ops:career-ops`. تشترك كلها في موجّه واحد هو `.agents/skills/career-ops/SKILL.md` وفي ملفات `modes/*.md` نفسها، لذا تُوجِّه كل واجهة الطلب بالطريقة نفسها (وتحتاج الأوضاع التي تعتمد على المتصفح إلى أدوات Playwright أيضًا). أوامر الشرطة المائلة غير مضمونة في Codex: اطلب بلغة عادية، أو شغّل موجّهًا واحدًا دون واجهة عبر `codex exec "Evaluate this JD with career-ops auto-pipeline: https://company.com/jobs/123"` ([docs/CODEX.md](docs/CODEX.md)). وتجد كيفية التشغيل في كل واجهة مدعومة، وأوامر التشغيل دون واجهة حيث تتوفر، وملاحظات الإعداد الخاصة بكل واجهة، في [docs/SUPPORTED_CLIS.md](docs/SUPPORTED_CLIS.md). ### أوامر الاستخدام اليومي | الأمر | ماذا يفعل | | --- | --- | | *الصق رابطًا أو وصفًا وظيفيًا* | خط المعالجة الكامل: التحقق من أن الوظيفة ما زالت متاحة (للروابط فقط)، تقييم A-G مع H عند الدرجات المرتفعة، تقرير، سيرة ذاتية مُكيَّفة (PDF افتراضيًا)، صف في المتتبّع | | `scan` | يفحص بواباتك بحثًا عن وظائف جديدة ويضيفها إلى صندوق الوارد (`data/pipeline.md`) | | `pipeline` | يعالج الروابط المنتظرة في صندوق الوارد (قد تتخطى مستويات standard وpremium غير المطابقة بوضوح) | | `apply` | يملأ نموذج التقديم معك حقلًا بحقل. ويتوقف قبل الإرسال | | `tracker` | أين وصل كل طلب | | `followup` | أي الطلبات حان موعد متابعتها، مع مسودات |
كل الأوامر، حسب مرحلة البحث تحتفظ `oferta` و`ofertas` و`contacto` بأسمائها الإسبانية الأصلية: عرض، عروض، جهة اتصال. **إيجاد وظائف** | الأمر | ماذا يفعل | | --- | --- | | [`scan`](modes/scan.md) | فحص البوابات واكتشاف عروض جديدة | | [`discover`](modes/discover.md) | تحويل قائمة أسماء شركات إلى لوحات ATS قابلة للفحص. يعرض معاينة افتراضيًا ولا يضيفها إلى `portals.yml` إلا مع `--write` (بدون رموز) | | [`pipeline`](modes/pipeline.md) | معالجة الروابط المعلّقة من صندوق الوارد (`data/pipeline.md`) | | [`triage`](modes/triage.md) | فرز أولي سريع (يستحق/لا يستحق) استنادًا إلى `modes/_brief.md`، قبل التقييم الكامل (لا يكتب أي ملفات) | | [`batch`](modes/batch.md) | تقييم وظائف كثيرة بعمّال دون واجهة (بالتوازي مع Claude، وواحدة تلو الأخرى مع بقية الواجهات) | | [`titles`](modes/titles.md) | اقتراح مسميات وظيفية قريبة من سيرتك الذاتية لتوسيع البحث | **تقييم وظيفة** | الأمر | ماذا يفعل | | --- | --- | | *الصق رابطًا أو وصفًا وظيفيًا* | [Auto-pipeline](modes/auto-pipeline.md): تقييم + تقرير + سيرة ذاتية مُكيَّفة (PDF افتراضيًا) + إدخال في المتتبّع | | [`oferta`](modes/oferta.md) | تقييم فقط، الكتل من A إلى G مع H عند الدرجات المرتفعة (بدون PDF) | | [`ofertas`](modes/ofertas.md) | مقارنة عدة عروض وترتيبها | | [`deep`](modes/deep.md) | موجّه بحث معمّق عن الشركة | | [`eu-swe`](modes/regional/eu-swe.md) | معايرة طلب أوروبي في هندسة البرمجيات قبل السيرة الذاتية أو التقديم أو المقابلة | **التقديم** | الأمر | ماذا يفعل | | --- | --- | | [`pdf`](modes/pdf.md) | سيرة ذاتية محسّنة لأنظمة ATS بصيغة PDF | | [`ats`](modes/ats.md) | فحص ملاءمة سيرة ذاتية مولَّدة لأنظمة ATS: الدرجة والمشكلات القابلة للإصلاح | | [`text`](modes/text.md) | سيرة ذاتية مُكيَّفة بصيغة markdown (تعكس `cv.md`، بدون PDF) | | [`latex`](modes/latex.md) | تصدير السيرة الذاتية بصيغة LaTeX/Overleaf `.tex` | | [`latex-tex`](modes/latex-tex.md) | تكييف ملف `resume.tex` الخاص بك في مكانه (اختياري؛ ويبقى `cv.md` هو الافتراضي) | | [`cover`](modes/cover.md) | خطاب تغطية، من وصف وظيفي ملصوق أو من تقرير مقيَّم (`cover {slug}`) | | [`email`](modes/email.md) | مسودة بريد تقديم رسمي. مسودة فقط: لا يرسل ولا يقدّم ولا ينقر أبدًا | | [`contacto`](modes/contacto.md) | إيجاد مدير التوظيف أو المسؤول عن الاستقطاب أو زميل في المجال، وصياغة رسالة LinkedIn | | [`apply`](modes/apply.md) | مساعد تقديم مباشر (Playwright من هذا المستودع). لا يرسل الطلب | **المقابلة** | الأمر | ماذا يفعل | | --- | --- | | [`interview-prep`](modes/interview-prep.md) | مستند تحضير للمقابلة خاص بالشركة | | [`interview/plan`](modes/interview/plan.md) | خطة تحضير مقسّمة إلى فترات زمنية لمقابلة قادمة | | [`interview/practice`](modes/interview/practice.md) | مقابلة تدريبية، سؤال واحد في كل مرة، مع ملاحظات | | [`interview/debrief`](modes/interview/debrief.md) | مراجعة ما بعد المقابلة: سدّ الثغرات وتوقّع الجولة التالية | | [`interview-redflag`](modes/interview-redflag.md) | تحليل علامات التحذير لدى جهة العمل قبل الانضمام إليها | **بعد التقديم** | الأمر | ماذا يفعل | | --- | --- | | [`tracker`](modes/tracker.md) | نظرة عامة على حالة الطلبات | | [`followup`](modes/followup.md) | إيقاع المتابعة: تمييز الطلبات المتأخرة وتوليد مسودات | | [`reply-watch`](modes/reply-watch.md) | تصنيف ردود جهات العمل واقتراح تحديثات للمتتبّع | | [`outcome`](modes/outcome.md) | تسجيل نتيجة الطلب وأرشفة مخرجاته | | [`offer-prep`](modes/offer-prep.md) | قراءة عرض أو عقد وصلك معك: مرور على البنود وأسئلة للمحامي (ليست استشارة قانونية) | **ملفك وسيرتك الذاتية** | الأمر | ماذا يفعل | | --- | --- | | [`interview`](modes/interview.md) | إعداد الملف: مقابلة تفاعلية عن خبرتك تبني سيرتك الذاتية وملفك (وليست تدريبًا على المقابلات) | | [`intake`](modes/intake.md) | بناء ملفك أو إثراؤه من الملفات الموجودة في `documents/` (السيرة الذاتية الرئيسية، تصدير LinkedIn). لا يُكتب شيء دون تأكيدك | | [`master-profile`](modes/master-profile.md) | استيراد Master Career Profile ومراجعته والتحقق منه، وتجهيز حقائق مختارة كنقاط في السيرة الذاتية | | [`add`](modes/add.md) | إضافة مشروع أو ورقة بحثية أو منصب إلى سيرتك الذاتية (جلب، معاينة، تأكيد) | | [`expand`](modes/expand.md) | اكتشاف الكفاءات الناقصة في سيرتك الذاتية من روابط ملفك | | [`retro`](modes/retro.md) | مراجعة هذه الجلسة وحفظ ما علّمته إياه كقواعد (لا يكتب إلا ما تقبله) | **تحسين استهدافك** | الأمر | ماذا يفعل | | --- | --- | | [`patterns`](modes/patterns.md) | تحليل أنماط الرفض وتحسين الاستهداف | | [`calibrate`](modes/calibrate.md) | التحقق مما إذا كانت درجات تقييمك تتنبأ بنتائجك الفعلية. استشاري: لا يغيّر التقييم أبدًا | | [`upskill`](modes/upskill.md) | تحليل فجوات المهارات عبر تقاريرك المقيَّمة | | [`training`](modes/training.md) | تقييم دورة أو شهادة مقابل North Star الخاصة بك | | [`project`](modes/project.md) | تقييم فكرة مشروع لمحفظة الأعمال | **النظام** | الأمر | ماذا يفعل | | --- | --- | | [`agent-inbox`](modes/agent-inbox.md) | وضع الطلبات في قائمة انتظار للجلسة التالية ومعالجتها حينها (`data/agent-inbox.md`). ويعمل `inbox` أيضًا | | [`update`](modes/update.md) | تحديث ملفات نظام career-ops، مع معاينة الفروقات وفحص التوافق |
## بوابات التوظيف المهيأة مسبقًا يأتي الماسح مع **أكثر من 100 شركة** جاهزة للفحص و**أكثر من 35 استعلام بحث** عبر لوحات الوظائف الرئيسية. انسخ `templates/portals.example.yml` إلى `portals.yml` وأضف ما تريد: **مختبرات الذكاء الاصطناعي:** Anthropic, OpenAI, Mistral, Cohere, LangChain, Pinecone **الذكاء الاصطناعي الصوتي:** ElevenLabs, PolyAI, Parloa, Hume AI, Deepgram, Vapi, Bland AI **منصات الذكاء الاصطناعي:** Retool, Airtable, Vercel, Temporal, Glean, Arize AI **مراكز الاتصال:** Ada, LivePerson, Sierra, Decagon, Talkdesk, Genesys **الشركات الكبرى:** Salesforce, Twilio, Gong, Dialpad **LLMOps:** Langfuse, Weights & Biases, Lindy, Cognigy, Speechmatics **الأتمتة:** n8n, Zapier, Make.com **أوروبا:** Factorial, Attio, Tinybird, Clarity AI, Travelperk **لوحات الوظائف التي يتم البحث فيها:** أكثر من 55 وحدة مزوّد تغطي واجهات ATS البرمجية، وتغذيات اللوحات الكاملة، وتغذيات XML/RSS، وتغذيات markdown، ومحللات محلية. انظر [لوحات الوظائف المدعومة](docs/SUPPORTED_JOB_BOARDS.md) للجدول الكامل. افتراضيًا، يثق `node scan.mjs` (أي `npm run scan`) بما تعيده كل تغذية ATS. بعض الشركات تترك إعلانات قديمة في واجهتها البرمجية العامة حتى بعد إغلاق الوظيفة، فقد تتسرب تلك الإدخالات المنتهية إلى `pipeline.md`. مرّر `--verify` لتشغيل Playwright بعد المرور بالواجهة البرمجية وإسقاط الإعلانات المنتهية قبل وصولها إلى خط العمل: ```bash node scan.mjs --verify # zero-token discovery + Playwright liveness check ``` التحقق متسلسل ويعمل فقط على العروض الجديدة (بعد إزالة التكرار)، لذا تبقى التكلفة محدودة. ## لوحة تحكم TUI تتيح لك لوحة التحكم الطرفية المدمجة تصفح خط عملك بصريًا: ```bash npm run serve:dashboard # launch the TUI npm run build:dashboard # optional: build the standalone binary ``` الميزات: 10 تبويبات تصفية، 8 أوضاع ترتيب، عرض مجمّع/مسطّح، معاينات بتحميل كسول، تغيير الحالات في السطر. توجد أيضًا **واجهة ويب تجريبية** (ألفا واختيارية: لا يعمل شيء ما لم تشغّلها بنفسك): انظر [`web/README.md`](web/README.md). ## هيكلية المشروع ``` career-ops/ ├── AGENTS.md # Canonical agent instructions (all CLIs) ├── CLAUDE.md # Claude Code wrapper (imports AGENTS.md) ├── CODEX.md # Codex wrapper (imports AGENTS.md) ├── OPENCODE.md # OpenCode wrapper (imports AGENTS.md) ├── GEMINI.md # Legacy no-op guard to avoid Antigravity duplicate context ├── cv.md # Your CV (create this) ├── article-digest.md # Your proof points (optional) ├── config/ │ └── profile.example.yml # Template for your profile ├── modes/ # Skill modes │ ├── _shared.md # Shared context (customize this) │ ├── oferta.md # Single evaluation │ ├── pdf.md # PDF generation │ ├── cover.md # Cover letter generation │ ├── email.md # Formal application email drafts │ ├── scan.md # Portal scanner │ ├── batch.md # Batch processing │ └── ... ├── templates/ │ ├── cv-template.html # ATS-optimized CV template │ ├── portals.example.yml # Scanner config template │ └── states.yml # Canonical statuses ├── batch/ │ ├── batch-prompt.md # Self-contained worker prompt │ └── batch-runner.sh # Orchestrator script ├── dashboard/ # Go TUI pipeline viewer ├── data/ # Your tracking data (gitignored) ├── reports/ # Evaluation reports (gitignored) ├── output/ # Generated PDFs (gitignored) ├── fonts/ # Space Grotesk + DM Sans ├── docs/ # Setup, customization, budget guide, architecture └── examples/ # Sample CV, report, proof points ``` ## دليل البيانات الخارجي (اختياري) افتراضيًا، تعيش بيانات طبقة المستخدم (مثل `cv.md` و`portals.yml` ومجلدات `data/` و`reports/` و`output/`) داخل مجلد جذر المشروع. لفصل بياناتك الشخصية عن الكود (مما يسهّل تبديل الفروع أو سحب التحديثات أو اختبار عدة ملفات)، يمكنك تهيئة دليل بيانات خارجي وفق الأولوية التالية: 1. **متغيرات البيئة:** اضبط متغير البيئة `CAREER_OPS_ROOT` أو `CAREER_OPS_DATA_DIR`: ```bash export CAREER_OPS_ROOT=~/my-career-data ``` 2. **ملف العلامة:** أنشئ ملف `.career-ops-data` في جذر المستودع يحتوي على مسار دليل بياناتك. 3. **الافتراضي:** جذر المستودع. بعد تحديد المسار، تُحلّ جميع ملفات المستخدم وتُكتب نسبةً إلى ذلك المجلد، بينما تستمر ملفات الأوامر النصية والسكربتات في الحلّ نسبةً إلى المستودع. - **تجاوز المتتبع:** يمكنك أيضًا ضبط `CAREER_OPS_TRACKER` لتجاوز مسار ملف متتبع الطلبات مباشرة. - **الكتابات:** جميع عمليات الكتابة (مثل الدمج) تستهدف قانونيًا `{DATA_ROOT}/data/applications.md`. - **إعدادات الماسح:** يُقرأ `portals.yml` ويُتحقَّق منه في `{DATA_ROOT}/portals.yml`، لذا يفحص `node validate-portals.mjs` الملف نفسه الذي يقرؤه `scan.mjs`. - **المستندات المولَّدة:** تُكتب السير الذاتية المخصّصة وخطابات التقديم داخل `{DATA_ROOT}/output/`، أما فهرس ملفات PDF الذي يربطها بتقرير فموجود في `{DATA_ROOT}/data/pdf-index.tsv`. وما دام `CAREER_OPS_TRACKER` غير مضبوط، فإن مساحة عمل المتتبع التي تحصر هذه الكتابات هي جذر البيانات، لا نسخة المستودع. - **ملفات PDF عند تجاوز المتتبع:** يحلّ `generate-pdf.mjs` قيمة `CAREER_OPS_TRACKER` قبل أن يستنتج مساحة العمل، لذا عند ضبط التجاوز تكون مساحة العمل هي المجلد الذي يحتوي ذلك المتتبع (أو المجلد الذي فوقه، عندما يكون المتتبع داخل مجلد `data/`). وعندها يجب أن يقع ملف HTML الخاص بالسيرة الذاتية وكل ملفات PDF داخل مساحة العمل تلك، وينتقل الفهرس إلى `data/pdf-index.tsv` التابع لها. أما خطابات التقديم فتبقى وجهتها `{DATA_ROOT}/output/`، لذا تُرفض عندما يقع ذلك المجلد خارج مساحة عمل المتتبع. - **طبقة الكود تبقى في مكانها:** تُحلّ `node_modules/` و`providers/` و`modes/` والسكربتات نفسها دائمًا نسبةً إلى المستودع، ولا تُحلّ أبدًا نسبةً إلى جذر البيانات. تحترم لوحة تحكم Go الطرفية وسكربتات Node.js وأوضاع وكيل الذكاء الاصطناعي هذا التسلسل تلقائيًا. ## التقنيات المستخدمة ![Claude Code](https://img.shields.io/badge/Claude_Code-000?style=flat&logo=anthropic&logoColor=white) ![Node.js](https://img.shields.io/badge/Node.js-339933?style=flat&logo=node.js&logoColor=white) ![Playwright](https://img.shields.io/badge/Playwright-2EAD33?style=flat&logo=playwright&logoColor=white) ![Go](https://img.shields.io/badge/Go-00ADD8?style=flat&logo=go&logoColor=white) ![Bubble Tea](https://img.shields.io/badge/Bubble_Tea-FF75B5?style=flat&logo=go&logoColor=white) - **الوكيل**: واجهة سطر أوامر للبرمجة بالذكاء الاصطناعي مع مهارات وأوضاع مشتركة (`AGENTS.md` + غلاف لكل واجهة) - **PDF**: Playwright + قالب HTML - **خطابات التقديم**: قالب HTML + Playwright (PDF بحجم A4، خط العمل نفسه المستخدم للسير الذاتية) - **الماسح**: Playwright + Greenhouse API + WebSearch - **لوحة التحكم**: Go + Bubble Tea + Lipgloss (سمة Catppuccin Mocha) - **البيانات**: جداول Markdown + إعدادات YAML + ملفات TSV للمعالجة الجماعية

Latest release

Built with Claude Code

يعمل أيضًا في أي واجهة CLI تلتزم بمعيار agent skills. انظر الواجهات المدعومة.
Claude Code OpenCode Antigravity CLI Codex Qwen Kimi GitHub Copilot Grok Build CLI Pi
Node.js Go Playwright Bubble Tea MIT Trademark Policy

## مفتوح المصدر أيضًا - **[cv-santiago](https://github.com/santifer/cv-santiago)**: موقع ملف الأعمال (santifer.io) مع روبوت محادثة بالذكاء الاصطناعي ولوحة LLMOps ودراسات حالة. إن احتجت ملف أعمال لعرضه إلى جانب بحثك عن وظيفة، انسخه (fork) واجعله ملكك. ## الأسئلة الشائعة (FAQ) **ما هو career-ops؟** career-ops ([career-ops.org](https://career-ops.org)، ويُعرف أيضًا باسم **careerops**) أداة بحث عن الوظائف بالذكاء الاصطناعي، مفتوحة المصدر، تعمل محليًا في واجهة الذكاء الاصطناعي التي تستخدمها (Claude Code و Codex و OpenCode وغيرها) وتترك كل قرار لك. تقيّم العروض مقابل سيرتك الذاتية، وتنشئ ملفات PDF مكيّفة لأنظمة ATS، وتجد الشخص المناسب للتواصل، وتتابع كل شيء في مكان واحد: القرار الأخير دائمًا لك. وهي أول تطبيق مرجعي [لبيان CareerOps](https://career-ops.org/manifesto). **هل يمكن للسيرة الذاتية المخصّصة أن تختلق أشياء؟** لا يجوز لها، والأوامر النصية تقول ذلك: أعد الصياغة، ولا تختلق أبدًا. يمنع `generate-pdf` إنشاء سيرة ذاتية تتضمن أرقامًا أو حقائق غير موجودة في مصادرك، ما لم تمرّر `--skip-fact-check`. ويشغّل وضع `pdf` أيضًا `cv-title-check.mjs`، الذي يقارن كل مسمى وظيفي في السيرة الذاتية المخصّصة بالمسمى الذي يذكره cv.md للوظيفة نفسها (بمطابقة الشركة والتواريخ)، ويسألك هل تُبقي أي مسمى مختلف أم تعيده. وهو ينبّه ولا يمنع، لأن إعادة صياغة المسمى قد تكون قرارك أحيانًا. ولا شيء يحكم على إعادة الصياغة بعدُ: تتابع ذلك القضية [#1411](https://github.com/career-ops-hq/career-ops/issues/1411) (تحقق من الدقة يوقف العملية عند الاختلاف). حتى ذلك الحين، اقرأ كل سيرة ذاتية قبل إرسالها. [إخلاء المسؤولية القانوني](LEGAL_DISCLAIMER.md) يقول الشيء نفسه بكلمات أكثر. **هل يمكنني تشغيل career-ops مجانًا، أو بنموذج أرخص أو محلي؟** نعم. career-ops لا يعتمد على واجهة بعينها ويعمل على النماذج المجانية والمحلية (نماذج OpenRouter المجانية أو Ollama أو أي نقطة نهاية متوافقة مع OpenAI)، فلست مقيدًا باشتراك مدفوع. انظر [docs/RUNNING_ON_A_BUDGET.md](docs/RUNNING_ON_A_BUDGET.md) للإعداد الكامل. **أدفع اشتراك Claude Pro/Max لكن career-ops يستهلك رصيد API. لماذا؟** لأن وجود `ANTHROPIC_API_KEY` في بيئتك يتقدم على اشتراكك المسجّل دخوله: تستخدم الواجهة المفتاح وتُحاسِب لكل رمز. شغّل `echo $ANTHROPIC_API_KEY`، وإن طبع شيئًا فأزله من ملف تعريف الصدفة، ثم أعد تشغيل الطرفية وشغّل `/login`. وضع المعالجة الجماعية هو الاستثناء، لأن عمّال `claude -p` لا يستخدمون تسجيل الدخول التفاعلي: شغّل `claude setup-token` مرة واحدة وصدّر الناتج كـ `CLAUDE_CODE_OAUTH_TOKEN`. الشرح الكامل في [docs/RUNNING_ON_A_BUDGET.md](docs/RUNNING_ON_A_BUDGET.md#2b-already-paying-for-a-subscription-make-sure-you-are-using-it). **مع أي واجهات ذكاء اصطناعي يعمل career-ops؟** يعمل career-ops على أي واجهة رئيسية للبرمجة بالذكاء الاصطناعي (Claude Code و Codex و Gemini / Antigravity و OpenCode و Grok و Qwen وغيرها) عبر معيار Agent Skill Standard المفتوح، فلا يُقيَّد أبدًا بمزوّد واحد. استخدم الواجهة التي لديك بالفعل. **كيف أثبّت career-ops على Windows؟** يعمل career-ops على Windows. الإعداد الخاص بالمنصة والصعوبات المعروفة (اكتشاف Git Bash، ونهايات الأسطر، ومجدول المهام) في [docs/WINDOWS.md](docs/WINDOWS.md). إذا فشل تحميل المهارات بخطأ رابط رمزي أثناء التثبيت، فالحل في [docs/FAQ.md](docs/FAQ.md). الخطوات الكاملة في [docs/SETUP.md](docs/SETUP.md). **هل يقدّم career-ops على الوظائف نيابةً عني؟** لا. career-ops مرشِّح، لا أداة تقديم تلقائي عشوائي. الذكاء الاصطناعي يقيّم ويرتّب ويصيغ المسودات؛ وأنت تراجع وتقرر. يصوغ الإجابات ويملأ الحقول؛ ولا يقدّم الطلب أبدًا. أنت تضغط «إرسال». هذا التصميم الذي يُبقي الإنسان في الحلقة هو جوهر الفكرة. **هل career-ops مجاني ومفتوح المصدر؟** نعم. career-ops مجاني ومفتوح المصدر، وسيبقى كذلك دائمًا للمرشح. إنه أول تطبيق مرجعي لـ[بيان CareerOps](https://career-ops.org/manifesto). اقرأه، وإن كان يقول ما تؤمن به، وقّعه. ## عن المؤلف أنا [Santiago Fernández de Valderrama Aparicio](https://santifer.io/about) (santifer)، مؤسس سابق: بنيت وبعت شركة لا تزال تعمل باسمي. بنيت career-ops لإدارة بحثي الشخصي عن وظيفة، ونجح الأمر: أوصلني إلى منصب Head of Applied AI. وبعد ستة أشهر تركت ذلك المنصب لأتفرغ لبناء career-ops بدوام كامل. هل يهمك كيف تتم صيانة مستودع بهذا الحجم بأسطول من وكلاء الذكاء الاصطناعي وإنسانٍ يقرر كل عملية دمج؟ اقرأ [Agentic maintenance: how career-ops is run by a fleet of AI agents](https://santifer.io/ai-agent-fleet). ملف أعمالي ومشاريعي مفتوحة المصدر الأخرى → [santifer.io](https://santifer.io) Wikidata: [Santiago Fernández de Valderrama Aparicio](https://www.wikidata.org/wiki/Q138710224) · [career-ops](https://www.wikidata.org/wiki/Q139007988). ## إخلاء المسؤولية **career-ops أداة محلية مفتوحة المصدر، وليست خدمة مستضافة.** باستخدامك لهذا البرنامج، فإنك تقر بما يلي: 1. **أنت تتحكم ببياناتك.** تبقى سيرتك الذاتية وبيانات الاتصال وبياناتك الشخصية على جهازك وتُرسل مباشرة إلى مزوّد الذكاء الاصطناعي الذي تختاره (Anthropic و OpenAI وغيرهما). نحن لا نجمع أيًا من بياناتك ولا نخزّنها ولا نطّلع عليها. 2. **أنت تتحكم بالذكاء الاصطناعي.** تأمر الأوامر النصية الافتراضية الذكاء الاصطناعي بعدم تقديم الطلبات تلقائيًا، لكن نماذج الذكاء الاصطناعي قد تتصرف بشكل غير متوقع. إذا عدّلت الأوامر النصية أو استخدمت نماذج مختلفة، فذلك على مسؤوليتك. **راجع دائمًا دقة المحتوى المولَّد بالذكاء الاصطناعي قبل الإرسال.** 3. **أنت تلتزم بشروط خدمة الأطراف الخارجية.** يجب أن تستخدم هذه الأداة وفق شروط خدمة بوابات التوظيف التي تتعامل معها (Greenhouse و Lever و Workday و LinkedIn وغيرها). لا تستخدم هذه الأداة لإرسال رسائل مزعجة إلى جهات التوظيف أو لإغراق أنظمة ATS. 4. **لا ضمانات.** التقييمات توصيات، لا حقائق. قد تختلق نماذج الذكاء الاصطناعي مهارات أو خبرات. لا يتحمل المؤلفون أي مسؤولية عن نتائج التوظيف أو الطلبات المرفوضة أو تقييد الحسابات أو أي تبعات أخرى. انظر [LEGAL_DISCLAIMER.md](LEGAL_DISCLAIMER.md) للتفاصيل الكاملة. يُقدَّم هذا البرنامج بموجب [رخصة MIT](LICENSE) "كما هو"، دون أي ضمان من أي نوع. ## المساهمون كل من ساهم بكود أو وثائق أو ترجمات أو اختبارات مدرج في [CONTRIBUTORS.md](CONTRIBUTORS.md)، بما في ذلك المساهمات غير البرمجية التي لا يستطيع الرسم البياني أعلاه إظهارها. هل حصلت على وظيفة باستخدام career-ops؟ [شارك قصتك!](https://github.com/career-ops-hq/career-ops/issues/new?template=i-got-hired.yml) ## الرخصة والعلامة التجارية الكود مرخّص بموجب [MIT](LICENSE). أما اسم "career-ops" وعلامته التجارية فتحكمهما [سياسة العلامة التجارية](TRADEMARK.md): متساهلة للاستخدام المجتمعي، ومحفوظة لتسمية المنتجات التجارية والتزكية. ## سجلّ النجوم

Live star telemetry of career-ops-hq/career-ops

من إنشاء وصيانة Santiago Fernández de Valderrama Aparicio (@santifer)

## تواصل معي [![Website](https://img.shields.io/badge/santifer.io-000?style=for-the-badge&logo=safari&logoColor=white)](https://santifer.io) [![LinkedIn](https://img.shields.io/badge/LinkedIn-0A66C2?style=for-the-badge&logo=linkedin&logoColor=white)](https://linkedin.com/in/santifer) [![X](https://img.shields.io/badge/X-000?style=for-the-badge&logo=x&logoColor=white)](https://x.com/santifer) [![Discord](https://img.shields.io/badge/Discord-5865F2?style=for-the-badge&logo=discord&logoColor=white)](https://discord.gg/8pRpHETxa4) [![Email](https://img.shields.io/badge/Email-EA4335?style=for-the-badge&logo=gmail&logoColor=white)](mailto:hi@santifer.io)