Server definition
- Hash
- sha256:5bc8404cb5cc98c292ff3d570fb8c1805ab4095e688e13a5beff34d574d32c83
- What it is
- What a remote MCP server returned when asked what it offers: 5 tools
The blob, as servednamed by its sha256
{
"instructions": "Jobero runs paid job searches. There are two: start_job_search returns 7 matched roles in about an hour for €9.99, and quick_job_search returns the single best current role in a few minutes for $2.50. Both include a CV and cover letter tailored to each role, returned as markdown by get_search_status and emailed as PDFs. There are no free searches: call get_pricing, register with register_agent, then start a search and poll get_search_status. Credits are per product, so a quick credit does not pay for a full search. A wallet-equipped agent needs no separate purchase step — either tool answers with an x402 PaymentRequired and runs as soon as the call is retried with payment in _meta[\"x402/payment\"].",
"tools": [
{
"description": "What a Jobero search costs and how to pay for it, in card and stablecoin terms. No auth required.",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {},
"type": "object"
},
"name": "get_pricing",
"outputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false,
"properties": {
"card_checkout": {
"description": "URL for card payment",
"type": "string"
},
"credits_are_per_product": {
"description": "Always true: a quick credit cannot pay for a full search",
"type": "boolean"
},
"free_searches": {
"description": "Always false: registration grants no credits",
"type": "boolean"
},
"packs": {
"description": "Buyable credit packs",
"items": {
"additionalProperties": false,
"properties": {
"buys": {
"description": "Which product these credits are valid for: search or quick",
"type": "string"
},
"credits": {
"description": "How many runs the pack buys",
"type": "number"
},
"description": {
"type": "string"
},
"pack": {
"description": "Pack code to pass to checkout or to pay for over x402",
"type": "string"
},
"price": {
"description": "Human-readable price",
"type": "string"
}
},
"required": [
"pack",
"credits",
"price",
"buys",
"description"
],
"type": "object"
},
"type": "array"
},
"products": {
"description": "The two things Jobero sells",
"items": {
"additionalProperties": false,
"properties": {
"price": {
"description": "Human-readable price",
"type": "string"
},
"tool": {
"description": "Which tool buys this product",
"type": "string"
},
"typical_time": {
"description": "How long delivery usually takes",
"type": "string"
},
"unit": {
"description": "What one purchase delivers",
"type": "string"
}
},
"required": [
"tool",
"unit",
"price",
"typical_time"
],
"type": "object"
},
"type": "array"
},
"service": {
"description": "Service name",
"type": "string"
},
"x402": {
"anyOf": [
{
"additionalProperties": false,
"properties": {
"asset": {
"description": "Token accepted, USDC",
"type": "string"
},
"how": {
"description": "How to complete the payment loop",
"type": "string"
},
"network": {
"description": "Chain the payment settles on",
"type": "string"
},
"pay_to": {
"description": "Receiving address",
"type": "string"
},
"prices": {
"additionalProperties": {
"type": "string"
},
"description": "Pack code to atomic USDC amount",
"propertyNames": {
"type": "string"
},
"type": "object"
}
},
"required": [
"network",
"asset",
"pay_to",
"prices",
"how"
],
"type": "object"
},
{
"type": "null"
}
],
"description": "Stablecoin payment terms, null if x402 is not configured"
}
},
"required": [
"service",
"products",
"packs",
"credits_are_per_product",
"card_checkout",
"x402",
"free_searches"
],
"type": "object"
}
},
{
"description": "Progress of a search, and the matched roles with the reason each was picked once it finishes.",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"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"
}
},
"type": "object"
},
"name": "get_search_status",
"outputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false,
"properties": {
"done": {
"description": "True once the run has finished, whether or not it found anything",
"type": "boolean"
},
"error": {
"description": "Present only on failure, e.g. \"unauthorized\" or \"payment_required\"",
"type": "string"
},
"finished_at": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"matches": {
"description": "The delivered roles, each with its tailored documents. Absent until the run succeeds",
"items": {
"additionalProperties": false,
"properties": {
"company": {
"description": "Hiring company",
"type": "string"
},
"documents": {
"anyOf": [
{
"additionalProperties": false,
"properties": {
"cover_letter_markdown": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "A cover letter written for this specific role, as markdown"
},
"cv_markdown": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "The CV rewritten for this specific role, as markdown"
}
},
"required": [
"cv_markdown",
"cover_letter_markdown"
],
"type": "object"
},
{
"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"
},
"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": {
"description": "Job title as advertised",
"type": "string"
},
"url": {
"description": "Link to the live posting",
"type": "string"
}
},
"required": [
"title",
"company",
"url"
],
"type": "object"
},
"type": "array"
},
"message": {
"description": "Progress in plain language while running, or what to do about the error",
"type": "string"
},
"plan": {
"description": "Which product this run was: one_off or agent_quick",
"type": "string"
},
"run_id": {
"type": "string"
},
"started_at": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"status": {
"description": "running, success, no_matches or failed",
"type": "string"
},
"target_jobs": {
"description": "How many roles this run is meant to deliver",
"type": "number"
}
},
"type": "object"
}
},
{
"description": "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\"].",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"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_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",
"properties": {
"awards": {
"items": {
"properties": {
"awarder": {
"maxLength": 200,
"type": "string"
},
"date": {
"maxLength": 40,
"type": "string"
},
"summary": {
"maxLength": 1000,
"type": "string"
},
"title": {
"maxLength": 200,
"type": "string"
}
},
"type": "object"
},
"maxItems": 30,
"type": "array"
},
"basics": {
"properties": {
"email": {
"maxLength": 200,
"type": "string"
},
"label": {
"maxLength": 200,
"type": "string"
},
"location": {
"properties": {
"address": {
"maxLength": 200,
"type": "string"
},
"city": {
"maxLength": 120,
"type": "string"
},
"countryCode": {
"maxLength": 10,
"type": "string"
},
"postalCode": {
"maxLength": 30,
"type": "string"
},
"region": {
"maxLength": 120,
"type": "string"
}
},
"type": "object"
},
"name": {
"maxLength": 120,
"type": "string"
},
"phone": {
"maxLength": 60,
"type": "string"
},
"profiles": {
"items": {
"properties": {
"network": {
"maxLength": 80,
"type": "string"
},
"url": {
"maxLength": 300,
"type": "string"
},
"username": {
"maxLength": 120,
"type": "string"
}
},
"type": "object"
},
"maxItems": 20,
"type": "array"
},
"summary": {
"maxLength": 4000,
"type": "string"
},
"url": {
"maxLength": 300,
"type": "string"
}
},
"type": "object"
},
"certificates": {
"items": {
"properties": {
"date": {
"maxLength": 40,
"type": "string"
},
"issuer": {
"maxLength": 200,
"type": "string"
},
"name": {
"maxLength": 200,
"type": "string"
}
},
"type": "object"
},
"maxItems": 30,
"type": "array"
},
"education": {
"items": {
"properties": {
"area": {
"maxLength": 200,
"type": "string"
},
"courses": {
"items": {
"maxLength": 2000,
"type": "string"
},
"maxItems": 50,
"type": "array"
},
"endDate": {
"maxLength": 40,
"type": "string"
},
"institution": {
"maxLength": 200,
"type": "string"
},
"score": {
"maxLength": 60,
"type": "string"
},
"startDate": {
"maxLength": 40,
"type": "string"
},
"studyType": {
"maxLength": 100,
"type": "string"
}
},
"type": "object"
},
"maxItems": 20,
"type": "array"
},
"interests": {
"items": {
"properties": {
"keywords": {
"items": {
"maxLength": 80,
"type": "string"
},
"maxItems": 30,
"type": "array"
},
"name": {
"maxLength": 120,
"type": "string"
}
},
"type": "object"
},
"maxItems": 20,
"type": "array"
},
"languages": {
"items": {
"properties": {
"fluency": {
"maxLength": 80,
"type": "string"
},
"language": {
"maxLength": 80,
"type": "string"
}
},
"type": "object"
},
"maxItems": 20,
"type": "array"
},
"projects": {
"items": {
"properties": {
"description": {
"maxLength": 3000,
"type": "string"
},
"endDate": {
"maxLength": 40,
"type": "string"
},
"highlights": {
"items": {
"maxLength": 2000,
"type": "string"
},
"maxItems": 50,
"type": "array"
},
"keywords": {
"items": {
"maxLength": 80,
"type": "string"
},
"maxItems": 50,
"type": "array"
},
"name": {
"maxLength": 200,
"type": "string"
},
"startDate": {
"maxLength": 40,
"type": "string"
},
"url": {
"maxLength": 300,
"type": "string"
}
},
"type": "object"
},
"maxItems": 30,
"type": "array"
},
"publications": {
"items": {
"properties": {
"name": {
"maxLength": 300,
"type": "string"
},
"publisher": {
"maxLength": 200,
"type": "string"
},
"releaseDate": {
"maxLength": 40,
"type": "string"
},
"summary": {
"maxLength": 1000,
"type": "string"
}
},
"type": "object"
},
"maxItems": 30,
"type": "array"
},
"skills": {
"items": {
"properties": {
"keywords": {
"items": {
"maxLength": 80,
"type": "string"
},
"maxItems": 60,
"type": "array"
},
"level": {
"maxLength": 60,
"type": "string"
},
"name": {
"maxLength": 120,
"type": "string"
}
},
"type": "object"
},
"maxItems": 40,
"type": "array"
},
"volunteer": {
"items": {
"properties": {
"company": {
"maxLength": 200,
"type": "string"
},
"endDate": {
"maxLength": 40,
"type": "string"
},
"highlights": {
"items": {
"maxLength": 2000,
"type": "string"
},
"maxItems": 50,
"type": "array"
},
"location": {
"maxLength": 200,
"type": "string"
},
"name": {
"maxLength": 200,
"type": "string"
},
"position": {
"maxLength": 200,
"type": "string"
},
"startDate": {
"maxLength": 40,
"type": "string"
},
"summary": {
"maxLength": 3000,
"type": "string"
},
"url": {
"maxLength": 300,
"type": "string"
}
},
"type": "object"
},
"maxItems": 20,
"type": "array"
},
"work": {
"items": {
"properties": {
"company": {
"maxLength": 200,
"type": "string"
},
"endDate": {
"maxLength": 40,
"type": "string"
},
"highlights": {
"items": {
"maxLength": 2000,
"type": "string"
},
"maxItems": 50,
"type": "array"
},
"location": {
"maxLength": 200,
"type": "string"
},
"name": {
"maxLength": 200,
"type": "string"
},
"position": {
"maxLength": 200,
"type": "string"
},
"startDate": {
"maxLength": 40,
"type": "string"
},
"summary": {
"maxLength": 3000,
"type": "string"
},
"url": {
"maxLength": 300,
"type": "string"
}
},
"type": "object"
},
"maxItems": 40,
"type": "array"
}
},
"type": "object"
},
"cv_type": {
"description": "Format of cv_base64: \"pdf\", \"docx\" or \"txt\". Ignored when cv_json is supplied",
"type": "string"
},
"profile": {
"description": "Who the job seeker is and what they want. Every field shapes matching, so guessing is worse than asking",
"properties": {
"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_advisory_open": {
"default": "yes",
"description": "Whether to include advisory, fractional, board and consulting roles alongside employment",
"enum": [
"yes",
"no"
],
"type": "string"
},
"cfg_email": {
"description": "Must match the email the API key is registered to. Results are emailed here as well as returned by get_search_status",
"type": "string"
},
"cfg_industries": {
"description": "Comma-separated sectors of interest, e.g. \"Music, Fintech, Healthcare\". Sectors only — job functions go in cfg_target_titles",
"type": "string"
},
"cfg_languages": {
"default": [
"english"
],
"description": "Working languages, lower case, e.g. [\"english\", \"german\"]. Roles requiring a language not listed here are dropped",
"items": {
"type": "string"
},
"type": "array"
},
"cfg_local_country": {
"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",
"type": "string"
},
"cfg_location": {
"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",
"type": "string"
},
"cfg_location_preference": {
"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",
"type": "string"
},
"cfg_name": {
"description": "Full name of the job seeker, as it should appear on the tailored CV",
"type": "string"
},
"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_seniority_level": {
"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",
"type": "string"
},
"cfg_share_with_employers": {
"default": "no",
"description": "Consent to share the profile with employers. \"no\" keeps the search entirely one-way",
"enum": [
"yes",
"no"
],
"type": "string"
},
"cfg_target_titles": {
"description": "Comma-separated target job titles, e.g. \"Head of Production, COO, Product Director\"",
"type": "string"
},
"cfg_uk_onsite": {
"default": "no",
"description": "Also include on-site roles in the UK. Defaults to no; UK remote is a separate flag",
"enum": [
"yes",
"no"
],
"type": "string"
},
"cfg_want_remote_eu": {
"description": "Include roles advertised as remote within the EU. Set independently of the other regions; several can be yes",
"enum": [
"yes",
"no"
],
"type": "string"
},
"cfg_want_remote_uk": {
"description": "Include roles advertised as remote within the UK",
"enum": [
"yes",
"no"
],
"type": "string"
},
"cfg_want_usa": {
"description": "Include roles in the USA. Say no unless the job seeker can legally work there or the role is genuinely remote-worldwide",
"enum": [
"yes",
"no"
],
"type": "string"
},
"cfg_work_style": {
"description": "remote_only rejects anything requiring office attendance; mix means local or hybrid near the candidate plus remote in the chosen regions",
"enum": [
"remote_only",
"mix"
],
"type": "string"
}
},
"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"
],
"type": "object"
}
},
"required": [
"profile"
],
"type": "object"
},
"name": "quick_job_search",
"outputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false,
"properties": {
"credits_remaining": {
"description": "Credits left for this product after the spend",
"type": "number"
},
"error": {
"description": "Present only on failure, e.g. \"unauthorized\" or \"payment_required\"",
"type": "string"
},
"message": {
"description": "What happens next and roughly when, or what to do about the error",
"type": "string"
},
"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"
}
},
"type": "object"
}
},
{
"description": "Create an agent identity and receive an API key. Registration is free and includes no free searches.",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"email": {
"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",
"type": "string"
},
"name": {
"description": "Display name for the account. Optional; the profile name is used on documents regardless",
"type": "string"
}
},
"required": [
"email"
],
"type": "object"
},
"name": "register_agent",
"outputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false,
"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"
},
"error": {
"description": "Present only on failure, e.g. \"unauthorized\" or \"payment_required\"",
"type": "string"
},
"message": {
"description": "What to do about the error, when one is present",
"type": "string"
},
"next": {
"description": "Suggested next call",
"type": "string"
},
"note": {
"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"
}
},
"type": "object"
}
},
{
"description": "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.",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"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_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",
"properties": {
"awards": {
"items": {
"properties": {
"awarder": {
"maxLength": 200,
"type": "string"
},
"date": {
"maxLength": 40,
"type": "string"
},
"summary": {
"maxLength": 1000,
"type": "string"
},
"title": {
"maxLength": 200,
"type": "string"
}
},
"type": "object"
},
"maxItems": 30,
"type": "array"
},
"basics": {
"properties": {
"email": {
"maxLength": 200,
"type": "string"
},
"label": {
"maxLength": 200,
"type": "string"
},
"location": {
"properties": {
"address": {
"maxLength": 200,
"type": "string"
},
"city": {
"maxLength": 120,
"type": "string"
},
"countryCode": {
"maxLength": 10,
"type": "string"
},
"postalCode": {
"maxLength": 30,
"type": "string"
},
"region": {
"maxLength": 120,
"type": "string"
}
},
"type": "object"
},
"name": {
"maxLength": 120,
"type": "string"
},
"phone": {
"maxLength": 60,
"type": "string"
},
"profiles": {
"items": {
"properties": {
"network": {
"maxLength": 80,
"type": "string"
},
"url": {
"maxLength": 300,
"type": "string"
},
"username": {
"maxLength": 120,
"type": "string"
}
},
"type": "object"
},
"maxItems": 20,
"type": "array"
},
"summary": {
"maxLength": 4000,
"type": "string"
},
"url": {
"maxLength": 300,
"type": "string"
}
},
"type": "object"
},
"certificates": {
"items": {
"properties": {
"date": {
"maxLength": 40,
"type": "string"
},
"issuer": {
"maxLength": 200,
"type": "string"
},
"name": {
"maxLength": 200,
"type": "string"
}
},
"type": "object"
},
"maxItems": 30,
"type": "array"
},
"education": {
"items": {
"properties": {
"area": {
"maxLength": 200,
"type": "string"
},
"courses": {
"items": {
"maxLength": 2000,
"type": "string"
},
"maxItems": 50,
"type": "array"
},
"endDate": {
"maxLength": 40,
"type": "string"
},
"institution": {
"maxLength": 200,
"type": "string"
},
"score": {
"maxLength": 60,
"type": "string"
},
"startDate": {
"maxLength": 40,
"type": "string"
},
"studyType": {
"maxLength": 100,
"type": "string"
}
},
"type": "object"
},
"maxItems": 20,
"type": "array"
},
"interests": {
"items": {
"properties": {
"keywords": {
"items": {
"maxLength": 80,
"type": "string"
},
"maxItems": 30,
"type": "array"
},
"name": {
"maxLength": 120,
"type": "string"
}
},
"type": "object"
},
"maxItems": 20,
"type": "array"
},
"languages": {
"items": {
"properties": {
"fluency": {
"maxLength": 80,
"type": "string"
},
"language": {
"maxLength": 80,
"type": "string"
}
},
"type": "object"
},
"maxItems": 20,
"type": "array"
},
"projects": {
"items": {
"properties": {
"description": {
"maxLength": 3000,
"type": "string"
},
"endDate": {
"maxLength": 40,
"type": "string"
},
"highlights": {
"items": {
"maxLength": 2000,
"type": "string"
},
"maxItems": 50,
"type": "array"
},
"keywords": {
"items": {
"maxLength": 80,
"type": "string"
},
"maxItems": 50,
"type": "array"
},
"name": {
"maxLength": 200,
"type": "string"
},
"startDate": {
"maxLength": 40,
"type": "string"
},
"url": {
"maxLength": 300,
"type": "string"
}
},
"type": "object"
},
"maxItems": 30,
"type": "array"
},
"publications": {
"items": {
"properties": {
"name": {
"maxLength": 300,
"type": "string"
},
"publisher": {
"maxLength": 200,
"type": "string"
},
"releaseDate": {
"maxLength": 40,
"type": "string"
},
"summary": {
"maxLength": 1000,
"type": "string"
}
},
"type": "object"
},
"maxItems": 30,
"type": "array"
},
"skills": {
"items": {
"properties": {
"keywords": {
"items": {
"maxLength": 80,
"type": "string"
},
"maxItems": 60,
"type": "array"
},
"level": {
"maxLength": 60,
"type": "string"
},
"name": {
"maxLength": 120,
"type": "string"
}
},
"type": "object"
},
"maxItems": 40,
"type": "array"
},
"volunteer": {
"items": {
"properties": {
"company": {
"maxLength": 200,
"type": "string"
},
"endDate": {
"maxLength": 40,
"type": "string"
},
"highlights": {
"items": {
"maxLength": 2000,
"type": "string"
},
"maxItems": 50,
"type": "array"
},
"location": {
"maxLength": 200,
"type": "string"
},
"name": {
"maxLength": 200,
"type": "string"
},
"position": {
"maxLength": 200,
"type": "string"
},
"startDate": {
"maxLength": 40,
"type": "string"
},
"summary": {
"maxLength": 3000,
"type": "string"
},
"url": {
"maxLength": 300,
"type": "string"
}
},
"type": "object"
},
"maxItems": 20,
"type": "array"
},
"work": {
"items": {
"properties": {
"company": {
"maxLength": 200,
"type": "string"
},
"endDate": {
"maxLength": 40,
"type": "string"
},
"highlights": {
"items": {
"maxLength": 2000,
"type": "string"
},
"maxItems": 50,
"type": "array"
},
"location": {
"maxLength": 200,
"type": "string"
},
"name": {
"maxLength": 200,
"type": "string"
},
"position": {
"maxLength": 200,
"type": "string"
},
"startDate": {
"maxLength": 40,
"type": "string"
},
"summary": {
"maxLength": 3000,
"type": "string"
},
"url": {
"maxLength": 300,
"type": "string"
}
},
"type": "object"
},
"maxItems": 40,
"type": "array"
}
},
"type": "object"
},
"cv_type": {
"description": "Format of cv_base64: \"pdf\", \"docx\" or \"txt\". Ignored when cv_json is supplied",
"type": "string"
},
"profile": {
"description": "Who the job seeker is and what they want. Every field shapes matching, so guessing is worse than asking",
"properties": {
"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_advisory_open": {
"default": "yes",
"description": "Whether to include advisory, fractional, board and consulting roles alongside employment",
"enum": [
"yes",
"no"
],
"type": "string"
},
"cfg_email": {
"description": "Must match the email the API key is registered to. Results are emailed here as well as returned by get_search_status",
"type": "string"
},
"cfg_industries": {
"description": "Comma-separated sectors of interest, e.g. \"Music, Fintech, Healthcare\". Sectors only — job functions go in cfg_target_titles",
"type": "string"
},
"cfg_languages": {
"default": [
"english"
],
"description": "Working languages, lower case, e.g. [\"english\", \"german\"]. Roles requiring a language not listed here are dropped",
"items": {
"type": "string"
},
"type": "array"
},
"cfg_local_country": {
"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",
"type": "string"
},
"cfg_location": {
"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",
"type": "string"
},
"cfg_location_preference": {
"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",
"type": "string"
},
"cfg_name": {
"description": "Full name of the job seeker, as it should appear on the tailored CV",
"type": "string"
},
"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_seniority_level": {
"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",
"type": "string"
},
"cfg_share_with_employers": {
"default": "no",
"description": "Consent to share the profile with employers. \"no\" keeps the search entirely one-way",
"enum": [
"yes",
"no"
],
"type": "string"
},
"cfg_target_titles": {
"description": "Comma-separated target job titles, e.g. \"Head of Production, COO, Product Director\"",
"type": "string"
},
"cfg_uk_onsite": {
"default": "no",
"description": "Also include on-site roles in the UK. Defaults to no; UK remote is a separate flag",
"enum": [
"yes",
"no"
],
"type": "string"
},
"cfg_want_remote_eu": {
"description": "Include roles advertised as remote within the EU. Set independently of the other regions; several can be yes",
"enum": [
"yes",
"no"
],
"type": "string"
},
"cfg_want_remote_uk": {
"description": "Include roles advertised as remote within the UK",
"enum": [
"yes",
"no"
],
"type": "string"
},
"cfg_want_usa": {
"description": "Include roles in the USA. Say no unless the job seeker can legally work there or the role is genuinely remote-worldwide",
"enum": [
"yes",
"no"
],
"type": "string"
},
"cfg_work_style": {
"description": "remote_only rejects anything requiring office attendance; mix means local or hybrid near the candidate plus remote in the chosen regions",
"enum": [
"remote_only",
"mix"
],
"type": "string"
}
},
"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"
],
"type": "object"
}
},
"required": [
"profile"
],
"type": "object"
},
"name": "start_job_search",
"outputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false,
"properties": {
"credits_remaining": {
"description": "Credits left for this product after the spend",
"type": "number"
},
"error": {
"description": "Present only on failure, e.g. \"unauthorized\" or \"payment_required\"",
"type": "string"
},
"message": {
"description": "What happens next and roughly when, or what to do about the error",
"type": "string"
},
"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"
}
},
"type": "object"
}
}
]
}Verify it yourself
curl -s https://api.teppi.xyz/v1/evidence/sha256:5bc8404cb5cc98c292ff3d570fb8c1805ab4095e688e13a5beff34d574d32c83 | sha256sum