Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault

No arguments

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
setupB

Onboard the user by collecting their job search profile. Captures: name, current_role, target_roles (list), salary_floor (integer), remote_only (bool), location, dealbreakers (list), github_url, resume_path. If a profile already exists, the 'confirm_overwrite' parameter must be true to replace it.

get_profileA

Read and return the saved user profile from data/profile.json.

get_portfolioA

Fetch public GitHub repos for the user. Returns repo name, description, language, topics, last updated, homepage, and README content for each repo. Pass deep=true to also run a Haiku-powered analysis of each README, extracting stack, what it does, complexity, and notable achievements. Omit deep (or pass false) for the free metadata+README fetch. Only use deep=true when you explicitly need structured analysis and the user has authorized API spend.

get_resumeA

Read the user's resume file. Reads resume_path from the saved profile and returns the raw text content. Supports .txt, .md, and .docx files.

search_jobsA

Build an optimized job search query. Accepts a free-text query and combines it with the user's saved profile (target roles, salary floor, remote preference) to construct a search query string. Returns the query for Claude to use with web search tools. Does NOT perform the search itself.

analyze_fitA

Gather all user data needed for job fit analysis. Accepts a job description, then internally fetches the user's portfolio (GitHub repos) and resume. Returns all three together in a structured bundle so Claude can reason about the fit. Does NOT perform the analysis itself.

log_applicationB

Log a job application to the tracking database. Creates the database if it does not exist.

get_applicationsB

Return all tracked job applications, ordered by most recent first. Optionally filter by status.

save_scouted_jobA

Save a scouted job listing to the tracked scouted_jobs.json file. Validates the URL to ensure it is a DIRECT link to a specific job posting (e.g. indeed.com/viewjob?jk=..., greenhouse.io/.../jobs/...) and rejects search result page URLs (e.g. indeed.com/q-..., builtin.com/jobs/...). Also deduplicates against existing scouted jobs and applications. Returns {saved: true/false, reason: '...'} with clear feedback.

get_scouted_jobsB

Return all scouted job listings from scouted_jobs.json. Optionally filter to only unranked jobs.

mark_jobs_rankedA

Mark all unranked scouted jobs as ranked. Returns the count of jobs marked.

parse_jdA

Parse a job description into structured signal: hard requirements, nice-to-haves, responsibilities, red flags, compensation signals, role type, experience level, and domain. Uses Claude API internally. Returns structured JSON for better fit reasoning.

update_applicationB

Update an existing application by ID. Accepts any subset of fields: status, notes, follow_up_due_date, response_received, outcome. Automatically updates last_activity_date.

get_follow_upsA

Return all applications where follow_up_due_date is today or earlier and status is still applied or screening. Shows what needs attention.

get_application_patternsA

After 10+ applications, analyze the full history to find patterns: which role types get responses, which skills resonate, which red flags recur in silent roles, and recommended search adjustments. Uses Claude API internally.

add_resumeB

Add a new resume variant to the profile. Each variant targets specific role types for automatic selection during fit analysis.

list_resumesA

Return all stored resume variants with their labels and target role types.

update_profileA

Update the user's profile with new or changed fields. Accepts any subset of profile fields and merges them into the existing profile.json without requiring a full re-setup. Useful for adding unlisted_skills, updating dealbreaker_detail, or changing any field.

read_repoA

Analyzes a local code repository and extracts structural information: detected languages, tech stack (frameworks/libraries from imports), entry points, key modules (classes and functions), and architecture shape. Returns raw structured JSON for Claude to interpret — no API calls, pure local analysis using AST for Python files and regex for JS/TS. Use this to understand a candidate's project before analyzing job fit, or to supplement get_portfolio with deeper technical signal from local repos.

purge_dead_listingsA

Checks every scouted job URL for liveness and removes expired or unavailable postings from scouted_jobs.json. Detects dead listings via HTTP 404/410 status codes and known closure phrases in page content (e.g. 'no longer accepting applications'). Connection errors and 5xx responses are treated as 'keep' to avoid false positives. Pass dry_run=true to preview what would be removed without actually deleting anything.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

A3.9/5.0

Scored across 20 tools

Disambiguation5/5

Each tool serves a distinct purpose with clear boundaries: profile management, application tracking, resume handling, portfolio analysis, job scouting, and utility functions. No two tools overlap significantly; descriptions are detailed enough to prevent confusion.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern in snake_case, e.g., get_profile, search_jobs, update_application. The only slight deviation is 'setup', but it still reads as a clear action. No mixing of conventions.

Tool Count4/5

With 20 tools, the server is on the higher side of reasonable for a comprehensive job search assistant. The count covers profile, resume, portfolio, application, and scouting workflows without being excessive. Slightly over the ideal 3-15 range but still well-scoped.

Completeness4/5

The tool set covers most CRUD operations for key entities: profile, applications, scouted jobs, and resumes. Minor gaps like explicit delete operations for applications or resume variants exist, but agents can work around them using update or other means. The domain is well-covered.

Maintenance

ActivitySlowing
ResponsivenessNo issues