Ocean of Jobs

Search 1.2M+ open jobs from 22k companies, read full listings and look up employers.

사용해야 할까요

품질 및 안전성

A
설명 품질
98%
스키마 완전성
87%
이름 품질
99%
오염 위험
100%
권한 일치
100%
프로토콜 준수
100%

발견 사항 (1)

  • LOWTool 'remove_from_auto_apply_queue' description lacks action verbremove_from_auto_apply_queue에서

도구 정의와 프로토콜 준수에 대한 자동 분석을 기반으로 합니다.

컨텍스트 비용

~7,354토큰 (도구 정의)
~4.6 KB일반적인 응답 크기
상당한 주의 영향 (128k 컨텍스트의 5.75%)

이는 서버의 도구가 모델의 컨텍스트에 로드될 때마다 소비되는 대략적인 토큰 수입니다. 수치가 높을수록 다른 작업에 사용할 수 있는 주의가 줄어듭니다.

설치

원클릭 설치

`claude_desktop_config.json` 파일에 다음을 추가하세요:

{
  "mcpServers": {
    "oceanofjobs": {
      "url": "https://oceanofjobs.com/mcp"
    }
  }
}

원격 엔드포인트

https://oceanofjobs.com/mcpstreamable-http

할 수 있는 일

도구 목록

도구 (15)

🟢 읽기 전용🟡 쓰기🔴 삭제⚪ 알 수 없음
🟢search_jobs(query, company, city, country, seniority, ...)

Search open jobs on Ocean of Jobs. Give at least one of query, company, city or country (IL for Israel; most listings are in the US). Returns up to 25 jobs per call, best match first when there is a query, newest first otherwise, with the total number of matches. Every job includes its lifetime (days listed, first and last seen) and two links: url, the Ocean of Jobs page, to show first, and apply_url, the employer's page. How to search well: - Put one or two core title or skill words in query, such as "backend", "python" or "devops", and use the filters for place, seniority and dates. Every word in query must match, so a long description of the person returns little or nothing. - Search once. If that gives relevant candidates, do not search again for synonyms. If it gives nothing useful, change or broaden query once, keeping the same filters. - Across searches, treat the same id or the same apply_url as one job. - Open only the strongest few candidates with get_job, and read their descriptions for seniority, required skills and where the job can be done from before ranking them. - Give the number of recommendations asked for when enough jobs fit, and say so when fewer do. - Never call a listing reposted because of its age. Use lifetime.reappeared_at, and say when the tracked history is too short to tell.

입력 스키마

{
  "type": "object",
  "properties": {
    "query": {
      "type": "string",
      "description": "Words to search titles, companies, locations and descriptions, skills included, e.g. \"kubernetes go\". Quotes keep a phrase together."
    },
    "company": {
      "type": "string",
      "description": "A company domain such as wix.com, or a name, which is looked up."
    },
    "city": {
      "type": "string",
      "description": "City name, e.g. Tel Aviv."
    },
    "country": {
      "type": "string",
      "description": "Two-letter country code, e.g. IL or US."
    },
    "seniority": {
      "type": "string",
      "enum": [
        "intern",
        "junior",
        "mid",
        "senior",
        "staff",
        "principal",
        "lead",
        "manager",
        "director",
        "exec"
      ]
    },
    "workplace": {
      "type": "string",
      "enum": [
        "remote",
        "hybrid",
        "onsite"
      ]
    },
    "max_age_days": {
      "type": "integer",
      "minimum": 0,
      "description": "Only jobs posted within this many days."
    },
    "salary_min": {
      "type": "integer",
      "minimum": 0,
      "description": "Lowest monthly gross salary in shekels."
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 25,
      "default": 10
    },
    "offset": {
      "type": "integer",
      "minimum": 0,
      "maximum": 200,
      "default": 0
    }
  },
  "additionalProperties": false
}

출력 스키마

