jobinja-employer-mcp
<!-- mcp-name: io.github.saeedsepehr/jobinja-employer-mcp -->
<div dir="rtl">
# jobinja-employer-mcp | مرور سریع و شورتلیست رزومههای دریافتی پنل کارفرمایی جابینجا با هوش مصنوعی
**jobinja-employer-mcp** ابزاری متنباز و رایگان برای **کارفرمایان و کارشناسان جذب** است که در جابینجا آگهی استخدام دارند. این ابزار **پنل کارفرمایی جابینجا** را به دستیارهای هوش مصنوعی مثل **Claude**، **ChatGPT** و **Codex** وصل میکند تا رزومههای دریافتی هر آگهی را سریع مرور کنید، متقاضیان مناسب را **شورتلیست** کنید و غربالگری اولیه رزومه را با **مصرف توکن کم** انجام دهید.
این ابزار برای کارجویان نیست و فقط با حساب کارفرما (panel.jobinja.ir) کار میکند.
کافی است به دستیار بگویید «رزومههای جدید آگهی کارشناس پشتیبانی را مرور کن، به مرتبطترینها ستاره بزن و برای هر کدام دلیلش را یادداشت کن». دستیار خلاصه فشرده متقاضیان را میخواند، فقط رزومههای امیدوارکننده را کامل بررسی میکند و نتیجه را مستقیم در پنل جابینجا ثبت میکند: ستاره، یادداشت محرمانه تیم، پوشهبندی رزومهها و در صورت تأیید شما، رد درخواست با دلیل مشخص.
این پروژه بر پایه پروتکل استاندارد [MCP](https://modelcontextprotocol.io) (Model Context Protocol) ساخته شده و روی ویندوز، مک و لینوکس کار میکند.
### چرا jobinja-employer-mcp؟
- **مرور سریع رزومههای دریافتی:** غربالگری صدها رزومه یک آگهی به چند دقیقه کار دستیار هوش مصنوعی تبدیل میشود.
- **مصرف توکن کم:** ابزار `screen_applicants` برای هر متقاضی فقط خلاصهای کوتاه از سوابق و ابتدای متن رزومه برمیگرداند و `get_resume_text` متن رزومه را بدون ارسال فایل PDF میدهد. دستیار فقط برای نامزدهای جدی سراغ جزئیات کامل میرود.
- **شورتلیست در همان پنل:** ستاره، یادداشت و پوشهها همان جایی ثبت میشوند که تیم استخدام هر روز با آن کار میکند. نیازی به خروجی Excel یا جابهجایی داده نیست.
- **امنیت حساب کارفرما:** رمز عبور هیچوقت در اختیار ابزار قرار نمیگیرد. یک بار خودتان وارد پنل میشوید و نشست ورود فقط روی رایانه خودتان میماند.
- **استخدام منصفانه:** جنسیت، سن و وضعیت تأهل در خلاصههای غربالگری حذف شدهاند و دلایل رد مبتنی بر جنسیت یا سن در ابزار وجود ندارد.
- **کنترل کامل:** در حالت فقطخواندنی، دستیار هیچ تغییری در پنل نمیدهد.
[English README](README.en.md)
## قابلیتها
| ابزار | کاربرد |
| --- | --- |
| `jobinja_status` | بررسی وضعیت ورود و شرکت متصل |
| `open_login_window` | باز کردن پنجره ورود به پنل کارفرمایی، بدون نیاز به ترمینال |
| `list_posts` | فهرست آگهیهای استخدام با تعداد متقاضیان در هر مرحله |
| `list_applicants` | فهرست متقاضیان هر آگهی با فیلتر وضعیت، ستارهدار و دارای یادداشت |
| `screen_applicants` | خلاصه فشرده و کممصرف یک صفحه (۲۵ نفر) از متقاضیان برای شورتلیست سریع |
| `get_resume_text` | متن استخراجشده رزومه PDF، بدون ارسال خود فایل |
| `get_applicant` | اطلاعات تماس، پروفایل جابینجا، یادداشتهای تیم، وضعیت و دلیل رد |
| `download_resume` و `download_resumes` | دانلود فایل رزومه (PDF) برای خواندن و تحلیل |
| `list_folders` و `list_folder_applicants` | پوشههای رزومه و متقاضیان هر پوشه |
| `create_folder` و `set_applicant_folders` | ساخت پوشه و افزودن یا حذف متقاضی از پوشه |
| `set_star` | ستاره زدن یا برداشتن ستاره |
| `add_note` و `delete_note` | افزودن یادداشت محرمانه تیم یا حذف یادداشت اشتباه |
| `list_rejection_reasons` و `reject_applicant` | رد درخواست با دلیل (جابینجا به متقاضی اطلاع میدهد)؛ با `dry_run` فقط فرم پر میشود |
| `restore_applicant` | بازگرداندن متقاضی به «در انتظار تعیین وضعیت» |
باز کردن متقاضیِ «بررسینشده» آن را دیدهشده علامت میزند، دقیقاً مانند باز کردن آن در خود پنل.
## نصب سریع در Claude Code (افزونه)
اگر Claude Code دارید، این دستور را داخل Claude Code بزنید. افزونه همراه با یک راهنمای غربالگری (skill) نصب میشود و به [uv](https://docs.astral.sh/uv/getting-started/installation/) و Google Chrome نیاز دارد:
</div>
```
/plugin install jobinja-employer --marketplace saeedsepehr/jobinja-employer-mcp
```
<div dir="rtl">
## نصب سریع در Claude Desktop (یککلیکی)
فایل `jobinja-employer-mcp-<نسخه>.mcpb` را از [صفحه انتشارها](https://github.com/saeedsepehr/jobinja-employer-mcp/releases/latest) دانلود کنید و روی آن دوبار کلیک کنید (یا در Claude Desktop از Settings ← Extensions آن را نصب کنید). سپس به Claude بگویید «پنجره ورود جابینجا را باز کن» و یک بار وارد پنل کارفرمایی شوید. Google Chrome باید نصب باشد.
## نصب
پیشنیازها: پایتون ۳.۱۰ یا جدیدتر و مرورگر Google Chrome. اگر Chrome ندارید، Edge هم کار میکند (`JOBINJA_BROWSER=msedge`) یا مرورگر داخلی Playwright (`JOBINJA_BROWSER=chromium` و سپس `playwright install chromium`).
۱. نصب pipx (فقط یک بار):
- ویندوز: `py -m pip install --user pipx` و سپس `py -m pipx ensurepath`
- مک: `brew install pipx` و سپس `pipx ensurepath`
- لینوکس: `sudo apt install pipx` و سپس `pipx ensurepath`
پس از `ensurepath` پنجره ترمینال را ببندید و دوباره باز کنید.
۲. نصب jobinja-employer-mcp (یا اجرای مستقیم با `uvx jobinja-employer-mcp` اگر uv دارید):
</div>
```bash
pipx install jobinja-employer-mcp
```
<div dir="rtl">
۳. ورود یکباره به پنل (یا از دستیار بخواهید ابزار `open_login_window` را اجرا کند): یک پنجره مرورگر باز میشود. وارد پنل کارفرمایی شوید؛ پنجره پس از بارگذاری پنل خودش بسته میشود.
</div>
```bash
jobinja-employer-mcp login
```
<div dir="rtl">
اگر نشست ورود منقضی شد، همین دستور را دوباره اجرا کنید. پیش از آن برنامهای را که از این ابزار استفاده میکند ببندید.
## اتصال به Claude، ChatGPT و Codex
**Claude Code:**
</div>
```bash
claude mcp add -s user jobinja -- jobinja-employer-mcp
```
<div dir="rtl">
**Claude Desktop:** این تنظیم را به فایل `claude_desktop_config.json` اضافه کنید و برنامه را دوباره باز کنید. مسیر فایل در مک `~/Library/Application Support/Claude/` و در ویندوز `%APPDATA%\Claude\` است. اگر برنامه دستور را پیدا نکرد، مسیر کامل آن را بنویسید (`where jobinja-employer-mcp` در ویندوز، `which jobinja-employer-mcp` در مک و لینوکس).
</div>
```json
{ "mcpServers": { "jobinja": { "command": "jobinja-employer-mcp" } } }
```
<div dir="rtl">
**OpenAI Codex CLI:** به فایل `~/.codex/config.toml` اضافه کنید:
</div>
```toml
[mcp_servers.jobinja]
command = "jobinja-employer-mcp"
```
<div dir="rtl">
**ChatGPT (کانکتور حالت توسعهدهنده):** ChatGPT فقط به سرورهای راه دور با HTTPS وصل میشود.
</div>
```bash
jobinja-employer-mcp http --port 8765
cloudflared tunnel --url http://localhost:8765
```
<div dir="rtl">
دستور اول نشانیای با یک بخش مخفی میدهد (`/<secret>/mcp`) و دستور دوم یک نشانی عمومی `https://….trycloudflare.com`. در ChatGPT به Settings ← Apps & Connectors ← Advanced بروید، Developer mode را روشن کنید و کانکتوری با نشانی `https://….trycloudflare.com/<secret>/mcp` و بدون احراز هویت بسازید.
> **هشدار:** هر کسی این نشانی را داشته باشد به نشست جابینجای شما دسترسی دارد. نشانی را در اختیار کسی قرار ندهید، پس از کار تونل را ببندید و در این حالت بهتر است `JOBINJA_READ_ONLY=1` را تنظیم کنید. برای تغییر بخش مخفی، فایل `~/.jobinja-mcp/http_token` را حذف کنید.
## نمونه درخواستها از دستیار
- «آگهیهای فعالم را با تعداد رزومههای بررسینشده نشان بده.»
- «با screen_applicants رزومههای آگهی برنامهنویس جاوا را مرور کن و پنج نفری را که بیشترین تطابق را با شرح آگهی دارند ستاره بزن و دلیلش را یادداشت کن.»
- «برای متقاضیانی که سابقه بانکی دارند پوشه «سابقه بانکی» بساز و اضافهشان کن.»
- «متقاضیانی را که هیچ تجربه فنی مرتبط ندارند فهرست کن، ولی ردشان نکن.»
## تنظیمات
| متغیر | پیشفرض |
| --- | --- |
| `JOBINJA_HOME` | `~/.jobinja-mcp` (پروفایل مرورگر و نشست ورود) |
| `JOBINJA_COMPANY` | بهصورت خودکار از پنل |
| `JOBINJA_DOWNLOAD_DIR` | `~/Downloads/jobinja-resumes` |
| `JOBINJA_READ_ONLY` | خالی (ابزارهای تغییردهنده فعالاند) |
| `JOBINJA_BROWSER` | `chrome` (یا `msedge` یا `chromium`) |
| `JOBINJA_HTTP_TOKEN` | در اولین اجرای `jobinja-employer-mcp http` ساخته میشود |
## پرسشهای رایج
**آیا jobinja-employer-mcp رمز عبور جابینجای من را ذخیره میکند؟**
خیر. ورود را خودتان در پنجره مرورگر انجام میدهید و ابزار فقط از نشست ذخیرهشده در پروفایل جداگانه مرورگر روی رایانه شما استفاده میکند.
**آیا اطلاعات متقاضیان جایی ارسال میشود؟**
دادهها فقط به دستیار هوش مصنوعیای که خودتان وصل کردهاید داده میشود. رزومههای دانلودشده روی رایانه شما ذخیره میشوند. سیاست حریم خصوصی سرویس هوش مصنوعی انتخابی و قوانین حفاظت از دادههای شخصی را رعایت کنید.
**آیا دستیار بدون اجازه من درخواستها را رد میکند؟**
فقط اگر از او بخواهید. رد درخواست به متقاضی اطلاع داده میشود، پس پیشنهاد میشود ابتدا از دستیار بخواهید پیشنهاد رد را بهصورت یادداشت ثبت کند تا خودتان بررسی کنید. در حالت `JOBINJA_READ_ONLY=1` هیچ تغییری ممکن نیست.
**این ابزار رسمی جابینجاست؟**
خیر، jobinja-employer-mcp پروژهای مستقل و غیررسمی است.
## حریم خصوصی
jobinja-employer-mcp کاملاً روی رایانه شما اجرا میشود و هیچ دادهای برای سازنده ارسال نمیکند: نه آمار استفاده، نه اطلاعات متقاضیان. نشست ورود در `~/.jobinja-mcp` و رزومههای دانلودشده در پوشهای که تعیین میکنید میمانند تا خودتان پاکشان کنید. اطلاعاتی که ابزار از پنل میخواند فقط به دستیار هوش مصنوعیای داده میشود که خودتان وصل کردهاید. متن کامل: [PRIVACY.md](PRIVACY.md).
## مشارکت
باگها و پیشنهادها را در [Issues](https://github.com/saeedsepehr/jobinja-employer-mcp/issues) ثبت کنید. اگر ساختار پنل جابینجا تغییر کرد و ابزاری از کار افتاد، Pull Request بسیار کمک میکند. هرگز فایل رزومه، داده متقاضی یا پوشه `~/.jobinja-mcp` را در Issue یا مخزن قرار ندهید.
## سلب مسئولیت
این پروژه وابسته به جابینجا نیست. تغییر ساختار پنل ممکن است ابزارها را از کار بیندازد. استفاده از آن باید مطابق قوانین جابینجا و مقررات حفاظت از دادههای شخصی باشد. مجوز انتشار: [MIT](LICENSE).
</div>
TDQS
Scored across 19 tools
Most tools have clearly distinct targets (list vs. screen vs. download resume, reject vs. restore, notes vs. stars vs. folders). A few boundaries could blur—list_applicants vs. screen_applicants vs. list_folder_applicants and download_resume vs. download_resumes vs. get_resume_text overlap in purpose—but descriptions explicitly disambiguate with token-cost and scope guidance.
Strong verb_noun snake_case pattern throughout (list_posts, get_applicant, download_resume, add_note, reject_applicant). Minor deviations exist: list_folder_applicants breaks the noun ordering used elsewhere, and jobinja_status is noun-based rather than verb-based.
19 tools for a full employer-side applicant workflow (session, posts, applicants, resumes, screening, decisions, notes, folders) is reasonable and each tool maps to a real operation. It's on the heavier side but not bloated with redundant tools.
Coverage is broad—listing, viewing, downloading, screening, rejection, restore, notes, stars, folders, session handling—but there's a notable gap: no tool to advance an applicant to interview/hired stage, despite those statuses being filterable and counted. The decision lifecycle is therefore one-sided (reject/restore only).