Servidor MCP

Jobherder job search

com.jobherder/job-search
Productividad Público y accesible MCP 2025-11-25

Qué hace este MCP

Searches for matching job roles and provides tailored CVs and cover letters through paid searches.

get_pricing
Get pricing
What a Jobherder search costs and how to pay for it, in card and stablecoin terms. No auth required.
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {}}
Esquema de salida
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['service', 'products', 'packs', 'credits_are_per_product', 'card_checkout', 'x402', 'free_searches'], 'properties': {'x402': {'anyOf': [{'type': 'object', 'required': ['network', 'asset', 'pay_to', 'prices', 'how'], 'properties': {'how': {'type': 'string', 'description': 'How to complete the payment loop'}, 'asset': {'type': 'string', 'description': 'Token accepted, USDC'}, 'pay_to': {'type': 'string', 'description': 'Receiving address'}, 'prices': {'type': 'object', 'description': 'Pack code to atomic USDC amount', 'propertyNames': {'type': 'string'}, 'additionalProperties': {'type': 'string'}}, 'network': {'type': 'string', 'description': 'Chain the payment settles on'}}, 'additionalProperties': False}, {'type': 'null'}], 'description': 'Stablecoin payment terms, null if x402 is not configured'}, 'packs': {'type': 'array', 'items': {'type': 'object', 'required': ['pack', 'credits', 'price', 'buys', 'description'], 'properties': {'buys': {'type': 'string', 'description': 'Which product these credits are valid for: search or quick'}, 'pack': {'type': 'string', 'description': 'Pack code to pass to checkout or to pay for over x402'}, 'price': {'type': 'string', 'description': 'Human-readable price'}, 'credits': {'type': 'number', 'description': 'How many runs the pack buys'}, 'description': {'type': 'string'}}, 'additionalProperties': False}, 'description': 'Buyable credit packs'}, 'service': {'type': 'string', 'description': 'Service name'}, 'products': {'type': 'array', 'items': {'type': 'object', 'required': ['tool', 'unit', 'price', 'typical_time'], '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'}}, 'additionalProperties': False}, 'description': 'The two things Jobherder sells'}, 'card_checkout': {'type': 'string', 'description': 'URL for card payment'}, 'free_searches': {'type': 'boolean', 'description': 'Always false: registration grants no credits'}, 'credits_are_per_product': {'type': 'boolean', 'description': 'Always true: a quick credit cannot pay for a full search'}}, 'additionalProperties': False}
get_search_status
Check a search
Progress of a search, and the matched roles with the reason each was picked once it finishes.
Solo lectura Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'run_id': {'type': 'string', 'description': 'The run_id returned by start_job_search or quick_job_search. Omit to get the most recent run for this account'}}}
Esquema de salida
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'done': {'type': 'boolean', 'description': 'True once the run has finished, whether or not it found anything'}, 'plan': {'type': 'string', 'description': 'Which product this run was: one_off or agent_quick'}, 'error': {'type': 'string', 'description': 'Present only on failure, e.g. "unauthorized" or "payment_required"'}, 'run_id': {'type': 'string'}, 'status': {'type': 'string', 'description': 'running, success, no_matches or failed'}, 'matches': {'type': 'array', 'items': {'type': 'object', 'required': ['title', 'company', 'url'], 'properties': {'url': {'type': 'string', 'description': 'Link to the live posting'}, 'rank': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'description': 'Position in the delivered set, 1 is the strongest match'}, 'score': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'description': 'Fit score out of 100, higher is better'}, 'title': {'type': 'string', 'description': 'Job title as advertised'}, 'company': {'type': 'string', 'description': 'Hiring company'}, 'documents': {'anyOf': [{'type': 'object', 'required': ['cv_markdown', 'cover_letter_markdown'], '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'}}, 'additionalProperties': False}, {'type': 'null'}], 'description': 'The tailored documents for this role. Null while the run is still going, and on older runs that predate document return'}, 'match_reason': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'Why this role was picked for this profile'}}, 'additionalProperties': False}, 'description': 'The delivered roles, each with its tailored documents. Absent until the run succeeds'}, 'message': {'type': 'string', 'description': 'Progress in plain language while running, or what to do about the error'}, 'started_at': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'finished_at': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'target_jobs': {'type': 'number', 'description': 'How many roles this run is meant to deliver'}}, 'additionalProperties': False}
quick_job_search
Quick job match
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"].
Acceso externo
Esquema de entrada
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['profile'], 'properties': {'cv_json': {'type': 'object', 'properties': {'work': {'type': 'array', 'items': {'type': 'object', 'properties': {'url': {'type': 'string', 'maxLength': 300}, 'name': {'type': 'string', 'maxLength': 200}, 'company': {'type': 'string', 'maxLength': 200}, 'endDate': {'type': 'string', 'maxLength': 40}, 'summary': {'type': 'string', 'maxLength': 3000}, 'location': {'type': 'string', 'maxLength': 200}, 'position': {'type': 'string', 'maxLength': 200}, 'startDate': {'type': 'string', 'maxLength': 40}, 'highlights': {'type': 'array', 'items': {'type': 'string', 'maxLength': 2000}, 'maxItems': 50}}}, 'maxItems': 40}, 'awards': {'type': 'array', 'items': {'type': 'object', 'properties': {'date': {'type': 'string', 'maxLength': 40}, 'title': {'type': 'string', 'maxLength': 200}, 'awarder': {'type': 'string', 'maxLength': 200}, 'summary': {'type': 'string', 'maxLength': 1000}}}, 'maxItems': 30}, 'basics': {'type': 'object', 'properties': {'url': {'type': 'string', 'maxLength': 300}, 'name': {'type': 'string', 'maxLength': 120}, 'email': {'type': 'string', 'maxLength': 200}, 'label': {'type': 'string', 'maxLength': 200}, 'phone': {'type': 'string', 'maxLength': 60}, 'summary': {'type': 'string', 'maxLength': 4000}, 'location': {'type': 'object', 'properties': {'city': {'type': 'string', 'maxLength': 120}, 'region': {'type': 'string', 'maxLength': 120}, 'address': {'type': 'string', 'maxLength': 200}, 'postalCode': {'type': 'string', 'maxLength': 30}, 'countryCode': {'type': 'string', 'maxLength': 10}}}, 'profiles': {'type': 'array', 'items': {'type': 'object', 'properties': {'url': {'type': 'string', 'maxLength': 300}, 'network': {'type': 'string', 'maxLength': 80}, 'username': {'type': 'string', 'maxLength': 120}}}, 'maxItems': 20}}}, 'skills': {'type': 'array', 'items': {'type': 'object', 'properties': {'name': {'type': 'string', 'maxLength': 120}, 'level': {'type': 'string', 'maxLength': 60}, 'keywords': {'type': 'array', 'items': {'type': 'string', 'maxLength': 80}, 'maxItems': 60}}}, 'maxItems': 40}, 'projects': {'type': 'array', 'items': {'type': 'object', 'properties': {'url': {'type': 'string', 'maxLength': 300}, 'name': {'type': 'string', 'maxLength': 200}, 'endDate': {'type': 'string', 'maxLength': 40}, 'keywords': {'type': 'array', 'items': {'type': 'string', 'maxLength': 80}, 'maxItems': 50}, 'startDate': {'type': 'string', 'maxLength': 40}, 'highlights': {'type': 'array', 'items': {'type': 'string', 'maxLength': 2000}, 'maxItems': 50}, 'description': {'type': 'string', 'maxLength': 3000}}}, 'maxItems': 30}, 'education': {'type': 'array', 'items': {'type': 'object', 'properties': {'area': {'type': 'string', 'maxLength': 200}, 'score': {'type': 'string', 'maxLength': 60}, 'courses': {'type': 'array', 'items': {'type': 'string', 'maxLength': 2000}, 'maxItems': 50}, 'endDate': {'type': 'string', 'maxLength': 40}, 'startDate': {'type': 'string', 'maxLength': 40}, 'studyType': {'type': 'string', 'maxLength': 100}, 'institution': {'type': 'string', 'maxLength': 200}}}, 'maxItems': 20}, 'interests': {'type': 'array', 'items': {'type': 'object', 'properties': {'name': {'type': 'string', 'maxLength': 120}, 'keywords': {'type': 'array', 'items': {'type': 'string', 'maxLength': 80}, 'maxItems': 30}}}, 'maxItems': 20}, 'languages': {'type': 'array', 'items': {'type': 'object', 'properties': {'fluency': {'type': 'string', 'maxLength': 80}, 'language': {'type': 'string', 'maxLength': 80}}}, 'maxItems': 20}, 'volunteer': {'type': 'array', 'items': {'type': 'object', 'properties': {'url': {'type': 'string', 'maxLength': 300}, 'name': {'type': 'string', 'maxLength': 200}, 'company': {'type': 'string', 'maxLength': 200}, 'endDate': {'type': 'string', 'maxLength': 40}, 'summary': {'type': 'string', 'maxLength': 3000}, 'location': {'type': 'string', 'maxLength': 200}, 'position': {'type': 'string', 'maxLength': 200}, 'startDate': {'type': 'string', 'maxLength': 40}, 'highlights': {'type': 'array', 'items': {'type': 'string', 'maxLength': 2000}, 'maxItems': 50}}}, 'maxItems': 20}, 'certificates': {'type': 'array', 'items': {'type': 'object', 'properties': {'date': {'type': 'string', 'maxLength': 40}, 'name': {'type': 'string', 'maxLength': 200}, 'issuer': {'type': 'string', 'maxLength': 200}}}, 'maxItems': 30}, 'publications': {'type': 'array', 'items': {'type': 'object', 'properties': {'name': {'type': 'string', 'maxLength': 300}, 'summary': {'type': 'string', 'maxLength': 1000}, 'publisher': {'type': 'string', 'maxLength': 200}, 'releaseDate': {'type': 'string', 'maxLength': 40}}}, 'maxItems': 30}}, '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 â\x80\x94 you do not need to render a file. Supply either cv_json or cv_base64"}, 'cv_type': {'type': 'string', 'description': 'Format of cv_base64: "pdf", "docx" or "txt". Ignored when cv_json is supplied'}, 'profile': {'type': 'object', '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'], '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_want_usa': {'enum': ['yes', 'no'], 'type': 'string', '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': {'type': 'array', 'items': {'type': 'string'}, 'default': ['english'], 'description': 'Working languages, lower case, e.g. ["english", "german"]. Roles requiring a language not listed here are dropped'}, 'cfg_uk_onsite': {'enum': ['yes', 'no'], 'type': 'string', 'default': 'no', 'description': 'Also include on-site roles in the UK. Defaults to no; UK remote is a separate flag'}, 'cfg_industries': {'type': 'string', 'description': 'Comma-separated sectors of interest, e.g. "Music, Fintech, Healthcare". Sectors only â\x80\x94 job functions go in cfg_target_titles'}, 'cfg_work_style': {'enum': ['remote_only', 'mix'], 'type': 'string', 'description': 'remote_only rejects anything requiring office attendance; mix means local or hybrid near the candidate plus remote in the chosen regions'}, 'cfg_advisory_open': {'enum': ['yes', 'no'], 'type': 'string', 'default': 'yes', 'description': 'Whether to include advisory, fractional, board and consulting roles alongside employment'}, '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_target_titles': {'type': 'string', 'description': 'Comma-separated target job titles, e.g. "Head of Production, COO, Product Director"'}, 'cfg_want_remote_eu': {'enum': ['yes', 'no'], 'type': 'string', 'description': 'Include roles advertised as remote within the EU. Set independently of the other regions; several can be yes'}, 'cfg_want_remote_uk': {'enum': ['yes', 'no'], 'type': 'string', 'description': 'Include roles advertised as remote within the UK'}, 'cfg_seniority_level': {'type': 'string', 'description': 'Seniority band as a single label or a contiguous range, e.g. "Director" or "Manager â\x80\x93 Head of Department". Not a free-text mix of titles and industries'}, 'cfg_not_interested_in': {'type': 'string', 'default': '', 'description': 'Comma-separated industries or employer types to exclude, e.g. "gambling, defence". Applied as a hard filter'}, 'cfg_additional_context': {'type': 'string', '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'}, '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_share_with_employers': {'enum': ['yes', 'no'], 'type': 'string', 'default': 'no', 'description': 'Consent to share the profile with employers. "no" keeps the search entirely one-way'}}, 'description': 'Who the job seeker is and what they want. Every field shapes matching, so guessing is worse than asking'}, 'cv_base64': {'type': 'string', '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"}}}
Esquema de salida
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'error': {'type': 'string', 'description': 'Present only on failure, e.g. "unauthorized" or "payment_required"'}, 'run_id': {'type': 'string', 'description': 'Pass this to get_search_status to poll'}, 'status': {'type': 'string', 'description': 'Run state at the moment of starting, normally "running"'}, 'message': {'type': 'string', 'description': 'What happens next and roughly when, or what to do about the error'}, 'credits_remaining': {'type': 'number', 'description': 'Credits left for this product after the spend'}}, 'additionalProperties': False}
register_agent
Register for an API key
Create an agent identity and receive an API key. Registration is free and includes no free searches.
Esquema de entrada
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['email'], 'properties': {'name': {'type': 'string', 'description': 'Display name for the account. Optional; the profile name is used on documents regardless'}, '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"}}}
Esquema de salida
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'next': {'type': 'string', 'description': 'Suggested next call'}, 'note': {'type': 'string'}, 'email': {'type': 'string', 'description': 'The address the account is registered to'}, 'error': {'type': 'string', 'description': 'Present only on failure, e.g. "unauthorized" or "payment_required"'}, 'api_key': {'type': 'string', 'description': 'Bearer token for every later call. Shown once and never again'}, 'message': {'type': 'string', 'description': 'What to do about the error, when one is present'}, 'owner_action_url': {'type': 'string', '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'}}, 'additionalProperties': False}
start_job_search
Start a job search
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.
Acceso externo
Esquema de entrada
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['profile'], 'properties': {'cv_json': {'type': 'object', 'properties': {'work': {'type': 'array', 'items': {'type': 'object', 'properties': {'url': {'type': 'string', 'maxLength': 300}, 'name': {'type': 'string', 'maxLength': 200}, 'company': {'type': 'string', 'maxLength': 200}, 'endDate': {'type': 'string', 'maxLength': 40}, 'summary': {'type': 'string', 'maxLength': 3000}, 'location': {'type': 'string', 'maxLength': 200}, 'position': {'type': 'string', 'maxLength': 200}, 'startDate': {'type': 'string', 'maxLength': 40}, 'highlights': {'type': 'array', 'items': {'type': 'string', 'maxLength': 2000}, 'maxItems': 50}}}, 'maxItems': 40}, 'awards': {'type': 'array', 'items': {'type': 'object', 'properties': {'date': {'type': 'string', 'maxLength': 40}, 'title': {'type': 'string', 'maxLength': 200}, 'awarder': {'type': 'string', 'maxLength': 200}, 'summary': {'type': 'string', 'maxLength': 1000}}}, 'maxItems': 30}, 'basics': {'type': 'object', 'properties': {'url': {'type': 'string', 'maxLength': 300}, 'name': {'type': 'string', 'maxLength': 120}, 'email': {'type': 'string', 'maxLength': 200}, 'label': {'type': 'string', 'maxLength': 200}, 'phone': {'type': 'string', 'maxLength': 60}, 'summary': {'type': 'string', 'maxLength': 4000}, 'location': {'type': 'object', 'properties': {'city': {'type': 'string', 'maxLength': 120}, 'region': {'type': 'string', 'maxLength': 120}, 'address': {'type': 'string', 'maxLength': 200}, 'postalCode': {'type': 'string', 'maxLength': 30}, 'countryCode': {'type': 'string', 'maxLength': 10}}}, 'profiles': {'type': 'array', 'items': {'type': 'object', 'properties': {'url': {'type': 'string', 'maxLength': 300}, 'network': {'type': 'string', 'maxLength': 80}, 'username': {'type': 'string', 'maxLength': 120}}}, 'maxItems': 20}}}, 'skills': {'type': 'array', 'items': {'type': 'object', 'properties': {'name': {'type': 'string', 'maxLength': 120}, 'level': {'type': 'string', 'maxLength': 60}, 'keywords': {'type': 'array', 'items': {'type': 'string', 'maxLength': 80}, 'maxItems': 60}}}, 'maxItems': 40}, 'projects': {'type': 'array', 'items': {'type': 'object', 'properties': {'url': {'type': 'string', 'maxLength': 300}, 'name': {'type': 'string', 'maxLength': 200}, 'endDate': {'type': 'string', 'maxLength': 40}, 'keywords': {'type': 'array', 'items': {'type': 'string', 'maxLength': 80}, 'maxItems': 50}, 'startDate': {'type': 'string', 'maxLength': 40}, 'highlights': {'type': 'array', 'items': {'type': 'string', 'maxLength': 2000}, 'maxItems': 50}, 'description': {'type': 'string', 'maxLength': 3000}}}, 'maxItems': 30}, 'education': {'type': 'array', 'items': {'type': 'object', 'properties': {'area': {'type': 'string', 'maxLength': 200}, 'score': {'type': 'string', 'maxLength': 60}, 'courses': {'type': 'array', 'items': {'type': 'string', 'maxLength': 2000}, 'maxItems': 50}, 'endDate': {'type': 'string', 'maxLength': 40}, 'startDate': {'type': 'string', 'maxLength': 40}, 'studyType': {'type': 'string', 'maxLength': 100}, 'institution': {'type': 'string', 'maxLength': 200}}}, 'maxItems': 20}, 'interests': {'type': 'array', 'items': {'type': 'object', 'properties': {'name': {'type': 'string', 'maxLength': 120}, 'keywords': {'type': 'array', 'items': {'type': 'string', 'maxLength': 80}, 'maxItems': 30}}}, 'maxItems': 20}, 'languages': {'type': 'array', 'items': {'type': 'object', 'properties': {'fluency': {'type': 'string', 'maxLength': 80}, 'language': {'type': 'string', 'maxLength': 80}}}, 'maxItems': 20}, 'volunteer': {'type': 'array', 'items': {'type': 'object', 'properties': {'url': {'type': 'string', 'maxLength': 300}, 'name': {'type': 'string', 'maxLength': 200}, 'company': {'type': 'string', 'maxLength': 200}, 'endDate': {'type': 'string', 'maxLength': 40}, 'summary': {'type': 'string', 'maxLength': 3000}, 'location': {'type': 'string', 'maxLength': 200}, 'position': {'type': 'string', 'maxLength': 200}, 'startDate': {'type': 'string', 'maxLength': 40}, 'highlights': {'type': 'array', 'items': {'type': 'string', 'maxLength': 2000}, 'maxItems': 50}}}, 'maxItems': 20}, 'certificates': {'type': 'array', 'items': {'type': 'object', 'properties': {'date': {'type': 'string', 'maxLength': 40}, 'name': {'type': 'string', 'maxLength': 200}, 'issuer': {'type': 'string', 'maxLength': 200}}}, 'maxItems': 30}, 'publications': {'type': 'array', 'items': {'type': 'object', 'properties': {'name': {'type': 'string', 'maxLength': 300}, 'summary': {'type': 'string', 'maxLength': 1000}, 'publisher': {'type': 'string', 'maxLength': 200}, 'releaseDate': {'type': 'string', 'maxLength': 40}}}, 'maxItems': 30}}, '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 â\x80\x94 you do not need to render a file. Supply either cv_json or cv_base64"}, 'cv_type': {'type': 'string', 'description': 'Format of cv_base64: "pdf", "docx" or "txt". Ignored when cv_json is supplied'}, 'profile': {'type': 'object', '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'], '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_want_usa': {'enum': ['yes', 'no'], 'type': 'string', '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': {'type': 'array', 'items': {'type': 'string'}, 'default': ['english'], 'description': 'Working languages, lower case, e.g. ["english", "german"]. Roles requiring a language not listed here are dropped'}, 'cfg_uk_onsite': {'enum': ['yes', 'no'], 'type': 'string', 'default': 'no', 'description': 'Also include on-site roles in the UK. Defaults to no; UK remote is a separate flag'}, 'cfg_industries': {'type': 'string', 'description': 'Comma-separated sectors of interest, e.g. "Music, Fintech, Healthcare". Sectors only â\x80\x94 job functions go in cfg_target_titles'}, 'cfg_work_style': {'enum': ['remote_only', 'mix'], 'type': 'string', 'description': 'remote_only rejects anything requiring office attendance; mix means local or hybrid near the candidate plus remote in the chosen regions'}, 'cfg_advisory_open': {'enum': ['yes', 'no'], 'type': 'string', 'default': 'yes', 'description': 'Whether to include advisory, fractional, board and consulting roles alongside employment'}, '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_target_titles': {'type': 'string', 'description': 'Comma-separated target job titles, e.g. "Head of Production, COO, Product Director"'}, 'cfg_want_remote_eu': {'enum': ['yes', 'no'], 'type': 'string', 'description': 'Include roles advertised as remote within the EU. Set independently of the other regions; several can be yes'}, 'cfg_want_remote_uk': {'enum': ['yes', 'no'], 'type': 'string', 'description': 'Include roles advertised as remote within the UK'}, 'cfg_seniority_level': {'type': 'string', 'description': 'Seniority band as a single label or a contiguous range, e.g. "Director" or "Manager â\x80\x93 Head of Department". Not a free-text mix of titles and industries'}, 'cfg_not_interested_in': {'type': 'string', 'default': '', 'description': 'Comma-separated industries or employer types to exclude, e.g. "gambling, defence". Applied as a hard filter'}, 'cfg_additional_context': {'type': 'string', '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'}, '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_share_with_employers': {'enum': ['yes', 'no'], 'type': 'string', 'default': 'no', 'description': 'Consent to share the profile with employers. "no" keeps the search entirely one-way'}}, 'description': 'Who the job seeker is and what they want. Every field shapes matching, so guessing is worse than asking'}, 'cv_base64': {'type': 'string', '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"}}}
Esquema de salida
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {'error': {'type': 'string', 'description': 'Present only on failure, e.g. "unauthorized" or "payment_required"'}, 'run_id': {'type': 'string', 'description': 'Pass this to get_search_status to poll'}, 'status': {'type': 'string', 'description': 'Run state at the moment of starting, normally "running"'}, 'message': {'type': 'string', 'description': 'What happens next and roughly when, or what to do about the error'}, 'credits_remaining': {'type': 'number', 'description': 'Credits left for this product after the spend'}}, 'additionalProperties': False}
Añadido
get_search_status
17 de September de 2026 a las 12:35
Añadido
quick_job_search
17 de September de 2026 a las 12:35
Añadido
start_job_search
17 de September de 2026 a las 12:35
Añadido
register_agent
17 de September de 2026 a las 12:35
Añadido
get_pricing
17 de September de 2026 a las 12:35