{
  "type": "object",
  "properties": {
    "total": {
      "type": "integer",
      "description": "Every match, not only this page."
    },
    "offset": {
      "type": "integer"
    },
    "jobs": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "company": {
            "type": "string",
            "description": "The employer's name, or its domain when the ATS gives no name."
          },
          "company_domain": {
            "type": "string"
          },
          "lifetime": {
            "type": "object",
            "description": "first_seen is when Ocean of Jobs first found the listing on the employer's own applicant tracking system. last_seen is the last time a read of that board returned the listing with any change; a board that answers 'unchanged' was still checked, so the listing may have been confirmed more recently than last_seen says. closed_at is when a successful read of the board no longer included it; null means it was still listed at the last successful read. reappeared_at is when this same listing (the same ATS id) was last seen again after being missing from our reads of the board for at least two days; null means no such absence was seen (recorded since 2026-10-19). It says what was observed, not that the employer reposted it: our own failed reads can look the same, so do not call a listing reposted on this or on an old first_seen. A new posting for the same role is a new listing. posted_at is the employer's own date where the ATS gives one, and can be missing.",
            "properties": {
              "summary": {
                "type": "string"
              },
              "status": {
                "type": "string",
                "enum": [
                  "open",
                  "closed"
                ]
              },
              "days_listed": {
                "type": [
                  "integer",
                  "null"
                ]
              },
              "first_seen": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "last_seen": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "closed_at": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "reappeared_at": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "posted_at": {
                "type": [
                  "string",
                  "null"
                ]
              }
            },
            "required": [
              "summary",
              "status",
              "days_listed",
              "first_seen",
              "last_seen",
              "closed_at",
              "reappeared_at",
              "posted_at"
            ]
          },
          "url": {
            "type": "string",
            "description": "The listing's page on Ocean of Jobs. Show this first."
          },
          "apply_url": {
            "type": [
              "string",
              "null"
            ],
            "description": "The employer's own application page."
          },
          "location": {
            "type": [
              "string",
              "null"
            ]
          },
          "workplace": {
            "type": [
              "string",
              "null"
            ]
          },
          "seniority": {
            "type": [
              "string",
              "null"
            ]
          },
          "category": {
            "type": [
              "string",
              "null"
            ]
          },
          "other_locations": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Other places the same posting is listed for."
          },
          "salary": {
            "type": [
              "string",
              "null"
            ],
            "description": "Monthly, in shekels, as listed or estimated."
          }
        },
        "required": [
          "id",
          "title",
          "company",
          "company_domain",
          "lifetime",
          "url",
          "apply_url",
          "location",
          "workplace",
          "seniority",
          "category",
          "other_locations",
          "salary"
        ]
      }
    },
    "duplicates_folded": {
      "type": "integer",
      "description": "Rows on this page that were the same posting as another, folded into it."
    },
    "more": {
      "type": [
        "string",
        "null"
      ]
    }
  },
  "required": [
    "total",
    "offset",
    "jobs",
    "duplicates_folded",
    "more"
  ]
}
🟢get_job(id)

One job on Ocean of Jobs by its id (from search_jobs or get_company): the description as plain text, its lifetime, whether its data is verified against the employer's ATS, and both links, the Ocean of Jobs page first.

입력 스키마

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "description": "The job's id, e.g. 67ff4ef965d91ef7."
    }
  },
  "required": [
    "id"
  ],
  "additionalProperties": false
}

