Skip to main content
Glama

careerpulse

CareerPulse: Global career intelligence API serving the world's 3.5 billion workers. 10 endpoints: salary benchmarking (any role + any country, sourced from BLS, OECD, ILO, Glassdoor, Levels.fyi), industry outlook

Coverage: Global

Endpoints: • salary ($0.10): Salary benchmarking — any role, any country, any experience level • outlook ($0.08): Industry job market outlook — growth, hiring trends, top employers by country • skills-gap ($0.10): Skills gap analysis — exact skills needed to reach your target role • resume ($0.10): ATS-optimized resume intelligence — keywords, format, and recruiter intel by role • negotiate ($0.10): Salary negotiation playbook — counter-offer strategy and exact scripts • transition ($0.10): Career transition roadmap — transferable skills analysis and step-by-step pivot plan • remote ($0.08): Remote work intelligence — best remote roles, companies, and cross-border setup • certify ($0.08): Certification roadmap — highest-ROI certs in order, with study resources • interview ($0.10): Interview preparation — questions, frameworks, and company research intel • layoff ($0.08): Layoff support — severance review, legal rights, benefits continuation, next steps • resume-critique ($0.25): Real resume critique — submit actual resume text for personalized feedback • wage-rights ($0.05): Wage-Recovery Check (overtime, min wage, final pay, UK deductions) • wage-letter ($2.00): Citation-Locked Wage Demand Letter • letter-preview ($0.25): Wage Demand Letter Preview (agent tier)

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
toNoto
ageNouk_deduction: age (NMW band)
yoeNoYears of experience
fromNofrom
langNoBCP-47 language code — response in any language
roleNorole
checkNoWhich check
hoursNomin_wage: hours in the period
offerNoOffer amount in local currency
stateNofinal_pay: CA/NY/TX/FL/IL/WA/MA/CO
titleNotitle
weeksNoovertime: affected weeks
actionYesWhich endpoint to call. Options: salary | outlook | skills-gap | resume | negotiate | transition | remote | certify | interview | layoff | resume-critique | wage-rights | wage-letter | letter-preview
amountNouk_deduction: amount deducted
sectorNosector
targetNotarget
tenureNoYears at company — affects severance expectations and legal entitlements
companyNocompany
countryNoCountry for localized outlook — defaults to global
currentNocurrent
industryNoindustry
last_dayNofinal_pay: last day worked
locationNoCity, region, or country — global coverage
timelineNoDesired transition timeline — e.g. 6 months, 1 year
paid_rateNomin_wage/uk: rate actually paid
seniorityNoseniority
work_dateNomin_wage: date (effective-dated rate selection)
daily_wageNofinal_pay CA: daily wage (waiting-time math)
period_endNoovertime: last affected week (limitation math)
separationNofinal_pay
amount_owedNofinal_pay: unpaid wages
hourly_rateNoovertime: hourly rate
resume_textNoGET fallback for simple agents that cannot send a POST body — POST JSON body is preferred
target_roleNotarget_role
worker_nameNoYour name (placeholder if omitted)
jurisdictionNoovertime/min_wage: US state, US, or CA-ON
weekly_hoursNoovertime: hours/week
current_certsNoComma-separated existing certifications
employer_nameNoEmployer for the letter
deduction_dateNouk_deduction: (last) deduction date
target_countryNotarget_country
daily_hours_maxNoovertime: longest day (daily-OT rules)

Schema Changelog

Changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. Changed2 schema fields changed
    • changedInput schema / properties / action / description
      Previous value: -"Which endpoint to call. Options: salary | outlook | skills-gap | resume | negotiate | transition | remote | certify | interview | layoff | resume-critique | wage-rights | wage-letter"New value: +"Which endpoint to call. Options: salary | outlook | skills-gap | resume | negotiate | transition | remote | certify | interview | layoff | resume-critique | wage-rights | wage-letter | letter-preview"
    • changedInput schema / properties / action / enum
      Previous value: -[
      -  "salary",
      -  "outlook",
      -  "skills-gap",
      -  "resume",
      -  "negotiate",
      -  "transition",
      -  "remote",
      -  "certify",
      -  "interview",
      -  "layoff",
      -  "resume-critique",
      -  "wage-rights",
      -  "wage-letter"
      -]New value: +[
      +  "salary",
      +  "outlook",
      +  "skills-gap",
      +  "resume",
      +  "negotiate",
      +  "transition",
      +  "remote",
      +  "certify",
      +  "interview",
      +  "layoff",
      +  "resume-critique",
      +  "wage-rights",
      +  "wage-letter",
      +  "letter-preview"
      +]
  2. Changed19 schema fields changed
    • changedInput schema / properties / action / description
      Previous value: -"Which endpoint to call. Options: salary | outlook | skills-gap | resume | negotiate | transition | remote | certify | interview | layoff | resume-critique | wage_rights | wage_letter"New value: +"Which endpoint to call. Options: salary | outlook | skills-gap | resume | negotiate | transition | remote | certify | interview | layoff | resume-critique | wage-rights | wage-letter"
    • changedInput schema / properties / action / enum
      Previous value: -[
      -  "salary",
      -  "outlook",
      -  "skills-gap",
      -  "resume",
      -  "negotiate",
      -  "transition",
      -  "remote",
      -  "certify",
      -  "interview",
      -  "layoff",
      -  "resume-critique",
      -  "wage_rights",
      -  "wage_letter"
      -]New value: +[
      +  "salary",
      +  "outlook",
      +  "skills-gap",
      +  "resume",
      +  "negotiate",
      +  "transition",
      +  "remote",
      +  "certify",
      +  "interview",
      +  "layoff",
      +  "resume-critique",
      +  "wage-rights",
      +  "wage-letter"
      +]
    • addedInput schema / properties / age
      Added value: +{
      +  "description": "uk_deduction: age (NMW band)",
      +  "type": "string"
      +}
    • addedInput schema / properties / amount
      Added value: +{
      +  "description": "uk_deduction: amount deducted",
      +  "type": "string"
      +}
    • changedInput schema / properties / check / description
      Previous value: -"overtime | min_wage | final_pay | uk_deduction"New value: +"Which check"
    • addedInput schema / properties / daily_hours_max
      Added value: +{
      +  "description": "overtime: longest day (daily-OT rules)",
      +  "type": "string"
      +}
    • addedInput schema / properties / daily_wage
      Added value: +{
      +  "description": "final_pay CA: daily wage (waiting-time math)",
      +  "type": "string"
      +}
    • addedInput schema / properties / deduction_date
      Added value: +{
      +  "description": "uk_deduction: (last) deduction date",
      +  "type": "string"
      +}
    • addedInput schema / properties / hours
      Added value: +{
      +  "description": "min_wage: hours in the period",
      +  "type": "string"
      +}
    • changedInput schema / properties / jurisdiction / description
      Previous value: -"US state / US / CA-ON"New value: +"overtime/min_wage: US state, US, or CA-ON"
    • addedInput schema / properties / last_day
      Added value: +{
      +  "description": "final_pay: last day worked",
      +  "type": "string"
      +}
    • addedInput schema / properties / paid_rate
      Added value: +{
      +  "description": "min_wage/uk: rate actually paid",
      +  "type": "string"
      +}
    • addedInput schema / properties / period_end
      Added value: +{
      +  "description": "overtime: last affected week (limitation math)",
      +  "type": "string"
      +}
    • addedInput schema / properties / separation
      Added value: +{
      +  "description": "final_pay",
      +  "type": "string"
      +}
    • changedInput schema / properties / state / description
      Previous value: -"final_pay: CA|NY|TX|FL|IL|WA|MA|CO"New value: +"final_pay: CA/NY/TX/FL/IL/WA/MA/CO"
    • changedInput schema / properties / weekly_hours / description
      Previous value: -"overtime: hours per week"New value: +"overtime: hours/week"
    • addedInput schema / properties / weeks
      Added value: +{
      +  "description": "overtime: affected weeks",
      +  "type": "string"
      +}
    • addedInput schema / properties / work_date
      Added value: +{
      +  "description": "min_wage: date (effective-dated rate selection)",
      +  "type": "string"
      +}
    • changedInput schema / properties / worker_name / description
      Previous value: -"Worker name (placeholder if omitted)"New value: +"Your name (placeholder if omitted)"
  3. Changed10 schema fields changed
    • changedInput schema / properties / action / description
      Previous value: -"Which endpoint to call. Options: salary | outlook | skills-gap | resume | negotiate | transition | remote | certify | interview | layoff | resume-critique"New value: +"Which endpoint to call. Options: salary | outlook | skills-gap | resume | negotiate | transition | remote | certify | interview | layoff | resume-critique | wage_rights | wage_letter"
    • changedInput schema / properties / action / enum
      Previous value: -[
      -  "salary",
      -  "outlook",
      -  "skills-gap",
      -  "resume",
      -  "negotiate",
      -  "transition",
      -  "remote",
      -  "certify",
      -  "interview",
      -  "layoff",
      -  "resume-critique"
      -]New value: +[
      +  "salary",
      +  "outlook",
      +  "skills-gap",
      +  "resume",
      +  "negotiate",
      +  "transition",
      +  "remote",
      +  "certify",
      +  "interview",
      +  "layoff",
      +  "resume-critique",
      +  "wage_rights",
      +  "wage_letter"
      +]
    • addedInput schema / properties / amount_owed
      Added value: +{
      +  "description": "final_pay: unpaid wages",
      +  "type": "string"
      +}
    • addedInput schema / properties / check
      Added value: +{
      +  "description": "overtime | min_wage | final_pay | uk_deduction",
      +  "type": "string"
      +}
    • addedInput schema / properties / employer_name
      Added value: +{
      +  "description": "Employer for the letter",
      +  "type": "string"
      +}
    • addedInput schema / properties / hourly_rate
      Added value: +{
      +  "description": "overtime: hourly rate",
      +  "type": "string"
      +}
    • addedInput schema / properties / jurisdiction
      Added value: +{
      +  "description": "US state / US / CA-ON",
      +  "type": "string"
      +}
    • addedInput schema / properties / state
      Added value: +{
      +  "description": "final_pay: CA|NY|TX|FL|IL|WA|MA|CO",
      +  "type": "string"
      +}
    • addedInput schema / properties / weekly_hours
      Added value: +{
      +  "description": "overtime: hours per week",
      +  "type": "string"
      +}
    • addedInput schema / properties / worker_name
      Added value: +{
      +  "description": "Worker name (placeholder if omitted)",
      +  "type": "string"
      +}
  4. First observed

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden. It discloses pricing, data sources, and global coverage, but omits auth requirements, rate limits, return format, or any limitations. The mismatch between '10 endpoints' and the 14 listed further undermines transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a long marketing-style blurb with a misleading '10 endpoints' claim and a redundant 14-item bullet list. It includes fluff like 'serving the world's 3.5 billion workers' and costs, while the structure fails to present a coherent overview.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite the endpoint list, the description does not map the 42 parameters to specific actions, explain request/response expectations, or cover operational details like POST body vs GET fallback (only in schema). With no output schema and no annotations, this is under-specified for a multi-endpoint tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so baseline is 3. The endpoint list adds context for the action parameter but does not clarify the other 41 parameters, many of which have only tautological schema descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly identifies CareerPulse as a global career intelligence API with a specific list of endpoints (salary benchmarking, outlook, resume, etc.), which distinguishes it from sibling pulse tools. However, it incorrectly claims '10 endpoints' while listing 14, and the opening is somewhat muddled.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The endpoint summaries imply usage for career-related queries (e.g., salary, resume, layoff), but there is no explicit when/when-not guidance or comparison to alternative tools. The action enum provides some selection context, but the description does not explain when CareerPulse should be chosen over sibling tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

