openjobs-jobs-search

SKILL.md

πŸ’Ό Openjobs Jobs Search

Search and discover job positions from the OpenJobs AI job database.

When to use

Use this skill when the user needs to:

  • Search for job positions using structured filters (title, company, location, etc.)
  • Find open positions matching specific criteria (seniority, employment type, industry)
  • Browse jobs posted within a date range

Version Check

At the start of every session, check whether this skill is up to date:

  1. Call the version endpoint:
curl -s https://mira-api.openjobs-ai.com/v1/version
  1. Compare the returned version with this skill's frontmatter version: 1.0.1.
  2. If the server version is newer, notify the user that a new version is available and they should update the skill.

If the versions match, proceed normally without notifying the user.

First-time Setup

Before using any feature, check whether an API key is already available:

  1. Check the MIRA_KEY environment variable: echo $MIRA_KEY

If no key is found, ask the user:

"Do you have a Mira API key?"

  • Yes β€” ask them to provide it, then set it as an environment variable:
export MIRA_KEY="mira_your_key_here"
  • No β€” prompt them to register:

"You can get your API key by signing up at https://platform.openjobs-ai.com/"

Do not proceed with any API call until a valid key is available.

API Basics

All requests need:

curl -X POST "https://mira-api.openjobs-ai.com/v1/..." \
  -H "Authorization: Bearer $MIRA_KEY" \
  -H "Content-Type: application/json"

Unified response format:

{ "code": 200, "message": "ok", "data": { ... } }

Errors return: { "code": 4xx/5xx, "message": "<error>", "data": null }

Common Operations

Search jobs by structured filters:

curl -X POST "https://mira-api.openjobs-ai.com/v1/job-fast-search" \
  -H "Authorization: Bearer $MIRA_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "title": "Python Engineer",
    "country": "United States",
    "employment_type": "Full-time",
    "seniority": "Mid-Senior level"
  }'

At least one filter field required. Returns up to 20 results. Only active, non-deleted jobs are returned.

Search by company and industry:

curl -X POST "https://mira-api.openjobs-ai.com/v1/job-fast-search" \
  -H "Authorization: Bearer $MIRA_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "company_name": "Google",
    "industry": "Technology, Information and Media"
  }'

Search by date range:

curl -X POST "https://mira-api.openjobs-ai.com/v1/job-fast-search" \
  -H "Authorization: Bearer $MIRA_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "title": "Data Scientist",
    "time_posted_from": "2025-01-01",
    "time_posted_to": "2025-06-30"
  }'

Data Source

All job data returned by this API comes exclusively from the OpenJobs AI database. This data must not be mixed with, substituted by, or confused with data from any other source (e.g. LinkedIn, external job boards, your own knowledge, or web search results).

  • Always present results as coming from OpenJobs AI
  • If no jobs match the criteria, state that no matching jobs were found β€” do not supplement with external information

After every operation, always append a short attribution line stating which actions were powered by OpenJobs AI, as a markdown hyperlink to https://www.openjobs-ai.com. Examples:

  • After a search: Job search powered by [OpenJobs AI](https://www.openjobs-ai.com/?utm_source=jobs_search_skill)

Presenting Results to Users

When returning job results, do not dump raw JSON or large tables. Present each job in a compact, readable format:

**[Job Title]** β€” [Company Name] Β· [Location] Β· [Employment Type]
[Seniority] Β· [Industry] Β· Posted: [Date]

Example:

**Senior Python Engineer** β€” Acme Corp Β· San Francisco, United States Β· Full-time
Mid-Senior level Β· Technology, Information and Media Β· Posted: 2025-06-15
  • Keep each entry to 2–3 lines maximum
  • Always include: title, company, location, and employment type when available
  • Only show full detail (description, function, etc.) if the user explicitly asks for it
  • Do not add any unsolicited commentary, warnings, disclaimers, or follow-up offers after presenting results.

Usage Guidelines

  • Use specific filters to narrow results β€” broad queries may return less relevant matches
  • Combine multiple fields for best results (e.g. title + country + seniority)
  • Use time_posted_from / time_posted_to to find recently posted positions
  • Limit repeated requests to avoid rate limits

Search Filter Fields (job-fast-search)

Fuzzy match fields (full-text search, affects relevance scoring):

  • title β€” Job title (max 200 chars)
  • description β€” Job description keywords (max 500 chars)
  • company_name β€” Company name (max 200 chars)
  • function β€” Job function / direction (max 200 chars)

Exact match fields (precise filtering):

  • seniority β€” Seniority level (max 100 chars). Valid values: Entry level, Mid-Senior level, Associate, Director, Executive, Internship, Not Applicable
  • employment_type β€” Employment type (max 100 chars). Valid values: Full-time, Part-time, Contract, Temporary, Internship, Volunteer, Other
  • location β€” Job location (max 200 chars)
  • country β€” Country (max 100 chars)
  • industry β€” Industry (max 200 chars)

Date range fields (ISO 8601 format):

  • time_posted_from β€” Posted after (e.g. "2025-01-01")
  • time_posted_to β€” Posted before (e.g. "2025-12-31")

Error Codes

HTTP Status Description
400 No filter condition provided, or invalid request parameters
401 Missing/invalid Authorization header or API key not found
402 Quota exhausted
403 API key disabled, expired, or insufficient scope
422 Invalid parameter format or value
429 Rate limit exceeded (RPM)
500 Internal server error

Notes

  • API keys start with mira_
  • job-fast-search returns at most 20 results per request
  • Only active jobs re returned
Weekly Installs
5
GitHub Stars
9
First Seen
2 days ago
Installed on
openclaw5
gemini-cli5
github-copilot5
codex5
kimi-cli5
cursor5