Jobherder job search
Paid job search: 7 matched roles, each with a tailored CV and cover letter.
¿Debería usar esto?
Calidad y seguridad
Basado en el análisis automatizado de las definiciones de herramientas y el cumplimiento del protocolo.
Costo de contexto
Este es el número aproximado de tokens que se consumen cada vez que las herramientas del servidor se cargan en el contexto de un modelo. Los recuentos más altos reducen la atención disponible para otras tareas.
Instalar
Instalación con un clic
Agrega esto a tu archivo `claude_desktop_config.json`:
{
"mcpServers": {
"job-search": {
"url": "https://jobherder.com/mcp"
}
}
}Puntos de conexión remotos
https://jobherder.com/mcpstreamable-httpQué puede hacer
Inventario de herramientas
Herramientas (5)
🟢get_pricing
What a Jobherder search costs and how to pay for it, in card and stablecoin terms. No auth required.
Esquema de entrada
{
"type": "object",
"properties": {},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}Esquema de salida
{
"type": "object",
"properties": {
"service": {
"type": "string",
"description": "Service name"
},
"products": {
"type": "array",
"items": {
"type": "object",
"properties": {
"tool": {
"type": "string",
"description": "Which tool buys this product"
},
"unit": {
"type": "string",
"description": "What one purchase delivers"
},
"price": {
"type": "string",
"description": "Human-readable price"
},
"typical_time": {
"type": "string",
"description": "How long delivery usually takes"
}
},
"required": [
"tool",
"unit",
"price",
"typical_time"
],
"additionalProperties": false
},
"description": "The two things Jobherder sells"
},
"packs": {
"type": "array",
"items": {
"type": "object",
"properties": {
"pack": {
"type": "string",
"description": "Pack code to pass to checkout or to pay for over x402"
},
"credits": {
"type": "number",
"description": "How many runs the pack buys"
},
"price": {
"type": "string",
"description": "Human-readable price"
},
"buys": {
"type": "string",
"description": "Which product these credits are valid for: search or quick"
},
"description": {
"type": "string"
}
},
"required": [
"pack",
"credits",
"price",
"buys",
"description"
],
"additionalProperties": false
},
"description": "Buyable credit packs"
},
"credits_are_per_product": {
"type": "boolean",
"description": "Always true: a quick credit cannot pay for a full search"
},
"card_checkout": {
"type": "string",
"description": "URL for card payment"
},
"x402": {
"anyOf": [
{
"type": "object",
"properties": {
"network": {
"type": "string",
"description": "Chain the payment settles on"
},
"asset": {
"type": "string",
"description": "Token accepted, USDC"
},
"pay_to": {
"type": "string",
"description": "Receiving address"
},
"prices": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"type": "string"
},
"description": "Pack code to atomic USDC amount"
},
"how": {
"type": "string",
"description": "How to complete the payment loop"
}
},
"required": [
"network",
"asset",
"pay_to",
"prices",
"how"
],
"additionalProperties": false
},
{
"type": "null"
}
],
"description": "Stablecoin payment terms, null if x402 is not configured"
},
"free_searches": {
"type": "boolean",
"description": "Always false: registration grants no credits"
}
},
"required": [
"service",
"products",
"packs",
"credits_are_per_product",
"card_checkout",
"x402",
"free_searches"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}🟡register_agent(email, name)
Create an agent identity and receive an API key. Registration is free and includes no free searches.
Esquema de entrada
{
"type": "object",
"properties": {
"email": {
"type": "string",
"description": "Email that will own the account and receive results. Must be the job seeker's own address, and must match cfg_email on every later search"
},
"name": {
"description": "Display name for the account. Optional; the profile name is used on documents regardless",
"type": "string"
}
},
"required": [
"email"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}Esquema de salida
{
"type": "object",
"properties": {
"api_key": {
"description": "Bearer token for every later call. Shown once and never again",
"type": "string"
},
"email": {
"description": "The address the account is registered to",
"type": "string"
},
"note": {
"type": "string"
},
"next": {
"description": "Suggested next call",
"type": "string"
},
"message": {
"description": "What to do about the error, when one is present",
"type": "string"
},
"owner_action_url": {
"description": "Present only on account_owned_by_human. A person already owns this address, so no key can be issued here. Send them to this page to create one and paste it back",
"type": "string"
},
"error": {
"description": "Present only on failure, e.g. \"unauthorized\" or \"payment_required\"",
"type": "string"
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}🟢start_job_search(profile, cv_json, cv_base64, cv_type)
Spend one credit to run a full search: 7 roles matched to the profile, each with a tailored CV and cover letter returned as markdown by get_search_status and emailed as PDFs. Requires an API key. With no credit left it returns an x402 PaymentRequired; retry the same call with the signed payment in _meta["x402/payment"] to pay in USDC and run immediately.
Esquema de entrada
{
"type": "object",
"properties": {
"profile": {
"type": "object",
"properties": {
"cfg_name": {
"type": "string",
"description": "Full name of the job seeker, as it should appear on the tailored CV"
},
"cfg_email": {
"type": "string",
"description": "Must match the email the API key is registered to. Results are emailed here as well as returned by get_search_status"
},
"cfg_location": {
"type": "string",
"description": "Where the job seeker actually lives, e.g. \"Limassol, Cyprus\". Used for commute and time zone reasoning, not as a filter on its own"
},
"cfg_location_preference": {
"type": "string",
"description": "Prose description of acceptable locations, e.g. \"anywhere remote in Europe, or on-site in Berlin\". Free text; matching reads it as intent rather than parsing it"
},
"cfg_work_style": {
"type": "string",
"enum": [
"remote_only",
"mix"
],
"description": "remote_only rejects anything requiring office attendance; mix means local or hybrid near the candidate plus remote in the chosen regions"
},
"cfg_want_remote_eu": {
"type": "string",
"enum": [
"yes",
"no"
],
"description": "Include roles advertised as remote within the EU. Set independently of the other regions; several can be yes"
},
"cfg_want_remote_uk": {
"type": "string",
"enum": [
"yes",
"no"
],
"description": "Include roles advertised as remote within the UK"
},
"cfg_want_usa": {
"type": "string",
"enum": [
"yes",
"no"
],
"description": "Include roles in the USA. Say no unless the job seeker can legally work there or the role is genuinely remote-worldwide"
},
"cfg_languages": {
"default": [
"english"
],
"description": "Working languages, lower case, e.g. [\"english\", \"german\"]. Roles requiring a language not listed here are dropped",
"type": "array",
"items": {
"type": "string"
}
},
"cfg_seniority_level": {
"type": "string",
"description": "Seniority band as a single label or a contiguous range, e.g. \"Director\" or \"Manager – Head of Department\". Not a free-text mix of titles and industries"
},
"cfg_target_titles": {
"type": "string",
"description": "Comma-separated target job titles, e.g. \"Head of Production, COO, Product Director\""
},
"cfg_local_country": {
"type": "string",
"description": "ISO country name for where they live, e.g. \"Germany\". Required so local vs remote gating does not guess from a free-text city line"
},
"cfg_uk_onsite": {
"default": "no",
"description": "Also include on-site roles in the UK. Defaults to no; UK remote is a separate flag",
"type": "string",
"enum": [
"yes",
"no"
]
},
"cfg_industries": {
"type": "string",
"description": "Comma-separated sectors of interest, e.g. \"Music, Fintech, Healthcare\". Sectors only — job functions go in cfg_target_titles"
},
"cfg_not_interested_in": {
"default": "",
"description": "Comma-separated industries or employer types to exclude, e.g. \"gambling, defence\". Applied as a hard filter",
"type": "string"
},
"cfg_advisory_open": {
"default": "yes",
"description": "Whether to include advisory, fractional, board and consulting roles alongside employment",
"type": "string",
"enum": [
"yes",
"no"
]
},
"cfg_additional_context": {
"default": "",
"description": "Anything else that shapes the search and is not covered by the other fields: visa position, notice period, salary floor, companies to avoid",
"type": "string"
},
"cfg_share_with_employers": {
"default": "no",
"description": "Consent to share the profile with employers. \"no\" keeps the search entirely one-way",
"type": "string",
"enum": [
"yes",
"no"
]
}
},
"required": [
"cfg_name",
"cfg_email",
"cfg_location",
"cfg_location_preference",
"cfg_work_style",
"cfg_want_remote_eu",
"cfg_want_remote_uk",
"cfg_want_usa",
"cfg_seniority_level",
"cfg_target_titles",
"cfg_local_country",
"cfg_industries"
],
"description": "Who the job seeker is and what they want. Every field shapes matching, so guessing is worse than asking"
},
"cv_json": {
"description": "The job seeker's existing CV as structured data, in the JSON Resume schema (jsonresume.org): basics, work, education, skills. Prefer this when you hold the CV as data — you do not need to render a file. Supply either cv_json or cv_base64",
"type": "object",
"properties": {
"basics": {
"type": "object",
"properties": {
"name": {
"type": "string",
"maxLength": 120
},
"label": {
"type": "string",
"maxLength": 200
},
"email": {
"type": "string",
"maxLength": 200
},
"phone": {
"type": "string",
"maxLength": 60
},
"url": {
"type": "string",
"maxLength": 300
},
"summary": {
"type": "string",
"maxLength": 4000
},
"location": {
"type": "object",
"properties": {
"address": {
"type": "string",
"maxLength": 200
},
"postalCode": {
"type": "string",
"maxLength": 30
},
"city": {
"type": "string",
"maxLength": 120
},
"region": {
"type": "string",
"maxLength": 120
},
"countryCode": {
"type": "string",
"maxLength": 10
}
}
},
"profiles": {
"maxItems": 20,
"type": "array",
"items": {
"type": "object",
"properties": {
"network": {
"type": "string",
"maxLength": 80
},
"username": {
"type": "string",
"maxLength": 120
},
"url": {
"type": "string",
"maxLength": 300
}
}
}
}
}
},
"work": {
"maxItems": 40,
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"maxLength": 200
},
"company": {
"type": "string",
"maxLength": 200
},
"position": {
"type": "string",
"maxLength": 200
},
"location": {
"type": "string",
"maxLength": 200
},
"url": {
"type": "string",
"maxLength": 300
},
"startDate": {
"type": "string",
"maxLength": 40
},
"endDate": {
"type": "string",
"maxLength": 40
},
"summary": {
"type": "string",
"maxLength": 3000
},
"highlights": {
"maxItems": 50,
"type": "array",
"items": {
"type": "string",
"maxLength": 2000
}
}
}
}
},
"volunteer": {
"maxItems": 20,
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"maxLength": 200
},
"company": {
"type": "string",
"maxLength": 200
},
"position": {
"type": "string",
"maxLength": 200
},
"location": {
"type": "string",
"maxLength": 200
},
"url": {
"type": "string",
"maxLength": 300
},
"startDate": {
"type": "string",
"maxLength": 40
},
"endDate": {
"type": "string",
"maxLength": 40
},
"summary": {
"type": "string",
"maxLength": 3000
},
"highlights": {
"maxItems": 50,
"type": "array",
"items": {
"type": "string",
"maxLength": 2000
}
}
}
}
},
"education": {
"maxItems": 20,
"type": "array",
"items": {
"type": "object",
"properties": {
"institution": {
"type": "string",
"maxLength": 200
},
"area": {
"type": "string",
"maxLength": 200
},
"studyType": {
"type": "string",
"maxLength": 100
},
"startDate": {
"type": "string",
"maxLength": 40
},
"endDate": {
"type": "string",
"maxLength": 40
},
"score": {
"type": "string",
"maxLength": 60
},
"courses": {
"maxItems": 50,
"type": "array",
"items": {
"type": "string",
"maxLength": 2000
}
}
}
}
},
"skills": {
"maxItems": 40,
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"maxLength": 120
},
"level": {
"type": "string",
"maxLength": 60
},
"keywords": {
"maxItems": 60,
"type": "array",
"items": {
"type": "string",
"maxLength": 80
}
}
}
}
},
"languages": {
"maxItems": 20,
"type": "array",
"items": {
"type": "object",
"properties": {
"language": {
"type": "string",
"maxLength": 80
},
"fluency": {
"type": "string",
"maxLength": 80
}
}
}
},
"certificates": {
"maxItems": 30,
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"maxLength": 200
},
"issuer": {
"type": "string",
"maxLength": 200
},
"date": {
"type": "string",
"maxLength": 40
}
}
}
},
"awards": {
"maxItems": 30,
"type": "array",
"items": {
"type": "object",
"properties": {
"title": {
"type": "string",
"maxLength": 200
},
"awarder": {
"type": "string",
"maxLength": 200
},
"date": {
"type": "string",
"maxLength": 40
},
"summary": {
"type": "string",
"maxLength": 1000
}
}
}
},
"publications": {
"maxItems": 30,
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"maxLength": 300
},
"publisher": {
"type": "string",
"maxLength": 200
},
"releaseDate": {
"type": "string",
"maxLength": 40
},
"summary": {
"type": "string",
"maxLength": 1000
}
}
}
},
"projects": {
"maxItems": 30,
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"maxLength": 200
},
"description": {
"type": "string",
"maxLength": 3000
},
"url": {
"type": "string",
"maxLength": 300
},
"startDate": {
"type": "string",
"maxLength": 40
},
"endDate": {
"type": "string",
"maxLength": 40
},
"highlights": {
"maxItems": 50,
"type": "array",
"items": {
"type": "string",
"maxLength": 2000
}
},
"keywords": {
"maxItems": 50,
"type": "array",
"items": {
"type": "string",
"maxLength": 80
}
}
}
}
},
"interests": {
"maxItems": 20,
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"maxLength": 120
},
"keywords": {
"maxItems": 30,
"type": "array",
"items": {
"type": "string",
"maxLength": 80
}
}
}
}
}
}
},
"cv_base64": {
"description": "The job seeker's existing CV as a file, base64 encoded. PDF, DOCX or plain text, up to 10MB. Use cv_json instead if you have the CV as data rather than a file",
"type": "string"
},
"cv_type": {
"description": "Format of cv_base64: \"pdf\", \"docx\" or \"txt\". Ignored when cv_json is supplied",
"type": "string"
}
},
"required": [
"profile"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}Esquema de salida
{
"type": "object",
"properties": {
"run_id": {
"description": "Pass this to get_search_status to poll",
"type": "string"
},
"status": {
"description": "Run state at the moment of starting, normally \"running\"",
"type": "string"
},
"credits_remaining": {
"description": "Credits left for this product after the spend",
"type": "number"
},
"message": {
"description": "What happens next and roughly when, or what to do about the error",
"type": "string"
},
"error": {
"description": "Present only on failure, e.g. \"unauthorized\" or \"payment_required\"",
"type": "string"
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}🟢quick_job_search(profile, cv_json, cv_base64, cv_type)
The single best current role for a profile, with a tailored CV and cover letter, in minutes rather than an hour. $2.50 in USDC. Use this when you want one answer fast; use start_job_search when you want a shortlist of 7 to choose from. With no credit it returns an x402 PaymentRequired; retry the same call with the signed payment in _meta["x402/payment"].
Esquema de entrada
{
"type": "object",
"properties": {
"profile": {
"type": "object",
"properties": {
"cfg_name": {
"type": "string",
"description": "Full name of the job seeker, as it should appear on the tailored CV"
},
"cfg_email": {
"type": "string",
"description": "Must match the email the API key is registered to. Results are emailed here as well as returned by get_search_status"
},
"cfg_location": {
"type": "string",
"description": "Where the job seeker actually lives, e.g. \"Limassol, Cyprus\". Used for commute and time zone reasoning, not as a filter on its own"
},
"cfg_location_preference": {
"type": "string",
"description": "Prose description of acceptable locations, e.g. \"anywhere remote in Europe, or on-site in Berlin\". Free text; matching reads it as intent rather than parsing it"
},
"cfg_work_style": {
"type": "string",
"enum": [
"remote_only",
"mix"
],
"description": "remote_only rejects anything requiring office attendance; mix means local or hybrid near the candidate plus remote in the chosen regions"
},
"cfg_want_remote_eu": {
"type": "string",
"enum": [
"yes",
"no"
],
"description": "Include roles advertised as remote within the EU. Set independently of the other regions; several can be yes"
},
"cfg_want_remote_uk": {
"type": "string",
"enum": [
"yes",
"no"
],
"description": "Include roles advertised as remote within the UK"
},
"cfg_want_usa": {
"type": "string",
"enum": [
"yes",
"no"
],
"description": "Include roles in the USA. Say no unless the job seeker can legally work there or the role is genuinely remote-worldwide"
},
"cfg_languages": {
"default": [
"english"
],
"description": "Working languages, lower case, e.g. [\"english\", \"german\"]. Roles requiring a language not listed here are dropped",
"type": "array",
"items": {
"type": "string"
}
},
"cfg_seniority_level": {
"type": "string",
"description": "Seniority band as a single label or a contiguous range, e.g. \"Director\" or \"Manager – Head of Department\". Not a free-text mix of titles and industries"
},
"cfg_target_titles": {
"type": "string",
"description": "Comma-separated target job titles, e.g. \"Head of Production, COO, Product Director\""
},
"cfg_local_country": {
"type": "string",
"description": "ISO country name for where they live, e.g. \"Germany\". Required so local vs remote gating does not guess from a free-text city line"
},
"cfg_uk_onsite": {
"default": "no",
"description": "Also include on-site roles in the UK. Defaults to no; UK remote is a separate flag",
"type": "string",
"enum": [
"yes",
"no"
]
},
"cfg_industries": {
"type": "string",
"description": "Comma-separated sectors of interest, e.g. \"Music, Fintech, Healthcare\". Sectors only — job functions go in cfg_target_titles"
},
"cfg_not_interested_in": {
"default": "",
"description": "Comma-separated industries or employer types to exclude, e.g. \"gambling, defence\". Applied as a hard filter",
"type": "string"
},
"cfg_advisory_open": {
"default": "yes",
"description": "Whether to include advisory, fractional, board and consulting roles alongside employment",
"type": "string",
"enum": [
"yes",
"no"
]
},
"cfg_additional_context": {
"default": "",
"description": "Anything else that shapes the search and is not covered by the other fields: visa position, notice period, salary floor, companies to avoid",
"type": "string"
},
"cfg_share_with_employers": {
"default": "no",
"description": "Consent to share the profile with employers. \"no\" keeps the search entirely one-way",
"type": "string",
"enum": [
"yes",
"no"
]
}
},
"required": [
"cfg_name",
"cfg_email",
"cfg_location",
"cfg_location_preference",
"cfg_work_style",
"cfg_want_remote_eu",
"cfg_want_remote_uk",
"cfg_want_usa",
"cfg_seniority_level",
"cfg_target_titles",
"cfg_local_country",
"cfg_industries"
],
"description": "Who the job seeker is and what they want. Every field shapes matching, so guessing is worse than asking"
},
"cv_json": {
"description": "The job seeker's existing CV as structured data, in the JSON Resume schema (jsonresume.org): basics, work, education, skills. Prefer this when you hold the CV as data — you do not need to render a file. Supply either cv_json or cv_base64",
"type": "object",
"properties": {
"basics": {
"type": "object",
"properties": {
"name": {
"type": "string",
"maxLength": 120
},
"label": {
"type": "string",
"maxLength": 200
},
"email": {
"type": "string",
"maxLength": 200
},
"phone": {
"type": "string",
"maxLength": 60
},
"url": {
"type": "string",
"maxLength": 300
},
"summary": {
"type": "string",
"maxLength": 4000
},
"location": {
"type": "object",
"properties": {
"address": {
"type": "string",
"maxLength": 200
},
"postalCode": {
"type": "string",
"maxLength": 30
},
"city": {
"type": "string",
"maxLength": 120
},
"region": {
"type": "string",
"maxLength": 120
},
"countryCode": {
"type": "string",
"maxLength": 10
}
}
},
"profiles": {
"maxItems": 20,
"type": "array",
"items": {
"type": "object",
"properties": {
"network": {
"type": "string",
"maxLength": 80
},
"username": {
"type": "string",
"maxLength": 120
},
"url": {
"type": "string",
"maxLength": 300
}
}
}
}
}
},
"work": {
"maxItems": 40,
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"maxLength": 200
},
"company": {
"type": "string",
"maxLength": 200
},
"position": {
"type": "string",
"maxLength": 200
},
"location": {
"type": "string",
"maxLength": 200
},
"url": {
"type": "string",
"maxLength": 300
},
"startDate": {
"type": "string",
"maxLength": 40
},
"endDate": {
"type": "string",
"maxLength": 40
},
"summary": {
"type": "string",
"maxLength": 3000
},
"highlights": {
"maxItems": 50,
"type": "array",
"items": {
"type": "string",
"maxLength": 2000
}
}
}
}
},
"volunteer": {
"maxItems": 20,
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"maxLength": 200
},
"company": {
"type": "string",
"maxLength": 200
},
"position": {
"type": "string",
"maxLength": 200
},
"location": {
"type": "string",
"maxLength": 200
},
"url": {
"type": "string",
"maxLength": 300
},
"startDate": {
"type": "string",
"maxLength": 40
},
"endDate": {
"type": "string",
"maxLength": 40
},
"summary": {
"type": "string",
"maxLength": 3000
},
"highlights": {
"maxItems": 50,
"type": "array",
"items": {
"type": "string",
"maxLength": 2000
}
}
}
}
},
"education": {
"maxItems": 20,
"type": "array",
"items": {
"type": "object",
"properties": {
"institution": {
"type": "string",
"maxLength": 200
},
"area": {
"type": "string",
"maxLength": 200
},
"studyType": {
"type": "string",
"maxLength": 100
},
"startDate": {
"type": "string",
"maxLength": 40
},
"endDate": {
"type": "string",
"maxLength": 40
},
"score": {
"type": "string",
"maxLength": 60
},
"courses": {
"maxItems": 50,
"type": "array",
"items": {
"type": "string",
"maxLength": 2000
}
}
}
}
},
"skills": {
"maxItems": 40,
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"maxLength": 120
},
"level": {
"type": "string",
"maxLength": 60
},
"keywords": {
"maxItems": 60,
"type": "array",
"items": {
"type": "string",
"maxLength": 80
}
}
}
}
},
"languages": {
"maxItems": 20,
"type": "array",
"items": {
"type": "object",
"properties": {
"language": {
"type": "string",
"maxLength": 80
},
"fluency": {
"type": "string",
"maxLength": 80
}
}
}
},
"certificates": {
"maxItems": 30,
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"maxLength": 200
},
"issuer": {
"type": "string",
"maxLength": 200
},
"date": {
"type": "string",
"maxLength": 40
}
}
}
},
"awards": {
"maxItems": 30,
"type": "array",
"items": {
"type": "object",
"properties": {
"title": {
"type": "string",
"maxLength": 200
},
"awarder": {
"type": "string",
"maxLength": 200
},
"date": {
"type": "string",
"maxLength": 40
},
"summary": {
"type": "string",
"maxLength": 1000
}
}
}
},
"publications": {
"maxItems": 30,
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"maxLength": 300
},
"publisher": {
"type": "string",
"maxLength": 200
},
"releaseDate": {
"type": "string",
"maxLength": 40
},
"summary": {
"type": "string",
"maxLength": 1000
}
}
}
},
"projects": {
"maxItems": 30,
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"maxLength": 200
},
"description": {
"type": "string",
"maxLength": 3000
},
"url": {
"type": "string",
"maxLength": 300
},
"startDate": {
"type": "string",
"maxLength": 40
},
"endDate": {
"type": "string",
"maxLength": 40
},
"highlights": {
"maxItems": 50,
"type": "array",
"items": {
"type": "string",
"maxLength": 2000
}
},
"keywords": {
"maxItems": 50,
"type": "array",
"items": {
"type": "string",
"maxLength": 80
}
}
}
}
},
"interests": {
"maxItems": 20,
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"maxLength": 120
},
"keywords": {
"maxItems": 30,
"type": "array",
"items": {
"type": "string",
"maxLength": 80
}
}
}
}
}
}
},
"cv_base64": {
"description": "The job seeker's existing CV as a file, base64 encoded. PDF, DOCX or plain text, up to 10MB. Use cv_json instead if you have the CV as data rather than a file",
"type": "string"
},
"cv_type": {
"description": "Format of cv_base64: \"pdf\", \"docx\" or \"txt\". Ignored when cv_json is supplied",
"type": "string"
}
},
"required": [
"profile"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}Esquema de salida
{
"type": "object",
"properties": {
"run_id": {
"description": "Pass this to get_search_status to poll",
"type": "string"
},
"status": {
"description": "Run state at the moment of starting, normally \"running\"",
"type": "string"
},
"credits_remaining": {
"description": "Credits left for this product after the spend",
"type": "number"
},
"message": {
"description": "What happens next and roughly when, or what to do about the error",
"type": "string"
},
"error": {
"description": "Present only on failure, e.g. \"unauthorized\" or \"payment_required\"",
"type": "string"
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}🟢get_search_status(run_id)
Progress of a search, and the matched roles with the reason each was picked once it finishes.
Esquema de entrada
{
"type": "object",
"properties": {
"run_id": {
"description": "The run_id returned by start_job_search or quick_job_search. Omit to get the most recent run for this account",
"type": "string"
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}Esquema de salida
{
"type": "object",
"properties": {
"run_id": {
"type": "string"
},
"status": {
"description": "running, success, no_matches or failed",
"type": "string"
},
"done": {
"description": "True once the run has finished, whether or not it found anything",
"type": "boolean"
},
"plan": {
"description": "Which product this run was: one_off or agent_quick",
"type": "string"
},
"target_jobs": {
"description": "How many roles this run is meant to deliver",
"type": "number"
},
"started_at": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"finished_at": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"matches": {
"description": "The delivered roles, each with its tailored documents. Absent until the run succeeds",
"type": "array",
"items": {
"type": "object",
"properties": {
"title": {
"type": "string",
"description": "Job title as advertised"
},
"company": {
"type": "string",
"description": "Hiring company"
},
"url": {
"type": "string",
"description": "Link to the live posting"
},
"score": {
"description": "Fit score out of 100, higher is better",
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
]
},
"rank": {
"description": "Position in the delivered set, 1 is the strongest match",
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
]
},
"match_reason": {
"description": "Why this role was picked for this profile",
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"documents": {
"description": "The tailored documents for this role. Null while the run is still going, and on older runs that predate document return",
"anyOf": [
{
"type": "object",
"properties": {
"cv_markdown": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "The CV rewritten for this specific role, as markdown"
},
"cover_letter_markdown": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "A cover letter written for this specific role, as markdown"
}
},
"required": [
"cv_markdown",
"cover_letter_markdown"
],
"additionalProperties": false
},
{
"type": "null"
}
]
}
},
"required": [
"title",
"company",
"url"
],
"additionalProperties": false
}
},
"message": {
"description": "Progress in plain language while running, or what to do about the error",
"type": "string"
},
"error": {
"description": "Present only on failure, e.g. \"unauthorized\" or \"payment_required\"",
"type": "string"
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}Comunidad
Evidencia