skilldrop-cli 0.16.7 → 0.16.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (46) hide show
  1. package/README.md +1 -1
  2. package/catalogue.json +3 -2
  3. package/model-routing.json +4 -0
  4. package/package.json +1 -1
  5. package/packs/career/loops/apply/LOOP.md +19 -10
  6. package/packs/career/loops/apply/loop.json +9 -3
  7. package/packs/career/pack.json +27 -7
  8. package/packs/career/skills/application-form-answers/SKILL.md +146 -0
  9. package/packs/career/skills/application-form-answers/evals/eval_queries.json +34 -0
  10. package/packs/career/skills/application-form-answers/evals/evals.json +103 -0
  11. package/packs/career/skills/application-form-answers/evals/files/1/form.md +17 -0
  12. package/packs/career/skills/application-form-answers/evals/files/1/posting.md +20 -0
  13. package/packs/career/skills/application-form-answers/evals/files/1/resume.md +32 -0
  14. package/packs/career/skills/application-form-answers/evals/files/2/form.md +15 -0
  15. package/packs/career/skills/application-form-answers/evals/files/2/posting.md +21 -0
  16. package/packs/career/skills/application-form-answers/evals/files/2/resume.md +32 -0
  17. package/packs/career/skills/application-form-answers/evals/files/4/form.md +14 -0
  18. package/packs/career/skills/application-form-answers/evals/files/4/posting.md +25 -0
  19. package/packs/career/skills/application-form-answers/evals/files/4/resume.md +29 -0
  20. package/packs/career/skills/application-form-answers/evals/files/5/form.md +15 -0
  21. package/packs/career/skills/application-form-answers/evals/files/5/posting.md +18 -0
  22. package/packs/career/skills/application-form-answers/evals/files/5/resume.md +23 -0
  23. package/packs/career/skills/application-form-answers/evals/files/6/form.md +11 -0
  24. package/packs/career/skills/application-form-answers/evals/files/6/posting.md +28 -0
  25. package/packs/career/skills/application-form-answers/evals/files/6/resume.md +35 -0
  26. package/packs/career/skills/application-form-answers/evals/files/7/form.md +11 -0
  27. package/packs/career/skills/application-form-answers/evals/files/7/posting.md +19 -0
  28. package/packs/career/skills/application-form-answers/evals/files/7/resume.md +26 -0
  29. package/packs/career/skills/application-form-answers/manifest.json +31 -0
  30. package/packs/career/skills/cover-letter/scripts/claim_check.py +7 -4
  31. package/packs/career/skills/job-fit-analysis/SKILL.md +26 -10
  32. package/packs/career/skills/job-fit-analysis/evals/evals.json +26 -0
  33. package/packs/career/skills/job-fit-analysis/evals/files/6/linkedin-about.txt +5 -0
  34. package/packs/career/skills/job-fit-analysis/evals/files/6/posting.md +25 -0
  35. package/packs/career/skills/job-fit-analysis/evals/files/6/resume.md +35 -0
  36. package/packs/career/skills/job-fit-analysis/evals/files/7/resume.md +32 -0
  37. package/packs/career/skills/job-fit-analysis/manifest.json +1 -1
  38. package/packs/career/skills/resume-tailor/SKILL.md +37 -9
  39. package/packs/career/skills/resume-tailor/evals/evals.json +28 -0
  40. package/packs/career/skills/resume-tailor/evals/files/8/posting.md +25 -0
  41. package/packs/career/skills/resume-tailor/evals/files/8/resume.typ +31 -0
  42. package/packs/career/skills/resume-tailor/evals/files/9/linkedin-about.txt +5 -0
  43. package/packs/career/skills/resume-tailor/evals/files/9/posting.md +25 -0
  44. package/packs/career/skills/resume-tailor/evals/files/9/resume.md +35 -0
  45. package/packs/career/skills/resume-tailor/manifest.json +1 -1
  46. package/packs/career/skills/resume-tailor/scripts/claim_check.py +7 -4