출력 스키마

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string"
    },
    "title": {
      "type": "string"
    },
    "company": {
      "type": "string",
      "description": "The employer's name, or its domain when the ATS gives no name."
    },
    "company_domain": {
      "type": "string"
    },
    "lifetime": {
      "type": "object",
      "description": "first_seen is when Ocean of Jobs first found the listing on the employer's own applicant tracking system. last_seen is the last time a read of that board returned the listing with any change; a board that answers 'unchanged' was still checked, so the listing may have been confirmed more recently than last_seen says. closed_at is when a successful read of the board no longer included it; null means it was still listed at the last successful read. reappeared_at is when this same listing (the same ATS id) was last seen again after being missing from our reads of the board for at least two days; null means no such absence was seen (recorded since 2026-10-19). It says what was observed, not that the employer reposted it: our own failed reads can look the same, so do not call a listing reposted on this or on an old first_seen. A new posting for the same role is a new listing. posted_at is the employer's own date where the ATS gives one, and can be missing.",
      "properties": {
        "summary": {
          "type": "string"
        },
        "status": {
          "type": "string",
          "enum": [
            "open",
            "closed"
          ]
        },
        "days_listed": {
          "type": [
            "integer",
            "null"
          ]
        },
        "first_seen": {
          "type": [
            "string",
            "null"
          ]
        },
        "last_seen": {
          "type": [
            "string",
            "null"
          ]
        },
        "closed_at": {
          "type": [
            "string",
            "null"
          ]
        },
        "reappeared_at": {
          "type": [
            "string",
            "null"
          ]
        },
        "posted_at": {
          "type": [
            "string",
            "null"
          ]
        }
      },
      "required": [
        "summary",
        "status",
        "days_listed",
        "first_seen",
        "last_seen",
        "closed_at",
        "reappeared_at",
        "posted_at"
      ]
    },
    "url": {
      "type": "string",
      "description": "The listing's page on Ocean of Jobs. Show this first."
    },
    "apply_url": {
      "type": [
        "string",
        "null"
      ],
      "description": "The employer's own application page."
    },
    "location": {
      "type": [
        "string",
        "null"
      ]
    },
    "workplace": {
      "type": [
        "string",
        "null"
      ]
    },
    "seniority": {
      "type": [
        "string",
        "null"
      ]
    },
    "category": {
      "type": [
        "string",
        "null"
      ]
    },
    "department": {
      "type": [
        "string",
        "null"
      ]
    },
    "confidence": {
      "type": [
        "string",
        "null"
      ],
      "description": "verified: read from the employer's ATS API. best_effort: from the careers page markup."
    },
    "description": {
      "type": [
        "string",
        "null"
      ],
      "description": "Plain text; '## ' starts a heading and '- ' a bullet. Null when the ATS gave none."
    },
    "description_truncated": {
      "type": "boolean"
    }
  },
  "required": [
    "id",
    "title",
    "company",
    "company_domain",
    "lifetime",
    "url",
    "apply_url",
    "location",
    "workplace",
    "seniority",
    "category",
    "department",
    "confidence",
    "description",
    "description_truncated"
  ]
}
🟢get_company(company)

A company on Ocean of Jobs by name or domain: how many jobs it has open, how many are new this week, how long it has been tracked, its newest jobs, and its Ocean of Jobs page.

입력 스키마

{
  "type": "object",
  "properties": {
    "company": {
      "type": "string",
      "description": "A name such as Wix, or a domain such as wix.com."
    }
  },
  "required": [
    "company"
  ],
  "additionalProperties": false
}

출력 스키마

