Skip to content

rolefig

by rolefig.com · remote · no sign-in to list tools · v0.9.0 · published by com.rolefig

Search real job openings, check job posts and pay rules, and prepare California offer letters.

Final · 2Changes · 3

14 tools: 2 do something that can't be undone, 3 change things and 9 only read.

Scanned Oct 21, 2026

3 checks matched something in the tool definitions. No finding is not a safety guarantee. How the checks work.

claude mcp add --transport http rolefig https://rolefig.com/mcp

Findings

Matches of fixed checks, with the text they matched.

3 warn
  • The server marks "convert_pay" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".

    Matched text

    annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "convert_pay" says "convert": a word for a change.

    What this check looks for
  • The server marks "check_pay_transparency" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".

    Matched text

    annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "check_pay_transparency" says "pay": a word that usually means money moves, which cannot be taken back.

    What this check looks for
  • The server marks "render_contract" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

    Matched text

    annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The description's first verb is "fill": a word for a change.

    What this check looks for

Tools

Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.

14 tools

Can't be undone 2Claude Code: ask
  • check_pay_transparencyCheck a US job post against state and city pay-range posting laws (table checked 2026-10-05) for the job's state, optional city or county, total employer size and remote status.1 finding

    Why it is in this group

    • The name "check_pay_transparency" says "pay": a word that usually means money moves, which cannot be taken back.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    Findings

    • Warn

      The server marks "check_pay_transparency" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".

      Matched text

      annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "check_pay_transparency" says "pay": a word that usually means money moves, which cannot be taken back.

      What this check looks for
    Description, as the server wrote it
    Check a US job post against state and city pay-range posting laws (table checked 2026-10-05) for the job's state, optional city or county, total employer size and remote status. Returns the laws that may apply, what the post shows (pay range, benefits, other compensation, deadline), what may be missing, and official sources. Plain-language checks, not legal advice.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • convert_payConvert one gross pay figure (USD) between hourly, daily, weekly, monthly and yearly for a stated schedule.1 finding

    Why it is in this group

    • The name "convert_pay" says "convert": a word for a change.
    • The name "convert_pay" also says "pay": a word that usually means money moves, which cannot be taken back.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    Findings

    • Warn

      The server marks "convert_pay" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".

      Matched text

      annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "convert_pay" says "convert": a word for a change.

      What this check looks for
    Description, as the server wrote it
    Convert one gross pay figure (USD) between hourly, daily, weekly, monthly and yearly for a stated schedule. Overtime hours are paid at 1.5x the base rate; `hour` blends base and overtime. Gross pay only: no taxes, benefits or deductions.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
Changes things 3Claude Code: ask
  • check_job_postingCheck a job post's schema.org JobPosting markup against Google's job search rules.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    Check a job post's schema.org JobPosting markup against Google's job search rules. Returns blocking errors, recommended fixes and a summary per posting, never the page itself. Pass the page HTML or JSON-LD as `html`, or a public page address as `url`.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • format_resumeFormat ONLY candidate-supplied facts into resume text.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    Format ONLY candidate-supplied facts into resume text. Does not generate claims, save data, or submit an application. Remote use sends these fields to rolefig for formatting; omit contact details unless the candidate wants them included.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • render_contractFill rolefig's California starter offer letter and pay plan (commission, salary with bonus, or hourly) from values the employer confirmed, or fill the employer's own contract throu…1 finding

    Why it is in this group

    • The description's first verb is "fill": a word for a change.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    Findings

    • Warn

      The server marks "render_contract" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

      Matched text

      annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The description's first verb is "fill": a word for a change.

      What this check looks for
    Description, as the server wrote it
    Fill rolefig's California starter offer letter and pay plan (commission, salary with bonus, or hourly) from values the employer confirmed, or fill the employer's own contract through {{placeholders}}. Returns the document text, best-effort warnings (wage table checked 2026-10-06), the workspace's Compensation and Offer terms texts, and an ATS offer object once the candidate, start date and expiry are set. Use only confirmed values and never invent terms. Not legal advice. Remote use sends these values to rolefig to fill the template; nothing is stored.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
