Claude Works
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| JOBSEARCH_DATA_DIR | No | Directory holding the ledger, queue, and policy documents. Defaults to the package parent. | |
| JOBSEARCH_COMP_FLOOR | No | Base compensation floor in USD per year. | |
| JOBSEARCH_APPLY_EMAIL | No | Contact email, read at submission time only. | |
| JOBSEARCH_APPLY_PHONE | No | Contact phone, read at submission time only. | |
| JOBSEARCH_RESUMES_DIR | No | Directory holding the resume generator and render pipeline. | |
| JOBSEARCH_APPLY_LOCATION | No | Contact location, read at submission time only. | |
| JOBSEARCH_APPLY_PASSWORD | No | Portal credentials password, read from the environment only and never stored. | |
| JOBSEARCH_APPLY_USERNAME | No | Portal credentials username, read from the environment only and never stored. | |
| JOBSEARCH_PURSUE_THRESHOLD | No | The 0 to 10 score at or above which a role is pursued. |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| discover_jobsA | Find fresh roles from a discovery source, ranked by fit, de-duped by role. Args: angle: a search lens from SEARCH_ANGLES.md (e.g. "FDE", "Overemployed", "IoT") to bias ranking toward that lane. Empty = the default FDE lane. source: which live sweep to run. One of "newsource" (Getro VC networks + Anthropic-customer ATS boards, highest yield), "getro", "anthropic", or "board_harvest" (curated Ashby/Greenhouse seed miner). limit: max roles to return. Returns a list of job dicts (title, company, url, source, location, remote, ats, role_key). Network calls are made by the underlying repo scripts. |
| score_jobA | Score one role 0-10 against FIT_RUBRIC.md and return the pursue verdict. Pass the JD text when available; titles under- and over-sell, so scoring on the JD is sharper. Returns value (0-10), pursue (bool, >= threshold and no hard cap), reasons (one line per signal), and hard_cap (set when a required-skill gap, over-level title, non-US-only, or excluded domain/company disqualifies it). |
| get_search_angleA | Look up one search angle (lens) by name or trigger from SEARCH_ANGLES.md. Empty name returns the default (FDE / converting-profile) lane. Returns the angle's name, trigger phrase, definition, and target titles, or null if no angle matches. |
| list_search_anglesA | List every search angle defined in SEARCH_ANGLES.md (name, trigger, definition). |
| list_claim_fragmentsA | List the verified resume building blocks from _genlib.py (roles, bullets, projects). Every fragment traces to CLAIMS_BANK.md. Build resumes only from these names (or text that traces to the claims bank); this is what keeps the output honest. |
| build_resumeA | Build a tailored one-page resume from verified fragments and run the static gates. Args: name: output file stem (becomes ".html" in the resumes dir). tagline: the header tagline (mid-level; no over-level words). summary: the summary paragraph. experience: list of [role_key, [bullet, ...]] where role_key is one of bnb / twinspires / upwork / humana / tesla / dojo / lifespring, and each bullet is a fragment NAME (e.g. "BNB_AI") or text tracing to CLAIMS_BANK. projects: list of project fragment names (e.g. "P_CASEK") or verified HTML. skills: list of [label, text] rows for the Skills block. Returns the resume with lint_ok / verify_ok and any findings. The 1-page render gate runs separately via render_resume (it needs Chrome). |
| render_resumeA | Render .html to PDF via _render.sh and report whether it is one page. Returns the resume with one_page set and the pdf_path. Requires Google Chrome and qpdf. This is the first of the 4 gates. |
| verify_resumeA | Run the two static gates (lint + anti-fabrication verify) on a resume HTML. Use this to check any resume on disk. Returns lint_ok, verify_ok, passed (their AND), and findings: every blocklist hit (C/C++, fabricated employer, model over-claim, ...) and style flag (banned words, em dashes, rule-of-three). |
| submit_applicationA | Build the fill-and-park submission plan for a role (no browser is driven here). Returns a plan an agent executes with the Playwright MCP: the ATS, the action ("auto_submit" for Ashby/Greenhouse, "fill_and_park" for Lever/Workday/captcha walls, or "blocked" for a rail violation), the standard field values and honest screening answers, the single human_step left when parked, and ATS-specific gotcha notes. Identity PII and credentials are read from the environment, never stored. Report the real outcome afterward with record_application. |
| record_applicationA | Append one row to the application ledger (applications.json), de-duped by role. Status mirrors the existing vocabulary ("submitted", "submitted-verified", "deferred-captcha", "skipped-overlevel", ...). Date defaults to today. Returns whether it was recorded (false if this company+role is already logged) and the new total. |
| list_queueA | List roles in the discovery queue (top300_jobs.json) by queue status. Status is the queue's own field ("todo" by default). Returns up to |
| list_applicationsA | List ledger rows, optionally filtered by status. Empty status = all rows. |
| ledger_summaryA | Return a count of ledger rows by status (a one-glance system summary). |
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/andrewaws26/claude-works'
If you have feedback or need assistance with the MCP directory API, please join our Discord server