{
  "type": "object",
  "properties": {
    "domain": {
      "type": "string"
    },
    "name": {
      "type": [
        "string",
        "null"
      ]
    },
    "url": {
      "type": "string"
    },
    "ats": {
      "type": [
        "string",
        "null"
      ]
    },
    "open_jobs": {
      "type": "integer"
    },
    "new_jobs_7d": {
      "type": "integer"
    },
    "tracked_since": {
      "type": [
        "string",
        "null"
      ]
    },
    "newest_jobs": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "company": {
            "type": "string",
            "description": "The employer's name, or its domain when the ATS gives no name."
          },
          "company_domain": {
            "type": "string"
          },
          "lifetime": {
            "type": "object",
            "description": "first_seen is when Ocean of Jobs first found the listing on the employer's own applicant tracking system. last_seen is the last time a read of that board returned the listing with any change; a board that answers 'unchanged' was still checked, so the listing may have been confirmed more recently than last_seen says. closed_at is when a successful read of the board no longer included it; null means it was still listed at the last successful read. reappeared_at is when this same listing (the same ATS id) was last seen again after being missing from our reads of the board for at least two days; null means no such absence was seen (recorded since 2026-10-19). It says what was observed, not that the employer reposted it: our own failed reads can look the same, so do not call a listing reposted on this or on an old first_seen. A new posting for the same role is a new listing. posted_at is the employer's own date where the ATS gives one, and can be missing.",
            "properties": {
              "summary": {
                "type": "string"
              },
              "status": {
                "type": "string",
                "enum": [
                  "open",
                  "closed"
                ]
              },
              "days_listed": {
                "type": [
                  "integer",
                  "null"
                ]
              },
              "first_seen": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "last_seen": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "closed_at": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "reappeared_at": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "posted_at": {
                "type": [
                  "string",
                  "null"
                ]
              }
            },
            "required": [
              "summary",
              "status",
              "days_listed",
              "first_seen",
              "last_seen",
              "closed_at",
              "reappeared_at",
              "posted_at"
            ]
          },
          "url": {
            "type": "string",
            "description": "The listing's page on Ocean of Jobs. Show this first."
          },
          "apply_url": {
            "type": [
              "string",
              "null"
            ],
            "description": "The employer's own application page."
          },
          "location": {
            "type": [
              "string",
              "null"
            ]
          },
          "workplace": {
            "type": [
              "string",
              "null"
            ]
          },
          "seniority": {
            "type": [
              "string",
              "null"
            ]
          },
          "category": {
            "type": [
              "string",
              "null"
            ]
          },
          "other_locations": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Other places the same posting is listed for."
          },
          "salary": {
            "type": [
              "string",
              "null"
            ],
            "description": "Monthly, in shekels, as listed or estimated."
          }
        },
        "required": [
          "id",
          "title",
          "company",
          "company_domain",
          "lifetime",
          "url",
          "apply_url",
          "location",
          "workplace",
          "seniority",
          "category",
          "other_locations",
          "salary"
        ]
      }
    },
    "other_matches": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "domain": {
            "type": "string"
          },
          "name": {
            "type": [
              "string",
              "null"
            ]
          },
          "open_jobs": {
            "type": "integer"
          }
        }
      }
    }
  },
  "required": [
    "domain",
    "name",
    "url",
    "ats",
    "open_jobs",
    "new_jobs_7d",
    "tracked_since",
    "newest_jobs",
    "other_matches"
  ]
}
🟡save_job(id)

Save a job to the user's Ocean of Jobs account, where it shows under Saved jobs on every device. Needs the user's personal access token. Saving the same job twice is harmless.

입력 스키마

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "description": "The job's id, e.g. 67ff4ef965d91ef7."
    }
  },
  "required": [
    "id"
  ],
  "additionalProperties": false
}

출력 스키마

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string"
    },
    "saved": {
      "type": "boolean"
    },
    "url": {
      "type": "string"
    }
  },
  "required": [
    "id",
    "saved",
    "url"
  ]
}
🟢list_saved_jobs(limit)

The jobs saved on the user's Ocean of Jobs account, newest saved first, with the same fields as search results and when each was saved. Needs the user's personal access token.

입력 스키마

{
  "type": "object",
  "properties": {
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 25,
      "description": "How many, 1 to 25. Default 10."
    }
  },
  "additionalProperties": false
}

출력 스키마

{
  "type": "object",
  "properties": {
    "total": {
      "type": "integer",
      "description": "Every saved job, not only this list."
    },
    "jobs": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "company": {
            "type": "string",
            "description": "The employer's name, or its domain when the ATS gives no name."
          },
          "company_domain": {
            "type": "string"
          },
          "lifetime": {
            "type": "object",
            "description": "first_seen is when Ocean of Jobs first found the listing on the employer's own applicant tracking system. last_seen is the last time a read of that board returned the listing with any change; a board that answers 'unchanged' was still checked, so the listing may have been confirmed more recently than last_seen says. closed_at is when a successful read of the board no longer included it; null means it was still listed at the last successful read. reappeared_at is when this same listing (the same ATS id) was last seen again after being missing from our reads of the board for at least two days; null means no such absence was seen (recorded since 2026-10-19). It says what was observed, not that the employer reposted it: our own failed reads can look the same, so do not call a listing reposted on this or on an old first_seen. A new posting for the same role is a new listing. posted_at is the employer's own date where the ATS gives one, and can be missing.",
            "properties": {
              "summary": {
                "type": "string"
              },
              "status": {
                "type": "string",
                "enum": [
                  "open",
                  "closed"
                ]
              },
              "days_listed": {
                "type": [
                  "integer",
                  "null"
                ]
              },
              "first_seen": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "last_seen": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "closed_at": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "reappeared_at": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "posted_at": {
                "type": [
                  "string",
                  "null"
                ]
              }
            },
            "required": [
              "summary",
              "status",
              "days_listed",
              "first_seen",
              "last_seen",
              "closed_at",
              "reappeared_at",
              "posted_at"
            ]
          },
          "url": {
            "type": "string",
            "description": "The listing's page on Ocean of Jobs. Show this first."
          },
          "apply_url": {
            "type": [
              "string",
              "null"
            ],
            "description": "The employer's own application page."
          },
          "location": {
            "type": [
              "string",
              "null"
            ]
          },
          "workplace": {
            "type": [
              "string",
              "null"
            ]
          },
          "seniority": {
            "type": [
              "string",
              "null"
            ]
          },
          "category": {
            "type": [
              "string",
              "null"
            ]
          },
          "other_locations": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Other places the same posting is listed for."
          },
          "salary": {
            "type": [
              "string",
              "null"
            ],
            "description": "Monthly, in shekels, as listed or estimated."
          },
          "saved_at": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "required": [
          "id",
          "title",
          "company",
          "company_domain",
          "lifetime",
          "url",
          "apply_url",
          "location",
          "workplace",
          "seniority",
          "category",
          "other_locations",
          "salary"
        ]
      }
    },
    "gone": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Saved ids that no longer have a listing."
    }
  },
  "required": [
    "total",
    "jobs",
    "gone"
  ]
}
🔴remove_saved_job(id)

