getonbrd-mcp
getonbrd-mcp
Get on Board 공개 API용 MCP 서버 — Claude Code, Claude Desktop, Cursor 또는 모든 Model Context Protocol 클라이언트에서 LATAM 기술 일자리를 검색할 수 있습니다.
Get on Board는 라틴아메리카와 스페인의 대표적인 기술 채용 플랫폼입니다. 공개 API는 검색에 인증이 필요 없는 API이며, 이 서버는 그 API를 AI 에이전트가 직접 호출할 수 있는 다섯 개의 타입 도구로 변환합니다. 따라서 에이전트는 어떤 페이지 하나도 스크레이핑하지 않고 구인 공고(급여 밴드, 원격 근무 방식과 지역, 국가, 지원자 수, 전체 설명)를 선별할 수 있습니다.
실제로 구동되는 시스템을 바탕으로 탄생했습니다. 매일 공고를 발굴(source)하고, 점수를 매기고(scoring), 지원하는 에이전트형 구직 파이프라인을 운영 중이며, 이 서버는 그 파이프라인이 Get on Board에서 공고를 가져오는 소싱 계층입니다.
도구
도구 | 인증 | 기능 |
| 없음 | 전체 텍스트 검색. 결과에 전문(全文) 설명이 포함되어 있어 추가 호출 없이 선별하기에 충분합니다. |
| 없음 | 한 카테고리( |
| 없음 | 한 회사의 slug로 채용 중인 공고를 검색합니다. |
| 없음 |
|
|
| id 하나로 채용 공고 하나를 조회합니다. 선택 사항 – 검색 결과에 이미 상세 설명이 포함되어 있습니다. |
모든 공고는 HTML을 제거한 압축 형식으로 반환됩니다: id, 제목, 카테고리, 원격 근무 방식과 지역, 국가, 급여 밴드(공개된 경우), 게시일, 지원자 수, 공개 URL, 그리고 설명(기본 400자 미리보기, full: true를 지정하면 직무 내용, 우대 역량, 복지 혜택을 포함한 전체 내용)입니다.
Related MCP server: TokenJobs Scout MCP
설치
git clone https://github.com/JRM-Global/getonbrd-mcp
cd getonbrd-mcp
npm install
npm run buildClaude Code
claude mcp add getonbrd -- node /path/to/getonbrd-mcp/dist/index.jsClaude Desktop 또는 기타 MCP 클라이언트
{
"mcpServers": {
"getonbrd": {
"command": "node",
"args": ["/path/to/getonbrd-mcp/dist/index.js"]
}
}
}get_job을 활성화하려면 getonbrd.com/api에서 받은 토큰을 가진 환경 변수를 추가하세요:
"env": { "GETONBRD_API_TOKEN": "..." }예
"LATAM에서 Claude Code 또는 AI 에이전트를 언급하는 원격 TypeScript 일자리를 찾고, 이번 달에 게시된 이력을 내 프로필에 얼마나 맞는지에 따라 순위를 매겨 줘."
이 서버를 가진 에이전트는 search_jobs를 몇 번 호출해 결과의 설명을 읽을 뿐, 브라우저를 건드리지 않습니다.
참고 사항
Get on Board API의 문서는 getonbrd.com/api에서 확인할 수 있습니다. 이 프로젝트는 Get on Board에 대한 제휴의.
급여 밴드는 기업이 공개한 경우에만 반환됩니다.
published_at은YYYY-MM-DD로 정규화하며,applications_count는 경쟁 강도를 판단하는 유용한 지표입니다.
라이선스
MIT
ES · Get 공개 API용 MCP 서버 — Get on Board
Get on Board의 공개 API(라틴아메리카와 스페인의 대표적인 기술 채용 플랫폼)를 AI 에이전트가 사영할 수 있는 다섯 가지 5타입 도구로 변환합니다: 전체 설명이 포함된 전체 텍스트 검색, 카테고리 및 회사별 채용 공고, 선택적 토큰을 위한 상세 조회. 실제로 실행되는 에이전트 구직 시스템에서 차용한 서버로, 이 서버가 바로 그 소싱 계층입니다.
Available Tools
5 toolsget_jobGet job detailA
Fetch one job by id (the slug in its URL). Requires GETONBRD_API_TOKEN — without it the API returns 401; prefer search_jobs, whose results already include descriptions.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Job id/slug, e.g. "ux-engineer-senior-admoai-santiago-4b10" |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the disclosure burden. It clearly states the auth requirement and the 401 failure case, and implies the returned content may lack descriptions by recommending search_jobs for that. It could go further by explicitly stating whether descriptions are missing, but for a simple fetch-by-id tool this is reasonably transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description fits useful guidance into one compact sentence, front-loading the core purpose before addressing authentication and the alternative. Every clause earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description explains what the tool does, how to authenticate, and which sibling to prefer. It is complete enough for a low-complexity one-parameter fetch, though there is no output schema and the description does not explicitly state the job content/detail fields returned.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema covers the parameter with an example, and the description adds critical extra meaning: the id is the slug from the job's URL. This teaches the agent what kind of value to pass, going beyond the raw schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Fetch one job by id (the slug in its URL).' It also distinguishes itself from the sibling search_jobs by noting that search_jobs already includes descriptions, which clarifies why an agent might choose one over the other.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit usage context: use this tool to fetch a single job by its slug, and prefer search_jobs when descriptions are needed. It also warns about the required GETONBRD_API_TOKEN and the 401 result without it, giving the agent concrete conditions for invocation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
jobs_by_categoryJobs by categoryA
List open jobs in one category. Use list_categories for valid ids (e.g. "programming", "machine-learning-ai", "sysadmin-devops-qa").
| Name | Required | Description | Default |
|---|---|---|---|
| full | No | true = full job descriptions (functions, desirable, benefits); false = 400-char preview | |
| page | No | Page number (1-based) | |
| category | Yes | Category id, e.g. "programming" | |
| per_page | No | Results per page (max 100) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations were provided, so the description carries the burden. It clarifies 'open jobs' and the grouped by category behavior, but it doesn't mention pagination, full vs preview content, or whether it returns any global metadata. The schema partially covers these, so the description could add more context without contradicting anything.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Condensed and front-loaded. The first sentence defines the core purpose, the second provides actionable parameter guidance with examples. Every word earns its place; no fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The schema covers parameter details and defaults, and the description adds the missing conceptual context (category ID source). Since this is a list operation without complex mutation or side effects, the description plus schema provide sufficient for correct invocation. Sibling tool names give extra orientation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already describes all four parameters, so the baseline is 3. The description adds value by giving concrete example category IDs and explicitly mentioning that category must be a valid ID, making it easier for an agent to construct correct calls.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description states a specific verb (List), resource (open jobs), and constraint (in one category). It also provides concrete category ID examples, distinguishing it from get_job (single job) and list_categories (category metadata).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly tells the agent to use list_categories to get valid IDs, which is a direct usage guidance for a prerequisite. It doesn't explicitly contrast with get_job, but the 'in one category' phrasing makes the scope clear enough.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
jobs_by_companyJobs by companyA
List open jobs published by one company. The company id is its slug on getonbrd.com, e.g. "2brains" for getonbrd.com/companies/2brains.
| Name | Required | Description | Default |
|---|---|---|---|
| full | No | true = full job descriptions (functions, desirable, benefits); false = 400-char preview | |
| page | No | Page number (1-based) | |
| company | Yes | Company slug | |
| per_page | No | Results per page (max 100) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry behavioral context. It correctly states the tool returns open jobs and that the company identifier is a slug, but it does not describe response format, pagination behavior, or any other operational traits. For a simple read-only list style tool this is adequate but not richly transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short, well structured, and every sentence carries meaning. The core behavior is stated first, followed by the essential slug guidance, with no filler or repetition of schema details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list-by-company tool with full schema parameter documentation and no output schema, the description provides enough context for an agent to select and invoke it. It could be more complete with explicit sibling differentiation or a note about return content, but the current level is sufficient for the tool's low complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all four parameters. The description adds extra value by explaining what the company value actually is: a slug, with a concrete example ('2brains' for getonbrd.com/companies/2brains).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the action ('List open jobs') and the resource scope ('published by one company'), so an agent understands what the tool does. It does not explicitly name sibling tools, but the company-specific framing distinguishes it from the broader search and category tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the right usage scenario: use it when jobs for a specific company are needed, using the company slug. However, it does not explicitly contrast it with search_jobs or jobs_by_category, or state when those alternatives should be preferred.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_categoriesList categoriesA
List all job categories with their ids (paginated; there are ~6 pages by default page size).
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | ||
| per_page | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral disclosure burden. It does disclose the paginated nature and rough default page count, which is useful, but it does not mention response shape, ordering, error behavior, or whether the operation has any side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The entire description is one efficient sentence that front-loads the core purpose and adds the key limitation inline. Every word contributes and there is no filler or repetition of the title.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple paginated list operation with only two self-explanatory pagination parameters and no output schema, the description is reasonably complete. It gives the main purpose, the payload clue (IDs), and the pagination behavior. It only lacks minor detail about the exact response envelope and potential edge cases.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It adds meaning by explaining pagination and the approximate number of pages, indicating that page and per_page control a bounded paged listing, but it does not clarify how pages are indexed, when pagination should be used, or what each category object contains.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists all job categories and includes their IDs, which is a specific verb+resource combination. It does not explicitly distinguish itself from the sibling job-search tools, though the category focus makes the distinction reasonably clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The pagination notice implies the agent should expect paged results and likely needs to iterate pages to get all categories, but there is no explicit guidance about when to choose this over sibling tools or how it supports jobs_by_category. Usage context is implied rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_jobsSearch jobsA
Full-text search over Get on Board job listings (LATAM tech jobs). Returns compact job objects with salary band, remote modality, countries and application count. Search results include the job description, so no extra call is needed to triage.
| Name | Required | Description | Default |
|---|---|---|---|
| full | No | true = full job descriptions (functions, desirable, benefits); false = 400-char preview | |
| page | No | Page number (1-based) | |
| query | Yes | Search term, e.g. "typescript", "react remote", "machine learning" | |
| per_page | No | Results per page (max 100) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. It discloses that results are compact objects containing salary band, remote modality, countries, application count, and the job description itself, so no extra call is needed for triage. This provides meaningful behavioral context beyond simply stating it's a search.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no fluff. The first sentence front-loads the core purpose and scope; the second adds valuable info about return content and triage efficiency. Every phrase earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a search tool with no output schema, the description covers the essential output fields and the presence of the description for triage. It doesn't clarify the interaction between the `full` parameter and the description inclusion, but given the schema documents that parameter, this is a minor gap. Overall, enough context is provided for an agent to use it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so each parameter (query, full, page, per_page) is already documented with examples and defaults. The description adds no parameter-specific semantics; it only reinforces the overall behavior. Baseline of 3 applies because the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Full-text search over Get on Board job listings' with a clear domain (LATAM tech jobs). It distinguishes itself from siblings like jobs_by_category and jobs_by_company by emphasizing full-text search across all listings, not a filtered browse.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage as a general full-text search tool but does not explicitly say when to prefer it over siblings or when not to use it. It mentions 'no extra call is needed to triage,' hinting at an advantage over get_job, but it lacks direct comparisons or exclusion criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
5 tool updates
v0.1.0- First observed
get_job - First observed
jobs_by_category - First observed
jobs_by_company - First observed
list_categories - First observed
search_jobs
TDQS
Scored across 5 tools
Each tool targets a clear dimension: full-text search, category browsing, company browsing, category metadata, and single-job lookup. search_jobs and get_job overlap somewhat because search results already include descriptions and get_job requires a token, but the distinct id-based lookup purpose remains identifiable.
Names mix verb-led patterns like search_jobs, list_categories, and get_job with noun-preposition patterns like jobs_by_category and jobs_by_company. The naming is readable and consistently lowercase snake_case, but the two conventions are not fully uniform.
Five tools is well-scoped for a job-board MCP server. Each tool maps to a distinct operation needed for job discovery and retrieval, with no obvious bloat or redundancy.
Core job discovery is covered: full-text search, category browsing, company browsing, category listing, and individual job details. A minor gap is the lack of a company listing endpoint to discover company slugs, but agents can work around it with jobs_by_company when slugs are known.
Maintenance
Related MCP Connectors
Job platform for AI agents. Track tech jobs from companies that match your stack.
Manage job applications — jobs, companies, boards, notes, and profile — from your AI client.
Search AI-native jobs, inspect application forms, and fetch free interview-prep resources.
Search job postings across Indeed, LinkedIn, and more from one request - titles, companies
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceEnables AI agents to search remote job listings, read full descriptions and structured metadata, compare roles, and retrieve original application links when the account's subscription and scopes allow.MIT
- AlicenseNot gradedqualityCmaintenanceEnables any MCP host to search and retrieve job listings from a public jobs board via the search_jobs and get_job tools, returning structured results such as title, company, location, remote status, and apply/source URLs.MIT
- AlicenseNot gradedqualityCmaintenanceEnables agents to search and retrieve job postings from landing.jobs through public API/RSS data, exposing search_jobs and get_job tools with keyword, location, remote, date, and limit filters. Returns structured job details such as title, company, location, apply URL, published date, snippet, salary, remote status, and source.MIT
- AlicenseNot gradedqualityCmaintenanceEnables agents to search and retrieve Clojure job postings from clojurejobboard.com through two read-only tools, search_jobs and get_job, returning structured results with title, company, location, apply URL, and remote status.MIT