# AI Dev Jobs (remote · aidevboard.com)

MCP for 8,700+ current AI jobs. 13 tools: search, match, salaries, companies, commerce quotes.

- Trust score: 63/100 (medium)
- Change this week: −1
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-08-03

## Components

- remote · `aidevboard.com`: 63/100 (this document), [markdown](https://verifymcp.io/servers/com-aidevboard-jobs/aidevboard.md), [page](https://verifymcp.io/servers/com-aidevboard-jobs/aidevboard)

## Channel facts

- Endpoint: `https://aidevboard.com/mcp`
- Transports: `streamable-http`
- Auth: `none`
- Version: `1.6.2`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-08-03.

- **Endpoint Security**: 63/100
  - The endpoint's TLS certificate is valid, in date, and uses a strong key.
  - Authorisation not fully verified: no authorisation is required to call this server, and 20 tool(s) never declared a destructiveHint. The MCP spec treats an absent hint as destructive by default, so we cannot call this surface safe.
  - HTTPS is enforced; there's no plaintext access path.
  - The HSTS (Strict-Transport-Security) header is present.
  - DNSSEC check failed: this domain isn't protected by DNSSEC.
- **Transport & Reachability**: 100/100
  - Verified streamable-http transport via a live MCP handshake.
- **Schema Quality & AI Usability**: 57/100
  - AI-judged instruction clarity (good).
  - Context-footprint check failed: tool/resource definitions use about 2963 tokens (~148/item across 20 items; 20 tools + 0 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 27/100
  - Stability observed for 8 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 94/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 83% of tool parameters carry a description.
- **Capabilities**: 60/100
  - Spec-recency check failed: implements MCP spec 2025-06-18; the latest is 2026-07-28.

## Install

### Claude

```bash
claude mcp add --transport http com-aidevboard-jobs https://aidevboard.com/mcp
```

### Codex

```toml
[mcp_servers.com-aidevboard-jobs]
url = "https://aidevboard.com/mcp"
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "com-aidevboard-jobs": {
      "type": "remote",
      "url": "https://aidevboard.com/mcp",
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add com-aidevboard-jobs --url https://aidevboard.com/mcp --transport streamable-http
```

### Hermes

```yaml
mcp_servers:
  com-aidevboard-jobs:
    url: "https://aidevboard.com/mcp"
```

### Other

```json
{
  "mcpServers": {
    "com-aidevboard-jobs": {
      "type": "http",
      "url": "https://aidevboard.com/mcp"
    }
  }
}
```

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-08-03 (score 63, −2)

- [security] The server rewrote its instructions, which are the text every model session reads
- [security] Tool “list_products” rewrote its description, which is the text the model reads
- [security] Tool “match_jobs” rewrote its description, which is the text the model reads
- [security] Tool “search_jobs” rewrote its description, which is the text the model reads
- [security] Tool “start_checkout” rewrote its description, which is the text the model reads
- [functional regression] Schema quality: 116 → 148
- [functional improvement] Tool coverage: 77% → 83%
- [functional] New tool “analyze_application_readiness”
- [functional] New tool “approve_compiled_application”
- [functional] New tool “compile_job_specific_resume”
- [functional] New tool “record_my_application_outcome”
- [cosmetic] “apply_to_job” added an optional parameter “compiled_authorization_id”
- [cosmetic] “start_checkout” added an optional parameter “company”
- [cosmetic] “start_checkout” added an optional parameter “demand_category”
- [cosmetic] “start_checkout” added an optional parameter “employer_name”
- [cosmetic] “start_checkout” added an optional parameter “pilot_authority_asserted”
- [cosmetic] “start_checkout” added an optional parameter “pilot_role_reference”
- [cosmetic] “start_checkout” added an optional parameter “pilot_terms_acknowledged”
- [cosmetic] “start_checkout” added an optional parameter “source_tool”
- [cosmetic] “start_checkout” added an optional parameter “visible_job_results”
- [cosmetic] “start_checkout” added an optional parameter “work_email”
- [cosmetic] “apply_to_job” added an optional parameter “compiled_artifact_hash”
- [cosmetic] “apply_to_job” added an optional parameter “compiled_artifact_id”
- [cosmetic] “quote_product” reworded the description of “product_id”
- [cosmetic] “start_checkout” reworded the description of “buyer_email”

### 2026-08-02 (score 65, −1)

- [security] The server rewrote its instructions, which are the text every model session reads
- [security] Tool “list_products” rewrote its description, which is the text the model reads
- [security] Tool “match_jobs” rewrote its description, which is the text the model reads
- [security] Tool “search_jobs” rewrote its description, which is the text the model reads
- [security] Tool “start_checkout” rewrote its description, which is the text the model reads
- [functional regression] Schema quality: 1621 → 1864
- [functional regression] Tool coverage: 92% → 77%
- [functional] Schema quality: excellent → good
- [functional] New tool “apply_to_job”
- [functional] New tool “list_my_interview_outcomes”
- [functional] New tool “respond_to_interview_outcome”
- [cosmetic] “start_checkout” reworded the description of “payment_mode”
- [cosmetic] “start_checkout” reworded the description of “buyer_email”

### 2026-08-01 (score 66, +1)

No change was recorded against any check on this day. Stability & Change Management went from 17 to 20. That category is still filling its 30-day observation window: 5 days of observed history at the previous scan, 6 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-07-31 (score 65, +1)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-07-30 (score 64, −2)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-07-29 (score 66, +1)

No change was recorded against any check on this day. Stability & Change Management went from 7 to 10. That category is still filling its 30-day observation window: 2 days of observed history at the previous scan, 3 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-07-28 (score 65, +1)

No change was recorded against any check on this day. Stability & Change Management went from 3 to 7. That category is still filling its 30-day observation window: 1 days of observed history at the previous scan, 2 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-07-27 (score 64, 0)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

## MCP tools (20)

### `search_jobs` (~330 tokens)

Search AI/ML Jobs

Search curated AI/ML engineering roles for free. Filter by tags (e.g. llm, pytorch), workplace (remote/hybrid/onsite), global remote eligibility, experience level, salary range, or keyword. After selecting a role, candidates may use compile_job_specific_resume for a $0 transient ATS-oriented preview without identity; a verified key is required only to save an approval-bound artifact. Paid products and employer outcome fees are separate from organic results.

Input parameters:

- `company` (string): Company slug (e.g. 'openai', 'anthropic') — returns only that company's jobs
- `global_remote` (boolean): Only roles explicitly open to candidates worldwide. Ambiguous or region-restricted remote jobs are excluded.
- `job_type` (string): Employment type
- `level` (string): Experience level
- `limit` (integer): Max results (default 10, max 25)
- `location` (string): Location substring (e.g. 'San Francisco')
- `posted_within_days` (integer): Only return jobs posted within the last N days. Useful for polling agents that check for new listings — try 1 for daily, 7 for weekly.
- `query` (string): Keyword query — matches title, description, company name, and tags
- `salary_min` (integer): Minimum salary in USD. Matches if job's max salary >= this value (range overlap).
- `tags` (array): Tag filter (e.g. ['llm', 'pytorch']). Returns jobs with ANY of these tags.
- `workplace` (string): Filter by workplace type

### `get_job` (~56 tokens)

Get Job Details

Fetch full job posting by ID or slug: title, description, requirements, salary, workplace, tags, apply URL. Use after search_jobs to read a specific listing.

Input parameters:

- `id` (string, required): Job ID (UUID) or slug

### `list_companies` (~51 tokens)

List Top Hiring Companies

Returns top AI/ML companies by active role count, optionally with average salary. Useful for discovering who is hiring in AI.

Input parameters:

- `limit` (integer): Max companies (default 20, max 50)

### `get_company` (~87 tokens)

Get Company Profile

Get detailed profile for an AI company: total open roles, salary range, top tags/skills, workplace distribution, and apply URL. Use after list_companies or search_jobs to learn more about a specific employer.

Input parameters:

- `slug` (string, required): Company slug (e.g. 'anthropic', 'openai', 'deepmind'). Use the slug from search_jobs or list_companies results.

### `get_stats` (~73 tokens)

Get Index Stats

Current AI Dev Jobs index statistics: total active jobs, companies hiring, median salary, new jobs today / this week, and the top 10 trending tags across jobs posted in the last 7 days. Returns a paid market-demand pack handoff for users who want the full ranked CSV, source URLs, and decision brief.

### `match_jobs` (~192 tokens)

Match Jobs to Candidate Profile

Rank active AI/ML jobs against a candidate profile for free. Scoring combines tag overlap (+2 per match), salary overlap (+3), workplace/level/type/location matches, and description keyword hits. After selecting a role, candidates may use compile_job_specific_resume for a $0 transient ATS-oriented preview without identity; a verified key is required only to save an approval-bound artifact. Paid products and employer outcome fees are separate from these matches.

Input parameters:

- `job_type` (string)
- `level` (string)
- `limit` (integer): Max results (default 10)
- `location` (string): Location substring (e.g. 'San Francisco')
- `salary_max` (integer): Maximum salary USD
- `salary_min` (integer): Minimum salary USD
- `skills` (array, required): Candidate skills/tags (e.g. ['python','llm','pytorch'])
- `workplace` (string)

### `get_salary_data` (~129 tokens)

Get Salary Benchmarks

Salary benchmarks for AI/ML roles. Filter by tag (e.g. 'llm', 'pytorch'), experience level, workplace type, or company. Returns average, median, p25, p75, min, max, and sample count. Useful for compensation research and negotiation.

Input parameters:

- `company` (string): Company slug (e.g. 'anthropic', 'openai')
- `level` (string): Experience level
- `tag` (string): Filter by tag (e.g. 'llm', 'pytorch', 'agents')
- `workplace` (string): Workplace type

### `get_similar_jobs` (~104 tokens)

Get Similar Jobs

Given a job ID or slug, return active jobs that match on tag overlap, same workplace, level, and job type. Ranked by similarity score (tag overlap weighted 3x). Use after search_jobs to surface nearby roles — matches the /jobs/{id}/similar REST endpoint.

Input parameters:

- `id` (string, required): Job ID (UUID) or slug — same identifier get_job accepts
- `limit` (integer): Max results (default 5, max 20)

### `get_trending_companies` (~106 tokens)

Get Trending Companies

Companies posting the most AI/ML jobs in the last N days. Complements get_stats trending_tags_7d — while that answers 'what skills are trending', this answers 'who's hiring most aggressively'. Returns company name/slug/logo plus the count of new jobs in the window.

Input parameters:

- `days` (integer): Look-back window in days (default 7, max 30)
- `limit` (integer): Max results (default 10, max 25)

### `list_tags` (~36 tokens)

List Available Tags

Returns all available job tags/skills with the count of active jobs for each. Use to discover what tags are available for search_jobs filtering.

### `analyze_application_readiness` (~135 tokens)

Analyze Application Readiness

Analyze candidate-verified evidence against one active job for $0 without requiring identity. The transient response reports covered and unsupported public job signals without an acceptance probability, does not persist candidate evidence, does not submit an application, and rejects hidden screening-model instructions.

Input parameters:

- `candidate_skills` (array): Candidate-declared skills used to identify relevant public job language. Only verified evidence counts as coverage.
- `evidence_bullets` (array): Candidate-owned factual evidence. Raw text is processed transiently and is not retained in MCP analytics.
- `job_id` (string, required): Active job UUID or slug returned by search_jobs or get_job.

### `compile_job_specific_resume` (~165 tokens)

Compile a Job-Specific Resume Draft

Compile a $0 candidate-controlled ATS-oriented plain-text Markdown resume for one active job using only candidate-verified evidence. Without identity, returns a transient non-persisted preview that cannot be approved or submitted. With a verified candidate key, saves an immutable draft hash plus a machine-readable candidate_review handoff and requires the agent to pause for explicit human review. Never submits or authorizes an application.

Input parameters:

- `candidate_skills` (array): Candidate-declared skills. The draft lists a skill as evidence-backed only when verified evidence supports it.
- `evidence_bullets` (array, required): Candidate-owned factual evidence. Raw text is processed transiently and is not retained in MCP analytics.
- `job_id` (string, required): Active job UUID or slug returned by search_jobs or get_job.

### `approve_compiled_application` (~119 tokens)

Approve an Exact Compiled Application

Create a short-lived, single-use authorization for one email-verified candidate, one exact compiled artifact hash, and one unchanged active job. Requires principal_authorized=true, costs the candidate $0, and does not submit an application.

Input parameters:

- `artifact_hash` (string, required): Exact SHA-256 artifact hash returned by compile_job_specific_resume.
- `artifact_id` (string, required): Private artifact ID returned by compile_job_specific_resume.
- `principal_authorized` (boolean, required): True only after the named candidate reviews and authorizes this exact artifact for its exact job.

### `apply_to_job` (~251 tokens)

Submit a Confirmed Job Application

Submit an application from an email-verified candidate identity only after the human principal explicitly authorizes it. Requires an API key and principal_authorized=true. Candidates and agents are never charged.

Input parameters:

- `compiled_artifact_hash` (string): Exact SHA-256 hash of the candidate-approved compiled artifact.
- `compiled_artifact_id` (string): Optional private artifact ID. If supplied, compiled_artifact_hash and compiled_authorization_id are also required and supplemental resume fields are rejected.
- `compiled_authorization_id` (string): Short-lived single-use authorization returned by approve_compiled_application.
- `cover_letter` (string)
- `email` (string): Candidate email. Defaults to the authenticated developer profile.
- `experience_years` (integer)
- `github_url` (string)
- `job_id` (string, required): Active job UUID returned by search_jobs or get_job.
- `linkedin_url` (string)
- `name` (string): Candidate name. Defaults to the authenticated developer profile.
- `portfolio_url` (string)
- `principal_authorized` (boolean, required): True only after the named candidate explicitly authorizes this exact application.
- `resume_url` (string)
- `skills` (array)

### `record_my_application_outcome` (~97 tokens)

Record My Screening Progress

Record one email-verified candidate's explicitly authorized, fixed-taxonomy application outcome for $0. The receipt is candidate-reported, not employer-verified, creates no acceptance-rate claim, and never changes organic ranking.

Input parameters:

- `application_id` (string, required): Application ID returned by apply_to_job.
- `outcome` (string, required)
- `principal_authorized` (boolean, required): True only after the named candidate authorizes this exact self-report.

### `list_my_interview_outcomes` (~35 tokens)

List My Interview Confirmations

List employer-reported interview outcomes for applications submitted with the authenticated developer API key. No candidate fee is ever created.

### `respond_to_interview_outcome` (~86 tokens)

Confirm or Dispute an Interview Outcome

Record the authenticated candidate's independent response to an employer-reported interview. Requires explicit principal authorization. Confirmation can make a fixed employer fee billable; candidates and agents pay $0.

Input parameters:

- `candidate_confirms_interview` (boolean, required)
- `outcome_id` (string, required)
- `principal_authorized` (boolean, required): True only after the candidate authorizes this attestation.

### `list_products` (~91 tokens)

List Paid Products

Returns current agent-readable sellable products for AI Dev Board, including the employer-funded Verified Interview Pilot, clearly labeled listing sponsorships, the AI Market Demand Pack, Dossier packages, and unavailable waitlist products. Candidate and agent discovery stays free; paid treatments never change organic ranking. Retired data-pack aliases resolve to the Market Demand Pack and are not listed as separate offers. Use before quote_product or start_checkout.

### `quote_product` (~152 tokens)

Quote Product

Returns a deterministic quote for an AI Dev Board product, including amount in cents, currency, supported payment mode, and checkout requirements. Accepts product_id or dossier sku.

Input parameters:

- `product_id` (string): Active product ID from list_products, e.g. aidevboard_verified_interview_pilot, aidevboard_promote_listing, aidevboard_ai_skills_demand_pack, or aidevboard_dossier_baseline. Retired data-pack IDs res…
- `sku` (string): Dossier SKU alias: baseline, pitch, or pitch10.
- `tier` (string): Legacy alias. tier=promote maps to aidevboard_promote_listing.

### `start_checkout` (~460 tokens)

Start Checkout

Returns the correct non-charging handoff for a product. For the Verified Interview Pilot it returns an owner-review request template but creates no request, program, candidate action, invoice, or charge. For the AI Market Demand Pack, anonymous agents receive a human review URL; a direct agentic Stripe session requires buyer_email. For Dossier it returns the authenticated checkout URL.

Input parameters:

- `buyer_email` (string): Required by POST /api/v1/checkout for sponsored listing highlights and direct agentic AI Market Demand Pack Stripe sessions. Without it, the Market Demand Pack returns a side-effect-free human review…
- `company` (string): Verified Interview Pilot employer company.
- `demand_category` (string): Optional fixed demand category copied from provider_market_signal checkout.arguments; raw queries are not accepted.
- `employer_name` (string): Verified Interview Pilot employer contact name. Included only in the returned review-request template; this MCP call does not submit it.
- `job_id` (string): Required for aidevboard_promote_listing.
- `payment_mode` (string): Payment mode. stripe_checkout is the default; stripe_spt is supported for sponsored-highlight checkout when the HTTP caller supplies shared_payment_granted_token to /api/v1/checkout.
- `pilot_authority_asserted` (boolean): True only after the principal explicitly authorizes requesting owner review for this exact employer and role.
- `pilot_role_reference` (string): Public job URL, requisition ID, or exact role reference for the pilot.
- `pilot_terms_acknowledged` (boolean): True only after the employer principal acknowledges the canonical 30-day, $99-per-mutually-confirmed-interview, three-interview/$297-cap terms.
- `product_id` (string): Product ID from list_products.
- `sku` (string): Dossier SKU alias: baseline, pitch, or pitch10.
- `source_tool` (string): Optional fixed source from a provider_market_signal checkout.arguments object. Used only to preserve search or match attribution.
- `visible_job_results` (integer): Optional bounded visible-result count copied from provider_market_signal checkout.arguments.
- `work_email` (string): Verified Interview Pilot work email. Included only in the returned review-request template; this MCP call does not submit it.

## Diagnostics

Captured diagnostic sections: TLS, DNSSEC, Authorisation, Transports. The full working is on the page: https://verifymcp.io/servers/com-aidevboard-jobs/aidevboard#diagnostics

## Score history

- 2026-08-03: 63
- 2026-08-02: 65
- 2026-08-01: 66
- 2026-07-31: 65
- 2026-07-30: 64
- 2026-07-29: 66
- 2026-07-28: 65
- 2026-07-27: 64
- 2026-07-26: 64

## Links

- Remote endpoint: https://aidevboard.com/mcp
- Website: https://aidevboard.com/
- Changelog RSS feed: https://verifymcp.io/servers/com-aidevboard-jobs/aidevboard/changelog.xml
- Changelog JSON feed: https://verifymcp.io/servers/com-aidevboard-jobs/aidevboard/changelog.json
- HTML version of this page: https://verifymcp.io/servers/com-aidevboard-jobs/aidevboard