Take a job off the user's saved list. Needs the user's personal access token.

입력 스키마

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "description": "The job's id."
    }
  },
  "required": [
    "id"
  ],
  "additionalProperties": false
}

출력 스키마

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string"
    },
    "saved": {
      "type": "boolean"
    }
  },
  "required": [
    "id",
    "saved"
  ]
}
⚪queue_for_auto_apply(id)

Queue a job for the Ocean of Jobs Chrome extension to apply to with the user's profile and CV. The extension applies to queued jobs on its next check, every 15 minutes, so the user needs the extension installed and connected. The user must also turn on "Jobs queued by my AI assistant through MCP" in their auto apply settings. For now the extension fills Greenhouse Ashby and Workable forms only (an apply_url on boards.greenhouse.io, job-boards.greenhouse.io, jobs.ashbyhq.com or apply.workable.com); a job on any other site is refused, so pick those jobs. This sends a real application, so queue a job only when the user asks for it. Needs the user's personal access token. Queueing the same job twice is harmless.

입력 스키마

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "description": "The job's id, e.g. 67ff4ef965d91ef7."
    }
  },
  "required": [
    "id"
  ],
  "additionalProperties": false
}

출력 스키마

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string"
    },
    "queued": {
      "type": "boolean"
    },
    "url": {
      "type": "string"
    }
  },
  "required": [
    "id",
    "queued",
    "url"
  ]
}
🟢list_auto_apply_queue(limit)

The jobs waiting in the user's auto apply queue, oldest first, with the same fields as search results and when each was queued. A job leaves the queue once the extension has tried it. Needs the user's personal access token.

입력 스키마

{
  "type": "object",
  "properties": {
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 25,
      "description": "How many, 1 to 25. Default 10."
    }
  },
  "additionalProperties": false
}

출력 스키마

