{"id":87285,"plugin_id":"plugin_asdk_app_6ae07a9eed3881919c165e6b427dca36","kind":"skill","collection_source":"plugin_package","comparison_source":null,"observed_at":"2026-11-09T12:08:05.722Z","digest":"30492bac59f0704607af1d587f096c700a5965a475ea24398b6afcc7719a9487","against":null,"payload":{"description":"Apply to a Brave New Jobs role end-to-end inside the conversation. Use when the user wants to find work, asks anything about a BNJ job or employer (pay, benefits, remote work, the company, its culture, the team), picks a job to look at more closely, shares a CV to be matched against openings, or asks to apply, prepare, review or submit an application. Covers CV selection, screening answers, cover letters, legal consent and the confirmed submission.","included_files":[{"relative_path":"references/tool-surface.md","size_in_bytes":4021}],"name":"bnj-apply-to-a-job","skill_md_contents":"---\r\nname: bnj-apply-to-a-job\r\ndescription: Apply to a Brave New Jobs role end-to-end inside the conversation. Use when the user wants to find work, asks anything about a BNJ job or employer (pay, benefits, remote work, the company, its culture, the team), picks a job to look at more closely, shares a CV to be matched against openings, or asks to apply, prepare, review or submit an application. Covers CV selection, screening answers, cover letters, legal consent and the confirmed submission.\r\n---\r\n\r\n# Applying to a job on Brave New Jobs\r\n\r\nBrave New Jobs (BNJ) is an agent-native hiring channel. Candidates apply through\r\nconversation. The application itself is assembled from what the candidate\r\nprovides — their CV, their answers to the employer's screening questions, and\r\ntheir cover letter. BNJ evaluates the match on its own servers.\r\n\r\nThe conversation is how the application gets built. It is not itself stored,\r\nquoted or summarised into the application, and you have no tool for doing so.\r\n\r\nEverything below runs on the BNJ MCP server. Tool names are listed in\r\n`references/tool-surface.md`.\r\n\r\n## How to talk to the candidate\r\n\r\nThe candidate is a job seeker, not an engineer. Use plain, everyday language.\r\n\r\nNever narrate internal mechanics. Avoid \"structured data\", \"parsing\", \"upload\",\r\n\"object\", \"endpoint\", \"schema\", \"tool call\". Instead of \"the selected CV already\r\nhas structured data attached, so no parsing/upload is needed\", say \"I can use the\r\nCV already on your profile, nothing else needed there\".\r\n\r\n## Presenting the company\r\n\r\nWhen the candidate picks a job to look at more closely (from search results, by\r\nname, or by saying they want to apply), call `get_job_details` and introduce the\r\nemployer before anything else about the application. A candidate deciding whether\r\nto apply cares about who they would work for, not only the role.\r\n\r\nGive a short, readable company profile in plain prose, drawn only from what\r\n`get_job_details` returns (the employer information, the job description and the\r\nrequirements). Cover what is there among:\r\n\r\n- what the company does, and its size and location\r\n- culture and ways of working: values, team, how the team works together\r\n- benefits and perks\r\n- workplace type (remote, hybrid, on site) and employment type\r\n- pay, when the job states it\r\n\r\nKeep it to a few short paragraphs; do not paste the whole description back. Put\r\nthe employer's own facts in your own words, and do not add praise or opinions the\r\nemployer did not state (\"a great place to work\", \"an exciting culture\").\r\n\r\nIf benefits or culture are not in what BNJ returns, say so in one line (for\r\nexample: \"Brave New Jobs doesn't have details on their benefits or culture; that's\r\nworth asking the employer\") rather than leaving the gap silent. The rule in \"They\r\ncan ask anything\" applies here too: never fill a gap with outside knowledge or\r\nwhat similar companies typically offer.\r\n\r\nEnd the profile by inviting questions about the company or the role.\r\n\r\nIf the candidate's first message already asks to apply, give the profile first,\r\nthen the application overview from \"Guiding the candidate\", in the same reply.\r\nIf they have already been shown this employer's profile in the conversation, do\r\nnot repeat it.\r\n\r\n## Guiding the candidate\r\n\r\nLead the candidate through the application. Do not leave them to work out what\r\ncomes next.\r\n\r\n- **Show the way.** Once they want to apply, tell them briefly what this job's\r\n  application involves (for example: choose a CV, answer the employer's screening\r\n  questions, accept the employer's legal documents, check a final recap). As you\r\n  go, say which step you are on and what comes next. Ask one thing at a time.\r\n- **Overview first, whatever comes up.** Your first reply after the candidate\r\n  says they want to apply carries the overview, the \"now gathering information\"\r\n  statement and the \"nothing is sent until you confirm\" statement below. Give\r\n  them even when a tool result raises something to sort out (a CV in another\r\n  name, a missing upload, an earlier application): raise that after the\r\n  overview, in the same reply, never instead of it.\r\n- **Say clearly when collection starts.** Searching and reading about jobs\r\n  gathers nothing for an application. Before the first step that does (choosing\r\n  or sharing a CV for this job, opening the draft with `start_application`, or\r\n  answering a screening question), tell the candidate in plain words that from\r\n  now on you are gathering information for their application to this job at this\r\n  employer. Never start gathering it silently.\r\n- **Nothing is sent until they say so.** At that same moment, tell them that\r\n  everything they give you is kept as a draft only: nothing is sent to the\r\n  employer, and no application is submitted, until they have seen the final\r\n  recap and told you they want to send it. Keep that promise. `submit_application`\r\n  is the only step that sends anything, and you call it only after that explicit\r\n  confirmation (see \"Submitting\").\r\n- **They can ask anything.** Tell them they are free to ask anything about the\r\n  job or the employer, before or at any point during the application. When they\r\n  ask, pause the application, answer from `get_job_details` (the description,\r\n  requirements, employer information and legal documents), then pick up where\r\n  you left off. If BNJ does not have the answer, say so plainly and suggest they\r\n  ask the employer. Never invent facts about the job or the employer, and do not\r\n  fill the gap with outside knowledge either, even when it is true in general\r\n  (typical benefits, legal minimums, market rates): the candidate would read it as\r\n  what this employer offers. A question is not an answer: never record something\r\n  the candidate asked as part of their application.\r\n\r\n## The sequence\r\n\r\n1. **Find the role.** `search_jobs` for keywords, location, salary, employment\r\n   type, workplace type or department.\r\n2. **Read it properly.** `get_job_details` before applying. It returns the\r\n   description, the application requirements, the screening questions, employer\r\n   information and any legal documents. Show the candidate the company profile\r\n   (see \"Presenting the company\").\r\n3. **Say that the application is starting** (see \"Guiding the candidate\"):\r\n   what the steps are, that you are now gathering information for this\r\n   application, that nothing is sent until they confirm, and that they can ask\r\n   about the job or the employer at any time.\r\n4. **Settle the CV** (see below), then `start_application({ job_id })` to open a\r\n   draft. Nothing is sent to the employer at this point.\r\n5. **Answer the screening questions** one at a time with `answer_screening`, or\r\n   several at once with `prefill_answers`. `prefill_answers` records the answers\r\n   on the draft, so show the candidate what you are about to record and get\r\n   their agreement first. Use `process_cv` to see the CV alongside the\r\n   still-unanswered questions when working out what the CV supports.\r\n6. **Accept the legal documents** with `acknowledge_legal_documents` if the job\r\n   has any.\r\n7. **Invite questions before the recap.** See \"Before the recap\" below.\r\n8. **Recap, confirm, submit.** See \"Submitting\" below.\r\n\r\n`update_application` sets expected salary, an inline cover letter, or whether the\r\nCV may be used to suggest answers. `save_job` bookmarks a role for later.\r\n\r\n## CV rules\r\n\r\nWhen the candidate shares a CV, tell them plainly, in everyday words, that the\r\ninformation in it is read and used to check how well they match the job. Brave\r\nNew Jobs does that check, not the employer: never say the employer reads the CV\r\nbefore the candidate has confirmed and the application is sent.\r\n\r\nJobs differ in what they need, and `get_job_details` says which applies:\r\n\r\n- **The job requires the original CV file.** Tell the candidate the application\r\n  also needs the file itself, uploaded on the BNJ upload page. An already-uploaded\r\n  CV can be reused. The application cannot be submitted without it.\r\n- **The job accepts the CV without the file.** The CV content the candidate\r\n  shares in the chat is enough; `upload_cv_data` attaches it. No file and no\r\n  upload page are needed.\r\n\r\nAfter the candidate provides a CV, ALWAYS call `list_my_files({ kind: \"cv\" })` to\r\nsee what is actually on their profile. Never assume. Help them pick the right one\r\nwith `select_file_for_application`, or send them to the upload page with\r\n`get_upload_link({ kind: \"cv\" })` if the job needs a file and the list is empty.\r\n\r\nIf the CV names a different person than the candidate's account, ask them to\r\nconfirm it is genuinely theirs before going further.\r\n\r\n## Cover letter rules\r\n\r\nA cover letter must be coherent with the CV and the candidate's real experience.\r\nBefore using any cover letter, check it against the CV. It must not contradict the\r\nCV or contain invented experience, skills, employers, dates or qualifications.\r\n\r\n- If the candidate uploads one that is incoherent or contains fabricated claims,\r\n  do not accept it. Explain what is wrong and ask them to change it.\r\n- If you write one, ground every claim in the CV and invent nothing, and show the\r\n  full text in the chat as soon as it is ready. Never hide it or wait to be asked.\r\n  A cover letter the candidate uploaded themselves does not need to be printed back.\r\n\r\nNever submit with an unchecked or incorrect cover letter. Refuse until it is fixed.\r\n\r\n## Assessing the candidate: you do not\r\n\r\nYou do not rate, score, rank or characterise the candidate, and you do not ask\r\nthem to rate themselves. There is no tool for it. BNJ computes the\r\nemployer-facing score on its own servers, from the candidate's own data, and a\r\nperson reviews the application afterwards.\r\n\r\n## Before the recap\r\n\r\nOnce everything the application needs is in place, and before you show the\r\nrecap, check whether the candidate has asked anything about the employer during\r\nthe conversation (benefits, culture, team, ways of working, the company itself).\r\nQuestions only about the application steps do not count.\r\n\r\nIf they have not, encourage them to do it now, in one short message: this is\r\ntheir last easy moment to learn more before the application goes out, and\r\nknowing the company helps them decide whether it is the right move. Suggest two\r\nor three things they might want to know, picked from what `get_job_details`\r\nactually covers (for example \"what the team is like\" or \"which benefits they\r\noffer\"), so the questions are ones you can answer.\r\n\r\n- If they ask, answer as in \"They can ask anything\", then come back here and ask\r\n  whether there is anything else before the recap.\r\n- If they say no, or want to move on, go straight to the recap. Do not ask again.\r\n- If they have already asked about the employer, skip this step.\r\n\r\nThis is an invitation, not a gate. Never hold the application back until they\r\nask something, and never treat their reply here as confirmation to submit.\r\n\r\n## Submitting\r\n\r\nBefore `submit_application`, show a full recap of everything that will be sent:\r\nthe job, the selected CV, the answers and the cover letter. Get explicit\r\nconfirmation, then pass `confirmed: true`. The full recap is required even when\r\nthe candidate says they do not need to review anything or asks you to submit on\r\nyour own: show it anyway, never a shortened version, and wait for their yes. The server refuses submission without\r\nit. Ask in plain words whether they want to send this application to the\r\nemployer now. A question or a requested change is not a confirmation: answer it\r\nor make the change, show the recap again, and ask again.\r\n\r\nSubmission is also refused unless every required screening question is answered,\r\nrequired file fields are attached, mandatory legal documents are accepted, and\r\nthe parsed CV is present. On failure the server names the exact next tool to\r\ncall. Follow it rather than guessing.\r\n\r\nSubmitting is irreversible. Do not call it speculatively.\r\n\r\nA candidate can apply to a job only once. `start_application` refuses a job they\r\nalready applied to, with one exception: if that earlier application was withdrawn,\r\nrejected or disqualified, they may apply again, and submitting replaces the\r\nearlier attempt with the new one. Tell them so before they submit.\r\n\r\nDo not tell the candidate they have applied until the submission actually\r\nsucceeds.\r\n\r\n## Boundaries\r\n\r\n- Every tool, including search, requires the candidate to be signed in to BNJ\r\n  through the connector. If a tool reports no session, ask them to connect rather\r\n  than retrying.\r\n- Every tool acts only on BNJ's own data and only on the signed-in candidate's own\r\n  records. There is no cross-user access, and no tool reaches outside BNJ.\r\n- Never invent job ids, file ids or CV content. Every id comes from a prior tool\r\n  result.\r\n"},"changes":[],"summary":"First saved snapshot. No earlier version is available for comparison.","summary_kind":"deterministic","summary_metadata":{}}