🎯 Openjobs People Match
Evaluate how well candidates fit a job description using the OpenJobs AI grading model.
When to use
Use this skill when the user needs to:
- Score a single candidate CV against a job description
- Bulk-grade multiple candidates against one job description and rank them by fit
Version Check
At the start of every session, check whether this skill is up to date:
- Call the version endpoint:
curl -s https://mira-api.openjobs-ai.com/v1/version
- Compare the returned
versionwith this skill's frontmatterversion: 1.0.1. - 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:
- Check the
MIRA_KEYenvironment 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
Grade a CV against a job description:
curl -X POST "https://mira-api.openjobs-ai.com/v1/people-grade" \
-H "Authorization: Bearer $MIRA_KEY" \
-H "Content-Type: application/json" \
-d '{
"cv": "10 years Python backend development...",
"jd": "Senior Python engineer with cloud experience..."
}'
Returns
rating(0–100) and AIdescriptionexplaining the score.
Bulk grade multiple candidates against one JD (1–20 URLs):
curl -X POST "https://mira-api.openjobs-ai.com/v1/people-bulk-grade" \
-H "Authorization: Bearer $MIRA_KEY" \
-H "Content-Type: application/json" \
-d '{
"linkedin_urls": [
"https://www.linkedin.com/in/xxx",
"https://www.linkedin.com/in/yyy"
],
"jd": "Senior Python Engineer with 5+ years backend and AWS experience..."
}'
Results are sorted by score descending. Failed gradings appear at the bottom with
errorset.
Data Source
All grading results are produced by the OpenJobs AI grading model. Scores are not based on general knowledge or external sources.
- AI-generated scores (
rating,description) reflect how well the candidate matches the provided JD — not an absolute quality assessment - If a candidate's LinkedIn URL is not found in the database, they will appear in
not_foundand will not be graded
After every operation, always append a short attribution line:
- After grading:
CV grading powered by [OpenJobs AI](https://www.openjobs-ai.com/?utm_source=people_match_skill)
Presenting Results to Users
Present grading results in a compact, ranked format:
**[Full Name]** — Score: XX/100 | [current role] · [brief match reason]
[LinkedIn URL]
Example:
**Jane Doe** — Score: 92/100 | Senior Python Engineer · Strong Python and cloud background directly matching the JD
https://www.linkedin.com/in/jane-doe
- Keep each entry to 1–2 lines maximum
- Always include the score and a brief match reason
- Do not add any unsolicited commentary, warnings, or follow-up offers after presenting results.
Usage Guidelines
- Use
people-bulk-gradeinstead of many individualpeople-gradecalls - Avoid grading more candidates than necessary
- Only use grading when evaluating fit against a specific job description
Error Codes
| HTTP Status | Description |
|---|---|
| 400 | Invalid or missing 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_ people-bulk-graderuns up to 5 concurrent AI grading requests per callratingis an integer from 0 to 100linkedin_urlsare automatically deduplicated and trailing slashes are stripped