foundrole-job-search4.72 KB
View saved version →
---
name: foundrole-job-search
description: Use when a user wants FoundRole job search, personalized recommendations, job or resume-fit analysis, salary or H-1B signals, ghost-job assessment, job comparisons, application tracking, reminders, email job alerts, or supported monitoring of new jobs through event-triggered tasks. Also use to analyze or save a posting found elsewhere, including partner listings, and for career questions about visas, resumes, salary, interviews or relocation. Search FoundRole when using this skill; another job board's own search is outside its scope.
---
# FoundRole job search
Use FoundRole's returned data for job results, scores, tracker state, alerts and URLs. Carry the user's intent across search, evaluation, saving and follow-up.
## Load the relevant workflow
Read only the reference needed for the current action:
| Situation | Reference |
|---|---|
| Connecting, missing tools, OAuth errors, unsupported features, text versus widgets, or an uncertain tool result | [app-capabilities.md](references/app-capabilities.md) |
| Saving internal or external jobs, changing application details, reminders, or email alerts | [application-management.md](references/application-management.md) |
| Watching a saved search, handling new-job events, renewing or stopping a host task | [monitoring.md](references/monitoring.md) |
Resolve these files within this skill on its originating MCP server, or within the installed skill directory. They are supporting instructions, not additional skills.
## Choose the capability
Use the tools actually exposed in this session and their current schemas. Model-facing tools handle conversation requests; app-only data tools belong to widgets.
| User intent | Capability |
|---|---|
| Search by criteria | `jobs_search`, using the full role title and the user's stated filters |
| Find roles matching the account's profile | `jobs_recommendations` |
| Examine a FoundRole result | `jobs_details` with its exact returned job identifier |
| Evaluate a posting found elsewhere | `jobs_analyze_external` with the available source detail |
| Compare jobs | `jobs_compare`; preserve each returned `comparisonRef` |
| Save and manage applications | Tracker tools through the application-management reference |
| Schedule follow-up or email notifications | Reminder or job-alert tools through that reference |
| Act on new matches in the host | Host event-task workflow through the monitoring reference |
| Check resume machine readability | `resume_check`; follow its returned mode, findings and links |
| Career guidance, company research or interview preparation | `knowledge_search` and its relevant returned articles; `knowledge_topics` for topic discovery |
If a capability is unavailable, explain what is missing and use an available alternative only within the user's request. Skill loading alone does not connect the app or create a background task.
## Preserve result context
- Keep exact job identifiers, result occurrence identifiers, tracked-job identifiers, search references and comparison references. Use the field each tool requests; these identifiers are not interchangeable.
- Resolve “the second job” or a named role from shown results rather than asking the user for an identifier already available. Clarify only when several results match.
- Use FoundRole for follow-up and refresh requests. A refresh means calling the corresponding FoundRole tool again with the same intent.
- When the user explicitly requests external sources, label them separately. Never present web results or remembered listings as FoundRole results.
- Read current state before a write when it is needed to identify the target or preserve existing information. Execute the authorized changes; clarify genuinely ambiguous targets or times.
## Present the result
Use FoundRole's canonical match score when present. Keep an assistant estimate separate and label it; an estimate cannot satisfy a condition requiring a FoundRole score. Use FoundRole's returned sponsorship history for canonical H-1B claims, separating it from a posting's explicit visa statement.
Distinguish posted pay from market estimates. Treat fit, sponsorship, E-Verify and ghost-job signals as evidence with uncertainty, not guarantees. Keep those sources stable across turns unless returned data changes.
Prefer a rendered widget without duplicating its full contents. In a text-only host, summarize the relevant returned jobs, fit evidence and uncertainties with returned links. Honor preview and account-access limits actually reported by the tool.
For guidance, cite relevant `knowledge_search` articles; say when none answer the question. A completed write, reminder, email alert or monitoring task requires a successful tool or host result. Report partial completion accurately.
Referenced files: 4 — file references are metadata, not package contents.
foundrole-resume-check5.7 KB
View saved version →
---
name: foundrole-resume-check
description: Check how hiring software (an ATS parser) reads a resume with the FoundRole MCP app, and report what the parser extracted and what it lost. Use when a user asks whether their resume is ATS-friendly, why applications get no reply, whether a parser can read their PDF, what a recruiting system sees on their resume, or asks for a resume scan, resume score, or resume review. Also use when the user pastes resume text and wants it checked. Do not use it to rewrite or grade the content of a resume — this check reports machine readability, not writing quality.
---
# FoundRole resume check
`resume_check` runs FoundRole's deterministic parse of a resume: FoundRole's own text-readability assessment, with no AI recovery. Report exactly what it returns.
## When `resume_check` is not available
This skill can load while the FoundRole app itself is disabled or not connected, so `resume_check` is missing from the session. Tell the user the FoundRole app is not enabled in this client, and that turning it on in the client's app or plugin settings (or connecting `https://www.foundrole.com/mcp`) and starting a new session makes the check available. Do not simulate the parse, and do not present your own reading of the resume as a FoundRole result or band.
## Choose what to check
- When the resume text is already in the conversation — pasted by the user, or read from a file they shared — pass it as `resume_text`. The minimum is 200 characters; a shorter passage is rejected, so ask for the full text rather than retrying with a fragment.
- Without `resume_text`, the check runs on the resume already uploaded to the user's FoundRole account. Use this when the user asks about "my resume" and has not pasted anything.
- Do not paraphrase, reformat, or clean up the resume before passing it. The check measures what a parser reads from the actual text, so an improved version measures the wrong document.
- Check one resume per call. To compare two versions, call the tool once per version and contrast the returned bands and findings.
## Read the result
The response carries `mode`, `band`, `findings`, nullable `parsedAs`, and nullable links: `profileSetupUrl` and `studioReportUrl`. A result can contain no link.
- `mode` says which document was read: `uploaded` (the account's resume), `text` (the pasted text), `no_resume` (nothing to check), `processing` (the upload is still being read).
- `band` is `strong`, `good`, or `partial`. Report the band in plain words. It is a readability band, not a percentage and not a match score — do not convert it into one, and do not invent a number to accompany it.
- `findings` lists what the parse lost, each with its own `detail` and suggested `fix`. Report every returned finding with its detail and fix; do not summarize several findings into one line, and do not add a finding the tool did not return. A single `clean` finding means nothing significant was lost. The returned findings are the scope of this check; do not invent hidden findings or advertise a more complete report.
- `parsedAs`, when present, is what the parser extracted: detected job title, years of experience, recognized skills count, sections, and which contact channels were found. Present these as the parser's reading, not as facts about the person — "the parser found no phone number" rather than "you have no phone number". When it is null, report the band and returned findings without inventing parsed facts.
## Stay inside the deterministic lens
- Pasted or extracted text cannot establish whether the original PDF or DOCX layout parses correctly. State this limitation when the user asks about a file; never present the text check as a test against a named ATS.
- This is the mechanical read only. It does not judge wording, achievements, seniority, or fit for any role. If the user asks whether the resume is good, say what the parser reads and what it loses, and keep any writing advice clearly separate from the tool's output.
- Never state or estimate a score, percentage, or pass rate for a specific ATS product, and never claim the resume will or will not pass a named system. The check describes typical parser behavior.
- The result is deterministic and repeatable: the same text returns the same band and findings. Do not re-run the check hoping for a different answer, and keep the reported band stable across turns for the same document.
## Handle each mode
- `no_resume`: the account has no uploaded resume and nothing was pasted. Ask the user to paste their resume text. When `profileSetupUrl` is present, also offer to finish their profile for personalized job matches.
- `processing`: the upload is still being read. Offer to retry shortly, or to check pasted text right away.
- `text`: The check does not create a saved Resume Studio report or add a resume to the account. Report the returned findings and fixes directly in the conversation. Do not claim that the input is never stored: operational request records and diagnostics may retain it.
- `uploaded`: report the returned findings and fixes. When `studioReportUrl` is present, it opens the saved report already available to this account; an uploaded resume alone does not establish report access.
## Point to the next step
- When `profileSetupUrl` is present and the check is not still processing, offer **Finish your profile** for personalized job matches. This action remains available for incomplete profiles independently of report access.
- Link **Open your saved resume report** only when `studioReportUrl` is present. Do not offer report access, an upgrade, or a purchase when the URL is absent.
- Use only returned URLs rather than composing a FoundRole URL yourself. When both URLs are absent, the returned band, findings and fixes stand on their own.
Referenced files: 1 — file references are metadata, not package contents.