decroche-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| logging | {} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| extensions | {
"io.modelcontextprotocol/ui": {}
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| cv_parseA | Parse a CV file (PDF/DOCX/MD/TXT) into a validated JSON Resume, detected sections, a parse-confidence score, and warnings. |
| cv_xyz_scaffoldA | Decompose every highlight bullet in a CV into an XYZ scaffold. For each highlight returns: detected verb, achievement object (X), metric-present flag (Y), method clause (Z), a fill-in template, and a prompt to request a real metric when Y is absent. NEVER fabricates metrics — only asks the candidate for real data. |
| cv_verify_claimsA | Flag quantified achievements, leadership claims, named project outcomes, certifications, and awards that should be backed by a verifiable artefact. Returns only actionable claims (needs_evidence=True). Suggests the artefact type for each (dashboard link, repo URL, credential ID, reference contact, etc.). The host LLM asks the candidate to supply the actual link — never fabricated. |
| cv_renderA | Parse a CV file then render ATS-safe export artifacts. Produces:
Returns a Render model with:
The ats_safe_proof proves the exported DOCX is machine-readable. All artifacts are written to out_dir (or a system temp dir if omitted). |
| market_getA | Return the currently active market profile. |
| market_setA | Set the active market profile (e.g. 'fr', 'us') and return it. |
| market_availableA | List available market profile ids. |
| ats_parse_simA | Simulate how an ATS parses the CV file. Analyses the raw file structure (columns, tables, header/footer contact, file size, text density) and applies the target ATS's quirks rules to compute a parsability score (0–100) and a list of breakages with fixes. |
| ats_redflag_scanA | Scan a parsed CV for content red flags. Implements all red-flag checks from data/redflags.yaml: passive voice, duty bullets without metric/strong verb, employment gaps, job-hopping, banned buzzwords, year-only dates, unprofessional email, wrong photo for market, AI-generic phrasing, no quantification. |
| ats_screener_briefA | Build a screener simulation kit for Claude. Produces the plain text the machine sees after ATS parsing, a fixed scoring rubric, and deterministic keyword requirements extracted from the offer. Claude then plays the AI screener on this exact text. |
| ats_score_reportA | Generate a before/after score report. Combines the parsability score, optional match score, and redflag count into a ScoreReport with screener_readiness tier and optional delta. |
| ats_detect_adversarialA | Detect adversarial tactics embedded in a submitted CV (spec §2). Scans the CV file for three classes of adversarial content:
This tool ONLY detects adversarial content — it never produces it. |
| match_scoreB | Compute a skill-coverage match score between a CV file and a job offer. |
| match_dedupeA | Remove duplicate job postings from a list. Uses SHA-256 blocking on normalised company|city|title, then within each
block merges postings where |
| match_keyword_gapA | Return the top-N offer keywords not covered by the CV, ranked by salience. Each gap is classified as:
|
| match_success_probabilityB | Estimate application success probability deterministically. Combines fit_score with recency, competition proxy, optional network proximity, and optional applicant count into a single 0–100 score with per-factor breakdown. Unknown signals default to neutral and are flagged in |
| match_company_intelA | Derive company intelligence from job postings + produce research checklist. Only asserts facts derivable from the provided postings (open_roles_count,
locations, remote_ratio, tech_tags). Everything else (Glassdoor rating,
funding, layoff signals, visa sponsorship) is placed in a research_checklist
with status |
| source_greenhouseA | Fetch all live jobs from a Greenhouse job board (no auth required). |
| source_leverA | Fetch all published postings from a Lever company page (no auth required). |
| source_ashbyA | Fetch all listed jobs from an Ashby job board (no auth required). |
| source_recruiteeA | Fetch all open offers from a Recruitee company page (no auth required). |
| source_workableA | Fetch all published jobs from a Workable account (no auth required for public listings). |
| source_smartrecruitersA | Fetch all public postings from SmartRecruiters Posting API (no auth required). |
| source_remoteokA | Fetch all remote jobs from RemoteOK API (no auth required; attribution: remoteok.com). Returns: SourceResult with all normalised job postings. |
| source_remotiveA | Fetch remote jobs from Remotive API, optionally filtered by search query. |
| source_arbeitnowA | Fetch all jobs from the Arbeitnow public job board (no auth required). Returns: SourceResult with all normalised job postings. |
| source_france_travailB | Fetch jobs from France Travail (Pôle Emploi) API v2. Requires env: FRANCE_TRAVAIL_ID, FRANCE_TRAVAIL_SECRET |
| source_adzunaB | Fetch jobs from Adzuna (19 countries). Requires env: ADZUNA_APP_ID, ADZUNA_APP_KEY |
| source_jsearchB | Fetch jobs from JSearch (RapidAPI) — aggregates LinkedIn/Indeed/Glassdoor legally. Requires env: JSEARCH_RAPIDAPI_KEY |
| source_usajobsA | Fetch US federal jobs from USAJobs.gov. Requires env: USAJOBS_KEY, USAJOBS_EMAIL |
| source_reedB | Fetch UK jobs from Reed.co.uk. Requires env: REED_KEY |
| source_themuseA | Fetch jobs from The Muse. Optional env: THEMUSE_KEY (works without key but rate-limited). |
| source_joobleC | Fetch jobs from Jooble international aggregator. Requires env: JOOBLE_KEY |
| source_labonneboiteA | Fetch companies likely to hire from La Bonne Boîte (hidden job market). La Bonne Boîte surfaces companies likely to recruit in a given ROME code
and commune, even when they have published no formal job offer. Each result
is a JobPosting with a Requires env: FRANCE_TRAVAIL_ID, FRANCE_TRAVAIL_SECRET Scope: api_labonneboitev1 (partner must subscribe in the FT developer portal) NOTE: scope acceptance requires partner subscription to the La Bonne Boîte product. Live verification of the endpoint and scope is needed before production use — see project report. |
| source_careerjetB | Fetch jobs from Careerjet public API (international job aggregator). Optional env: CAREERJET_AFFID — affiliate ID for higher rate limits. Works without it in some locales (reduced results possible). |
| source_search_allA | Fetch and aggregate jobs from multiple keyless providers concurrently. Network failures per provider are silently dropped (not raised). Returns: Flat list of all collected JobPosting objects across all providers. |
| source_source_search_marketA | Search across the maximum number of job sources for maximum breadth. Fans out across all boards in the built-in Results are deduplicated, query-filtered, and sorted by date descending. |
| source_monitor_snapshotA | Take a snapshot of current job postings for a keyless provider. Writes a JSON file containing the list of current source_ids to |
| source_monitor_diffA | Detect new job postings since a previous snapshot. Fetches current postings for the provider+key and compares source_ids against
the previously saved snapshot at |
| recruiter_identifyA | Parse a user-pasted text block to identify a recruiter. Operates ONLY on the provided text — never fetches any URL. Accepts LinkedIn profile text copy-pasted by the user, email signatures, or company "team" page text. |
| recruiter_qualifyB | Score a recruiter's fit against a target job/company context. |
| recruiter_find_contactA | Find or guess a recruiter's email. If DROPCONTACT_KEY env var is set, calls Dropcontact API (CNIL-audited). Otherwise generates a pattern guess (status="guessed_unverified"). Status "verified" is ONLY set when Dropcontact confirms. |
| recruiter_draft_messageB | Draft an outreach message scaffold for a recruiter. French drafts include a mandatory RGPD opt-out line. |
| recruiter_storeA | Persist a recruiter+contact record to a local JSON store. Records are always tagged pii=true with retention_max_years=3 (CNIL). |
| network_find_warm_pathA | Find warm introduction paths to a target company. Operates ONLY on the user-provided |
| network_score_intro_valueB | Score the intro value of a NetworkPath (0–1). |
| network_draft_intro_requestA | Draft an introduction request scaffold. French drafts include a mandatory opt-out line. |
| apply_resolve_sourceB | Resolve the best apply URL and channel for a job posting. Implements the apply-at-source principle: candidates apply at the employer's own ATS, never via LinkedIn/Indeed/Glassdoor aggregator pages. No network calls are made. |
| apply_prefillA | Build a PrefillPlan by mapping resume data to common ATS form fields. Sensitive fields (password, card, SSN, IBAN, DOB) are NEVER in |
| apply_queue_addA | Add or replace a QueueItem in the batch-apply queue. If an item with the same job_id already exists it is replaced. |
| apply_queue_reviewB | Return all items in the batch-apply queue. |
| apply_queue_approveB | Approve a batch of queue items (prepared → approved). |
| apply_followupA | Draft a polite follow-up message scaffold for an application. Sending is always human-confirmed (Phase 4b). No network calls. |
| apply_actA | Preview or perform ONE browser step on an employer ATS form. SAFETY RULES enforced in code (non-negotiable):
apply-at-source: use only on employer ATS pages, never on LinkedIn/Indeed. |
| apply_cover_letterA | Build an honest cover-letter scaffold from a CV file and a job posting. HONESTY: No network calls. Deterministic. |
| apply_answer_screeningA | Answer a screening question factually from the CV, or flag needs_human. HONESTY rules (non-negotiable):
No network calls. Deterministic. |
| apply_send_approvedA | Submit ATS applications for approved queue items via the user's own Chrome. SAFETY RULES enforced in code (non-negotiable):
|
| analytics_trackC | Track (insert or update) an Application in the CRM. |
| analytics_update_stageA | Transition an Application to a new stage. Appends a history entry with timestamp (and optional note). |
| analytics_list_appsB | Return all tracked Applications, optionally filtered by stage. |
| analytics_funnelA | Compute conversion funnel statistics over a list of Applications. |
| analytics_channel_roi_toolB | Compute interview and offer rates by source_channel. |
| analytics_story_coverage_toolB | Report which competencies have at least one story and which are gaps. |
| analytics_salary_delta_toolC | Compare an offer amount to benchmark P50 and P75. |
| interview_company_briefB | Build a structured research scaffold for interview preparation. PURE — no network, no LLM. Returns a CompanyBrief with [TO_RESEARCH] placeholders and a research checklist to fill before the interview. |
| interview_story_addA | Add a STAR+E story to the local JSON story bank. Validates STAR structure (situation, task, action, result must be non-empty). Raises ValueError if validation fails. |
| interview_story_suggestB | Return stories that cover a given competency (partial/case-insensitive match). |
| interview_question_bankA | Return interview questions for a role family and kind. |
| interview_mock_evaluateA | Evaluate a mock interview answer deterministically. Checks STAR structure, quantification, I/we ratio, duration (~130 wpm), and returns a scored MockEval with feedback. |
| interview_thank_youB | Generate a post-interview thank-you message scaffold. |
| interview_debriefB | Generate a post-interview debrief Markdown template. |
| negotiate_benchmark_rangeA | Return a sourced salary benchmark for a role/seniority/region. Uses the bundled |
| negotiate_counter_offer_templateB | Build a counter-offer message scaffold (FR or EN register). |
| negotiate_total_compB | Compute annualised total compensation breakdown. |
| negotiate_competing_offer_scriptC | Generate a competing-offer negotiation script. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/Casius999/decroche-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server