
Search live jobs worldwide, check salaries, tailor your CV and apply with your OK.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Adds facts the user confirmed (skills, experience, education, certifications, languages, target roles and cities) to the profile. Lists only grow: duplicates are skipped and nothing is deleted. A job with no start date is not saved; it is reported back so you can ask the user for it. Returns what was applied, what was kept and what was skipped, with reasons.
Professional summary. Saved only when the profile has none, unless replaceSummary is true.
true only when the user asked to replace their current summary.
The server marks this tool as destructive. Running it may delete or overwrite data on the server or in any account you connected with your headers.
Pick your client. Values in capitals, like YOUR_TOKEN, are yours to fill in.
Run in a terminal
claude mcp add --transport http jobs https://jobiba.com/mcp/jobs
Adds facts the user confirmed (skills, experience, education, certifications, languages, target roles and cities) to the profile. Lists only grow: duplicates are skipped and nothing is deleted. A job with no start date is not saved; it is reported back so you can ask the user for it. Returns what was applied, what was kept and what was skipped, with reasons.
| Argument | Type | Description |
|---|---|---|
| bio | string | Professional summary. Saved only when the profile has none, unless replaceSummary is true. |
| skills | array | |
| education | array | |
| languages | array | |
| experience | array | |
| certifications | array | |
| replaceSummary | boolean | true only when the user asked to replace their current summary. |
| interestedRoles | array | |
| interestedCities | array |
{
"type": "object",
"properties": {
"bio": {
"type": "string",
"description": "Professional summary. Saved only when the profile has none, unless replaceSummary is true."
},
"skills": {
"type": "array",
"items": {
"type": "string"
}
},
"education": {
"type": "array",
"items": {
"type": "object",
"required": [
"degree"
],
"properties": {
"field": {
"type": "string"
},
"grade": {
"type": "string"
},
"degree": {
"type": "string"
},
"endDate": {
"type": "string"
},
"startDate": {
"type": "string"
},
"institution": {
"type": "string"
}
},
"additionalProperties": false
}
},
"languages": {
"type": "array",
"items": {
"type": "string"
}
},
"experience": {
"type": "array",
"items": {
"type": "object",
"required": [
"company",
"title"
],
"properties": {
"title": {
"type": "string"
},
"company": {
"type": "string"
},
"endDate": {
"type": "string"
},
"isCurrent": {
"type": "boolean"
},
"startDate": {
"type": "string",
"description": "e.g. 2021-06 or 2021. Leave out when unknown (never guess); the entry is then reported back."
},
"skillsUsed": {
"type": "array",
"items": {
"type": "string"
}
},
"description": {
"type": "string"
},
"responsibilities": {
"type": "array",
"items": {
"type": "string"
}
}
},
"additionalProperties": false
}
},
"certifications": {
"type": "array",
"items": {
"type": "object",
"required": [
"name"
],
"properties": {
"name": {
"type": "string"
},
"year": {
"type": "string"
},
"issuer": {
"type": "string"
}
},
"additionalProperties": false
}
},
"replaceSummary": {
"type": "boolean",
"description": "true only when the user asked to replace their current summary."
},
"interestedRoles": {
"type": "array",
"items": {
"type": "string"
}
},
"interestedCities": {
"type": "array",
"items": {
"type": "string"
}
}
},
"additionalProperties": false
}Inspect configured chat and embedding provider readiness without exposing provider credentials or endpoints.
No arguments.
{
"type": "object",
"properties": {},
"additionalProperties": false
}Compare a job offer with the market and get negotiation advice. Accepts either an amount (+currency, +period) or pasted offer-letter text. Says where the offer sits (percentile), what components matter, India in-hand estimate for INR, and what to negotiate. Needs a role.
| Argument | Type | Description |
|---|---|---|
| role | string | Role of the offer. |
| amount | number | Offer amount. |
| period | string | Pay period of amount. |
| currency | string | 3-letter currency, e.g. INR. |
| location | string | Offer location. |
| offerText | string | Pasted offer-letter text (optional). |
| experienceLevel | string | Optional level. |
{
"type": "object",
"properties": {
"role": {
"type": "string",
"description": "Role of the offer."
},
"amount": {
"type": "number",
"minimum": 0,
"description": "Offer amount."
},
"period": {
"enum": [
"YEAR",
"MONTH",
"WEEK",
"DAY",
"HOUR"
],
"type": "string",
"description": "Pay period of amount."
},
"currency": {
"type": "string",
"maxLength": 3,
"minLength": 3,
"description": "3-letter currency, e.g. INR."
},
"location": {
"type": "string",
"description": "Offer location."
},
"offerText": {
"type": "string",
"description": "Pasted offer-letter text (optional)."
},
"experienceLevel": {
"enum": [
"ENTRY_LEVEL",
"MID_LEVEL",
"SENIOR_LEVEL",
"DIRECTOR",
"EXECUTIVE"
],
"type": "string",
"description": "Optional level."
}
},
"additionalProperties": false
}Check whether the selected active Jobiba vacancy is ready to apply to, using the authenticated candidate's profile and an owned resume. Return the exact missing prerequisites and external-application handoff status.
| Argument | Type | Description |
|---|---|---|
| jobId* | string | |
| resumeId | string |
{
"type": "object",
"required": [
"jobId"
],
"properties": {
"jobId": {
"type": "string"
},
"resumeId": {
"type": "string"
}
},
"additionalProperties": false
}Apply to a job with a chosen resume. For Jobiba-native jobs the first call returns a preview and sends nothing; the application is submitted, with the resume attached as a PDF snapshot, only when called again with confirm=true. For jobs that use an external employer form it returns the apply link, resume download and a details kit instead, and with markApplied=true records the user's own application in their tracker.
| Argument | Type | Description |
|---|---|---|
| jobId* | string | |
| confirm | boolean | Only true after the user explicitly approved sending this application. |
| resumeId | string | Resume to send (from tailor_resume_for_job or list_my_resumes). |
| markApplied | boolean | External jobs: record that the user applied on the employer site. |
| screeningAnswers | array |
{
"type": "object",
"required": [
"jobId"
],
"properties": {
"jobId": {
"type": "string"
},
"confirm": {
"type": "boolean",
"description": "Only true after the user explicitly approved sending this application."
},
"resumeId": {
"type": "string",
"description": "Resume to send (from tailor_resume_for_job or list_my_resumes)."
},
"markApplied": {
"type": "boolean",
"description": "External jobs: record that the user applied on the employer site."
},
"screeningAnswers": {
"type": "array",
"items": {
"type": "object",
"required": [
"questionId",
"answer"
],
"properties": {
"answer": {
"type": "string"
},
"questionId": {
"type": "string"
}
},
"additionalProperties": false
}
}
},
"additionalProperties": false
}Create or refine a saved Jobiba resume using verified profile facts and optional job context.
| Argument | Type | Description |
|---|---|---|
| jobId | string | |
| title | string | |
| resumeId | string | |
| template | string | |
| targetRole | string | |
| instructions | string |
{
"type": "object",
"properties": {
"jobId": {
"type": "string"
},
"title": {
"type": "string"
},
"resumeId": {
"type": "string"
},
"template": {
"type": "string"
},
"targetRole": {
"type": "string"
},
"instructions": {
"type": "string"
}
},
"additionalProperties": false
}Create a practical career path from verified candidate experience, education and skills.
| Argument | Type | Description |
|---|---|---|
| targetRole | string | |
| horizonMonths | integer |
{
"type": "object",
"properties": {
"targetRole": {
"type": "string"
},
"horizonMonths": {
"type": "integer",
"maximum": 60,
"minimum": 3
}
},
"additionalProperties": false
}Company research from Jobiba data: profile, verified status, open jobs, anonymous moderated employee reviews (ratings, would-recommend), interview difficulty and published pay by role.
| Argument | Type | Description |
|---|---|---|
| company* | string | Company name. |
{
"type": "object",
"required": [
"company"
],
"properties": {
"company": {
"type": "string",
"description": "Company name."
}
},
"additionalProperties": false
}Creates a daily or weekly email alert for new matching jobs, sent to the candidate's Jobiba account address. Limit of 10 active alerts. Answers how many live jobs added in the last 7 days match it now and up to 3 of them (title, company, place, URL).
| Argument | Type | Description |
|---|---|---|
| jobType | string | Optional. |
| keyword* | string | Role or skills to watch. |
| currency | string | Currency for the salary filter. |
| location | string | City or country. |
| frequency | string | How often. |
| remoteType | string | Optional. |
| experienceLevel | string | Optional. |
| minAnnualSalary | number | Minimum annual salary. |
{
"type": "object",
"required": [
"keyword"
],
"properties": {
"jobType": {
"enum": [
"FULL_TIME",
"PART_TIME",
"CONTRACT",
"INTERNSHIP",
"FREELANCE",
"TEMPORARY"
],
"type": "string",
"description": "Optional."
},
"keyword": {
"type": "string",
"description": "Role or skills to watch."
},
"currency": {
"type": "string",
"maxLength": 3,
"minLength": 3,
"description": "Currency for the salary filter."
},
"location": {
"type": "string",
"description": "City or country."
},
"frequency": {
"enum": [
"DAILY",
"WEEKLY"
],
"type": "string",
"description": "How often."
},
"remoteType": {
"enum": [
"REMOTE",
"HYBRID",
"ONSITE"
],
"type": "string",
"description": "Optional."
},
"experienceLevel": {
"enum": [
"ENTRY_LEVEL",
"MID_LEVEL",
"SENIOR_LEVEL",
"DIRECTOR",
"EXECUTIVE"
],
"type": "string",
"description": "Optional."
},
"minAnnualSalary": {
"type": "number",
"minimum": 0,
"description": "Minimum annual salary."
}
},
"additionalProperties": false
}Turn off one alert by alertId.
| Argument | Type | Description |
|---|---|---|
| alertId* | string | Alert ID from list_job_alerts. |
{
"type": "object",
"required": [
"alertId"
],
"properties": {
"alertId": {
"type": "string",
"description": "Alert ID from list_job_alerts."
}
},
"additionalProperties": false
}Generate a truthful job-specific cover letter for review.
| Argument | Type | Description |
|---|---|---|
| tone | string | |
| jobId* | string |
{
"type": "object",
"required": [
"jobId"
],
"properties": {
"tone": {
"type": "string"
},
"jobId": {
"type": "string"
}
},
"additionalProperties": false
}Retrieve one active Jobiba vacancy by jobId or slug: sanitized full description, published salary, skills, location and canonical URL. Inactive or expired postings are not returned.
| Argument | Type | Description |
|---|---|---|
| slug | string | |
| jobId | string |
{
"type": "object",
"properties": {
"slug": {
"type": "string"
},
"jobId": {
"type": "string"
}
},
"additionalProperties": false
}Read the authenticated candidate profile using only career facts needed for job workflows.
No arguments.
{
"type": "object",
"properties": {},
"additionalProperties": false
}Fallback when you cannot read the CV yourself: Jobiba's rules parser reads pasted CV text (phone, place, links, notice period, work preference, summary, skills, roles, education, certifications, languages). Without apply=true it only returns a preview; with apply=true it fills empty fields and adds new list items without overwriting anything. Returns applied, kept and skipped fields (including roles found without dates).
| Argument | Type | Description |
|---|---|---|
| text* | string | Full CV text. |
| apply | boolean | true only after the user approved the preview. |
| replaceSummary | boolean |
{
"type": "object",
"required": [
"text"
],
"properties": {
"text": {
"type": "string",
"description": "Full CV text."
},
"apply": {
"type": "boolean",
"description": "true only after the user approved the preview."
},
"replaceSummary": {
"type": "boolean"
}
},
"additionalProperties": false
}Reads the CV file the user already uploaded to their Jobiba profile and fills the profile from it with the same rules as import_cv_text. Without apply=true it returns a preview only. If no CV file is on the profile it says so and points to the profile page.
| Argument | Type | Description |
|---|---|---|
| apply | boolean | true only after the user approved the preview. |
| replaceSummary | boolean |
{
"type": "object",
"properties": {
"apply": {
"type": "boolean",
"description": "true only after the user approved the preview."
},
"replaceSummary": {
"type": "boolean"
}
},
"additionalProperties": false
}Preferred way to fill the profile from a CV the user shared in chat: send the facts you read in the CV as typed fields. Without apply=true it returns a preview only. Empty profile fields are filled, lists only grow, nothing already on the profile is overwritten (the summary only with replaceSummary=true). With cvText every fact must appear in that text or it is skipped. A job without a start date is skipped and reported: ask the user for it, never guess. Date of birth, gender, marital status and pay are never accepted. The result lists applied, kept and skipped fields with reasons; tell the user exactly that.
| Argument | Type | Description |
|---|---|---|
| city | string | City (and region/country) where the user lives, as in the CV. |
| apply | boolean | true only after the user approved the preview. |
| phone | string | Phone number exactly as in the CV. |
| cvText | string | Optional plain text of the CV. When given, every fact is checked against it and facts not found are skipped. |
| skills | array | |
| address | string | Place line from the CV, e.g. 'Pune, Maharashtra, India'. No street address needed. |
| summary | string | Professional summary as written in the CV (or a faithful short version). |
Generate role-specific interview preparation without inventing candidate facts.
| Argument | Type | Description |
|---|---|---|
| focus | string | |
| jobId* | string | |
| questionCount | integer |
{
"type": "object",
"required": [
"jobId"
],
"properties": {
"focus": {
"type": "string"
},
"jobId": {
"type": "string"
},
"questionCount": {
"type": "integer"
}
},
"additionalProperties": false
}Scores the signed-in candidate's profile against an active Jobiba job using only profile and job facts, returning an indicative score, evidence confidence, matched skills, missing evidence and next actions. It is not a hiring prediction.
| Argument | Type | Description |
|---|---|---|
| jobId* | string |
{
"type": "object",
"required": [
"jobId"
],
"properties": {
"jobId": {
"type": "string"
}
},
"additionalProperties": false
}List the candidate's active job alerts.
No arguments.
{
"type": "object",
"properties": {},
"additionalProperties": false
}Read the authenticated candidate application tracker.
No arguments.
{
"type": "object",
"properties": {},
"additionalProperties": false
}List resumes owned by the authenticated candidate.
No arguments.
{
"type": "object",
"properties": {},
"additionalProperties": false
}List the candidate's saved jobs and whether each is still open.
| Argument | Type | Description |
|---|---|---|
| limit | integer | Max 50. |
{
"type": "object",
"properties": {
"limit": {
"type": "integer",
"maximum": 50,
"minimum": 1,
"description": "Max 50."
}
},
"additionalProperties": false
}Generate a role-specific mock interview plan and questions using verified candidate facts.
| Argument | Type | Description |
|---|---|---|
| focus | string | |
| jobId* | string | |
| questionCount | integer |
{
"type": "object",
"required": [
"jobId"
],
"properties": {
"focus": {
"type": "string"
},
"jobId": {
"type": "string"
},
"questionCount": {
"type": "integer",
"maximum": 15,
"minimum": 4
}
},
"additionalProperties": false
}Builds a reviewable application package for an active vacancy: evidence-based match, readiness gaps, a tailored saved resume (with keyword coverage and a change list) and a cover-letter draft. It does not submit anything or contact any employer.
| Argument | Type | Description |
|---|---|---|
| tone | string | |
| jobId* | string | |
| resumeId | string | |
| instructions | string |
{
"type": "object",
"required": [
"jobId"
],
"properties": {
"tone": {
"type": "string"
},
"jobId": {
"type": "string"
},
"resumeId": {
"type": "string"
},
"instructions": {
"type": "string"
}
},
"additionalProperties": false
}Analyze the candidate profile for missing, weak or inconsistent career information and return prioritized improvements without fabricating facts.
| Argument | Type | Description |
|---|---|---|
| targetRole | string |
{
"type": "object",
"properties": {
"targetRole": {
"type": "string"
}
},
"additionalProperties": false
}Scores the candidate profile out of 100 across 13 sections, lists the next improvements with points to gain, and reports whether recruiters can currently find the profile.
No arguments.
{
"type": "object",
"properties": {},
"additionalProperties": false
}Basic salary range from matching active Jobiba jobs. salary_research returns a fuller view (percentiles, trend, experience curve, skill premiums, cities). Not financial advice.
| Argument | Type | Description |
|---|---|---|
| query | string | |
| currency | string | |
| location | string |
{
"type": "object",
"properties": {
"query": {
"type": "string"
},
"currency": {
"type": "string"
},
"location": {
"type": "string"
}
},
"additionalProperties": false
}India pay calculators. mode 'ctc_to_in_hand' (needs annualCtc in INR) estimates monthly take-home with PF, gratuity and tax. mode 'hike' (needs currentSalary plus newSalary or hikePercent) shows the raise, real raise after inflation.
| Argument | Type | Description |
|---|---|---|
| mode* | string | Calculator. |
| annualCtc | number | Annual CTC in INR. |
| newSalary | number | New salary. |
| hikePercent | number | Hike %. |
| basicPercent | number | Basic pay as % of CTC (default 40). |
| currentSalary | number | Current salary. |
| inflationPercent | number | Inflation % for real-terms raise. |
| variablePayPercent | number | Variable pay % of CTC. |
{
"type": "object",
"required": [
"mode"
],
"properties": {
"mode": {
"enum": [
"ctc_to_in_hand",
"hike"
],
"type": "string",
"description": "Calculator."
},
"annualCtc": {
"type": "number",
"minimum": 0,
"description": "Annual CTC in INR."
},
"newSalary": {
"type": "number",
"minimum": 0,
"description": "New salary."
},
"hikePercent": {
"type": "number",
"minimum": 0,
"description": "Hike %."
},
"basicPercent": {
"type": "number",
"maximum": 100,
"minimum": 0,
"description": "Basic pay as % of CTC (default 40)."
},
"currentSalary": {
"type": "number",
"minimum": 0,
"description": "Current salary."
},
"inflationPercent": {
"type": "number",
"minimum": 0,
"description": "Inflation % for real-terms raise."
},
"variablePayPercent": {
"type": "number",
"maximum": 100,
"minimum": 0,
"description": "Variable pay % of CTC."
}
},
"additionalProperties": false
}Salary research for a role from published Jobiba salaries: market percentiles (p10-p90) with sample size and confidence, 3-year trend, pay by experience level, skills associated with higher pay, best-paying cities, live jobs that publish pay, and plain-language observations. Returns an explicit no-data result when samples are too few.
| Argument | Type | Description |
|---|---|---|
| role* | string | Role title, e.g. 'Product Manager'. |
| location | string | City or country (optional). |
| experienceLevel | string | Optional. |
{
"type": "object",
"required": [
"role"
],
"properties": {
"role": {
"type": "string",
"description": "Role title, e.g. 'Product Manager'."
},
"location": {
"type": "string",
"description": "City or country (optional)."
},
"experienceLevel": {
"enum": [
"ENTRY_LEVEL",
"MID_LEVEL",
"SENIOR_LEVEL",
"DIRECTOR",
"EXECUTIVE"
],
"type": "string",
"description": "Optional."
}
},
"additionalProperties": false
}Save an active job to the candidate's Jobiba saved list.
| Argument | Type | Description |
|---|---|---|
| jobId* | string | Jobiba job ID (the id field from search_jobs or list_my_jobs). |
{
"type": "object",
"required": [
"jobId"
],
"properties": {
"jobId": {
"type": "string",
"description": "Jobiba job ID (the id field from search_jobs or list_my_jobs)."
}
},
"additionalProperties": false
}Search active Jobiba vacancies by role or skill keywords, location, work mode, employment type, experience level and salary range (a salary range needs a currency and pay period). Returns job cards with title, company, location, published pay, skills, a description excerpt and URLs, with paging.
| Argument | Type | Description |
|---|---|---|
| sort | string | |
| limit | integer | |
| query | string | Role, skill phrase or natural-language keywords; multiple terms are supported. |
| offset | integer | |
| jobType | string | |
| location | string | City, state, country or supported location query. |
| salaryMax | number | |
| salaryMin | number | |
| remoteType | string | |
| salaryPeriod | string |
Compare a public Jobiba job skills list with the candidate profile.
| Argument | Type | Description |
|---|---|---|
| jobId* | string |
{
"type": "object",
"required": [
"jobId"
],
"properties": {
"jobId": {
"type": "string"
}
},
"additionalProperties": false
}Lists skills most requested by live jobs for a target role that are not on the profile, with demand percentage and pay premium. Suggestions reflect job listings, not the candidate's abilities.
| Argument | Type | Description |
|---|---|---|
| targetRole | string | Role to target (defaults to the profile's first target role). |
{
"type": "object",
"properties": {
"targetRole": {
"type": "string",
"description": "Role to target (defaults to the profile's first target role)."
}
},
"additionalProperties": false
}Creates a new saved CV optimised for one job: the summary and experience bullets are reworded in the job's language without adding employers, titles, dates, tools, skills or numbers that are not already in the CV, and relevant skills move first. Returns keyword coverage before and after, the exact changes, and job keywords the CV does not evidence. Skills the user confirms are passed as confirmedSkills.
| Argument | Type | Description |
|---|---|---|
| jobId* | string | Jobiba job ID (the id field from search_jobs or list_my_jobs). |
| resumeId | string | Base resume to tailor (defaults to the latest, or built from the profile). |
| template | string | Optional resume template. |
| instructions | string | Optional user preferences, e.g. 'keep it to one page'. |
| confirmedSkills | array | Skills the user confirmed they genuinely have. |
{
"type": "object",
"required": [
"jobId"
],
"properties": {
"jobId": {
"type": "string",
"description": "Jobiba job ID (the id field from search_jobs or list_my_jobs)."
},
"resumeId": {
"type": "string",
"description": "Base resume to tailor (defaults to the latest, or built from the profile)."
},
"template": {
"type": "string",
"description": "Optional resume template."
},
"instructions": {
"type": "string",
"description": "Optional user preferences, e.g. 'keep it to one page'."
},
"confirmedSkills": {
"type": "array",
"items": {
"type": "string"
},
"description": "Skills the user confirmed they genuinely have."
}
},
"additionalProperties": false
}Remove a job from the saved list.
| Argument | Type | Description |
|---|---|---|
| jobId* | string | Jobiba job ID (the id field from search_jobs or list_my_jobs). |
{
"type": "object",
"required": [
"jobId"
],
"properties": {
"jobId": {
"type": "string",
"description": "Jobiba job ID (the id field from search_jobs or list_my_jobs)."
}
},
"additionalProperties": false
}Change one of the user's own job alerts by alertId: pause or resume it, daily or weekly, its location, and its filters (work mode, job type, level, minimum annual pay + currency). Send only the fields to change; an empty string clears a filter or the location. Answers the alert as stored, how many live jobs added in the last 7 days match it now and up to 3 of them.
| Argument | Type | Description |
|---|---|---|
| paused | boolean | true = pause, false = resume. |
| alertId* | string | Alert ID from list_job_alerts. |
| jobType | string | Job type. |
| currency | string | Currency for the salary filter. |
| location | string | City, region or country; empty = no place. |
| frequency | string | How often. |
| remoteType | string | Work mode. |
| experienceLevel | string | Level. |
| minAnnualSalary | number |
Change fields the user asked to change. Every value is validated (phone, https links, work preference Remote/Hybrid/On-site, visibility). A list you send may only add entries: if it leaves out entries already on the profile nothing is saved, unless replaceLists is true because the user asked to replace that whole list; use add_profile_items to add. An empty string or null clears a text field. Open to work is never confirmed from chat (only the Career Profile toggle confirms it). Date of birth, gender, marital status, pay, coordinates and WhatsApp settings are not accepted. Returns applied, kept and skipped fields with reasons.
| Argument | Type | Description |
|---|---|---|
| bio | string | |
| phone | string | |
| skills | array | |
| address | string | City / region / country line. |
| education | array | |
| githubUrl | string | null | |
| languages | array | |
| experience | array | |
| openToWork |
We read every tool's name, description and inputs the way the model will, looking for instructions hidden from you. A clean result means no warning signs, not a guarantee. Scanned Nov 13, 2026.
| education | array |
| githubUrl | string | GitHub profile link from the CV. |
| languages | array |
| experience | array |
| linkedinUrl | string | LinkedIn profile link from the CV. |
| noticePeriod | string | Notice period as stated, e.g. '30 days'. |
| portfolioUrl | string | Portfolio / personal site link from the CV. |
| certifications | array |
| replaceSummary | boolean | true only when the user asked to replace their current summary. |
| workPreference | string | Only if the CV states it. |
| interestedRoles | array | Roles the user wants next (job titles only). |
| interestedCities | array |
{
"type": "object",
"properties": {
"city": {
"type": "string",
"description": "City (and region/country) where the user lives, as in the CV."
},
"apply": {
"type": "boolean",
"description": "true only after the user approved the preview."
},
"phone": {
"type": "string",
"description": "Phone number exactly as in the CV."
},
"cvText": {
"type": "string",
"description": "Optional plain text of the CV. When given, every fact is checked against it and facts not found are skipped."
},
"skills": {
"type": "array",
"items": {
"type": "string"
}
},
"address": {
"type": "string",
"description": "Place line from the CV, e.g. 'Pune, Maharashtra, India'. No street address needed."
},
"summary": {
"type": "string",
"description": "Professional summary as written in the CV (or a faithful short version)."
},
"education": {
"type": "array",
"items": {
"type": "object",
"required": [
"degree"
],
"properties": {
"field": {
"type": "string"
},
"grade": {
"type": "string"
},
"degree": {
"type": "string"
},
"endDate": {
"type": "string"
},
"startDate": {
"type": "string"
},
"institution": {
"type": "string"
}
},
"additionalProperties": false
}
},
"githubUrl": {
"type": "string",
"description": "GitHub profile link from the CV."
},
"languages": {
"type": "array",
"items": {
"type": "string"
}
},
"experience": {
"type": "array",
"items": {
"type": "object",
"required": [
"company",
"title"
],
"properties": {
"title": {
"type": "string"
},
"company": {
"type": "string"
},
"endDate": {
"type": "string"
},
"isCurrent": {
"type": "boolean"
},
"startDate": {
"type": "string",
"description": "e.g. 2021-06 or 2021. Leave out when unknown (never guess); the entry is then reported back."
},
"skillsUsed": {
"type": "array",
"items": {
"type": "string"
}
},
"description": {
"type": "string"
},
"responsibilities": {
"type": "array",
"items": {
"type": "string"
}
}
},
"additionalProperties": false
}
},
"linkedinUrl": {
"type": "string",
"description": "LinkedIn profile link from the CV."
},
"noticePeriod": {
"type": "string",
"description": "Notice period as stated, e.g. '30 days'."
},
"portfolioUrl": {
"type": "string",
"description": "Portfolio / personal site link from the CV."
},
"certifications": {
"type": "array",
"items": {
"type": "object",
"required": [
"name"
],
"properties": {
"name": {
"type": "string"
},
"year": {
"type": "string"
},
"issuer": {
"type": "string"
}
},
"additionalProperties": false
}
},
"replaceSummary": {
"type": "boolean",
"description": "true only when the user asked to replace their current summary."
},
"workPreference": {
"enum": [
"Remote",
"Hybrid",
"On-site"
],
"type": "string",
"description": "Only if the CV states it."
},
"interestedRoles": {
"type": "array",
"items": {
"type": "string"
},
"description": "Roles the user wants next (job titles only)."
},
"interestedCities": {
"type": "array",
"items": {
"type": "string"
}
}
},
"additionalProperties": false
}| Pay period used with salaryMin or salaryMax; required together with currency for an accurate range. |
| salaryCurrency | string | Currency used with salaryMin or salaryMax. |
| experienceLevel | string |
{
"type": "object",
"properties": {
"sort": {
"enum": [
"relevance",
"newest"
],
"type": "string"
},
"limit": {
"type": "integer",
"maximum": 20,
"minimum": 1
},
"query": {
"type": "string",
"description": "Role, skill phrase or natural-language keywords; multiple terms are supported."
},
"offset": {
"type": "integer",
"maximum": 200,
"minimum": 0
},
"jobType": {
"enum": [
"FULL_TIME",
"PART_TIME",
"CONTRACT",
"INTERNSHIP",
"FREELANCE",
"TEMPORARY"
],
"type": "string"
},
"location": {
"type": "string",
"description": "City, state, country or supported location query."
},
"salaryMax": {
"type": "number",
"minimum": 0
},
"salaryMin": {
"type": "number",
"minimum": 0
},
"remoteType": {
"enum": [
"REMOTE",
"HYBRID",
"ONSITE"
],
"type": "string"
},
"salaryPeriod": {
"enum": [
"YEAR",
"MONTH",
"WEEK",
"DAY",
"HOUR"
],
"type": "string",
"description": "Pay period used with salaryMin or salaryMax; required together with currency for an accurate range."
},
"salaryCurrency": {
"type": "string",
"maxLength": 3,
"minLength": 3,
"description": "Currency used with salaryMin or salaryMax."
},
"experienceLevel": {
"enum": [
"ENTRY_LEVEL",
"MID_LEVEL",
"SENIOR_LEVEL",
"DIRECTOR",
"EXECUTIVE"
],
"type": "string"
}
},
"additionalProperties": false
}| Minimum annual salary. |
{
"type": "object",
"required": [
"alertId"
],
"properties": {
"paused": {
"type": "boolean",
"description": "true = pause, false = resume."
},
"alertId": {
"type": "string",
"description": "Alert ID from list_job_alerts."
},
"jobType": {
"enum": [
"FULL_TIME",
"PART_TIME",
"CONTRACT",
"INTERNSHIP",
"FREELANCE",
"TEMPORARY"
],
"type": "string",
"description": "Job type."
},
"currency": {
"type": "string",
"maxLength": 3,
"minLength": 3,
"description": "Currency for the salary filter."
},
"location": {
"type": "string",
"description": "City, region or country; empty = no place."
},
"frequency": {
"enum": [
"DAILY",
"WEEKLY"
],
"type": "string",
"description": "How often."
},
"remoteType": {
"enum": [
"REMOTE",
"HYBRID",
"ONSITE"
],
"type": "string",
"description": "Work mode."
},
"experienceLevel": {
"enum": [
"ENTRY_LEVEL",
"MID_LEVEL",
"SENIOR_LEVEL",
"DIRECTOR",
"EXECUTIVE"
],
"type": "string",
"description": "Level."
},
"minAnnualSalary": {
"type": "number",
"minimum": 0,
"description": "Minimum annual salary."
}
},
"additionalProperties": false
}| boolean |
| linkedinUrl | string | null |
| noticePeriod | string |
| openToRemote | boolean |
| portfolioUrl | string | null |
| replaceLists | boolean | true only when the user asked to replace a whole list. |
| certifications | array |
| workPreference | string |
| interestedRoles | array |
| interestedCities | array |
| profileVisibility | string |
| freelancerAvailable | boolean |
{
"type": "object",
"properties": {
"bio": {
"type": "string"
},
"phone": {
"type": "string"
},
"skills": {
"type": "array",
"items": {
"type": "string"
}
},
"address": {
"type": "string",
"description": "City / region / country line."
},
"education": {
"type": "array",
"items": {
"type": "object",
"required": [
"degree"
],
"properties": {
"field": {
"type": "string"
},
"grade": {
"type": "string"
},
"degree": {
"type": "string"
},
"endDate": {
"type": "string"
},
"startDate": {
"type": "string"
},
"institution": {
"type": "string"
}
},
"additionalProperties": false
}
},
"githubUrl": {
"type": [
"string",
"null"
]
},
"languages": {
"type": "array",
"items": {
"type": "string"
}
},
"experience": {
"type": "array",
"items": {
"type": "object",
"required": [
"company",
"title"
],
"properties": {
"title": {
"type": "string"
},
"company": {
"type": "string"
},
"endDate": {
"type": "string"
},
"isCurrent": {
"type": "boolean"
},
"startDate": {
"type": "string",
"description": "e.g. 2021-06 or 2021. Leave out when unknown (never guess); the entry is then reported back."
},
"skillsUsed": {
"type": "array",
"items": {
"type": "string"
}
},
"description": {
"type": "string"
},
"responsibilities": {
"type": "array",
"items": {
"type": "string"
}
}
},
"additionalProperties": false
}
},
"openToWork": {
"type": "boolean"
},
"linkedinUrl": {
"type": [
"string",
"null"
]
},
"noticePeriod": {
"type": "string"
},
"openToRemote": {
"type": "boolean"
},
"portfolioUrl": {
"type": [
"string",
"null"
]
},
"replaceLists": {
"type": "boolean",
"description": "true only when the user asked to replace a whole list."
},
"certifications": {
"type": "array",
"items": {
"type": "object",
"required": [
"name"
],
"properties": {
"name": {
"type": "string"
},
"year": {
"type": "string"
},
"issuer": {
"type": "string"
}
},
"additionalProperties": false
}
},
"workPreference": {
"enum": [
"Remote",
"Hybrid",
"On-site"
],
"type": "string"
},
"interestedRoles": {
"type": "array",
"items": {
"type": "string"
}
},
"interestedCities": {
"type": "array",
"items": {
"type": "string"
}
},
"profileVisibility": {
"enum": [
"PUBLIC",
"EMPLOYERS_ONLY",
"PRIVATE"
],
"type": "string"
},
"freelancerAvailable": {
"type": "boolean"
}
},
"additionalProperties": false
}