Startup Jobs

Search live startup jobs from Claude, Cursor, or ChatGPT via MCP. Free, no account needed.

Should I use this

Quality & Safety

A
Description quality
100%
Schema completeness
78%
Naming quality
95%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~1,336Tokens (tool definitions)
~1.2 KBTypical response size
Moderate attention impact (1.04% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "startupjobs-mcp": {
      "url": "https://api.startup.jobs/mcp"
    }
  }
}

Remote endpoints

https://api.startup.jobs/mcpstreamable-http

What it can do

Tool inventory

Tools (8)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢search_jobs(q, role, country, workplace_type, employment_type, ...)

Search live startup job listings, newest first. Returns compact job summaries; use get_job for the full description. The free tier covers the last 14 days of listings; full access unlocks the archive and posted_before.

Input Schema

{
  "type": "object",
  "properties": {
    "q": {
      "type": "string",
      "maxLength": 200,
      "description": "Keywords matched against job titles and company names"
    },
    "role": {
      "type": "string",
      "description": "Role slug from list_roles (e.g. software-engineer)"
    },
    "country": {
      "type": "string",
      "description": "Two-letter ISO country code (e.g. US, NL)"
    },
    "workplace_type": {
      "type": "string",
      "enum": [
        "on-site",
        "remote",
        "hybrid"
      ]
    },
    "employment_type": {
      "type": "string",
      "enum": [
        "full-time",
        "part-time",
        "internship",
        "contractor"
      ]
    },
    "company": {
      "type": "string",
      "description": "Company slug, as returned by get_company or search results"
    },
    "posted_after": {
      "type": "string",
      "description": "Only jobs published after this ISO 8601 date or timestamp"
    },
    "posted_before": {
      "type": "string",
      "description": "Only jobs published before this ISO 8601 date or timestamp (full access only)"
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 50,
      "description": "Results per page (default 20)"
    },
    "cursor": {
      "type": "string",
      "description": "next_cursor value from the previous page"
    }
  },
  "required": [],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}
🟢get_job(id)

Fetch a single job listing by id, including the full description. Share the job's startup.jobs URL with the user so they can apply there.

Input Schema

{
  "type": "object",
  "properties": {
    "id": {
      "type": "integer",
      "description": "Job id from search_jobs results"
    }
  },
  "required": [
    "id"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}
🟢get_company(slug)

Fetch a company profile by slug, including its startup.jobs URL and live listing count.

Input Schema

{
  "type": "object",
  "properties": {
    "slug": {
      "type": "string",
      "description": "Company slug, as returned in job payloads"
    }
  },
  "required": [
    "slug"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}
🟢get_company_jobs(slug, limit, cursor)

List all live job listings for one company (no recency window), newest first. Returns compact summaries; use get_job for full descriptions.

Input Schema

{
  "type": "object",
  "properties": {
    "slug": {
      "type": "string",
      "description": "Company slug"
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 50,
      "description": "Results per page (default 20)"
    },
    "cursor": {
      "type": "string",
      "description": "next_cursor value from the previous page"
    }
  },
  "required": [
    "slug"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}
🟢list_roles

List the role taxonomy (title, slug, parent_slug). Use slugs as the role filter in search_jobs, job_trends, and salary_benchmarks.

Input Schema

{
  "type": "object",
  "properties": {},
  "required": [],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}
🟢list_countries

List countries with jobs (name, ISO country code). Use the codes as the country filter in search_jobs, job_trends, and salary_benchmarks.

Input Schema

{
  "type": "object",
  "properties": {},
  "required": [],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}
🟢job_trends(role, country, months)

Job posting volume trends on startup.jobs, optionally filtered by role and/or country. The free tier returns a 12-month summary with year-over-year change; full access unlocks the monthly time series (up to 36 months).

Input Schema

{
  "type": "object",
  "properties": {
    "role": {
      "type": "string",
      "description": "Role slug from list_roles (specific roles only, not top-level categories)"
    },
    "country": {
      "type": "string",
      "description": "Two-letter ISO country code"
    },
    "months": {
      "type": "integer",
      "minimum": 1,
      "maximum": 36,
      "description": "How many months of history (default 12, full access only)"
    }
  },
  "required": [],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}
🟢salary_benchmarks(role, country, company, months)

Salary benchmarks (yearly, USD) computed from startup.jobs listings that disclose compensation, optionally filtered by role and/or country. The free tier returns an aggregate over the last 12 months; full access unlocks the monthly time series and company-level benchmarks.

Input Schema

{
  "type": "object",
  "properties": {
    "role": {
      "type": "string",
      "description": "Role slug from list_roles (specific roles only, not top-level categories)"
    },
    "country": {
      "type": "string",
      "description": "Two-letter ISO country code"
    },
    "company": {
      "type": "string",
      "description": "Company slug (full access only)"
    },
    "months": {
      "type": "integer",
      "minimum": 1,
      "maximum": 36,
      "description": "How many months of history (default 12, full access only)"
    }
  },
  "required": [],
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded8 tools
verifiedversion not recorded8 tools
verifiedversion not recorded8 tools