{"name":"com.rolnia/mcp","slug":"rolnia-mcp","title":null,"description":"Profile, CV, jobs, compensation & application-tracking tools for AI agents, by rolnia.com.","url":"https://mcp.market/server/rolnia-mcp","rating":null,"grade":"C","score":58,"certified":false,"status":"active","category":"other","tags":[],"presence":{"score":8,"stars":null,"forks":null,"downloads_week":9,"last_push_at":null,"license":null},"uptime":null,"claimed":false,"transport":"npm","callable_via_gateway":false,"default_price_micros":0,"repository":"https://github.com/gradebg96/candidatehub","website":"https://www.rolnia.com","version":"1.0.0","remotes":[],"packages":[{"registryType":"npm","registryBaseUrl":"https://registry.npmjs.org","identifier":"@rolnia/mcp","version":"1.0.0","transport":{"type":"stdio"},"environmentVariables":[{"description":"Personal Access Token minted at https://www.rolnia.com/account/mcp-tokens (format chmcp_…). Required by all API-backed tools; the server starts and lists tools without it.","isRequired":true,"isSecret":true,"name":"CANDIDATEHUB_TOKEN"},{"description":"API base URL (defaults to https://www.rolnia.com).","name":"CANDIDATEHUB_API_BASE"}]}],"tools":[{"name":"analyze_compensation_for_job","description":"Analyze how a specific JD (by jd_id from the Jobs Module) or a free-text role+location compares to market compensation. Returns market percentiles, the user's position if comp data is on file, and AI insights.","write_action":false,"price_micros":0,"input_schema":null},{"name":"analyze_job_fit","description":"Analyze how well your CV (also called resume — terms interchangeable) profile matches a specific job description. Mirrors the working browser flow at src/app/jobs/page.tsx:461-494: stage 1 calls the gated job-fit BFF /api/analyze/job-fit (which meters the job_fit_analysis quota, then forwards to the Python analyzer), stage 2 persists to Go /api/v2/job-analyses (best-effort). Returns alignment scor","write_action":false,"price_micros":0,"input_schema":null},{"name":"generate_cover_letter","description":"Generate a customized cover letter for a specific job description using AI. Uses your CV (also called resume — terms interchangeable) profile as the candidate context. Optionally persists the result to your library.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_compensation_for_role","description":"Fetch compensation benchmarks for a role. Two modes: (1) JD-context — pass jd_id from list_jobs/get_job/list_tracked_jobs.jd_id (RECOMMENDED for SG roles; mirrors browser pattern, closest-match relaxation via Gemini applies automatically). (2) Free-text US benchmark — pass role_title + country='US' for a US benchmark via the compensation analyze endpoint (job_id empty → no persistence). For SG rol","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_cv_download_url","description":"Return a short, copy-paste-friendly download URL for a previously-generated CV (also called resume — terms interchangeable). Use this when the original signed URL from rewrite_cv_for_job has expired (1 hour TTL) or got line-wrapped in the chat client. The returned short_url routes through the app's /d/[code] redirect, which re-signs the stored Supabase object on each follow (no DOCX/PDF re-render)","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_job","description":"Fetch a single Job Description by id from the user's Jobs Module library. Returns the full parsed JD content (parsed_content, salary, classification codes). This is the canonical lookup used by analyze_job_fit, generate_cover_letter, and rewrite_cv_for_job. For Job Tracker pipeline entries (status/dates/notes), use get_tracked_job.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_profile","description":"Fetch the authenticated user's candidate profile including about, experience, education, and skills. Safe for display to the user.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_server_info","description":"Returns MCP server version, commit SHA, environment, and deployment timestamp.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_tracked_job","description":"Fetch a specific job from the Job Tracker pipeline by ID. Returns the full tracker row (status, dates, jd_id). The job_tracker table does not store free-text notes — activity history lives on the activities endpoint.","write_action":false,"price_micros":0,"input_schema":null},{"name":"import_job_from_url","description":"Import a job listing from a URL. The backend auto-detects LinkedIn vs other sources. Parses the JD, persists it to the Jobs Module library, and returns the new jd_id for use with analyze_compensation_for_job, analyze_job_fit, generate_cover_letter, and rewrite_cv_for_job.","write_action":false,"price_micros":0,"input_schema":null},{"name":"import_resume_from_text","description":"Import a resume (also called CV — terms interchangeable) from plain text. Parses the text and persists it as a new CV profile in the user's candidate-profiles library. Returns the new cv_profile_id for use with analyze_job_fit, generate_cover_letter, and rewrite_cv_for_job.","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_cv_profiles","description":"List the user's CV profiles (CV and resume are interchangeable terms — this tool covers both) as a summary view (id, profile_name, display_name, headline, created_at). For full parsed_content (skills, experience, education), use the returned id with analyze_job_fit, generate_cover_letter, or rewrite_cv_for_job. Backend ordering is created_at DESC; if you omit cv_profile_id on downstream tools, the","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_generated_cvs","description":"List the user's AI-rewritten CVs (also called resumes — terms interchangeable in this MCP) generated by rewrite_cv_for_job. Returns a summary view (id, name, original_cv_profile_id, jd_id, focus_type, template, created_at). Backend ordering is created_at DESC; index [0] is the most recent. To download a previously-generated CV, call get_cv_download_url(cv_id, format) — note format is fixed at the ","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_jobs","description":"List your Jobs Module library as a summary view (id, title, company, location, brief summary). For full parsed_content / classification codes / salary bands, call get_job with the returned id. For active-pipeline rows with status, call list_tracked_jobs.","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_tracked_jobs","description":"List jobs the user is actively pursuing (Job Tracker pipeline — saved/applied/interviewing/offer/not_offered/accepted). Returns paginated tracker rows with status metadata. For the full library of imported JDs, use list_jobs.","write_action":false,"price_micros":0,"input_schema":null},{"name":"rewrite_cv_for_job","description":"Generate a CV (also called a resume — terms interchangeable in this MCP) tailored to a specific job description. Optionally persists and returns a structured export descriptor: data.export.url (long signed download URL), data.export.short_url (chat-client-friendly short URL — new in v0.3.0), expires_at, content_type, size_bytes, filename. Set export_format to \"docx\" (default) or \"pdf\" — both forma","write_action":false,"price_micros":0,"input_schema":null},{"name":"signup_url","description":"Generate a signup URL for a new user. Includes MCP attribution and client tracking parameters. No authentication required.","write_action":false,"price_micros":0,"input_schema":null},{"name":"track_job","description":"Add a job to the user's Job Tracker pipeline (the same tracker shown at /job-tracker,","write_action":false,"price_micros":0,"input_schema":null}],"scan":{"score":58,"grade":"C","scanned_at":"2026-09-24T05:07:57.981Z","report":{"scannerVersion":"0.1.9","scannedAt":"2026-09-24T05:07:57.855Z","components":{"code":{"score":25,"max":25,"notes":["61 source files scanned"]},"reliability":{"score":-1,"max":20,"notes":["no gateway calls yet and no remote to probe"]},"poisoning":{"score":-1,"max":15,"notes":["tools not inspected (local package is not executed); not counted"]},"auth":{"score":6,"max":15,"notes":["static API keys via environment variables"]},"maintenance":{"score":3,"max":15,"notes":["repository not readable: repo not found"]},"identity":{"score":4,"max":10,"notes":["verified namespace with website, no repo"]}},"findings":[],"inputs":{"packages":[{"registryType":"npm","identifier":"@rolnia/mcp","version":"1.0.0","found":true,"hasInstallScripts":false,"dependencyCount":3,"publishedAt":"2026-08-04T03:35:49.465Z","repositoryUrl":"git+https://github.com/gradebg96/candidatehub.git","weeklyDownloads":9}],"repo":{"found":false,"owner":"gradebg96","repo":"candidatehub","error":"repo not found"},"icon":{"url":"https://www.rolnia.com/icon.svg?94322866ca377ed2","source":"site"},"presence":{"stars":null,"forks":null,"downloadsWeek":9,"license":null,"lastPushAt":null,"score":8}}}},"grade_history":[],"reviews":[]}