mcp
Search and apply to real jobs, browse companies, and read tech news via Datronis's live data.
Sollte ich dies verwenden
Qualität und Sicherheit
Befunde (1)
- LOWin admin_get_news_translation_status
Basierend auf einer automatisierten Analyse der Tool-Definitionen und der Einhaltung des Protokolls.
Kontextkosten
Dies ist die ungefähre Anzahl der Tokens, die jedes Mal verbraucht werden, wenn die Tools des Servers in den Kontext eines Modells geladen werden. Höhere Werte verringern die Aufmerksamkeit, die für andere Aufgaben verfügbar ist.
Installieren
Installation mit einem Klick
Fügen Sie dies Ihrer Datei `claude_desktop_config.json` hinzu:
{
"mcpServers": {
"mcp": {
"url": "https://api.datronis.com/api/mcp"
}
}
}Remote-Endpunkte
https://api.datronis.com/api/mcpstreamable-httpWas es kann
Tool-Inventar
Tools (19)
🟢search_jobs(q, country, city, remote_type, job_type, ...)
Search job listings by keyword, location, type, or remote policy. Returns paginated results with title, company, salary, and application URL.
Eingabe-Schema
{
"type": "object",
"properties": {
"q": {
"type": "string",
"description": "Search keyword (title or description)"
},
"country": {
"type": "string",
"description": "Filter by country (e.g. \"United States\")"
},
"city": {
"type": "string",
"description": "Filter by city"
},
"remote_type": {
"type": "string",
"enum": [
"REMOTE",
"HYBRID",
"ONSITE"
],
"description": "Remote work policy"
},
"job_type": {
"type": "string",
"enum": [
"FULL_TIME",
"PART_TIME",
"CONTRACT",
"INTERNSHIP",
"FREELANCE"
],
"description": "Employment type"
},
"job_level": {
"type": "string",
"enum": [
"ENTRY",
"MID",
"SENIOR",
"LEAD",
"EXECUTIVE"
],
"description": "Experience level required"
},
"skills": {
"type": "array",
"items": {
"type": "string"
},
"description": "Required skills (e.g. [\"Python\", \"React\"])"
},
"salary_min": {
"type": "integer",
"description": "Minimum annual salary (USD)"
},
"page": {
"type": "integer",
"minimum": 1,
"description": "Page number (default: 1)"
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 50,
"description": "Results per page (default: 10)"
},
"api_key": {
"type": "string",
"description": "Optional: your Datronis personal access token (starts with \"dtk_\"). Generate one at /app/api-keys/. Prefer sending it as an `Authorization: Bearer <token>` HTTP header instead of this argument — the header never enters the conversation/tool-call log the way this argument does. When provided (either way) and valid, results are personalized (e.g. includes whether you saved a job)."
}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢get_job(slug, api_key)
Get full details of a job listing by its slug or ID, including description, requirements, company info, and application link.
Eingabe-Schema
{
"type": "object",
"properties": {
"slug": {
"type": "string",
"description": "Job slug (URL-friendly identifier) or job ID"
},
"api_key": {
"type": "string",
"description": "Optional: your Datronis personal access token (starts with \"dtk_\"). Generate one at /app/api-keys/. Prefer sending it as an `Authorization: Bearer <token>` HTTP header instead of this argument — the header never enters the conversation/tool-call log the way this argument does. When provided (either way) and valid, results are personalized (e.g. includes whether you saved a job)."
}
},
"required": [
"slug"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢get_news(title, category_id, locale, limit, offset)
Fetch the latest news articles. Optionally filter by category, locale, or title keyword. Returns title, summary, publication date, and URL.
Eingabe-Schema
{
"type": "object",
"properties": {
"title": {
"type": "string",
"description": "Search keyword in title"
},
"category_id": {
"type": "integer",
"description": "Filter by category ID"
},
"locale": {
"type": "integer",
"minimum": 1,
"maximum": 24,
"default": 1,
"description": "Language locale (1=English, 2=Persian, 3=Spanish, 4=German, ...)"
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 50,
"default": 10
},
"offset": {
"type": "integer",
"minimum": 0,
"default": 0
}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢get_categories(locale)
List all content categories available on the platform (for filtering news, jobs, etc.).
Eingabe-Schema
{
"type": "object",
"properties": {
"locale": {
"type": "integer",
"minimum": 1,
"maximum": 24,
"default": 1,
"description": "Language locale (1=English)"
}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢search_companies(query, country, industry, is_hiring, limit, ...)
Search companies on the platform. Returns company name, industry, location, size, website, and open roles count.
Eingabe-Schema
{
"type": "object",
"properties": {
"query": {
"type": "string",
"description": "Company name or industry keyword"
},
"country": {
"type": "string",
"description": "Filter by country"
},
"industry": {
"type": "string",
"description": "Filter by industry"
},
"is_hiring": {
"type": "boolean",
"description": "Filter to companies actively hiring"
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 50,
"description": "Results per page (default: 10)"
},
"page": {
"type": "integer",
"minimum": 1,
"description": "Page number (default: 1)"
}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢get_platform_stats
Get high-level statistics about the Datronis platform: total active jobs, jobs indexed in the last 7 days, companies, countries represented, news articles, and users.
Eingabe-Schema
{
"type": "object",
"properties": {},
"$schema": "http://json-schema.org/draft-07/schema#"
}🔴apply_to_job(api_key, job_id, resume_id, cover_letter)
Submit a job application on behalf of the authenticated user. Requires a personal access token (generate one at /app/api-keys/). A resume is mandatory: if no resume_id is given, the user's default (or most recently updated) resume is used automatically, and the call fails with a clear error if the user has no resume yet.
Eingabe-Schema
{
"type": "object",
"properties": {
"api_key": {
"type": "string",
"description": "Your Datronis personal access token (starts with \"dtk_\"). Generate one at /app/api-keys/. Required unless sent as an `Authorization: Bearer <token>` HTTP header instead (preferred — see search_jobs' api_key description for why)."
},
"job_id": {
"type": "string",
"format": "uuid",
"description": "Job ID to apply for (from search_jobs or get_job)"
},
"resume_id": {
"type": "string",
"format": "uuid",
"description": "Resume to attach. If omitted, your default resume (or most recently updated) is used automatically."
},
"cover_letter": {
"type": "string",
"maxLength": 5000,
"description": "Optional cover letter text"
}
},
"required": [
"job_id"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢list_my_resumes(api_key, query, status, locale, page, ...)
List the authenticated user's saved resumes. Requires a personal access token (generate one at /app/api-keys/).
Eingabe-Schema
{
"type": "object",
"properties": {
"api_key": {
"type": "string",
"description": "Your Datronis personal access token (starts with \"dtk_\"). Generate one at /app/api-keys/. Required unless sent as an `Authorization: Bearer <token>` HTTP header instead (preferred — see search_jobs' api_key description for why)."
},
"query": {
"type": "string",
"description": "Search keyword in resume title or headline"
},
"status": {
"type": "string",
"enum": [
"draft",
"published",
"archived"
],
"description": "Filter by resume status"
},
"locale": {
"type": "string",
"description": "Filter by resume locale"
},
"page": {
"type": "integer",
"minimum": 1,
"description": "Page number (default: 1)"
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 50,
"description": "Results per page (default: 20)"
}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢get_my_applications(api_key, page, limit)
Check the status of the authenticated user's job applications. Requires a personal access token (generate one at /app/api-keys/).
Eingabe-Schema
{
"type": "object",
"properties": {
"api_key": {
"type": "string",
"description": "Your Datronis personal access token (starts with \"dtk_\"). Generate one at /app/api-keys/. Required unless sent as an `Authorization: Bearer <token>` HTTP header instead (preferred — see search_jobs' api_key description for why)."
},
"page": {
"type": "integer",
"minimum": 1,
"description": "Page number (default: 1)"
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 50,
"description": "Results per page (default: 20)"
}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟡draft_news(title, body, content_format, category_id, target_locales, ...)
Draft and publish a news article. Open to anyone with a Datronis account — the personal access token is for rate-limiting and audit, not permission-gating. Always drafted in English first; an automated safety classifier must return "green" (not political, not likely to be seen as controversial or divisive) before the article goes live. A "flagged" result creates the article unpublished and returns the reasons — use resubmit_news with revised content to try again; there is no way to force-publish a flagged article. Publishes English-only unless target_locales is given.
Eingabe-Schema
{
"type": "object",
"properties": {
"title": {
"type": "string",
"minLength": 1,
"description": "Article title (English)"
},
"body": {
"type": "string",
"minLength": 1,
"description": "Article body in the format selected by content_format"
},
"content_format": {
"type": "string",
"enum": [
"html",
"markdown"
],
"default": "html",
"description": "Body format. Use \"markdown\" for headings, tables, lists, code blocks, links and images; use \"html\" for rich HTML with classes and inline CSS. Defaults to html for backward compatibility."
},
"category_id": {
"type": "integer",
"description": "Category ID; defaults to the site's default news category"
},
"target_locales": {
"type": "array",
"items": {
"type": "string"
},
"description": "Optional 2-letter locale codes to also translate and publish into (e.g. [\"de\",\"ru\"]). English is always published first. Omit to publish English-only — broad multi-language publishing is only ever done when explicitly requested. There is no limit on how many locales may be requested here."
},
"allow_self_translation": {
"type": "boolean",
"description": "Reserves (does not yet grant a UI for) your permission to personally translate this article into additional locales later, beyond target_locales. Defaults to true — checked by default. Only ever applies to a locale after the English original has been classified \"green\"; a \"flagged\" article carries no translation permission regardless of this flag."
},
"api_key": {
"type": "string",
"description": "Your Datronis personal access token (starts with \"dtk_\"). Generate one at /app/api-keys/. Required unless sent as an `Authorization: Bearer <token>` HTTP header instead (preferred — see search_jobs' api_key description for why). Publishing is open to anyone with an account — this token exists for rate-limiting and an audit trail, not to gate who may publish."
}
},
"required": [
"title",
"body"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}⚪resubmit_news(news_id, title, body, content_format, target_locales, ...)
Revise and reclassify a news article that draft_news (or a previous resubmit_news call) rejected as "flagged". Every call is its own fully logged classification attempt against the news_id's audit trail — never a silent status flip. Publishes the revision live only if the classifier now returns "green". Only the account that originally submitted the article (via draft_news) may resubmit it — a different account's api_key is rejected, even a valid one.
Eingabe-Schema
{
"type": "object",
"properties": {
"news_id": {
"type": "integer",
"description": "The news_id returned by a previous draft_news call"
},
"title": {
"type": "string",
"minLength": 1,
"description": "Revised article title (English)"
},
"body": {
"type": "string",
"minLength": 1,
"description": "Revised article body (English)"
},
"content_format": {
"type": "string",
"enum": [
"html",
"markdown"
],
"default": "html",
"description": "Body format. Use \"markdown\" for headings, tables, lists, code blocks, links and images; use \"html\" for rich HTML with classes and inline CSS. Defaults to html for backward compatibility."
},
"target_locales": {
"type": "array",
"items": {
"type": "string"
},
"description": "Same as draft_news — only used if this revision is approved"
},
"allow_self_translation": {
"type": "boolean",
"description": "Same as draft_news. Omit to leave the article's existing setting unchanged; pass explicitly to change it."
},
"api_key": {
"type": "string",
"description": "Your Datronis personal access token (starts with \"dtk_\"). Generate one at /app/api-keys/. Required unless sent as an `Authorization: Bearer <token>` HTTP header instead (preferred — see search_jobs' api_key description for why). Publishing is open to anyone with an account — this token exists for rate-limiting and an audit trail, not to gate who may publish."
}
},
"required": [
"news_id",
"title",
"body"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟡get_missing_news_translations(locale, page, limit)
List published English news articles and which locale codes they are still missing a translation for. Pass locale to focus on one language at a time. Use this to find work for submit_news_translation — this tool only reports gaps, it never translates anything itself.
Eingabe-Schema
{
"type": "object",
"properties": {
"locale": {
"type": "string",
"description": "Optional 2-letter locale code (e.g. \"fi\") to only return articles missing that specific translation. Omit to see every published article missing at least one locale."
},
"page": {
"type": "integer",
"minimum": 1,
"description": "Page number (default: 1)"
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 50,
"description": "Results per page (default: 20)"
}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟡submit_news_translation(news_id, locale, title, body, content_format, ...)
Publish your own translation of an already-published English article into a new locale. Unlike draft_news's target_locales (which asks Datronis's own server to translate it), the translated title/body you pass here is published as-is — you (the calling AI) do the translation. Open to anyone with an account, same as draft_news; the source article must already be live, and only one translation may exist per (article, locale) — a locale that already has a translation is rejected, use get_missing_news_translations to find real gaps first.
Eingabe-Schema
{
"type": "object",
"properties": {
"news_id": {
"type": "integer",
"description": "The news_id of the published English source article (from get_news or get_missing_news_translations)"
},
"locale": {
"type": "string",
"description": "2-letter target locale code (e.g. \"fi\") — see get_missing_news_translations for what a given article still needs"
},
"title": {
"type": "string",
"minLength": 1,
"description": "Translated title, in the target locale"
},
"body": {
"type": "string",
"minLength": 1,
"description": "Translated body, in the target locale — HTML or plain text, same format as the source"
},
"content_format": {
"type": "string",
"enum": [
"html",
"markdown"
],
"default": "html",
"description": "Body format. Use \"markdown\" for headings, tables, lists, code blocks, links and images; use \"html\" for rich HTML with classes and inline CSS. Defaults to html for backward compatibility."
},
"api_key": {
"type": "string",
"description": "Your Datronis personal access token (starts with \"dtk_\"). Generate one at /app/api-keys/. Required unless sent as an `Authorization: Bearer <token>` HTTP header instead (preferred — see search_jobs' api_key description for why). Publishing is open to anyone with an account — this token exists for rate-limiting and an audit trail, not to gate who may publish."
}
},
"required": [
"news_id",
"locale",
"title",
"body"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟡admin_create_news(title, body, content_format, locale, category_id, ...)
Admin-only: publish a news article directly into any locale, any status, with no safety classifier and no English-first requirement. Requires an api_key belonging to an admin account — a valid but non-admin key is rejected. For non-admin accounts, use draft_news instead. Can also queue selected translations or every missing locale without keeping the MCP request open while translation runs.
Eingabe-Schema
{
"type": "object",
"properties": {
"title": {
"type": "string",
"minLength": 1,
"description": "Article title, in the target locale"
},
"body": {
"type": "string",
"minLength": 1,
"description": "Article body in the format selected by content_format"
},
"content_format": {
"type": "string",
"enum": [
"html",
"markdown"
],
"default": "html",
"description": "Body format. Use \"markdown\" for headings, tables, lists, code blocks, links and images; use \"html\" for rich HTML with classes and inline CSS. Defaults to html for backward compatibility."
},
"locale": {
"type": "string",
"description": "2-letter locale code to publish directly into (e.g. \"en\", \"de\") — no English-first requirement, unlike draft_news"
},
"category_id": {
"type": "integer",
"description": "Category ID; defaults to the site's default news category"
},
"published": {
"type": "boolean",
"description": "Whether the article goes live immediately. Defaults to true. No safety classifier runs either way — admin judgment only."
},
"target_locales": {
"type": "array",
"items": {
"type": "string"
},
"maxItems": 23,
"description": "Optional locale codes to translate in the durable background queue after creating the article. Use translate_to_all instead when every missing locale is wanted."
},
"translate_to_all": {
"type": "boolean",
"description": "When true, queue every missing locale after creating the article. The tool returns immediately; use admin_get_news_translation_status to follow progress."
},
"api_key": {
"type": "string",
"description": "Your Datronis personal access token (starts with \"dtk_\"). Generate one at /app/api-keys/. Required unless sent as an `Authorization: Bearer <token>` HTTP header instead (preferred — see search_jobs' api_key description for why). The token must belong to an admin account — a valid but non-admin key is rejected."
}
},
"required": [
"title",
"body",
"locale"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🔴admin_edit_news(news_id, title, body, content_format, category_id, ...)
Admin-only: edit any existing news article — title, body, category, or published status — regardless of who created it or what locale it is in. Requires an api_key belonging to an admin account. Unlike resubmit_news, there is no ownership restriction and no safety classifier; omit a field to leave it unchanged.
Eingabe-Schema
{
"type": "object",
"properties": {
"news_id": {
"type": "integer",
"description": "The news_id of any existing article — not limited to ones the caller created"
},
"title": {
"type": "string",
"minLength": 1,
"description": "New title. Omit to leave unchanged."
},
"body": {
"type": "string",
"minLength": 1,
"description": "New body. Omit to leave unchanged."
},
"content_format": {
"type": "string",
"enum": [
"html",
"markdown"
],
"default": "html",
"description": "Body format. Use \"markdown\" for headings, tables, lists, code blocks, links and images; use \"html\" for rich HTML with classes and inline CSS. Defaults to html for backward compatibility."
},
"category_id": {
"type": "integer",
"description": "New category ID. Omit to leave unchanged."
},
"published": {
"type": "boolean",
"description": "Publish or unpublish the article. Omit to leave the current status unchanged."
},
"api_key": {
"type": "string",
"description": "Your Datronis personal access token (starts with \"dtk_\"). Generate one at /app/api-keys/. Required unless sent as an `Authorization: Bearer <token>` HTTP header instead (preferred — see search_jobs' api_key description for why). The token must belong to an admin account — a valid but non-admin key is rejected."
}
},
"required": [
"news_id"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢admin_translate_news(news_id, target_locales, api_key)
Admin-only: durably queue server-generated translations for an existing published news article. Pass target_locales for selected languages, or omit it to fill every missing locale across all 24 supported languages. Existing translations are skipped and each locale has a deterministic task, so repeating the call is safe. This call returns quickly; use admin_get_news_translation_status until complete=true.
Eingabe-Schema
{
"type": "object",
"properties": {
"news_id": {
"type": "integer",
"description": "Any published news row in the translation family."
},
"target_locales": {
"type": "array",
"items": {
"type": "string"
},
"maxItems": 23,
"description": "Locale codes to fill (for example [\"fa\",\"de\"]). Omit to queue every locale that is still missing. Existing translations are skipped, so retries are safe."
},
"api_key": {
"type": "string",
"description": "Your Datronis personal access token (starts with \"dtk_\"). Generate one at /app/api-keys/. Required unless sent as an `Authorization: Bearer <token>` HTTP header instead (preferred — see search_jobs' api_key description for why). The token must belong to an admin account — a valid but non-admin key is rejected."
}
},
"required": [
"news_id"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢admin_get_news_translation_status(news_id, api_key)
Admin-only: inspect translation coverage and durable queue state for a news article. Returns existing locale rows, missing locale codes, per-locale QUEUED/PROCESSING/COMPLETED/FAILED jobs, and complete=true only when all 24 languages exist.
Eingabe-Schema
{
"type": "object",
"properties": {
"news_id": {
"type": "integer",
"description": "Any news row in the translation family."
},
"api_key": {
"type": "string",
"description": "Your Datronis personal access token (starts with \"dtk_\"). Generate one at /app/api-keys/. Required unless sent as an `Authorization: Bearer <token>` HTTP header instead (preferred — see search_jobs' api_key description for why). The token must belong to an admin account — a valid but non-admin key is rejected."
}
},
"required": [
"news_id"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟡create_resume(api_key, title, locale, is_default, name, ...)
Create a new resume for the authenticated user by directly specifying its content — name, headline, summary, contact info, work experience, education, skills, projects, certificates. Unlike the human resume builder at /app/resume-builder/, this tool skips layout and styling entirely — Datronis applies sensible defaults, which the user can still adjust later in the builder without losing anything you wrote. Requires a personal access token.
Eingabe-Schema
{
"type": "object",
"properties": {
"api_key": {
"type": "string",
"description": "Your Datronis personal access token (starts with \"dtk_\"). Generate one at /app/api-keys/. Required unless sent as an `Authorization: Bearer <token>` HTTP header instead (preferred — see search_jobs' api_key description for why)."
},
"title": {
"type": "string",
"description": "Internal title to identify this resume, e.g. \"Backend Engineer — EU\". Defaults to \"Untitled Resume\"."
},
"locale": {
"type": "string",
"description": "2-letter locale code for this resume version, e.g. \"en\", \"de\". Defaults to \"en\"."
},
"is_default": {
"type": "boolean",
"description": "Make this the default resume — used by apply_to_job when no resume_id is given."
},
"name": {
"type": "string",
"description": "Full name shown on the resume header."
},
"headline": {
"type": "string",
"description": "Short professional title under the name, e.g. \"Senior Software Engineer\"."
},
"summary": {
"type": "string",
"description": "2-4 sentence professional summary."
},
"location": {
"type": "string",
"description": "City, Country shown in the header."
},
"contact": {
"type": "object",
"properties": {
"email": {
"type": "string"
},
"phone": {
"type": "string"
},
"website": {
"type": "string"
},
"linkedin": {
"type": "string"
},
"github": {
"type": "string"
},
"twitter": {
"type": "string"
},
"reddit": {
"type": "string"
},
"telegram": {
"type": "string"
},
"languages": {
"type": "array",
"items": {
"type": "string"
}
}
},
"additionalProperties": false,
"description": "Contact links shown in the header."
},
"experiences": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Omit to auto-generate."
},
"company": {
"type": "string"
},
"title": {
"type": "string"
},
"location": {
"type": "string"
},
"startDate": {
"type": "string",
"description": "YYYY-MM"
},
"endDate": {
"type": "string",
"description": "YYYY-MM, omit/empty if current"
},
"current": {
"type": "boolean"
},
"bullets": {
"type": "array",
"items": {
"type": "string"
}
}
},
"required": [
"company",
"title"
],
"additionalProperties": false
},
"description": "Work history, most recent first. If provided, replaces this entire section — send the complete list, not just what changed."
},
"projects": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Omit to auto-generate."
},
"name": {
"type": "string"
},
"role": {
"type": "string"
},
"link": {
"type": "string"
},
"location": {
"type": "string"
},
"remote": {
"type": "boolean"
},
"startDate": {
"type": "string"
},
"endDate": {
"type": "string"
},
"bullets": {
"type": "array",
"items": {
"type": "string"
}
},
"tech": {
"type": "array",
"items": {
"type": "string"
}
}
},
"required": [
"name"
],
"additionalProperties": false
},
"description": "Projects section. If provided, replaces this entire section — send the complete list, not just what changed."
},
"skills": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Omit to auto-generate."
},
"name": {
"type": "string",
"description": "Category label, e.g. \"Programming\" or \"Backend\"."
},
"skills": {
"type": "array",
"items": {
"type": "string"
}
}
},
"required": [
"name",
"skills"
],
"additionalProperties": false
},
"description": "Skill categories. If provided, replaces this entire section — send the complete list, not just what changed."
},
"certificates": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Omit to auto-generate."
},
"name": {
"type": "string"
},
"issuer": {
"type": "string"
},
"date": {
"type": "string",
"description": "YYYY-MM"
}
},
"required": [
"name"
],
"additionalProperties": false
},
"description": "Certifications. If provided, replaces this entire section — send the complete list, not just what changed."
},
"education": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Omit to auto-generate."
},
"university": {
"type": "string"
},
"degree": {
"type": "string"
},
"field": {
"type": "string"
},
"location": {
"type": "string"
},
"startDate": {
"type": "string",
"description": "YYYY-MM"
},
"endDate": {
"type": "string",
"description": "YYYY-MM"
},
"current": {
"type": "boolean"
},
"bullets": {
"type": "array",
"items": {
"type": "string"
}
}
},
"required": [
"university"
],
"additionalProperties": false
},
"description": "Education history. If provided, replaces this entire section — send the complete list, not just what changed."
},
"customSections": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Omit to auto-generate."
},
"title": {
"type": "string",
"description": "Section heading, e.g. \"Publications\" or \"Volunteering\"."
},
"items": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Omit to auto-generate."
},
"title": {
"type": "string"
},
"subtitle": {
"type": "string"
},
"bullets": {
"type": "array",
"items": {
"type": "string"
}
}
},
"required": [
"title"
],
"additionalProperties": false
}
}
},
"required": [
"title",
"items"
],
"additionalProperties": false
},
"description": "Extra named sections not covered above (awards, publications, volunteering, etc). If provided, replaces this entire section — send the complete list, not just what changed."
}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟡update_resume(api_key, resume_id, title, locale, status, ...)
Update an existing resume's content and/or metadata (title, locale, status, default flag). By default this merges: fields you omit stay as they are, and any section array you DO send (experiences, education, skills, projects, certificates, customSections) replaces that one section while every other section is untouched — call list_my_resumes first if you need to see current content before adding to it (e.g. appending one job to an existing experience list). Requires a personal access token.
Eingabe-Schema
{
"type": "object",
"properties": {
"api_key": {
"type": "string",
"description": "Your Datronis personal access token (starts with \"dtk_\"). Generate one at /app/api-keys/. Required unless sent as an `Authorization: Bearer <token>` HTTP header instead (preferred — see search_jobs' api_key description for why)."
},
"resume_id": {
"type": "string",
"format": "uuid",
"description": "The resume to update — from list_my_resumes."
},
"title": {
"type": "string",
"description": "New internal title. Omit to leave unchanged."
},
"locale": {
"type": "string",
"description": "New locale code. Omit to leave unchanged."
},
"status": {
"type": "string",
"enum": [
"draft",
"published",
"archived"
],
"description": "New status. Omit to leave unchanged."
},
"is_default": {
"type": "boolean",
"description": "Make this the default resume. Omit to leave unchanged."
},
"full_replace": {
"type": "boolean",
"description": "false (default): merge — fields you omit stay as they are; any section array you DO send (experiences, education, skills, projects, certificates, customSections) replaces that one section, other sections are untouched. true: the content fields you send become the ENTIRE resume — any section you omit is removed. Call list_my_resumes first to see current content before adding to an existing section."
},
"name": {
"type": "string",
"description": "Full name shown on the resume header."
},
"headline": {
"type": "string",
"description": "Short professional title under the name, e.g. \"Senior Software Engineer\"."
},
"summary": {
"type": "string",
"description": "2-4 sentence professional summary."
},
"location": {
"type": "string",
"description": "City, Country shown in the header."
},
"contact": {
"type": "object",
"properties": {
"email": {
"type": "string"
},
"phone": {
"type": "string"
},
"website": {
"type": "string"
},
"linkedin": {
"type": "string"
},
"github": {
"type": "string"
},
"twitter": {
"type": "string"
},
"reddit": {
"type": "string"
},
"telegram": {
"type": "string"
},
"languages": {
"type": "array",
"items": {
"type": "string"
}
}
},
"additionalProperties": false,
"description": "Contact links shown in the header."
},
"experiences": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Omit to auto-generate."
},
"company": {
"type": "string"
},
"title": {
"type": "string"
},
"location": {
"type": "string"
},
"startDate": {
"type": "string",
"description": "YYYY-MM"
},
"endDate": {
"type": "string",
"description": "YYYY-MM, omit/empty if current"
},
"current": {
"type": "boolean"
},
"bullets": {
"type": "array",
"items": {
"type": "string"
}
}
},
"required": [
"company",
"title"
],
"additionalProperties": false
},
"description": "Work history, most recent first. If provided, replaces this entire section — send the complete list, not just what changed."
},
"projects": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Omit to auto-generate."
},
"name": {
"type": "string"
},
"role": {
"type": "string"
},
"link": {
"type": "string"
},
"location": {
"type": "string"
},
"remote": {
"type": "boolean"
},
"startDate": {
"type": "string"
},
"endDate": {
"type": "string"
},
"bullets": {
"type": "array",
"items": {
"type": "string"
}
},
"tech": {
"type": "array",
"items": {
"type": "string"
}
}
},
"required": [
"name"
],
"additionalProperties": false
},
"description": "Projects section. If provided, replaces this entire section — send the complete list, not just what changed."
},
"skills": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Omit to auto-generate."
},
"name": {
"type": "string",
"description": "Category label, e.g. \"Programming\" or \"Backend\"."
},
"skills": {
"type": "array",
"items": {
"type": "string"
}
}
},
"required": [
"name",
"skills"
],
"additionalProperties": false
},
"description": "Skill categories. If provided, replaces this entire section — send the complete list, not just what changed."
},
"certificates": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Omit to auto-generate."
},
"name": {
"type": "string"
},
"issuer": {
"type": "string"
},
"date": {
"type": "string",
"description": "YYYY-MM"
}
},
"required": [
"name"
],
"additionalProperties": false
},
"description": "Certifications. If provided, replaces this entire section — send the complete list, not just what changed."
},
"education": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Omit to auto-generate."
},
"university": {
"type": "string"
},
"degree": {
"type": "string"
},
"field": {
"type": "string"
},
"location": {
"type": "string"
},
"startDate": {
"type": "string",
"description": "YYYY-MM"
},
"endDate": {
"type": "string",
"description": "YYYY-MM"
},
"current": {
"type": "boolean"
},
"bullets": {
"type": "array",
"items": {
"type": "string"
}
}
},
"required": [
"university"
],
"additionalProperties": false
},
"description": "Education history. If provided, replaces this entire section — send the complete list, not just what changed."
},
"customSections": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Omit to auto-generate."
},
"title": {
"type": "string",
"description": "Section heading, e.g. \"Publications\" or \"Volunteering\"."
},
"items": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Omit to auto-generate."
},
"title": {
"type": "string"
},
"subtitle": {
"type": "string"
},
"bullets": {
"type": "array",
"items": {
"type": "string"
}
}
},
"required": [
"title"
],
"additionalProperties": false
}
}
},
"required": [
"title",
"items"
],
"additionalProperties": false
},
"description": "Extra named sections not covered above (awards, publications, volunteering, etc). If provided, replaces this entire section — send the complete list, not just what changed."
}
},
"required": [
"resume_id"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}Community
Nachweis