TDQS

B3.2/5.0
Disambiguation4/5

Each tool has a unique domain prefix (e.g., airdroppulse, alphapulse, arbipulse) making them mostly distinguishable at a glance. A few adjacent verticals like careerpulse vs talentpulse or marketpulse vs dealpulse have overlapping themes, but their descriptions clarify the distinct focus. The utility tools (catalog_search, discover, get_openapi_spec, x402_troubleshoot) are also clearly distinct in role. However, the sheer number of similar 'pulse' names could still cause misselection without reading descriptions.

Naming Consistency4/5

The dominant naming convention is `<domain>pulse` (e.g., climatepulse, cryptopulse, edupulse), which is highly consistent and predictable. Exceptions like catalog_search, discover, get_openapi_spec, x402_troubleshoot, and stateedge break the pattern, but these are few and serve obvious utility purposes. Overall, the convention is clear and easily learnable.

Tool Count2/5

With 80 tools, the server presents an extremely large and potentially overwhelming surface. While each tool represents a distinct intelligence vertical and navigation aids exist (catalog_search, discover, get_openapi_spec), the count far exceeds the typical 3-15 range for coherent agent use and even the 'heavy' 16-25 range. The burden of selecting the correct vertical from 80 options is significant, despite clear naming.

Completeness5/5

The server offers an exceptionally broad and deep coverage of domains, from finance and health to agriculture and gaming. Each vertical includes multiple endpoints that address core operations for its domain, such as search, analysis, comparisons, deterministic checks, and even action-oriented tools like letter generators and physical mail. The presence of free discovery and troubleshooting tools fills potential gaps, leaving no obvious dead ends in the overall tool surface.