{"$schema":"https://verifymcp.io/schemas/trust-report.json","schemaVersion":1,"license":{"name":"CC BY-NC 4.0","url":"https://creativecommons.org/licenses/by-nc/4.0/"},"generatedAt":"2026-11-05T17:30:55.360Z","url":"https://verifymcp.io/servers/sepehr071-jobinja-mcp/jobinja-mcp","markdownUrl":"https://verifymcp.io/servers/sepehr071-jobinja-mcp/jobinja-mcp.md","server":{"slug":"sepehr071-jobinja-mcp","name":"Jobinja Jobs","registryName":"io.github.sepehr071/jobinja-mcp","description":"Read-only Jobinja (jobinja.ir) job search, ad details, companies and top-50 scores for Iran.","registryStatus":"active","deletedAt":null,"statusMessage":null,"liveness":"live","publisher":{"class":"unknown","claimed":false}},"component":{"slug":"jobinja-mcp","type":"pypi","identifier":"jobinja-mcp","withdrawn":false,"url":"https://verifymcp.io/servers/sepehr071-jobinja-mcp/jobinja-mcp","version":"0.1.1","transport":"stdio","scoredAt":"2026-11-05T06:07:15.687Z"},"score":{"total":67,"tier":"medium","status":"scored","weekDelta":null,"history":[{"date":"2026-11-05","total":67},{"date":"2026-11-04","total":81},{"date":"2026-11-03","total":66},{"date":"2026-11-02","total":65},{"date":"2026-11-01","total":80}]},"categories":[{"name":"Supply Chain Security","score":50,"verdict":"partial","reasons":["Malware scan not yet available for this package.","No known CVEs affecting this package version or its production dependencies.","Runs hatchling.build at install time, a recognised build step with no custom scripting around it.","1 of 37 dependencies flagged as unhealthy."],"codes":[{"code":"supplychain.malware_inconclusive","args":{"reason":"vendor_no_verdict"}},{"code":"cve.none","args":{}},{"code":"installscript.allowlisted","args":{"tool":"hatchling.build","hooks":"build_backend"}},{"code":"dephealth.assessed","args":{"deps":"37","unhealthy":"1"}}]},{"name":"Provenance & Transparency","score":97,"verdict":"fail","reasons":["Source repository is publicly reachable at the declared URL.","Cryptographically verified build provenance (signed, bound to sepehr071/jobinja-mcp).","Clear OSI-approved license (MIT).","Actively maintained (last published 2 days ago).","Disclosure check failed: no security disclosure policy was found in the source repository."],"codes":[{"code":"provenance.repo_verified","args":{}},{"code":"provenance.verified","args":{"repo":"sepehr071/jobinja-mcp"}},{"code":"license.osi","args":{"spdx":"MIT"}},{"code":"maintenance.recent","args":{"age_days":"2"}},{"code":"disclosure.absent","args":{}}]},{"name":"Schema Quality & AI Usability","score":69,"verdict":"fail","reasons":["AI-judged instruction clarity (excellent).","Context-footprint check failed: tool/resource definitions use about 1804 tokens (~180/item across 10 items; 10 tools + 0 resources), over budget; trim descriptions and params.","Usage-examples check failed: none of the tools include examples."],"codes":[{"code":"schema.ai_quality","args":{"band":"excellent"}},{"code":"schema.footprint_heavy","args":{"avg":"180","items":"10","tools":"10","tokens":"1804","resources":"0"}},{"code":"schema.examples_absent","args":{}}]},{"name":"Stability & Change Management","score":13,"verdict":"partial","reasons":["Stability observed for 4 of 30 days with no destabilising changes; credit accrues until the full window elapses."],"codes":[{"code":"stability.building_history","args":{"days":"4"}}]},{"name":"Tool Coverage","score":100,"verdict":"pass","reasons":["100% of tools have a non-trivial description (not blank, and not just the tool's name).","100% of tool parameters carry a description."],"codes":[{"code":"toolquality.descriptions","args":{"pct":"100"}},{"code":"toolquality.param_docs","args":{"pct":"100"}}]},{"name":"Tool Safety","score":100,"verdict":"pass","reasons":["No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.","We read all 10 captured tool definition(s), and no name or description among them implies an irreversible operation.","An AI judge read all 11 captured unit(s) of tool text and found none that tries to manipulate the model reading it."],"codes":[{"code":"toolsafety.injection_clean","args":{}},{"code":"toolsafety.destructive_none","args":{"tools":"10"}},{"code":"toolsafety.manipulation_clean","args":{"units":"11","judged":"11"}}]},{"name":"Capabilities","score":100,"verdict":"pass","reasons":["Implements a current MCP spec version (2026-07-28)."],"codes":[{"code":"protocol.current","args":{"version":"2026-07-28"}}]}],"inconclusive":["Malware scan not yet available for this package."],"malware":[],"components":[{"slug":"jobinja-mcp","type":"pypi","identifier":"jobinja-mcp","withdrawn":false,"score":67,"current":true,"url":"https://verifymcp.io/servers/sepehr071-jobinja-mcp/jobinja-mcp","markdownUrl":"https://verifymcp.io/servers/sepehr071-jobinja-mcp/jobinja-mcp.md"}],"facts":[{"label":"Registry","value":"pypi"},{"label":"Package","value":"jobinja-mcp"},{"label":"Version","value":"0.1.1"},{"label":"Transport","value":"stdio"}],"install":{"available":true,"bundleSha256":null},"tools":[{"name":"jj_search_jobs","title":"Search jobs","description":"Search Jobinja job ads by keyword, province, city, category, remote, contract type, experience, benefits and minimum salary.\n\nUse for \"find python jobs in Isfahan\" or \"remote jobs paying 50 million\". Returns 20 ads per page with an id\n(company/token), company, city, contract type and age. Jobinja hides salaries in lists; call jj_job with an id\nfor the salary, skills and full description. Filters combine with AND.","inputs":[{"name":"benefits","type":null,"required":false,"description":"Only ads offering all of these benefits, e.g. ['loan', 'flexible_hours', 'esop']."},{"name":"category","type":null,"required":false,"description":"Job category, e.g. 'وب، برنامهنویسی و نرمافزار' or just 'برنامهنویسی' (see jj_filters)."},{"name":"city","type":null,"required":false,"description":"City name, e.g. مشهد, کرج (jj_market lists cities with ad counts)."},{"name":"experience","type":null,"required":false,"description":"Required work experience in years: any, under 2, 3 to 6, 7 or more."},{"name":"internship","type":"boolean","required":false,"description":"Only internships (کارآموزی)."},{"name":"job_type","type":null,"required":false,"description":"Contract type."},{"name":"keyword","type":null,"required":false,"description":"Words in the title or text, Persian or English (python, حسابدار, react)."},{"name":"min_salary","type":null,"required":false,"description":"Minimum monthly salary in million Toman; rounded down to Jobinja's steps (10.3, 11, 15, 20, 30, 40, 50, 70, 100, 150, 200, 300, 400, 500)."},{"name":"page","type":"integer","required":false,"description":"Page number, 1-based."},{"name":"province","type":null,"required":false,"description":"Province name, e.g. تهران, اصفهان (see jj_filters)."},{"name":"remote","type":"boolean","required":false,"description":"Only remote (دورکاری) jobs."},{"name":"sort","type":"string","required":false,"description":"Order: relevance (default), newest, or highest salary."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":398},{"name":"jj_job","title":"Job details","description":"Read one Jobinja job ad: title, company, salary, contract, experience, skills, degree, gender, military status and the full description.\n\nUse after jj_search_jobs or jj_company_jobs. The salary is the monthly figure in Toman shown on the ad page\n(minimum, or negotiable). Check `expired` before recommending it. Call jj_company with company_slug for the employer.","inputs":[{"name":"job","type":"string","required":true,"description":"Job id 'company-slug/token' from jj_search_jobs or jj_company_jobs, e.g. payampardaz/tuAE, or the job page URL."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":128},{"name":"jj_company","title":"Company profile","description":"Read a company's Jobinja profile: name, founding year, industry, size, website, open job count and its intro, culture and benefits text.\n\nUse after a job or company search. Jobinja has no employee reviews or ratings (only the top-50 score, see\njj_top_companies). Call jj_company_jobs for the open ads.","inputs":[{"name":"slug","type":"string","required":true,"description":"Company slug from a Jobinja company or job URL, e.g. payampardaz."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":103},{"name":"jj_company_jobs","title":"Company open jobs","description":"List a company's open job ads on Jobinja (or, with expired_page, its past ads, which show its hiring history).\n\nUse to see what a company is hiring for. Each row has an id for jj_job. Expired pages hold 100 ads each.","inputs":[{"name":"expired_page","type":null,"required":false,"description":"Set to read that page of the company's expired ads instead of the open ones."},{"name":"limit","type":"integer","required":false,"description":"Most rows to return (expired pages hold up to 100)."},{"name":"slug","type":"string","required":true,"description":"Company slug from a Jobinja company or job URL, e.g. payampardaz."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":128},{"name":"jj_search_companies","title":"Search companies","description":"Find companies on Jobinja by name, or browse one industry (8 per page).\n\nUse to get the slug for jj_company / jj_company_jobs. Give keyword or industry (industry wins).","inputs":[{"name":"industry","type":null,"required":false,"description":"Industry name instead of a keyword, e.g. 'بیمه' or 'کامپیوتر' (see jj_filters)."},{"name":"keyword","type":null,"required":false,"description":"Company name words, e.g. دیجیکالا or snapp."},{"name":"page","type":"integer","required":false,"description":"Page number, 1-based."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":112},{"name":"jj_top_companies","title":"Top 50 companies","description":"Jobinja's yearly list of the 50 best companies to work for, with each one's score out of 10 and its three sub-scores.\n\nThis is the only company rating data on Jobinja. Sub-scores: popularity among job seekers, variety of job\nopenings, handling of received resumes. Use the slug with jj_company.","inputs":[{"name":"limit","type":"integer","required":false,"description":"How many of the 50."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":92},{"name":"jj_market","title":"Job market counts","description":"Count the open Jobinja ads right now per job category, province, company industry and top skill (live site statistics).\n\nUse for market-size questions (\"how many programming jobs are open\", \"which province hires most\"), or with\nprovince to get exact city names and their ad counts for the city filter of jj_search_jobs.","inputs":[{"name":"province","type":null,"required":false,"description":"Province name to also list its cities with ad counts, e.g. اصفهان."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":95},{"name":"jj_skills","title":"Skill demand","description":"Find skills on Jobinja matching a word, with how many ads ever listed each (a demand signal).\n\nUse to compare skills (\"react vs vue\") or to pick the exact skill spelling. The counts cover all ads on the\nsite including expired ones, so they rank skills but are not today's openings; use jj_search_jobs for those.","inputs":[{"name":"query","type":"string","required":true,"description":"Skill words, e.g. react, python, حسابداری."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":96},{"name":"jj_salary_stats","title":"Salary statistics","description":"Estimate monthly salaries (Toman) for a kind of job by reading the ad pages of the top search results.\n\nUse for \"what does a python developer earn\" questions. Lists hide salaries, so this opens `sample` ads from the\nfirst page of results and summarises the stated minimums; most ads say negotiable, so check n_with_salary.\nA sample, not a survey: say so when reporting. The ads are returned so you can cite them with jj_job.\nMakes one request per sampled ad, at most 30 (`sample`).","inputs":[{"name":"category","type":null,"required":false,"description":"Job category (see jj_filters)."},{"name":"experience","type":null,"required":false,"description":"Experience."},{"name":"keyword","type":null,"required":false,"description":"Words in the title or text, e.g. python."},{"name":"province","type":null,"required":false,"description":"Province name (see jj_filters)."},{"name":"remote","type":"boolean","required":false,"description":"Only remote jobs."},{"name":"sample","type":"integer","required":false,"description":"How many ads to read (each is one request)."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":193},{"name":"jj_filters","title":"Search filter values","description":"List every value the Jobinja search accepts: provinces, job categories, industries, experience levels, salary steps, sort orders.\n\nUse when a province, category or industry name is rejected or you need the exact spelling.","inputs":[],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":51}],"toolsTruncatedAtCapture":false,"diagnostics":{"capturedAt":"2026-11-05T06:07:15.000Z","track":"package","endpoint":null,"declaredUrl":null,"truncated":false,"tls":null,"dnssec":null,"auth":null,"httpsRedirect":null,"transports":[],"provenance":{"outcome":"verified","label":"Verified","reason":"verified","reasonLabel":"Verified","discovery":"attestation_endpoint","discoveryLabel":"Registry attestation endpoint","sourceRepo":null,"attestationSkipped":null,"attestationSkippedLabel":null},"installScripts":[{"hook":"build_backend","tier":"allowlisted"}],"installScriptsTotal":null,"vulnerabilities":[],"vulnerabilitiesTotal":null,"dependencies":{"nodes":37,"partial":false,"deprecated":null,"stale":null,"noRepo":1}},"mismatches":[],"changelog":{"trackingSince":"2026-11-01","recent":[{"id":"chg_01a1aa51-94fa-761a-9820-e6ff81a23661","kind":"check.unverifiable","summary":"Malware scan (pass → unverified)","materiality":"security","direction":"regression","scoreDelta":null,"occurredOn":"2026-11-05","url":"https://verifymcp.io/servers/sepehr071-jobinja-mcp/jobinja-mcp#chg-chg_01a1aa51-94fa-761a-9820-e6ff81a23661"},{"id":"chg_01a1aa51-94fb-78f4-9e40-1a9c8b70f2c4","kind":"score.total_changed","summary":"Trust score (81 → 67)","materiality":"functional","direction":"regression","scoreDelta":-14,"occurredOn":"2026-11-05","url":"https://verifymcp.io/servers/sepehr071-jobinja-mcp/jobinja-mcp#chg-chg_01a1aa51-94fb-78f4-9e40-1a9c8b70f2c4"},{"id":"chg_01a1a528-a779-7707-9aac-a114610df9d8","kind":"check.reverified","summary":"Malware scan (unverified → pass)","materiality":"security","direction":"improvement","scoreDelta":null,"occurredOn":"2026-11-04","url":"https://verifymcp.io/servers/sepehr071-jobinja-mcp/jobinja-mcp#chg-chg_01a1a528-a779-7707-9aac-a114610df9d8"},{"id":"chg_01a1a528-a77a-7853-9026-7ae2834f3ab3","kind":"check.reverified","summary":"Security disclosure (unverified → fail)","materiality":"functional","direction":"regression","scoreDelta":null,"occurredOn":"2026-11-04","url":"https://verifymcp.io/servers/sepehr071-jobinja-mcp/jobinja-mcp#chg-chg_01a1a528-a77a-7853-9026-7ae2834f3ab3"},{"id":"chg_01a1a528-a77b-718e-a5ae-1f44addd7476","kind":"score.total_changed","summary":"Trust score (66 → 81)","materiality":"functional","direction":"improvement","scoreDelta":15,"occurredOn":"2026-11-04","url":"https://verifymcp.io/servers/sepehr071-jobinja-mcp/jobinja-mcp#chg-chg_01a1a528-a77b-718e-a5ae-1f44addd7476"},{"id":"chg_01a1a005-12ba-7ca5-b6c7-2188da2c3dc0","kind":"check.unverifiable","summary":"Security disclosure (fail → unverified)","materiality":"functional","direction":"regression","scoreDelta":null,"occurredOn":"2026-11-03","url":"https://verifymcp.io/servers/sepehr071-jobinja-mcp/jobinja-mcp#chg-chg_01a1a005-12ba-7ca5-b6c7-2188da2c3dc0"},{"id":"chg_01a1a005-12bb-7cee-913d-b9c22b356e75","kind":"score.total_changed","summary":"Trust score (65 → 66)","materiality":"functional","direction":"improvement","scoreDelta":1,"occurredOn":"2026-11-03","url":"https://verifymcp.io/servers/sepehr071-jobinja-mcp/jobinja-mcp#chg-chg_01a1a005-12bb-7cee-913d-b9c22b356e75"},{"id":"chg_01a19b3f-1ed0-70ed-b81b-510d53bd9170","kind":"check.unverifiable","summary":"Malware scan (pass → unverified)","materiality":"security","direction":"regression","scoreDelta":null,"occurredOn":"2026-11-02","url":"https://verifymcp.io/servers/sepehr071-jobinja-mcp/jobinja-mcp#chg-chg_01a19b3f-1ed0-70ed-b81b-510d53bd9170"},{"id":"chg_01a19b3f-1ed0-76db-80c0-563eac18f77b","kind":"package.version_changed","summary":"Package version (0.1.0 → 0.1.1)","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-11-02","url":"https://verifymcp.io/servers/sepehr071-jobinja-mcp/jobinja-mcp#chg-chg_01a19b3f-1ed0-76db-80c0-563eac18f77b"},{"id":"chg_01a19b3f-1ed0-7cfc-b142-2ab344f33297","kind":"score.total_changed","summary":"Trust score (80 → 65)","materiality":"functional","direction":"regression","scoreDelta":-15,"occurredOn":"2026-11-02","url":"https://verifymcp.io/servers/sepehr071-jobinja-mcp/jobinja-mcp#chg-chg_01a19b3f-1ed0-7cfc-b142-2ab344f33297"},{"id":"chg_01a1964d-cdd0-7d46-ab88-b9bb58fc97e7","kind":"score.first_scored","summary":"First indexed and scored","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-11-01","url":"https://verifymcp.io/servers/sepehr071-jobinja-mcp/jobinja-mcp#chg-chg_01a1964d-cdd0-7d46-ab88-b9bb58fc97e7"},{"id":"chg_01a19629-00c6-7127-b3a2-559966f62617","kind":"score.first_scored","summary":"First indexed and scored","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-11-01","url":"https://verifymcp.io/servers/sepehr071-jobinja-mcp/jobinja-mcp#chg-chg_01a19629-00c6-7127-b3a2-559966f62617"}],"truncated":false,"feedUrl":"https://verifymcp.io/servers/sepehr071-jobinja-mcp/jobinja-mcp/changelog.json"},"links":{"html":"https://verifymcp.io/servers/sepehr071-jobinja-mcp/jobinja-mcp","markdown":"https://verifymcp.io/servers/sepehr071-jobinja-mcp/jobinja-mcp.md","changelogJson":"https://verifymcp.io/servers/sepehr071-jobinja-mcp/jobinja-mcp/changelog.json","changelogRss":"https://verifymcp.io/servers/sepehr071-jobinja-mcp/jobinja-mcp.xml","external":[{"label":"PyPI project","href":"https://pypi.org/project/jobinja-mcp/"},{"label":"Socket report","href":"https://socket.dev/pypi/package/jobinja-mcp"},{"label":"Repository","href":"https://github.com/sepehr071/jobinja-mcp"}]}}