{
  "type": "object",
  "properties": {
    "total": {
      "type": "integer",
      "description": "Every queued job, not only this list."
    },
    "jobs": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "company": {
            "type": "string",
            "description": "The employer's name, or its domain when the ATS gives no name."
          },
          "company_domain": {
            "type": "string"
          },
          "lifetime": {
            "type": "object",
            "description": "first_seen is when Ocean of Jobs first found the listing on the employer's own applicant tracking system. last_seen is the last time a read of that board returned the listing with any change; a board that answers 'unchanged' was still checked, so the listing may have been confirmed more recently than last_seen says. closed_at is when a successful read of the board no longer included it; null means it was still listed at the last successful read. reappeared_at is when this same listing (the same ATS id) was last seen again after being missing from our reads of the board for at least two days; null means no such absence was seen (recorded since 2026-10-19). It says what was observed, not that the employer reposted it: our own failed reads can look the same, so do not call a listing reposted on this or on an old first_seen. A new posting for the same role is a new listing. posted_at is the employer's own date where the ATS gives one, and can be missing.",
            "properties": {
              "summary": {
                "type": "string"
              },
              "status": {
                "type": "string",
                "enum": [
                  "open",
                  "closed"
                ]
              },
              "days_listed": {
                "type": [
                  "integer",
                  "null"
                ]
              },
              "first_seen": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "last_seen": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "closed_at": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "reappeared_at": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "posted_at": {
                "type": [
                  "string",
                  "null"
                ]
              }
            },
            "required": [
              "summary",
              "status",
              "days_listed",
              "first_seen",
              "last_seen",
              "closed_at",
              "reappeared_at",
              "posted_at"
            ]
          },
          "url": {
            "type": "string",
            "description": "The listing's page on Ocean of Jobs. Show this first."
          },
          "apply_url": {
            "type": [
              "string",
              "null"
            ],
            "description": "The employer's own application page."
          },
          "location": {
            "type": [
              "string",
              "null"
            ]
          },
          "workplace": {
            "type": [
              "string",
              "null"
            ]
          },
          "seniority": {
            "type": [
              "string",
              "null"
            ]
          },
          "category": {
            "type": [
              "string",
              "null"
            ]
          },
          "other_locations": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Other places the same posting is listed for."
          },
          "salary": {
            "type": [
              "string",
              "null"
            ],
            "description": "Monthly, in shekels, as listed or estimated."
          },
          "added_at": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "required": [
          "id",
          "title",
          "company",
          "company_domain",
          "lifetime",
          "url",
          "apply_url",
          "location",
          "workplace",
          "seniority",
          "category",
          "other_locations",
          "salary"
        ]
      }
    },
    "gone": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Queued ids that no longer have a listing."
    }
  },
  "required": [
    "total",
    "jobs",
    "gone"
  ]
}
🔴remove_from_auto_apply_queue(id)

Take a job out of the user's auto apply queue before the extension applies to it. Needs the user's personal access token.

입력 스키마

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "description": "The job's id."
    }
  },
  "required": [
    "id"
  ],
  "additionalProperties": false
}

출력 스키마

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string"
    },
    "queued": {
      "type": "boolean"
    }
  },
  "required": [
    "id",
    "queued"
  ]
}
🟢list_alerts

The user's job alerts: each one a saved search whose new matches are emailed to them, with its filter and whether it is on. Needs the user's personal access token.

입력 스키마

{
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

출력 스키마

{
  "type": "object",
  "properties": {
    "alerts": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "active": {
            "type": "boolean"
          },
          "filter": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            }
          },
          "created_at": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "required": [
          "id",
          "active",
          "filter",
          "created_at"
        ]
      }
    }
  },
  "required": [
    "alerts"
  ]
}
🟡create_alert(filter)

Create a job alert: Ocean of Jobs emails the user new jobs that match the filter, at the times set in their preferences. Up to 5 alerts per account. The email goes to the address the account had when the token was made. Create one only when the user asks for it. Needs the user's personal access token.

입력 스키마

{
  "type": "object",
  "properties": {
    "filter": {
      "type": "object",
      "description": "What the alert watches for. Every field is a string; give at least one.",
      "properties": {
        "search": {
          "type": "string",
          "description": "Words to search for, as on the board, e.g. \"devops\"."
        },
        "department": {
          "type": "string",
          "description": "Categories, e.g. \"Software Engineering,Security\"."
        },
        "seniority": {
          "type": "string",
          "description": "Comma-separated: intern, junior, mid, senior, staff, principal, lead, manager, director, exec."
        },
        "workplace": {
          "type": "string",
          "description": "Comma-separated: remote, hybrid, onsite."
        },
        "company": {
          "type": "string",
          "description": "Company domains, e.g. \"wix.com,monday.com\"."
        },
        "country": {
          "type": "string",
          "description": "ISO country codes, e.g. \"IL\"."
        },
        "city": {
          "type": "string",
          "description": "City names, e.g. \"Tel Aviv\"."
        },
        "skills": {
          "type": "string",
          "description": "Skills, e.g. \"Python,Kubernetes\"."
        },
        "salary_min": {
          "type": "string",
          "description": "Lowest monthly salary in shekels, e.g. \"30000\"."
        }
      },
      "additionalProperties": false
    }
  },
  "required": [
    "filter"
  ],
  "additionalProperties": false
}

