Skip to content

com.keywordise/keywordise

by keywordise.com · remote · no sign-in to list tools · v2.0.0 · published by com.keywordise

Auto-apply to jobs: matches your CV, tailors a fresh CV per posting, and applies for you.

Deletes · 10Final · 1Changes · 22

69 tools: 10 can delete or cancel things, 1 do something that can't be undone, 22 change things and 36 only read.

Scanned Oct 21, 2026

2 checks matched something in the tool definitions. No finding is not a safety guarantee. How the checks work.

claude mcp add --transport http keywordise https://keywordise.com/mcp

Findings

Matches of fixed checks, with the text they matched.

2 warn
  • The server marks "get_billing_portal_link" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

    Matched text

    annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "get_billing_portal_link" says "get": a word for reading.

    What this check looks for
  • The server marks "describe_what_i_want" as not read-only (readOnlyHint: false), and its words say it reads.

    Matched text

    annotations: {"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false}; The name "describe_what_i_want" says "describe": a word for reading.

    What this check looks for

Tools

Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.

69 tools

Deletes or cancels 10Claude Code: deny
  • answer_screening_questionRecord the person's answer to one screening question on one application.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Record the person's answer to one screening question on one application. The answer is written in the person's name and saved to their answer book, so the same question is never asked again. When it is the last required answer, the application is SUBMITTED to the employer. Only give an answer the person actually stated.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: false
    • openWorldHint: true
  • apply_to_live_jobUse after search_live_jobs when the person picks one of the results to apply to.No findings

    Why it is in this group

    • The name "apply_to_live_job" says "apply": a word for a change.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Use after search_live_jobs when the person picks one of the results to apply to. The same as apply_to_public_job, for a pool_job_id: puts the job into the person's matches and starts the application for that ONE job, which SUBMITS in the person's name. Needs the saved CV, a confirmed email and an active plan. Confirm with the person first. dry_run=true prepares and sends nothing.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: false
    • openWorldHint: true
  • apply_to_public_jobUse for 'Apply to Keywordise job abcde23456' or when the person asks to apply to a job from keywordise.com/jobs.No findings

    Why it is in this group

    • The name "apply_to_public_job" says "apply": a word for a change.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Use for 'Apply to Keywordise job abcde23456' or when the person asks to apply to a job from keywordise.com/jobs. Finds that job, puts it into the person's matches and starts the same application as the Apply button for that ONE job: tailors the CV and cover letter, answers the employer's questions and SUBMITS in the person's name. Needs the saved CV, a confirmed email and an active plan, and counts against the plan. Show the job first (get_public_job) and confirm with the person. dry_run=true prepares everything and sends nothing. Poll get_apply_run_status.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: false
    • openWorldHint: true
  • approve_applicationThe Send button of the review screen: SUBMITS an application that is waiting for review (get_application_review says editable), in the person's name.No findings

    Why it is in this group

    • The name "approve_application" says "approve": a word for a change.
    • The description's first verb is "send": a word for sending, and what is sent cannot be taken back.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    The Send button of the review screen: SUBMITS an application that is waiting for review (get_application_review says editable), in the person's name. `edits` maps a field's label exactly as get_application_review shows it to the new answer; edits are saved to the person's answer book. Use only with the person's approval of the answers.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: false
    • openWorldHint: true
  • cancel_subscriptionCancel the Pro subscription at the end of the current billing period.No findings

    Why it is in this group

    • The name "cancel_subscription" says "cancel": a word for removing or ending something.
    • The description says "Irreversible".
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Cancel the Pro subscription at the end of the current billing period. Access stays until then. Irreversible from here; the person can resubscribe later.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: false
    • openWorldHint: false
  • delete_my_accountErase the account and everything in it: profile, CV files, matches, applications, answers, keys.No findings

    Why it is in this group

    • The name "delete_my_account" says "delete": a word for removing or ending something.
    • The description says "Irreversible".
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Erase the account and everything in it: profile, CV files, matches, applications, answers, keys. Irreversible. Requires confirm_email equal to the account's address.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: false
    • openWorldHint: false
  • delete_saved_answerRemove one answer from the answer book (an answer_id from list_saved_answers).No findings

    Why it is in this group

    • The name "delete_saved_answer" says "delete": a word for removing or ending something.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Remove one answer from the answer book (an answer_id from list_saved_answers).

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: false
    • openWorldHint: false
  • reply_to_inbox_messageSENDS an email to the employer in the person's name, as a reply to one Inbox message.No findings

    Why it is in this group

    • The name "reply_to_inbox_message" says "reply": a word for sending, and what is sent cannot be taken back.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    SENDS an email to the employer in the person's name, as a reply to one Inbox message. Use only with the person's approval of the exact text. Fails with the app's own sentence when the message is not found or the text is empty.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: false
    • openWorldHint: true
  • revoke_api_keyRevoke one of this account's API keys immediately.No findings

    Why it is in this group

    • The name "revoke_api_key" says "revoke": a word for removing or ending something.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Revoke one of this account's API keys immediately. Any terminal or assistant using it stops working at once. Revoking the key you are calling with ends this session.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: false
    • openWorldHint: false
  • start_apply_runUse when the person says 'apply for me', 'apply to the best matches' or 'apply to this job' (pass job_id).No findings

    Why it is in this group

    • The name "start_apply_run" says "start": a word for a change.
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Use when the person says 'apply for me', 'apply to the best matches' or 'apply to this job' (pass job_id). Show them the jobs first. Start an application run: Keywordise takes up to `limit` of the matching jobs (same filters as list_matching_jobs, best fit first, never one already applied to), tailors the CV and cover letter for each, answers the employer's screening questions from the saved answers, and SUBMITS inside the employer's own system. Real applications leave in the person's name; needs a confirmed email and an active plan; counts against the plan. dry_run=true does everything except submit. Poll get_apply_run_status.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: false
    • openWorldHint: true
Can't be undone 1Claude Code: ask
  • resend_verification_emailSend the email-confirmation link again to this account's address.No findings

    Why it is in this group

    • The name "resend_verification_email" says "resend": a word for sending, and what is sent cannot be taken back.
    Description, as the server wrote it
    Send the email-confirmation link again to this account's address. Applying is blocked until the address is confirmed; nothing else is.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: false
Changes things 22Claude Code: ask
  • claim_referral_codeRecord that the person was referred by the owner of a referral code, for the discount and the friend's credit.No findings

    Why it is in this group

    • The input takes a statement or command to run (input.code), which can change anything it can reach.
    Description, as the server wrote it
    Record that the person was referred by the owner of a referral code, for the discount and the friend's credit. Allowed once, before the first payment; fails with the app's own sentence otherwise.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: false
  • create_accountRegister a new Keywordise account from the terminal and receive an API key for it.No findings

    Why it is in this group

    • The name "create_account" says "create": a word for a change.
    Description, as the server wrote it
    Register a new Keywordise account from the terminal and receive an API key for it. Requires accept_terms=true: the person accepts the Terms and Privacy Policy (https://keywordise.com/terms) and authorises Keywordise to apply for jobs on their behalf. A confirmation email is sent; applying opens once the address is confirmed. Trial: 7 days and 27 applications, then Starter at $24.99/month (500 applications) or Pro at $49/month (1,000).

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: false
  • create_api_keyMint an additional API key for this account, for another machine or assistant.No findings

    Why it is in this group

    • The name "create_api_key" says "create": a word for a change.
    Description, as the server wrote it
    Mint an additional API key for this account, for another machine or assistant. Shown once. Five active keys maximum.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: false
  • describe_what_i_wantUse when the person says what they are looking for in their own words ('senior remote data roles in the US, no agencies').1 finding

    Why it is in this group

    • The name "describe_what_i_want" says "describe": a word for reading.
    • The server marks it as not read-only (readOnlyHint: false).

    Findings

    • Warn

      The server marks "describe_what_i_want" as not read-only (readOnlyHint: false), and its words say it reads.

      Matched text

      annotations: {"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false}; The name "describe_what_i_want" says "describe": a word for reading.

      What this check looks for
    Description, as the server wrote it
    Use when the person says what they are looking for in their own words ('senior remote data roles in the US, no agencies'). Turn a plain sentence ('remote data roles in Germany or the Netherlands, senior, not agencies') plus the saved CV into concrete targeting rules. Returns the inferred rules and the chips a person would confirm; with apply=true they are saved and the feed re-matches. preset: balanced | broad | focused.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: false
  • export_my_dataThe account's complete data as one JSON file (profile, targeting, matched jobs, applications, saved answers, run history, audit trail).No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    The account's complete data as one JSON file (profile, targeting, matched jobs, applications, saved answers, run history, audit trail). Returned as a file; large accounts are told to download it in the app instead.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • loginExchange the account's email and password for a new API key, so a terminal or an assistant can act on the account.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    Description, as the server wrote it
    Exchange the account's email and password for a new API key, so a terminal or an assistant can act on the account. The key is shown once; keep it. Up to five keys may be active per account (revoke_api_key frees a slot).

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: false
  • move_tracker_cardSet the tracker stage of one application: saved, applied, interview, offer or rejected.No findings

    Why it is in this group

    • The name "move_tracker_card" says "move": a word for a change.
    Description, as the server wrote it
    Set the tracker stage of one application: saved, applied, interview, offer or rejected.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: false
  • prepare_external_applicationFor a job the app marks as applied on the employer's own site (apply_to_public_job / start_apply_run answer that they do not apply there for the person): tailors the person's CV an…No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    Description, as the server wrote it
    For a job the app marks as applied on the employer's own site (apply_to_public_job / start_apply_run answer that they do not apply there for the person): tailors the person's CV and writes the cover letter for that one job, on request, using no application credit. Returns the cover letter text; fetch the two PDFs with get_external_pack_pdf. A paid model call, cached per job. Nothing is sent to the employer.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: false
  • rate_jobFeedback on one job: hide or dislike removes it from the feed and teaches the matcher what this person rejects; interested is a positive signal.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    Description, as the server wrote it
    Feedback on one job: hide or dislike removes it from the feed and teaches the matcher what this person rejects; interested is a positive signal. Undo with unhide_job.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: false
  • refresh_matchesMatch the account's CV against the vacancies added since it last looked, in the background.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    Description, as the server wrote it
    Match the account's CV against the vacancies added since it last looked, in the background. Idempotent and cheap when nothing is new. force=true runs a full re-match regardless. rebuild=true rebuilds the feed from scratch through the same build as the app's Rebuild button (use it when the feed looks wrong). Every answer carries `feed_build`: poll get_match_status until its state is `ready` before reading list_matching_jobs, because a feed that is still building is not an empty feed.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: false
  • save_answerAdd or replace a screening answer in the answer book ('What is your notice period?' → '1 month').No findings

    Why it is in this group

    • The name "save_answer" says "save": a word for a change.
    Description, as the server wrote it
    Add or replace a screening answer in the answer book ('What is your notice period?' → '1 month'). Applications already waiting on that fact are completed and sent in the background. Only save what the person actually stated.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: false
  • set_cv_designSet the design every tailored CV is rendered in (a key from list_cv_designs).No findings

    Why it is in this group

    • The name "set_cv_design" says "set": a word for a change.
    Description, as the server wrote it
    Set the design every tailored CV is rendered in (a key from list_cv_designs).

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: false
  • set_referral_codeSet or change the person's own referral code (letters, digits and dashes, shown in their referral link).No findings

    Why it is in this group

    • The name "set_referral_code" says "set": a word for a change.
    • The input takes a statement or command to run (input.code), which can change anything it can reach.
    Description, as the server wrote it
    Set or change the person's own referral code (letters, digits and dashes, shown in their referral link). Fails with the app's own sentence when the code is taken or not allowed.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: false
  • set_tracker_noteReplace the person's own note on one tracked application (interview date, contact, next step).No findings

    Why it is in this group

    • The name "set_tracker_note" says "set": a word for a change.
    Description, as the server wrote it
    Replace the person's own note on one tracked application (interview date, contact, next step).

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: false
  • stop_apply_runUse for 'stop applying', 'pause', 'hold off'.No findings

    Why it is in this group

    • The name "stop_apply_run" says "stop": a word for a change.
    Description, as the server wrote it
    Use for 'stop applying', 'pause', 'hold off'. Ask the running application run to stop after the job it is on. Nothing is left half-done; applications already sent stay sent.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: false
  • unhide_jobUndo hide or dislike: the job returns to the feed and the negative signal is dropped.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    Description, as the server wrote it
    Undo hide or dislike: the job returns to the feed and the negative signal is dropped.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: false
  • update_application_detailsChange some of the application details.No findings

    Why it is in this group

    • The name "update_application_details" says "update": a word for a change.
    Description, as the server wrote it
    Change some of the application details. Only the fields given change; an empty string clears a field. Fields: salutation, address, postcode, city, state, country (two-letter code), phone_type (mobile, home or work), work_auth (object such as {"eu": true}), sponsorship (list of regions), salary_expectation (number). Only values the person actually stated.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: false
  • update_profileChange fields of the saved profile without re-uploading the CV.No findings

    Why it is in this group

    • The name "update_profile" says "update": a word for a change.
    Description, as the server wrote it
    Change fields of the saved profile without re-uploading the CV. Send only the fields to change (full_name, contact_email, phone, location, city, address, postcode, professional_summary, skills, pinned_skills, languages, experience, education, projects, certifications, links, …); everything else is untouched. The feed is re-ranked against the new CV.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: false
  • update_targetingChange targeting rules; send only the keys to change (remote_mode any|remote|hybrid|onsite, geo_scope worldwide|region|country, geo_countries [ISO-2], locations, include_keywords, …No findings

    Why it is in this group

    • The name "update_targeting" says "update": a word for a change.
    Description, as the server wrote it
    Change targeting rules; send only the keys to change (remote_mode any|remote|hybrid|onsite, geo_scope worldwide|region|country, geo_countries [ISO-2], locations, include_keywords, exclude_keywords, title_allow, title_block, seniority, salary_min, currency, languages, company_block, max_apps_per_day, max_apps_per_company, cover_letter_enabled, cv_tone, tailor_instructions, years_experience, salary_expectation, notice_period, …). The feed re-matches in the background.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: false
  • upload_cvUse when the person shares or mentions their resume/CV ('here's my resume', 'use my CV').No findings

    Why it is in this group

    • The name "upload_cv" says "upload": a word for a change.
    Description, as the server wrote it
    Use when the person shares or mentions their resume/CV ('here's my resume', 'use my CV'). Upload a CV file and turn it into the account's profile: the same parser the app uses reads the document into name, contact, summary, roles, skills, languages and education. With save=true (default) the profile is saved and the job feed is built from it; with save=false the parsed profile is returned for review only. Max 8 MB.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: false
Only reads 36Claude Code: allow
  • explain_job_matchUse for 'is this job a good fit', 'why this match', 'what am I missing for this role'.No findings

    Why it is in this group

    • The name "explain_job_match" says "explain": a word for reading.
    Description, as the server wrote it
    Use for 'is this job a good fit', 'why this match', 'what am I missing for this role'. For one vacancy: the match percentage, the requirements this account's CV covers and the ones it is missing. With narrative=true, also a short written assessment with strengths and gaps (a paid model call; limited to 60 per hour).

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_accountThe account behind this key: email and whether it is confirmed, plan state (trial days left, applications used and remaining, subscription), and how many API keys are active.No findings

    Why it is in this group

    • The name "get_account" says "get": a word for reading.
    Description, as the server wrote it
    The account behind this key: email and whether it is confirmed, plan state (trial days left, applications used and remaining, subscription), and how many API keys are active.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_application_detailsThe facts application forms ask beyond the CV: address, postcode, city, country, phone type, salutation, work authorisation by region, sponsorship, salary expectation, standard scr…No findings

    Why it is in this group

    • The name "get_application_details" says "get": a word for reading.
    Description, as the server wrote it
    The facts application forms ask beyond the CV: address, postcode, city, country, phone type, salutation, work authorisation by region, sponsorship, salary expectation, standard screening answers, and which of them are still missing. Read before telling the person what an application may be waiting for.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_application_reviewFor one application: every field of the form with its value and where the value came from (the CV, a saved answer, the person, or a model).No findings

    Why it is in this group

    • The name "get_application_review" says "get": a word for reading.
    Description, as the server wrote it
    For one application: every field of the form with its value and where the value came from (the CV, a saved answer, the person, or a model). For an application that waits for the person's review (`editable`), these are the answers about to be sent.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_apply_run_statusLive progress of the latest run: running or not (from a heartbeat, not a status claim), processed of total, the job being worked on now, confirmed, needs review, skipped, closed.No findings

    Why it is in this group

    • The name "get_apply_run_status" says "get": a word for reading.
    Description, as the server wrote it
    Live progress of the latest run: running or not (from a heartbeat, not a status claim), processed of total, the job being worked on now, confirmed, needs review, skipped, closed.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_external_pack_pdfThe tailored CV or the cover letter PDF written by prepare_external_application for one job, returned as a file.No findings

    Why it is in this group

    • The name "get_external_pack_pdf" says "get": a word for reading.
    Description, as the server wrote it
    The tailored CV or the cover letter PDF written by prepare_external_application for one job, returned as a file.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_feed_reachHow many jobs the current targeting shows versus how many each single rule is hiding, and which one change would widen the feed most.No findings

    Why it is in this group

    • The name "get_feed_reach" says "get": a word for reading.
    Description, as the server wrote it
    How many jobs the current targeting shows versus how many each single rule is hiding, and which one change would widen the feed most. Every number comes from re-asking the feed's own predicate with one control relaxed.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_inbox_addressThe email address Keywordise uses on the person's applications (employers reply to it), whether replies are also forwarded to their own mailbox, and whether applying by email is ac…No findings

    Why it is in this group

    • The name "get_inbox_address" says "get": a word for reading.
    Description, as the server wrote it
    The email address Keywordise uses on the person's applications (employers reply to it), whether replies are also forwarded to their own mailbox, and whether applying by email is active.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_job_postingThe full description of one matched vacancy, with a short summary and highlights, plus the link that opens the posting from the app.No findings

    Why it is in this group

    • The name "get_job_posting" says "get": a word for reading.
    Description, as the server wrote it
    The full description of one matched vacancy, with a short summary and highlights, plus the link that opens the posting from the app.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_live_jobThe full posting text of one live job from search_live_jobs (pool_job_id): title, employer, place, date and the description.No findings

    Why it is in this group

    • The name "get_live_job" says "get": a word for reading.
    Description, as the server wrote it
    The full posting text of one live job from search_live_jobs (pool_job_id): title, employer, place, date and the description. For a job in the person's own matches use get_job_posting.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_live_job_countsUse for 'how many jobs are there' or before quoting a number.No findings

    Why it is in this group

    • The name "get_live_job_counts" says "get": a word for reading.
    Description, as the server wrote it
    Use for 'how many jobs are there' or before quoting a number. The size of the live job pool Keywordise can apply to right now, from the same measurement the keywordise.com homepage prints: all live jobs, how many were found in the last 30 days, how many employers, and how many of them Keywordise applies to start to finish without the person doing anything.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_match_statusOnly for checking on a match or feed rebuild that is already running (after upload_cv, update_targeting or refresh_matches); to find or show jobs use list_matching_jobs.No findings

    Why it is in this group

    • The name "get_match_status" says "get": a word for reading.
    Description, as the server wrote it
    Only for checking on a match or feed rebuild that is already running (after upload_cv, update_targeting or refresh_matches); to find or show jobs use list_matching_jobs. Live status of the latest match run (scanned, inserted, elapsed), the feed counts it produced, and `feed_build`: where the feed is in its build (queued, building, ready, failed). Poll after upload_cv, update_targeting or refresh_matches; the feed is final only when feed_build.feed_state.state is `ready`.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_my_cv_pdfThe account's base CV (the saved profile, untailored) rendered as a PDF in the chosen design, returned as a file.No findings

    Why it is in this group

    • The name "get_my_cv_pdf" says "get": a word for reading.
    Description, as the server wrote it
    The account's base CV (the saved profile, untailored) rendered as a PDF in the chosen design, returned as a file. No model call.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_my_profileUse when the person asks what is on their profile or CV.No findings

    Why it is in this group

    • The name "get_my_profile" says "get": a word for reading.
    Description, as the server wrote it
    Use when the person asks what is on their profile or CV. Not needed before searching or applying: those tools read the saved CV themselves. The CV profile Keywordise holds for this account (name, contact, summary, skills, roles, education), the job-targeting rules (countries, remote preference, keywords) and the plan status (applications remaining). Call this first.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_profile_gapsThe gaps in the saved profile that weaken applications (missing dates on a role, no contact phone, empty summary, …), each with a severity, so they can be fixed with update_profile…No findings

    Why it is in this group

    • The name "get_profile_gaps" says "get": a word for reading.
    Description, as the server wrote it
    The gaps in the saved profile that weaken applications (missing dates on a role, no contact phone, empty summary, …), each with a severity, so they can be fixed with update_profile.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_public_jobUse when the person gives a Keywordise job id (ten characters) or a keywordise.com/jobs link, for example 'tell me about job abcde23456'.No findings

    Why it is in this group

    • The name "get_public_job" says "get": a word for reading.
    Description, as the server wrote it
    Use when the person gives a Keywordise job id (ten characters) or a keywordise.com/jobs link, for example 'tell me about job abcde23456'. Returns what the public page of that job shows: title, employer, place, date and a plain summary of the role. A job that has closed answers that it has closed. Apply with apply_to_public_job.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_referralsUse for 'what is my referral code', 'how much did I earn from referrals', 'who signed up through me'.No findings

    Why it is in this group

    • The name "get_referrals" says "get": a word for reading.
    Description, as the server wrote it
    Use for 'what is my referral code', 'how much did I earn from referrals', 'who signed up through me'. The person's referral code and link, the share they earn (and the discount a friend gets), their stats (signups, paying customers, earned, pending, paid out), recent commissions and payouts, and whether they were referred by someone.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_sent_cv_pdfThe tailored CV PDF that went to the employer for one application, returned as a file.No findings

    Why it is in this group

    • The name "get_sent_cv_pdf" says "get": a word for reading.
    Description, as the server wrote it
    The tailored CV PDF that went to the employer for one application, returned as a file.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_targetingEvery targeting rule the feed and the apply run obey: remote mode, geo scope and countries, locations, include/exclude keywords, title allow/block lists, seniority, salary, languag…No findings

    Why it is in this group

    • The name "get_targeting" says "get": a word for reading.
    Description, as the server wrote it
    Every targeting rule the feed and the apply run obey: remote mode, geo scope and countries, locations, include/exclude keywords, title allow/block lists, seniority, salary, languages, work authorisation, company allow/block, daily and per-company caps, cover-letter and CV settings, screening defaults.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_trackerThe tracker board: applications grouped by the stage the person set (saved, applied, interview, offer, rejected) with their own notes.No findings

    Why it is in this group

    • The name "get_tracker" says "get": a word for reading.
    Description, as the server wrote it
    The tracker board: applications grouped by the stage the person set (saved, applied, interview, offer, rejected) with their own notes.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • list_api_keysThe active API keys on this account: prefix, label, created and last used.No findings

    Why it is in this group

    • The name "list_api_keys" says "list": a word for reading.
    Description, as the server wrote it
    The active API keys on this account: prefix, label, created and last used. Never the key itself.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • list_blocking_questionsQuestions employers asked on applications that are stalled until this account answers them, grouped by application, each with a suggested answer drawn from what the person answered…No findings

    Why it is in this group

    • The name "list_blocking_questions" says "list": a word for reading.
    Description, as the server wrote it
    Questions employers asked on applications that are stalled until this account answers them, grouped by application, each with a suggested answer drawn from what the person answered before. Answer with answer_screening_question.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • list_countries_with_jobsThe countries the live pool actually has inventory in (ISO-2, name, job count), for choosing geo_countries in update_targeting.No findings

    Why it is in this group

    • The name "list_countries_with_jobs" says "list": a word for reading.
    Description, as the server wrote it
    The countries the live pool actually has inventory in (ISO-2, name, job count), for choosing geo_countries in update_targeting.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • list_cv_designsThe CV designs a tailored CV can be rendered in, with the account's current pick.No findings

    Why it is in this group

    • The name "list_cv_designs" says "list": a word for reading.
    Description, as the server wrote it
    The CV designs a tailored CV can be rendered in, with the account's current pick.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • list_cv_profilesUse for 'which CVs do I have', 'is my CV uploaded'.No findings

    Why it is in this group

    • The name "list_cv_profiles" says "list": a word for reading.
    Description, as the server wrote it
    Use for 'which CVs do I have', 'is my CV uploaded'. The CVs on the account (a person can keep several; one is the default the matches and applications use) with their labels, plus `cv_state`: whether a usable CV is held and why not when it is not.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • list_facts_to_provideThe universal screening facts this account has not answered yet (right to work, notice period, salary expectation, …), ranked by how many waiting applications each one unblocks.No findings

    Why it is in this group

    • The name "list_facts_to_provide" says "list": a word for reading.
    Description, as the server wrote it
    The universal screening facts this account has not answered yet (right to work, notice period, salary expectation, …), ranked by how many waiting applications each one unblocks. Answer them with save_answer.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • list_hidden_jobsThe jobs this account hid or disliked, newest first, so one can be put back.No findings

    Why it is in this group

    • The name "list_hidden_jobs" says "list": a word for reading.
    Description, as the server wrote it
    The jobs this account hid or disliked, newest first, so one can be put back.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • list_inboxUse for 'any replies?', 'did anyone get back to me?'.No findings

    Why it is in this group

    • The name "list_inbox" says "list": a word for reading.
    Description, as the server wrote it
    Use for 'any replies?', 'did anyone get back to me?'. The person's Inbox: one thread per application with the employer's results (interview invitations, rejections, requests), unread count, newest first. Read one with read_inbox_message.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • list_matching_jobsUse when the person wants jobs or their best matches: 'find me jobs', 'my top matches', 'remote marketing jobs that fit my resume', 'what's new for me this week'.No findings

    Why it is in this group

    • The name "list_matching_jobs" says "list": a word for reading.
    Description, as the server wrote it
    Use when the person wants jobs or their best matches: 'find me jobs', 'my top matches', 'remote marketing jobs that fit my resume', 'what's new for me this week'. It already uses the saved CV, so there is no need to read the profile first. Live vacancies matched to this account's CV, ranked. Each job carries a calibrated match percentage, a recruiter-pass verdict with a one-line reason, whether we apply to it automatically from start to finish, whether it waits on an answer from the person, and whether an application was already sent. Jobs that apply automatically come first. Filter by match tier, freshness and applies-automatically; page with offset.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • list_my_applicationsUse for 'what did I apply to', 'any replies', 'status of my applications'.No findings

    Why it is in this group

    • The name "list_my_applications" says "list": a word for reading.
    Description, as the server wrote it
    Use for 'what did I apply to', 'any replies', 'status of my applications'. Every application sent for this account: company, title, stage, outcome, when it went out, how many screening questions it still waits on, and the employer's acknowledgement where one was received.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • list_run_historyThe last five match runs and the last five application runs, with their counts and status.No findings

    Why it is in this group

    • The name "list_run_history" says "list": a word for reading.
    Description, as the server wrote it
    The last five match runs and the last five application runs, with their counts and status.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • list_saved_answersThe answer book: every screening answer this account has given or taught, which future applications reuse automatically in any phrasing or language.No findings

    Why it is in this group

    • The name "list_saved_answers" says "list": a word for reading.
    Description, as the server wrote it
    The answer book: every screening answer this account has given or taught, which future applications reuse automatically in any phrasing or language.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • preview_tailored_cvUse for 'tailor my resume for this job' or 'what would you send for this one'.No findings

    Why it is in this group

    • The name "preview_tailored_cv" says "preview": a word for reading.
    Description, as the server wrote it
    Use for 'tailor my resume for this job' or 'what would you send for this one'. Rewrite this account's CV for one vacancy the way Keywordise would send it: headline, summary, the roles selected for this job with rewritten bullets, curated skills and a cover letter, every segment labelled tailored, verbatim or pinned. Nothing is sent. A paid model call, limited to 20 per hour; the same billing gate as applying.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • read_inbox_messageThe full text of one Inbox message (from list_inbox), the employer's reply thread, and any verification code or link in it.No findings

    Why it is in this group

    • The name "read_inbox_message" says "read": a word for reading.
    Description, as the server wrote it
    The full text of one Inbox message (from list_inbox), the employer's reply thread, and any verification code or link in it. Reading marks the message as read.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • search_live_jobsUse for 'find remote data engineer jobs', 'nursing jobs in Germany', 'what is new in marketing this week'.No findings

    Why it is in this group

    • The name "search_live_jobs" says "search": a word for reading.
    Description, as the server wrote it
    Use for 'find remote data engineer jobs', 'nursing jobs in Germany', 'what is new in marketing this week'. Searches the WHOLE live job pool (about two million open jobs), not only the person's matches, and needs no CV. Words must all appear in the title, employer or description. Filters: remote only, a two-letter country code, jobs found within N days. Newest first. Each job has a pool_job_id; jobs that also have a page on keywordise.com/jobs carry a public_id. To apply, call apply_to_public_job (public_id) or apply_to_live_job (pool_job_id). For jobs ranked against this person's CV use list_matching_jobs instead.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • suggest_keywordsSearch keywords derived from the saved profile, useful as include_keywords in update_targeting.No findings

    Why it is in this group

    • The description's first verb is "search": a word for reading.
    Description, as the server wrote it
    Search keywords derived from the saved profile, useful as include_keywords in update_targeting.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false

This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.

Install

Pinned to version 2.0.0. Values in angle brackets are yours to fill in.

claude mcp add --transport http keywordise https://keywordise.com/mcp

Run in a terminal.

Claude Code permissions

Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.

.claude/settings.json
{
  "permissions": {
    "allow": [
      "mcp__keywordise__get_account",
      "mcp__keywordise__list_api_keys",
      "mcp__keywordise__get_my_profile",
      "mcp__keywordise__get_profile_gaps",
      "mcp__keywordise__suggest_keywords",
      "mcp__keywordise__list_cv_designs",
      "mcp__keywordise__get_my_cv_pdf",
      "mcp__keywordise__get_targeting",
      "mcp__keywordise__get_feed_reach",
      "mcp__keywordise__list_countries_with_jobs",
      "mcp__keywordise__list_matching_jobs",
      "mcp__keywordise__get_job_posting",
      "mcp__keywordise__explain_job_match",
      "mcp__keywordise__preview_tailored_cv",
      "mcp__keywordise__list_hidden_jobs",
      "mcp__keywordise__get_match_status",
      "mcp__keywordise__get_apply_run_status",
      "mcp__keywordise__list_my_applications",
      "mcp__keywordise__list_blocking_questions",
      "mcp__keywordise__get_sent_cv_pdf",
      "mcp__keywordise__list_run_history",
      "mcp__keywordise__list_saved_answers",
      "mcp__keywordise__list_facts_to_provide",
      "mcp__keywordise__get_tracker",
      "mcp__keywordise__get_live_job_counts",
      "mcp__keywordise__search_live_jobs",
      "mcp__keywordise__get_live_job",
      "mcp__keywordise__get_public_job",
      "mcp__keywordise__get_referrals",
      "mcp__keywordise__get_inbox_address",
      "mcp__keywordise__list_inbox",
      "mcp__keywordise__read_inbox_message",
      "mcp__keywordise__list_cv_profiles",
      "mcp__keywordise__get_application_details",
      "mcp__keywordise__get_application_review",
      "mcp__keywordise__get_external_pack_pdf"
    ],
    "ask": [
      "mcp__keywordise__create_account",
      "mcp__keywordise__login",
      "mcp__keywordise__resend_verification_email",
      "mcp__keywordise__get_upgrade_link",
      "mcp__keywordise__get_billing_portal_link",
      "mcp__keywordise__create_api_key",
      "mcp__keywordise__export_my_data",
      "mcp__keywordise__upload_cv",
      "mcp__keywordise__update_profile",
      "mcp__keywordise__set_cv_design",
      "mcp__keywordise__update_targeting",
      "mcp__keywordise__describe_what_i_want",
      "mcp__keywordise__rate_job",
      "mcp__keywordise__unhide_job",
      "mcp__keywordise__refresh_matches",
      "mcp__keywordise__stop_apply_run",
      "mcp__keywordise__save_answer",
      "mcp__keywordise__move_tracker_card",
      "mcp__keywordise__set_tracker_note",
      "mcp__keywordise__set_referral_code",
      "mcp__keywordise__claim_referral_code",
      "mcp__keywordise__update_application_details",
      "mcp__keywordise__prepare_external_application"
    ],
    "deny": [
      "mcp__keywordise__cancel_subscription",
      "mcp__keywordise__revoke_api_key",
      "mcp__keywordise__delete_my_account",
      "mcp__keywordise__start_apply_run",
      "mcp__keywordise__answer_screening_question",
      "mcp__keywordise__delete_saved_answer",
      "mcp__keywordise__apply_to_public_job",
      "mcp__keywordise__apply_to_live_job",
      "mcp__keywordise__reply_to_inbox_message",
      "mcp__keywordise__approve_application"
    ]
  }
}

Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as keywordise. Review it before you use it.