Only reads 9Claude Code: allow
  • demo_get_companyDemo catalog: illustrative roles, applications closed.No findings

    Why it is in this group

    • The name "demo_get_company" says "get": a word for reading.
    Description, as the server wrote it
    Demo catalog: illustrative roles, applications closed. Read a sample company profile and its roles.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • demo_get_jobDemo catalog: illustrative roles, applications closed.No findings

    Why it is in this group

    • The name "demo_get_job" says "get": a word for reading.
    Description, as the server wrote it
    Demo catalog: illustrative roles, applications closed. Read a sample role and its company profile.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • demo_list_companiesDemo catalog: illustrative roles, applications closed.No findings

    Why it is in this group

    • The name "demo_list_companies" says "list": a word for reading.
    Description, as the server wrote it
    Demo catalog: illustrative roles, applications closed. List the sample companies and their role counts.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • demo_search_jobsDemo catalog: illustrative roles, applications closed.No findings

    Why it is in this group

    • The name "demo_search_jobs" says "search": a word for reading.
    Description, as the server wrote it
    Demo catalog: illustrative roles, applications closed. Search the sample roles by keywords, company, work arrangement and minimum annual USD base salary. For real openings use search_jobs.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_jobRead one current published opening in full, with its company profile, the company's application URL and its rolefig page.No findings

    Why it is in this group

    • The name "get_job" says "get": a word for reading.
    Description, as the server wrote it
    Read one current published opening in full, with its company profile, the company's application URL and its rolefig page. Use the company and job slugs from search_jobs. Compensation text is authoritative; absent numeric pay and units are unknown. Never submits an application.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_published_companyRead a real company-published profile and its current published openings.No findings

    Why it is in this group

    • The name "get_published_company" says "get": a word for reading.
    Description, as the server wrote it
    Read a real company-published profile and its current published openings. Includes the company's stated facts (social profiles, headquarters, size, founding year, benefits, workplace policy, hiring process), how rolefig verified it, and source and application URLs; no applicant data or application submission. Compensation text is authoritative; absent numeric pay and units are unknown.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • list_company_openingsRead current published openings for a known company slug, with application URLs and the publication revision.No findings

    Why it is in this group

    • The name "list_company_openings" says "list": a word for reading.
    Description, as the server wrote it
    Read current published openings for a known company slug, with application URLs and the publication revision. Excludes drafts and closed jobs. Never submits an application.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • list_published_companiesDiscover company-published profiles with search and cursor pagination.No findings

    Why it is in this group

    • The name "list_published_companies" says "list": a word for reading.
    Description, as the server wrote it
    Discover company-published profiles with search and cursor pagination. Use the returned slug with get_published_company or list_company_openings. Public company information only; no applicant data.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • search_jobsSearch current openings that companies publish on rolefig, across every company.No findings

    Why it is in this group

    • The name "search_jobs" says "search": a word for reading.
    Description, as the server wrote it
    Search current openings that companies publish on rolefig, across every company. Filter by keywords (q), workplace, employment type, country (ISO code), region (a code such as CA), company slug, postedWithin (7 or 30 days) and minPay (minimum annual USD); sort by newest or pay. For the next page, repeat the search with nextCursor as after. Each opening has the company's application URL and its rolefig page; rolefig never submits applications.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false

This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.

Install

Pinned to version 0.9.0. Values in angle brackets are yours to fill in.

claude mcp add --transport http rolefig https://rolefig.com/mcp

Run in a terminal.

Claude Code permissions

Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.

.claude/settings.json
{
  "permissions": {
    "allow": [
      "mcp__rolefig__search_jobs",
      "mcp__rolefig__list_published_companies",
      "mcp__rolefig__get_job",
      "mcp__rolefig__get_published_company",
      "mcp__rolefig__list_company_openings",
      "mcp__rolefig__demo_search_jobs",
      "mcp__rolefig__demo_list_companies",
      "mcp__rolefig__demo_get_job",
      "mcp__rolefig__demo_get_company"
    ],
    "ask": [
      "mcp__rolefig__format_resume",
      "mcp__rolefig__convert_pay",
      "mcp__rolefig__check_pay_transparency",
      "mcp__rolefig__check_job_posting",
      "mcp__rolefig__render_contract"
    ],
    "deny": []
  }
}

Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as rolefig. Review it before you use it.