출력 스키마

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string"
    },
    "active": {
      "type": "boolean"
    },
    "filter": {
      "type": "object",
      "additionalProperties": {
        "type": "string"
      }
    },
    "created_at": {
      "type": [
        "string",
        "null"
      ]
    }
  },
  "required": [
    "id",
    "active",
    "filter",
    "created_at"
  ]
}
🟡update_alert(id, active, filter)

Pause or resume a job alert, or replace its filter. A new filter starts from now: jobs already open are not emailed. Needs the user's personal access token.

입력 스키마

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "description": "The alert's id, from list_alerts."
    },
    "active": {
      "type": "boolean",
      "description": "false pauses the alert's emails, true resumes them."
    },
    "filter": {
      "type": "object",
      "description": "The whole new filter. It replaces the old one.",
      "properties": {
        "search": {
          "type": "string",
          "description": "Words to search for, as on the board, e.g. \"devops\"."
        },
        "department": {
          "type": "string",
          "description": "Categories, e.g. \"Software Engineering,Security\"."
        },
        "seniority": {
          "type": "string",
          "description": "Comma-separated: intern, junior, mid, senior, staff, principal, lead, manager, director, exec."
        },
        "workplace": {
          "type": "string",
          "description": "Comma-separated: remote, hybrid, onsite."
        },
        "company": {
          "type": "string",
          "description": "Company domains, e.g. \"wix.com,monday.com\"."
        },
        "country": {
          "type": "string",
          "description": "ISO country codes, e.g. \"IL\"."
        },
        "city": {
          "type": "string",
          "description": "City names, e.g. \"Tel Aviv\"."
        },
        "skills": {
          "type": "string",
          "description": "Skills, e.g. \"Python,Kubernetes\"."
        },
        "salary_min": {
          "type": "string",
          "description": "Lowest monthly salary in shekels, e.g. \"30000\"."
        }
      },
      "additionalProperties": false
    }
  },
  "required": [
    "id"
  ],
  "additionalProperties": false
}

출력 스키마

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string"
    },
    "active": {
      "type": "boolean"
    },
    "filter": {
      "type": "object",
      "additionalProperties": {
        "type": "string"
      }
    },
    "created_at": {
      "type": [
        "string",
        "null"
      ]
    }
  },
  "required": [
    "id",
    "active",
    "filter",
    "created_at"
  ]
}
🔴delete_alert(id)

Delete a job alert. Its emails stop. Needs the user's personal access token.

입력 스키마

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "description": "The alert's id, from list_alerts."
    }
  },
  "required": [
    "id"
  ],
  "additionalProperties": false
}

출력 스키마

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string"
    },
    "deleted": {
      "type": "boolean"
    }
  },
  "required": [
    "id",
    "deleted"
  ]
}
🟢get_preferences

The user's search preferences: their skills, the seniority, workplace and places they want, and when alert emails are sent. The board's best matches and the account overview use them. Needs the user's personal access token.

입력 스키마

{
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

출력 스키마

{
  "type": "object",
  "properties": {
    "skills": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Skills, e.g. [\"Python\", \"Kubernetes\"]. Up to 40."
    },
    "seniority": {
      "type": [
        "string",
        "null"
      ],
      "enum": [
        "intern",
        "junior",
        "mid",
        "senior",
        "staff",
        "principal",
        "lead",
        "manager",
        "director",
        "exec",
        null
      ]
    },
    "workplace": {
      "type": "array",
      "items": {
        "type": "string",
        "enum": [
          "remote",
          "hybrid",
          "onsite"
        ]
      }
    },
    "country": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "ISO country codes, e.g. [\"IL\"]."
    },
    "city": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "City names, e.g. [\"Tel Aviv\"]."
    },
    "israel_only": {
      "type": "boolean",
      "description": "Only jobs in Israel."
    },
    "cadence": {
      "type": "string",
      "enum": [
        "instant",
        "daily",
        "weekly"
      ],
      "description": "How often alert emails are sent."
    },
    "digest_time": {
      "type": "string",
      "description": "For daily and weekly emails: the time, HH:MM."
    },
    "digest_tz": {
      "type": "string",
      "description": "The time's zone, e.g. \"Asia/Jerusalem\"."
    },
    "digest_day": {
      "type": "integer",
      "minimum": 0,
      "maximum": 6,
      "description": "For weekly emails: 0 is Monday, 6 Sunday."
    }
  },
  "required": [
    "skills",
    "seniority",
    "workplace",
    "country",
    "city",
    "israel_only",
    "cadence",
    "digest_time",
    "digest_tz",
    "digest_day"
  ]
}
🟡update_preferences(skills, seniority, workplace, country, city, ...)