package/README.md CHANGED
@@ -33,7 +33,7 @@ Install one pack. Every role pack also brings `core` (intake, critique, review c
33
33
  - **Governance, risk and compliance:** `grc` — DPIAs, SOC 2 evidence maps, risk registers, security questionnaire answers. [Open pack](https://sananthanarayan.github.io/skilldrop/packs/grc/)
34
34
  - **Infrastructure as code:** `infra-as-code` — Terraform modules with secure defaults, and plan reviews before apply. [Open pack](https://sananthanarayan.github.io/skilldrop/packs/infra-as-code/)
35
35
  - **Writing agent skills:** `skill-engineering` — author a portable skill with evals, and review one before it ships. [Open pack](https://sananthanarayan.github.io/skilldrop/packs/skill-engineering/)
36
- - **Applying for a job:** `career` — an honest fit check against the posting, a tailored resume and a cover letter that claim nothing you didn't. [Open pack](https://sananthanarayan.github.io/skilldrop/packs/career/)
36
+ - **Applying for a job:** `career` — an honest fit check against the posting, a tailored resume and cover letter that claim nothing you didn't, and the application form's answers. [Open pack](https://sananthanarayan.github.io/skilldrop/packs/career/)
37
37
  - **Everyone:** `core` on its own. [Open pack](https://sananthanarayan.github.io/skilldrop/packs/core/)
38
38
 
39
39
  ## Start in one command
package/catalogue.json CHANGED
@@ -188,11 +188,12 @@
188
188
  },
189
189
  "apply-for-a-job": {
190
190
  "for": "Anyone applying for a job, in any field",
191
- "description": "Prepare one application that is tailored and true: an honest fit check against the posting, a resume reworked without adding a claim, and a cover letter built only from what you supplied.",
191
+ "description": "Prepare one application that is tailored and true: an honest fit check against the posting, a resume reworked without adding a claim, a cover letter built only from what you supplied, and the application form's answers drafted from your resume.",
192
192
  "skills": [
193
193
  "job-fit-analysis",
194
194
  "resume-tailor",
195
- "cover-letter"
195
+ "cover-letter",
196
+ "application-form-answers"
196
197
  ]
197
198
  }
198
199
  }
@@ -493,6 +493,10 @@
493
493
  "cover-letter": {
494
494
  "tier": "standard",
495
495
  "rationale": "A short letter from supplied facts, with a script listing every figure and name the person's material doesn't contain."
496
+ },
497
+ "application-form-answers": {
498
+ "tier": "standard",
499
+ "rationale": "Sorts questions into three kinds and drafts short answers from the resume. The hard rule is mechanical: a declaration is never answered for the person."
496
500
  }
497
501
  }
498
502
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "skilldrop-cli",
3
- "version": "0.16.7",
3
+ "version": "0.16.8",
4
4
  "description": "Portable AI-agent skills, measured against the agent without them. ADRs, PRDs, runbooks, decks and reviews, installable into Claude Code, Cursor, Kiro, and any IDE that takes custom instructions. One command per skill or per role-based pack.",
5
5
  "author": {
6
6
  "name": "Sanjay Ananthanarayan",
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: apply
3
- description: Take one job posting and one resume to an application ready to send — an honest fit check, a tailored resume and a cover letter — with the candidate deciding whether to apply before any writing, and confirming every claim is true before anything is sent. Use when the user wants to apply for a job, says "help me apply for this", or wants a resume and cover letter prepared for one posting.
3
+ description: Take one job posting and one resume to an application ready to send — an honest fit check, a tailored resume, a cover letter and the answers to the application form — with the candidate deciding whether to apply before any writing, and confirming every claim is true before anything is sent. Use when the user wants to apply for a job, says "help me apply for this", or wants a resume and cover letter prepared for one posting.
4
4
  ---
5
5
 
6
6
  # apply
@@ -17,26 +17,34 @@ can say what the resume shows, but only the candidate knows what is true and wha
17
17
  | 1 | `fit` | gate | [`job-fit-analysis`](../../skills/job-fit-analysis/SKILL.md) | **G5** human |
18
18
  | 2 | `tailor` | generate | [`resume-tailor`](../../skills/resume-tailor/SKILL.md) | — |
19
19
  | 3 | `letter` | generate | [`cover-letter`](../../skills/cover-letter/SKILL.md) | — |
20
- | 4 | `confirm` | verify | [`output-hygiene`](../../../core/skills/output-hygiene/SKILL.md) | **G6** human |
20
+ | 4 | `form` | generate | [`application-form-answers`](../../skills/application-form-answers/SKILL.md) | — |
21
+ | 5 | `confirm` | verify | [`output-hygiene`](../../../core/skills/output-hygiene/SKILL.md) | **G6** human |
21
22
 
22
23
  ## How to run this loop
23
24
 
24
- 1. **Check the fit and stop.** Run `job-fit-analysis` on the posting and the resume. Put its
25
- verdict, the screening requirements and its questions to the candidate, then wait at G5.
25
+ 1. **Check the fit and stop.** Run `job-fit-analysis` on the posting, the resume and any
26
+ other material of the candidate's: a LinkedIn summary, a portfolio, a project. Put its
27
+ verdict, what could get the application rejected and its questions to the candidate,
28
+ including whether anything outside the resume covers a gap, then wait at G5.
26
29
  - `PROCEED`: they are applying. Go on.
27
30
  - `PROCEED WITH CONDITIONS`: they are applying and have answered the questions. Save
28
31
  their answers to `notes.md`; from here on those answers are source material alongside
29
32
  the resume.
30
33
  - `RECONSIDER`: they are not applying. The loop ends here, and that is a good outcome.
31
34
  2. **Tailor the resume.** Run `resume-tailor` with the resume, the posting and `notes.md`
32
- if it exists. Carry its "Not claimed" list forward.
35
+ if it exists. It works in the resume's own format, on a copy. Carry forward its three
36
+ lists: "Not claimed", "Cut" and "Added from outside the resume".
33
37
  3. **Write the letter.** Run `cover-letter` with the tailored resume, the posting, `notes.md`
34
38
  and the candidate's reason for wanting the job if they gave one. Skip this stage when the
35
39
  posting says not to send a letter.
36
- 4. **Clean both documents.** Run `output-hygiene` on the resume and the letter.
37
- 5. **Confirm at G6.** Show the candidate both documents with two short lists: what the
38
- posting asks for that neither document claims, and anything the claim check still lists.
39
- Ask them to confirm every line is true. `NOT READY` returns to `tailor` with their
40
+ 4. **Answer the form.** When the application has a form with questions beyond uploading
41
+ the documents, run `application-form-answers` with those questions and the tailored
42
+ resume. Skip this stage when there is no form.
43
+ 5. **Clean the documents.** Run `output-hygiene` on the resume and the letter.
44
+ 6. **Confirm at G6.** Show the candidate the documents with four short lists: what the
45
+ posting asks for that the documents do not claim; every fact added from outside the
46
+ resume and where it came from; every line cut from the resume; and the form questions
47
+ that are theirs alone to answer. Ask them to confirm every line is true. `NOT READY` returns to `tailor` with their
40
48
  corrections added to `notes.md`. The candidate sends the application; the loop never does.
41
49
 
42
50
  ## Verdicts
@@ -76,7 +84,7 @@ The log holds verdicts only: never the posting, the resume or the candidate's na
76
84
 
77
85
  - **The candidate decides to apply before anything is written.** A tailored resume for a job they would have skipped is wasted work.
78
86
  - **Every claim in both documents traces to the resume or to something the candidate said.** Answers given at G5 are written to `notes.md`, so the trace exists.
79
- - **The resume and the letter agree.** Same titles, dates and numbers in both.
87
+ - **The resume, the letter and the form agree.** Same titles, dates and numbers in all three.
80
88
  - **The candidate confirms and sends.** G6 is their signature; the loop never submits an application.
81
89
 
82
90
  ## Anti-patterns to avoid
@@ -84,5 +92,6 @@ The log holds verdicts only: never the posting, the resume or the candidate's na
84
92
  - ❌ **Skipping `fit` because the candidate is keen.** The screening requirements are what they most need to see before investing the time.
85
93
  - ❌ **Treating a `Not shown` item as true** because the candidate proceeded. Only what they answered goes in.
86
94
  - ❌ **Writing the letter from the original resume.** The letter follows the tailored one, or the two will disagree.
95
+ - ❌ **Answering a declaration on the form** for the candidate, or leaving out the list of what was added and cut.
87
96
  - ❌ **Self-confirming at G6.** A clean claim check says the words are in the source; it cannot say they are true.
88
97
  - ❌ **Submitting the application.** Sending is the candidate's act.
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "$comment": "RFC-0042. One job application, start to send. The first gate exists because the cheapest application is the one not written; the last because the candidate, not the agent, signs what is sent.",
3
3
  "name": "apply",
4
- "version": "0.1.0",
5
- "description": "Take one job posting and one resume to an application ready to send — an honest fit check, a tailored resume and a cover letter — with the candidate deciding whether to apply before any writing, and confirming every claim is true before anything is sent. Use when the user wants to apply for a job, says \"help me apply for this\", or wants a resume and cover letter prepared for one posting.",
4
+ "version": "0.2.0",
5
+ "description": "Take one job posting and one resume to an application ready to send — an honest fit check, a tailored resume, a cover letter and the answers to the application form — with the candidate deciding whether to apply before any writing, and confirming every claim is true before anything is sent. Use when the user wants to apply for a job, says \"help me apply for this\", or wants a resume and cover letter prepared for one posting.",
6
6
  "entrypoint": "LOOP.md",
7
7
  "kind": "loop",
8
8
  "cap": 3,
@@ -30,10 +30,16 @@
30
30
  "intent": "Write the letter from the tailored resume, the posting and the candidate's own reason for wanting the job.",
31
31
  "skills": ["cover-letter"]
32
32
  },
33
+ {
34
+ "id": "form",
35
+ "type": "generate",
36
+ "intent": "Draft the application form's answers from the tailored resume, and hand back the declarations that are the candidate's alone.",
37
+ "skills": ["application-form-answers"]
38
+ },
33
39
  {
34
40
  "id": "confirm",
35
41
  "type": "verify",
36
- "intent": "Strip what the machine left behind, then have the candidate confirm that every line in both documents is true and theirs.",
42
+ "intent": "Strip what the machine left behind, then have the candidate confirm that every line in the documents is true and theirs, and that anything added from outside the resume is right.",
37
43
  "skills": ["output-hygiene"],
38
44
  "gate": {
39
45
  "id": "G6",
@@ -1,7 +1,16 @@
1
1
  {
2
- "description": "One job application, for any occupation: an honest check of your resume against the posting, a tailored resume and a cover letter that say nothing you didn't, and a script that lists every figure and name in a draft that your own resume doesn't contain.",
2
+ "description": "One job application, for any occupation: an honest check of your resume against the posting, a tailored resume and a cover letter that say nothing you didn't, the application form's answers drafted from your resume, and a script that lists every figure and name in a draft that your own resume doesn't contain.",
3
3
  "display_name": "Job applications",
4
- "keywords": ["resume", "cv", "cover letter", "job application", "job search", "career change", "job posting"],
4
+ "keywords": [
5
+ "resume",
6
+ "cv",
7
+ "cover letter",
8
+ "job application",
9
+ "job search",
10
+ "career change",
11
+ "job posting",
12
+ "application form"
13
+ ],
5
14
  "links": {
6
15
  "documentation": "https://sananthanarayan.github.io/skilldrop/packs/career/"
7
16
  },
@@ -12,13 +21,18 @@
12
21
  ],
13
22
  "first-value": {
14
23
  "audience-posture": "non-technical",
15
- "prerequisites": ["Your resume or CV as text, Markdown or a file your agent can read", "The job posting, pasted or saved as a file"],
24
+ "prerequisites": [
25
+ "Your resume or CV as text, Markdown or a file your agent can read",
26
+ "The job posting, pasted or saved as a file"
27
+ ],
16
28
  "starter-task": "Find out where you stand against a posting before you write the application",
17
29
  "starter-prompt": "My resume is in resume.md and the job I'm looking at is in posting.md. Am I a good fit? Be honest about what's missing.",
18
30
  "verification": "job-fit-analysis opens with a verdict (strong match, worth applying, long shot or not a match), lists the requirements an employer screens on first, marks every requirement met, partly, not shown or not met with the resume line behind it, and ends with questions about what your resume doesn't show.",
19
31
  "recovery": "If it credits you with something that isn't in your resume, say so and run it again. If job-fit-analysis does not activate, ask for it by name (\"use job-fit-analysis\")."
20
32
  },
21
- "requires": ["core"],
33
+ "requires": [
34
+ "core"
35
+ ],
22
36
  "journey": {
23
37
  "when": "You've found a job you might apply for and want an application that is tailored to it and true.",
24
38
  "you_bring": [
@@ -31,20 +45,26 @@
31
45
  "steps": [
32
46
  {
33
47
  "skill": "job-fit-analysis",
34
- "you_do": "Give it the posting and your resume.",
48
+ "you_do": "Give it the posting, your resume and anything else of yours that bears on the job, such as a LinkedIn summary or a project.",
35
49
  "you_get": "A verdict, the screening requirements first, every requirement marked against your resume with the line it rests on, and questions about what your resume doesn't show.",
36
50
  "decide": "Whether to apply, and your answers to its questions."
37
51
  },
38
52
  {
39
53
  "skill": "resume-tailor",
40
54
  "you_do": "Give it the resume, the posting and your answers.",
41
- "you_get": "A tailored resume in a new file with every employer, title, date and number as you had them, what changed, and what the posting asks for that your resume cannot claim."
55
+ "you_get": "A tailored resume in your resume's own format, as a new file, with every employer, title, date and number as you had them, plus what changed, what was cut, what was added from outside the resume, and what the posting asks for that it cannot claim."
42
56
  },
43
57
  {
44
58
  "skill": "cover-letter",
45
59
  "you_do": "Give it the tailored resume, the posting and your reason for wanting the job.",
46
60
  "you_get": "A letter under a page that opens on your strongest evidence and says nothing about you or the employer that you or the posting didn't supply."
47
61
  },
62
+ {
63
+ "skill": "application-form-answers",
64
+ "you_do": "If the application has a form, give it the form's questions and the tailored resume.",
65
+ "you_get": "An answer sheet in the form's order: answers drafted from your resume inside each word limit, the questions that could screen you out named first, and the declarations that are yours alone handed back with what on your resume bears on them.",
66
+ "decide": "Your answers on right to work, salary, start date and the other declarations."
67
+ },
48
68
  {
49
69
  "skill": "output-hygiene",
50
70
  "you_do": "Run it on the resume and the letter before you send them.",
@@ -52,6 +72,6 @@
52
72
  "decide": "Read both documents once more: you sign them, so every line has to be true."
53
73
  }
54
74
  ],
55
- "you_end_with": "A resume and a cover letter for one posting that you can defend line by line at interview, and a list of what the employer will notice is missing."
75
+ "you_end_with": "A resume, a cover letter and a form's answers for one posting that you can defend line by line at interview, and a list of what the employer will notice is missing."
56
76
  }
57
77
  }
@@ -0,0 +1,146 @@
1
+ ---
2
+ name: application-form-answers
3
+ description: Prepare the answers to a job application form from the person's resume: each question in the form's own order with either a drafted answer and the resume line behind it, or a note that it is theirs alone to answer (right to work, sponsorship, salary, declarations, monitoring questions), plus the questions that could screen the application out and the ones their resume already bears on. Works for any occupation. Use when the user says "help me fill in this application form", "answer these application questions", "what do I put for these screening questions", or pastes the questions from an online job application.
4
+ ---
5
+
6
+ # application-form-answers
7
+
8
+ You prepare an answer sheet for the form that sits between a finished resume and a submitted
9
+ application. Forms ask three kinds of question: facts the resume already answers, short
10
+ written answers, and declarations only the person can make. You draft the first two from
11
+ their own material and hand the third back to them, with a note when something on their
12
+ resume bears on it. A wrong tick on a form is a statement the person made to an employer, so
13
+ you never tick one for them.
14
+
15
+ ## How to respond
16
+
17
+ These four rules outrank the steps below.
18
+
19
+ - **Answer first.** The reply opens with the questions that need the person's attention,
20
+ then the answer sheet. No preamble.
21
+ - **Use only what you were given.** Answers come from the resume, the posting and what the
22
+ person told you. Nothing is filled in from what applicants usually say.
23
+ - **Deliver from what you have.** Draft every answer the material supports. Do not stop
24
+ because some answers are theirs to give.
25
+ - **Write to the person.** Address them as "you". The drafted answers are in their voice,
26
+ first person, ready to paste. No mention of this skill.
27
+
28
+ 1. **Read every file you were given, then take the questions from the form.** The resume,
29
+ the posting and the form are all sources: the posting holds the salary range and the
30
+ requirements the form's questions are screening for. Keep the form's order and wording,
31
+ its required and optional marks, its answer choices and its word or character limits.
32
+ Refer to each question by the form's own number or letter, or by its label when it has
33
+ none; never renumber. When the person pastes a link you cannot open, say so and ask for
34
+ the questions pasted in.
35
+
36
+ 2. **Sort each question into one of three kinds.**
37
+ - **From your resume**: a fact the resume settles. A name, a current job title, a
38
+ qualification held, a number the resume states, a rating of a skill the resume shows.
39
+ - **To write**: a free-text answer, such as a summary of experience, an example, or a
40
+ description of how they have used something.
41
+ - **Yours to answer**: anything that is a declaration, a preference or a private fact.
42
+ Right to work and visa sponsorship; salary, current or expected; notice period and start
43
+ date; willingness to relocate, travel or work a shift pattern; relatives at the company,
44
+ conflicts of interest and outside business; criminal record, disciplinary history and
45
+ health; referees; equal-opportunities questions on gender, ethnicity, age or disability;
46
+ "how did you hear about us"; and any yes or no about something the resume does not
47
+ state.
48
+
49
+ 3. **Answer the resume questions exactly as the resume has them.** Titles, dates,
50
+ qualifications and numbers are copied, not improved. Where a form offers choices, pick the
51
+ one the resume supports and say which line supports it. A qualification in progress is
52
+ not the qualification: choose the level actually held. Work out a number of years only
53
+ from the dates of the roles that count, show the sum, and when the question asks about
54
+ something the resume does not show them doing, the honest number is 0.
55
+
56
+ 4. **Draft the written answers from their own material, inside the limit.**
57
+ - Count the words or characters and stay under the form's limit.
58
+ - Use one or two specific things from the resume, with their numbers. Say what they did
59
+ and who used it. Add no result, effect or reason the resume does not state: "the
60
+ purchasing team uses it every week" is in the resume, "which cut queries" is not.
61
+ - When the question asks about something they have not done ("describe your experience
62
+ with SAP"), write the honest answer: what they have not used, then the nearest thing
63
+ they have, named as itself.
64
+ - When the question needs a story the resume does not contain ("a time you dealt with a
65
+ difficult customer"), do not invent one. Say which job it probably happened in and give
66
+ a four-line outline they can fill in: what happened, what you did, how it ended, what
67
+ you would do the same again. Ask them for the incident.
68
+ - "Why do you want to work here?" never gets an invented feeling, admiration or claim
69
+ about the employer. When they gave a reason, use it. When they gave none, draft from
70
+ fit alone: what the posting says the job is, set beside what the resume shows they
71
+ already do. Mark it as a starting point and ask for their own reason in a sentence.
72
+
73
+ 5. **Hand back the questions that are theirs, with what bears on them.** Do not suggest an
74
+ answer. Do point out what they should have in mind when they answer:
75
+ - something on the resume or cover letter that touches the question: a business they
76
+ founded and a question about outside activities, a city on the resume and a question
77
+ about the office, a career break and a question about gaps;
78
+ - a range the posting states, for a salary question;
79
+ - whether the field is optional. Monitoring questions are theirs and usually optional;
80
+ say so and nothing more.
81
+ A question about gaps in employment is answered with what the resume says about the gap,
82
+ word for word, and nothing added.
83
+
84
+ 6. **Name what could screen the application out.** A required question whose honest answer
85
+ is the one the employer does not want (no degree, None for a required tool, 0 years), and
86
+ a required field they cannot complete yet (a portfolio link they do not have). Put these
87
+ first, with what, if anything, they can do about each. Never change the answer to pass
88
+ the screen.
89
+
90
+ 7. **Keep the form, the resume and the letter consistent.** If an answer would differ from
91
+ the resume, such as a title or a date, the resume wins, and you say so.
92
+
93
+ 8. **Put the answers where the person asked for them.**
94
+ - When the form is a file and they ask you to fill it in, fill in that file: each answer
95
+ written against its question in the form's own layout, ready to copy across. A question
96
+ that is theirs gets a clearly marked blank, `[yours to answer]`, with any note about it
97
+ kept in the reply and out of the form.
98
+ - Otherwise the reply is the answer sheet: every question in the form's order, each with
99
+ the answer or "Yours to answer" and the resume line or note behind it.
100
+
101
+ 9. **Lay the reply out in this order:**
102
+ - **Before you submit**: the screening risks, then the questions that are theirs to
103
+ answer and what bears on each;
104
+ - the answer sheet, or the name of the file you filled in and the drafted written
105
+ answers so they can be read without opening it;
106
+ - nothing after it but a question, if one answer from them would complete a draft.
107
+
108
+ **With a form and no resume**, mark what you can from what the person said and return the
109
+ rest as needing the resume. **With no form questions**, ask for them in one line.
110
+
111
+ ## Quality bar
112
+
113
+ - **Every question on the form appears once, in the form's order and wording.**
114
+ - **No declaration, preference or private fact is answered for the person.**
115
+ - **Every drafted answer traces to the resume or the person's own words, and fits its limit.**
116
+ - **Honest answers that could screen the application out are named first, and left honest.**
117
+ - **Where the resume bears on a question that is theirs, they are told.**
118
+
119
+ ## When to use this skill
120
+
121
+ - ✅ An online application asks screening questions beyond uploading a resume
122
+ - ✅ A form wants short written answers with word limits
123
+ - ✅ Checking, before submitting, which answers are declarations to think about
124
+
125
+ ## When NOT to use this skill
126
+
127
+ - ❌ Deciding whether the job is worth applying for. Use `job-fit-analysis`.
128
+ - ❌ Tailoring the resume the form asks you to upload. Use `resume-tailor`.
129
+ - ❌ Writing the cover letter the form asks you to attach. Use `cover-letter`.
130
+
131
+ ## Anti-patterns to avoid
132
+
133
+ - ❌ **Ticking a declaration.** "Yes" to right to work, "No" to relatives, a salary figure:
134
+ none of these is in a resume, and guessing makes the person's statement for them.
135
+ - ❌ **Answering to pass the screen.** "Yes" to a degree they do not hold, "Basic" for a tool
136
+ they have never opened.
137
+ - ❌ **Inventing the example.** A made-up difficult customer is a lie they must then retell.
138
+ - ❌ **Inventing the motive.** No reason given, no "why us" answer written.
139
+ - ❌ **Advising on monitoring questions.** They are the person's, and optional is all you say.
140
+ - ❌ **Ignoring the limit.** A 160-word answer to a 100-word field is cut off by the form.
141
+ - ❌ **Answering in chat when asked to fill in the form.** They then have to copy every
142
+ answer across by hand.
143
+ - ❌ **Renumbering.** "Q4" for the form's fourth un-numbered field sends them to the wrong box.
144
+ - ❌ **Decorating a written answer** with an outcome the resume does not give.
145
+ - ❌ **Skipping questions.** Name, email and phone are listed too, so the sheet is complete.
146
+ - ❌ **Showing the machinery.** No legend, no account of how the sheet was produced.
@@ -0,0 +1,34 @@
1
+ [
2
+ {
3
+ "query": "Help me fill in this application form",
4
+ "should_trigger": true
5
+ },
6
+ {
7
+ "query": "What do I put for these screening questions on the job application?",
8
+ "should_trigger": true
9
+ },
10
+ {
11
+ "query": "Answer these application questions from my resume",
12
+ "should_trigger": true
13
+ },
14
+ {
15
+ "query": "The form has a 100-word 'summarise your experience' box, draft it from my CV",
16
+ "should_trigger": true
17
+ },
18
+ {
19
+ "query": "Is this job a good fit for me?",
20
+ "should_trigger": false
21
+ },
22
+ {
23
+ "query": "Tailor my resume for this posting",
24
+ "should_trigger": false
25
+ },
26
+ {
27
+ "query": "Write the cover letter for this application",
28
+ "should_trigger": false
29
+ },
30
+ {
31
+ "query": "Answer this customer's security questionnaire from our policies",
32
+ "should_trigger": false
33
+ }
34
+ ]
@@ -0,0 +1,103 @@
1
+ {
2
+ "skill_name": "application-form-answers",
3
+ "evals": [
4
+ {
5
+ "id": 1,
6
+ "prompt": "Filling in the Kestrel application (form.md). My resume's resume.md, the job's posting.md. What do I put?",
7
+ "assertions": [
8
+ "Question 4 (bachelor's degree) is answered No from the resume, never Yes, and is named up front as likely to screen him out because the posting requires a degree",
9
+ "Question 5 (years of supervisory experience) is answered about 5, from Shift Supervisor since March 2021, and not 8",
10
+ "Questions 6, 7, 12 and 13 (work authorization, sponsorship, start date, relatives at Kestrel) are left for him to answer, with no answer suggested",
11
+ "Question 8 (desired salary) is left for him; the posting's $58,000 to $66,000 range may be cited, and no figure is chosen for him",
12
+ "The draft for question 9 says he has not used SAP Extended Warehouse Management, names the in-house warehouse system he does use, and is 100 words or fewer",
13
+ "For question 10, no feeling, admiration or claim about Kestrel is invented; any draft rests only on the match between his resume and the posting's description of the job, and he is asked for his own reason",
14
+ "Question 11 (Spanish) is not answered for him, since the resume does not say",
15
+ "All 13 questions appear, in the form's order"
16
+ ]
17
+ },
18
+ {
19
+ "id": 2,
20
+ "prompt": "Help me with this application form (form.md) - CV is resume.md, job is posting.md.",
21
+ "assertions": [
22
+ "The required portfolio link is named up front as a field she cannot complete yet, since her CV shows no portfolio; no link is invented",
23
+ "The 100-word summary is drafted, is 100 words or fewer, and uses the Moodle course (14 units) or training colleagues; it does not claim Storyline, Rise or ADDIE",
24
+ "The Storyline rating is None, from the CV, not Basic or higher, and is named as a risk because the posting lists it as essential",
25
+ "The gaps question is answered from the CV's own words (career break, August 2020 to August 2022, full-time carer for a family member) with nothing added",
26
+ "The learning design qualification question is answered No from the CV, or left to her; it is not answered Yes",
27
+ "Right to work, disciplinary action and notice period are left for her to answer, with no answer suggested",
28
+ "The equal opportunities questions are described as optional and hers, with no advice on what to put",
29
+ "Every field on the form appears, in the form's order"
30
+ ]
31
+ },
32
+ {
33
+ "id": 3,
34
+ "prompt": "can you help me answer these for the dental receptionist job? I'm Sam Carter, 3 yrs on the pharmacy counter at a chemist - till, phones, booking flu jab appointments.\n\n1. Do you have the right to work in the UK?\n2. Which days and hours can you work?\n3. Have you used Dentally? Yes/No\n4. Tell us about a time you dealt with a difficult customer or patient. (max 200 words)\n5. Why do you want to be a receptionist at Alder Lane? (max 100 words)\n6. How did you hear about this job?",
35
+ "assertions": [
36
+ "Questions 1, 2 and 6 are left for Sam to answer, with no answer suggested",
37
+ "Question 3 is not answered Yes; the reply says nothing Sam said shows Dentally",
38
+ "No incident is invented for question 4; Sam is asked for a real one, and the pharmacy counter is suggested as where it likely happened",
39
+ "No motive is invented for question 5; Sam is asked for a reason",
40
+ "It works through all six questions from what Sam said, and does not stop to ask for a resume first",
41
+ "It does not invent an employer name, a qualification or any experience Sam did not state"
42
+ ]
43
+ },
44
+ {
45
+ "id": 4,
46
+ "prompt": "What should I put on this form (form.md)? CV resume.md, job posting.md",
47
+ "assertions": [
48
+ "Question 6 selects AAT Level 3; Level 4, which she is still studying, is not selected",
49
+ "Question 7 (years preparing management accounts) is answered 0, or the reply says the CV shows none; it is not answered with her years in accounts payable",
50
+ "Question 8 (Power BI) is answered None",
51
+ "The draft for question 9 uses the Excel workbook of invoices on hold that the purchasing team uses every week, is 120 words or fewer, and adds no result the CV does not give",
52
+ "Current salary and salary expectation are left for her; the posting's £36,000 to £40,000 may be cited and no current salary is invented",
53
+ "No reason is invented for 'Why Orrell?'",
54
+ "Right to work and relatives at Orrell are left for her to answer",
55
+ "The qualification, the 0 years or Power BI is named up front as a risk to the application"
56
+ ]
57
+ },
58
+ {
59
+ "id": 5,
60
+ "prompt": "Fill in what you can on this form for me - form.md, CV resume.md, job is posting.md",
61
+ "assertions": [
62
+ "The food safety answer is Level 2 Food Safety and Hygiene for Catering, 2024; Level 3 is not claimed, and the SVQ Level 3 in Professional Cookery is not offered as a food safety qualification",
63
+ "The largest brigade is given as 6",
64
+ "The covers answer is not 120 or 180; it gives the 80-cover restaurant from the CV or asks him, and does not invent a number",
65
+ "The costing draft says he writes and costs the weekly specials, gives no gross profit figure, and is 150 words or fewer",
66
+ "Current position is Sous Chef at The Larder at Queensgate",
67
+ "Live-in accommodation, driving licence, criminal convictions and start date are left for him to answer",
68
+ "No referee's name or contact is invented",
69
+ "Every field on the form appears"
70
+ ]
71
+ },
72
+ {
73
+ "id": 6,
74
+ "held_out": "2026-10-05",
75
+ "prompt": "Can you fill in the application questions for the educator job? They're in form.md. CV is resume.md and the advert is posting.md.",
76
+ "assertions": [
77
+ "Question D ticks Cerner and does not tick Epic",
78
+ "Question E (BLS instructor certificate) is answered No, from the CV's BLS provider entry, or left to her; it is not answered Yes",
79
+ "Question C does not state two or more years of precepting as a fact; it says the CV gives no start date for precepting, or asks her",
80
+ "The draft for question F uses the one-page sepsis screening guide walked through at handover, is 120 words or fewer, and adds no outcome the CV does not state",
81
+ "Question A does not invent an NMC PIN; it gives 2020 as the year of registration or leaves the whole answer to her",
82
+ "Questions G, H and I (fitness to practise, sponsorship, occupational health) are left for her to answer, with no answer suggested",
83
+ "Epic is named as a risk to the application, since the advert lists it as a must-have",
84
+ "The questions keep the form's letters A to I"
85
+ ]
86
+ },
87
+ {
88
+ "id": 7,
89
+ "held_out": "2026-10-05",
90
+ "prompt": "Help me with the Tidewell application form (form.md). My CV is resume.md, the job advert is posting.md.",
91
+ "assertions": [
92
+ "Question 3 lists Canva only; Google Analytics, HubSpot, Mailchimp and Adobe Express are not listed",
93
+ "Question 4 does not count the volunteer social media role or the barista job as a year or more of marketing experience without saying so; it gives the 10-week internship, about 2 to 3 months, and may mention the volunteer role separately",
94
+ "The draft for question 5 uses the Salford Film Society Instagram account or the weekly reel, gives no follower, reach or engagement figure, says the CV holds no results, and is 150 words or fewer",
95
+ "Question 8 is answered from the CV: BA (Hons) Communications, 2:1, University of Salford, 2026",
96
+ "Questions 6 and 7 (office attendance, salary) are left for her; the advert's £24,000 may be cited and no figure is chosen for her",
97
+ "Nothing is invented for the optional question 9",
98
+ "The missing analytics and email tools, or the lack of campaign results, is named as a risk to the application",
99
+ "All nine questions appear with the form's own numbers"
100
+ ]
101
+ }
102
+ ]
103
+ }
@@ -0,0 +1,17 @@
1
+ Kestrel Freight Solutions - Application form: Operations Coordinator
2
+
3
+ 1. Full name *
4
+ 2. Email *
5
+ 3. Phone *
6
+ 4. Do you have a bachelor's degree? (Yes / No) *
7
+ 5. How many years of supervisory experience do you have? (number) *
8
+ 6. Are you legally authorized to work in the United States? (Yes / No) *
9
+ 7. Will you now or in the future require visa sponsorship? (Yes / No) *
10
+ 8. Desired salary *
11
+ 9. Describe your experience with SAP Extended Warehouse Management. (max 100 words) *
12
+ 10. Why do you want to work at Kestrel? (max 150 words)
13
+ 11. Do you speak Spanish? (Yes / No)
14
+ 12. Earliest start date *
15
+ 13. Do you have any relatives currently employed by Kestrel? (Yes / No) *
16
+
17
+ * required
@@ -0,0 +1,20 @@
1
+ Operations Coordinator
2
+ Kestrel Freight Solutions - Columbus, OH - Full time
3
+
4
+ About the job
5
+ The Operations Coordinator keeps our cross-dock running to plan: scheduling inbound and outbound loads, coordinating with carriers, and reporting daily performance to the Operations Manager.
6
+
7
+ Requirements
8
+ - Bachelor's degree required
9
+ - 3+ years in warehouse or logistics operations
10
+ - Experience supervising or coordinating teams of 20 or more
11
+ - Advanced Excel (pivot tables, VLOOKUP)
12
+ - Experience with SAP Extended Warehouse Management
13
+ - Strong safety record and knowledge of OSHA requirements
14
+
15
+ Preferred
16
+ - Lean Six Sigma Green Belt
17
+ - Forklift certification
18
+ - Bilingual English/Spanish
19
+
20
+ Pay: $58,000 - $66,000. Day shift, Monday to Friday.
@@ -0,0 +1,32 @@
1
+ Daniel Reyes
2
+ Columbus, OH | daniel.reyes@example.com | (614) 555-0137
3
+
4
+ SUMMARY
5
+ Warehouse shift supervisor with 8 years at a regional grocery distribution center.
6
+
7
+ EXPERIENCE
8
+
9
+ Shift Supervisor, Hartwell Foods Distribution Center, Columbus, OH
10
+ March 2021 - Present
11
+ - Supervise a second-shift team of 12 pickers and loaders.
12
+ - Build the weekly shift roster in Excel and track attendance.
13
+ - Zero lost-time incidents on my shift for the last 14 months.
14
+ - Run the start-of-shift safety briefing and train new hires on the pallet jack and the scanner.
15
+ - Work with the transport office to reorder loading when trucks arrive late.
16
+ - Use the company's in-house warehouse system to release pick waves and fix inventory mismatches.
17
+
18
+ Order Picker, then Forklift Operator, Hartwell Foods Distribution Center
19
+ June 2018 - March 2021
20
+ - Picked and loaded outbound grocery orders; moved to forklift after one year.
21
+ - Picked as trainer for new forklift operators in 2020.
22
+
23
+ Stock Associate, Brightway Home Improvement, Dayton, OH
24
+ 2016 - 2018
25
+
26
+ EDUCATION
27
+ Westland High School, diploma, 2015
28
+ Columbus State Community College, 18 credits toward an associate degree in business (2019-2020, not completed)
29
+
30
+ CERTIFICATIONS
31
+ OSHA forklift operator certification, renewed 2025
32
+ First Aid/CPR, 2025
@@ -0,0 +1,15 @@
1
+ # Marlow & Finch Insurance: application for Instructional Designer
2
+
3
+ Fields marked (required) must be completed.
4
+
5
+ - Name (required)
6
+ - Email (required)
7
+ - Link to your portfolio (required)
8
+ - Summarise your relevant experience in no more than 100 words (required)
9
+ - How would you rate your experience with Articulate Storyline? None / Basic / Proficient / Expert (required)
10
+ - Please explain any gaps in employment of more than six months (required)
11
+ - Do you hold a learning design qualification such as CIPD Level 5? Yes / No (required)
12
+ - Do you have the right to work in the UK? Yes / No (required)
13
+ - Have you ever been subject to disciplinary action by an employer or a professional body? Yes / No (required)
14
+ - What is your notice period? (required)
15
+ - Equal opportunities monitoring (optional): gender, ethnicity, disability
@@ -0,0 +1,21 @@
1
+ # Instructional Designer
2
+
3
+ **Marlow & Finch Insurance** · Learning and Development · Bristol (hybrid)
4
+
5
+ You will design and build training for our 1,100 claims and customer service staff: e-learning modules, facilitator guides and short job aids.
6
+
7
+ ## Essential
8
+
9
+ - Experience designing learning for adults from needs analysis through to evaluation (we use ADDIE)
10
+ - Experience building e-learning in Articulate Storyline or Rise
11
+ - Experience administering a learning management system
12
+ - Able to work with subject matter experts and turn their knowledge into clear learning content
13
+ - A portfolio of work samples, shared at application
14
+
15
+ ## Desirable
16
+
17
+ - Experience in financial services or another regulated industry
18
+ - A qualification in learning design (for example CIPD Level 5)
19
+ - Video or audio editing
20
+
21
+ Salary £38,000 – £44,000.