jobinja-employer-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| JOBINJA_HOME | No | Browser profile and login session directory (JOBINJA_HOME) | ~/.jobinja-mcp |
| JOBINJA_BROWSER | No | Browser to use: chrome, msedge, or chromium (internal Playwright browser) | chrome |
| JOBINJA_COMPANY | No | Company identifier; determined automatically from the panel by default | |
| JOBINJA_READ_ONLY | No | When set (e.g. to 1), the assistant cannot change anything in the panel; mutating tools are disabled. Empty by default (mutating tools enabled). | |
| JOBINJA_HTTP_TOKEN | No | Secret token for the HTTP server; generated automatically on the first run of `jobinja-employer-mcp http` | |
| JOBINJA_DOWNLOAD_DIR | No | Directory where downloaded resumes are saved | ~/Downloads/jobinja-resumes |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| jobinja_statusA | Check whether the saved Jobinja session is still logged in and which company panel it uses. |
| list_postsA | List the company's job ads with applicant counts. status: all | active | rejected | draft | closed | archived.
Each item has |
| list_applicantsA | List applicants of a job ad, 25 per page (newest first by default). post: short id from list_posts (e.g. "tMEO").
status: pending (unreviewed) | read (awaiting decision) | interview | hired | dismissed | expired | canceled.
starred / has_notes: only starred applicants / only those with team notes.
sort: id (newest) | id_asc (oldest) | relevance.
Each row has |
| get_applicantB | Get one applicant: contact info, profile fields, Jobinja profile text, star, team notes, current decision and rejection reason. applicant_id comes from list_applicants; page_hint (the list page it was on) makes lookup faster. Like opening it in the panel, viewing an unreviewed (pending) applicant marks it as seen. |
| download_resumeC | Download an applicant's attached resume file (usually PDF) and return its local path, ready to be read. Default folder: JOBINJA_DOWNLOAD_DIR//. |
| download_resumesA | Bulk-download resumes for a job ad, newest first, optionally filtered by status / starred (see list_applicants). Downloads at most |
| get_resume_textA | Extracted plain text of an applicant's PDF resume, truncated to max_chars. Much cheaper in tokens than reading the PDF itself. Scanned (image-only) PDFs give little or no text; use download_resume for those. |
| screen_applicantsA | Compact screening digest of one page (up to 25) of applicants, for fast, low-token shortlisting. For each applicant: headline, status, star, notes, folders, key profile fields (work history, education,
skills) and the first |
| list_rejection_reasonsA | Rejection reasons accepted by reject_applicant (code -> panel label). |
| set_starA | Star (starred=true) or unstar (starred=false) an applicant. Stars are internal to the company. |
| add_noteB | Add a confidential team note to an applicant (visible to company members only, not to the candidate). |
| delete_noteB | Delete one team note whose text contains |
| list_foldersA | List the company's resume folders (پوشههای رزومه) with their ids and per-stage counts. |
| list_folder_applicantsA | List applicants saved in a resume folder, 25 per page. Each row includes the |
| create_folderA | Create a new resume folder and return its id. If a folder with this exact title exists, returns it instead. |
| set_applicant_foldersA | Add an applicant to and/or remove it from resume folders. |
| reject_applicantA | Mark an applicant as rejected (نامناسب) with a reason code from list_rejection_reasons. Jobinja notifies the candidate of the rejection; |
| restore_applicantA | Undo a decision: move an applicant back to "awaiting decision" (در انتظار تعیین وضعیت). Jobinja notifies the candidate. |
| open_login_windowA | Open a browser window on the user's screen to sign in to the Jobinja employer panel (first use, or when jobinja_status reports the session expired). The user types their own credentials; waits up to 10 minutes. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
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).