Change some of the user's search preferences. Only the fields given change; a list given replaces the old list, so read get_preferences first to add to one. Skills outside Ocean of Jobs' own list are dropped, and the answer shows what was kept. Change them only when the user asks. Needs the user's personal access token.

입력 스키마

{
  "type": "object",
  "properties": {
    "skills": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Skills, e.g. [\"Python\", \"Kubernetes\"]. Up to 40."
    },
    "seniority": {
      "type": [
        "string",
        "null"
      ],
      "enum": [
        "intern",
        "junior",
        "mid",
        "senior",
        "staff",
        "principal",
        "lead",
        "manager",
        "director",
        "exec",
        null
      ]
    },
    "workplace": {
      "type": "array",
      "items": {
        "type": "string",
        "enum": [
          "remote",
          "hybrid",
          "onsite"
        ]
      }
    },
    "country": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "ISO country codes, e.g. [\"IL\"]."
    },
    "city": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "City names, e.g. [\"Tel Aviv\"]."
    },
    "israel_only": {
      "type": "boolean",
      "description": "Only jobs in Israel."
    },
    "cadence": {
      "type": "string",
      "enum": [
        "instant",
        "daily",
        "weekly"
      ],
      "description": "How often alert emails are sent."
    },
    "digest_time": {
      "type": "string",
      "description": "For daily and weekly emails: the time, HH:MM."
    },
    "digest_tz": {
      "type": "string",
      "description": "The time's zone, e.g. \"Asia/Jerusalem\"."
    },
    "digest_day": {
      "type": "integer",
      "minimum": 0,
      "maximum": 6,
      "description": "For weekly emails: 0 is Monday, 6 Sunday."
    }
  },
  "additionalProperties": false
}

출력 스키마

{
  "type": "object",
  "properties": {
    "skills": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Skills, e.g. [\"Python\", \"Kubernetes\"]. Up to 40."
    },
    "seniority": {
      "type": [
        "string",
        "null"
      ],
      "enum": [
        "intern",
        "junior",
        "mid",
        "senior",
        "staff",
        "principal",
        "lead",
        "manager",
        "director",
        "exec",
        null
      ]
    },
    "workplace": {
      "type": "array",
      "items": {
        "type": "string",
        "enum": [
          "remote",
          "hybrid",
          "onsite"
        ]
      }
    },
    "country": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "ISO country codes, e.g. [\"IL\"]."
    },
    "city": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "City names, e.g. [\"Tel Aviv\"]."
    },
    "israel_only": {
      "type": "boolean",
      "description": "Only jobs in Israel."
    },
    "cadence": {
      "type": "string",
      "enum": [
        "instant",
        "daily",
        "weekly"
      ],
      "description": "How often alert emails are sent."
    },
    "digest_time": {
      "type": "string",
      "description": "For daily and weekly emails: the time, HH:MM."
    },
    "digest_tz": {
      "type": "string",
      "description": "The time's zone, e.g. \"Asia/Jerusalem\"."
    },
    "digest_day": {
      "type": "integer",
      "minimum": 0,
      "maximum": 6,
      "description": "For weekly emails: 0 is Monday, 6 Sunday."
    }
  },
  "required": [
    "skills",
    "seniority",
    "workplace",
    "country",
    "city",
    "israel_only",
    "cadence",
    "digest_time",
    "digest_tz",
    "digest_day"
  ]
}

커뮤니티

이 서버 평가하기

증거

최근 관측

검증됨버전이 기록되지 않음도구 15개