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.
- package/README.md +1 -1
- package/catalogue.json +3 -2
- package/model-routing.json +4 -0
- package/package.json +1 -1
- package/packs/career/loops/apply/LOOP.md +19 -10
- package/packs/career/loops/apply/loop.json +9 -3
- package/packs/career/pack.json +27 -7
- package/packs/career/skills/application-form-answers/SKILL.md +146 -0
- package/packs/career/skills/application-form-answers/evals/eval_queries.json +34 -0
- package/packs/career/skills/application-form-answers/evals/evals.json +103 -0
- package/packs/career/skills/application-form-answers/evals/files/1/form.md +17 -0
- package/packs/career/skills/application-form-answers/evals/files/1/posting.md +20 -0
- package/packs/career/skills/application-form-answers/evals/files/1/resume.md +32 -0
- package/packs/career/skills/application-form-answers/evals/files/2/form.md +15 -0
- package/packs/career/skills/application-form-answers/evals/files/2/posting.md +21 -0
- package/packs/career/skills/application-form-answers/evals/files/2/resume.md +32 -0
- package/packs/career/skills/application-form-answers/evals/files/4/form.md +14 -0
- package/packs/career/skills/application-form-answers/evals/files/4/posting.md +25 -0
- package/packs/career/skills/application-form-answers/evals/files/4/resume.md +29 -0
- package/packs/career/skills/application-form-answers/evals/files/5/form.md +15 -0
- package/packs/career/skills/application-form-answers/evals/files/5/posting.md +18 -0
- package/packs/career/skills/application-form-answers/evals/files/5/resume.md +23 -0
- package/packs/career/skills/application-form-answers/evals/files/6/form.md +11 -0
- package/packs/career/skills/application-form-answers/evals/files/6/posting.md +28 -0
- package/packs/career/skills/application-form-answers/evals/files/6/resume.md +35 -0
- package/packs/career/skills/application-form-answers/evals/files/7/form.md +11 -0
- package/packs/career/skills/application-form-answers/evals/files/7/posting.md +19 -0
- package/packs/career/skills/application-form-answers/evals/files/7/resume.md +26 -0
- package/packs/career/skills/application-form-answers/manifest.json +31 -0
- package/packs/career/skills/cover-letter/scripts/claim_check.py +7 -4
- package/packs/career/skills/job-fit-analysis/SKILL.md +26 -10
- package/packs/career/skills/job-fit-analysis/evals/evals.json +26 -0
- package/packs/career/skills/job-fit-analysis/evals/files/6/linkedin-about.txt +5 -0
- package/packs/career/skills/job-fit-analysis/evals/files/6/posting.md +25 -0
- package/packs/career/skills/job-fit-analysis/evals/files/6/resume.md +35 -0
- package/packs/career/skills/job-fit-analysis/evals/files/7/resume.md +32 -0
- package/packs/career/skills/job-fit-analysis/manifest.json +1 -1
- package/packs/career/skills/resume-tailor/SKILL.md +37 -9
- package/packs/career/skills/resume-tailor/evals/evals.json +28 -0
- package/packs/career/skills/resume-tailor/evals/files/8/posting.md +25 -0
- package/packs/career/skills/resume-tailor/evals/files/8/resume.typ +31 -0
- package/packs/career/skills/resume-tailor/evals/files/9/linkedin-about.txt +5 -0
- package/packs/career/skills/resume-tailor/evals/files/9/posting.md +25 -0
- package/packs/career/skills/resume-tailor/evals/files/9/resume.md +35 -0
- package/packs/career/skills/resume-tailor/manifest.json +1 -1
- package/packs/career/skills/resume-tailor/scripts/claim_check.py +7 -4
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
# Helen Brooks
|
|
2
|
+
|
|
3
|
+
Bristol · helen.brooks@example.com
|
|
4
|
+
|
|
5
|
+
## Employment
|
|
6
|
+
|
|
7
|
+
**Teacher of Geography** — Ashcombe Academy, Bristol
|
|
8
|
+
September 2022 – present
|
|
9
|
+
|
|
10
|
+
- Teach geography to ages 11–18; six classes a week at exam level.
|
|
11
|
+
- Redesigned the Year 9 scheme of work around four enquiry questions, working back from the end-of-year assessment.
|
|
12
|
+
- Built the department's online revision course in Moodle: 14 units with quizzes and short recorded explanations.
|
|
13
|
+
- Run two training sessions a year for colleagues on using Moodle quizzes.
|
|
14
|
+
|
|
15
|
+
**Career break** — full-time carer for a family member
|
|
16
|
+
August 2020 – August 2022
|
|
17
|
+
|
|
18
|
+
**Teacher of Geography, then Head of Geography (from 2015)** — St Oswald's School, Bath
|
|
19
|
+
September 2009 – July 2020
|
|
20
|
+
|
|
21
|
+
- Led a department of 5 teachers; wrote the department's schemes of work for ages 11–16.
|
|
22
|
+
- Introduced fieldwork booklets that students complete on a tablet.
|
|
23
|
+
- Mentored 6 trainee teachers through their placements.
|
|
24
|
+
|
|
25
|
+
## Education
|
|
26
|
+
|
|
27
|
+
- PGCE Secondary Geography, University of Exeter, 2009
|
|
28
|
+
- BA Geography, University of Sheffield, 2008
|
|
29
|
+
|
|
30
|
+
## Tools
|
|
31
|
+
|
|
32
|
+
Moodle, Google Classroom, Google Slides, Canva, Audacity
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
Orrell Leisure Group - Finance Analyst - online application
|
|
2
|
+
|
|
3
|
+
1. Name (required)
|
|
4
|
+
2. Email (required)
|
|
5
|
+
3. Current or most recent job title (required)
|
|
6
|
+
4. Current salary (required)
|
|
7
|
+
5. Salary expectation (required)
|
|
8
|
+
6. Which accounting qualification do you hold? Select one: AAT Level 2 / AAT Level 3 / AAT Level 4 / ACCA or CIMA part-qualified / ACCA or CIMA qualified / None (required)
|
|
9
|
+
7. Years of experience preparing management accounts (number, required)
|
|
10
|
+
8. Rate your Power BI skills: None / Beginner / Intermediate / Advanced (required)
|
|
11
|
+
9. Tell us about a piece of analysis you built and who used it. (max 120 words, required)
|
|
12
|
+
10. Why Orrell? (max 100 words)
|
|
13
|
+
11. Do you have the right to work in the UK? (required)
|
|
14
|
+
12. Are you related to anyone who works at Orrell? (required)
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# Finance Analyst
|
|
2
|
+
|
|
3
|
+
**Orrell Leisure Group** · Birmingham · £36,000 – £40,000
|
|
4
|
+
|
|
5
|
+
Orrell runs 22 gyms across the Midlands. The Finance Analyst reports to the Financial Controller and produces the monthly management pack for site managers.
|
|
6
|
+
|
|
7
|
+
## What you'll do
|
|
8
|
+
|
|
9
|
+
- Build the monthly management accounts pack: variance to budget by site, with commentary
|
|
10
|
+
- Own the month-end close for payroll and utilities accruals
|
|
11
|
+
- Maintain the site-level budget model and reforecast each quarter
|
|
12
|
+
- Build dashboards in Power BI for the operations team
|
|
13
|
+
|
|
14
|
+
## What we need
|
|
15
|
+
|
|
16
|
+
- Part-qualified ACCA or CIMA, or AAT Level 4 complete
|
|
17
|
+
- At least 2 years in a management accounts or analyst role
|
|
18
|
+
- Advanced Excel (pivot tables, lookups, modelling)
|
|
19
|
+
- Experience preparing variance analysis and budget commentary
|
|
20
|
+
- Experience with Power BI or a similar reporting tool
|
|
21
|
+
|
|
22
|
+
## Nice to have
|
|
23
|
+
|
|
24
|
+
- Experience in a multi-site business
|
|
25
|
+
- Experience with Sage or NetSuite
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
# Grace Mbeki
|
|
2
|
+
|
|
3
|
+
Birmingham · grace.mbeki@example.com · 07700 900455
|
|
4
|
+
|
|
5
|
+
## Work
|
|
6
|
+
|
|
7
|
+
**Accounts Payable Clerk** — Halden Building Supplies, Birmingham
|
|
8
|
+
February 2021 – present
|
|
9
|
+
|
|
10
|
+
- Process around 400 supplier invoices a month in Sage 200, matching each to its purchase order and delivery note.
|
|
11
|
+
- Reconcile 60 supplier statements each month and chase the differences.
|
|
12
|
+
- Prepare the fortnightly payment run for the Finance Manager to approve.
|
|
13
|
+
- Built an Excel workbook (pivot tables and lookups) that lists invoices on hold by reason; the purchasing team now uses it every week.
|
|
14
|
+
- Support month-end by posting accruals for goods received and not yet invoiced.
|
|
15
|
+
|
|
16
|
+
**Finance Administrator** — Corrin Dental Group, Solihull
|
|
17
|
+
September 2018 – January 2021
|
|
18
|
+
|
|
19
|
+
- Raised sales invoices, banked receipts and kept the petty cash for four practices.
|
|
20
|
+
|
|
21
|
+
## Qualifications
|
|
22
|
+
|
|
23
|
+
- AAT Level 3 Diploma in Accounting, 2020
|
|
24
|
+
- Studying AAT Level 4; two of five units passed
|
|
25
|
+
- A levels: Mathematics (B), Economics (C), 2018
|
|
26
|
+
|
|
27
|
+
## Tools
|
|
28
|
+
|
|
29
|
+
Sage 200, Excel, Microsoft Teams
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
Calder House Hotel: Head Chef application
|
|
2
|
+
|
|
3
|
+
Name:
|
|
4
|
+
Phone:
|
|
5
|
+
Current position and employer:
|
|
6
|
+
Highest food safety qualification held, and the year:
|
|
7
|
+
Largest brigade you have led (number of chefs):
|
|
8
|
+
Largest number of covers you have run a service for:
|
|
9
|
+
Describe your experience of menu costing and the gross profit you have worked to (up to 150 words):
|
|
10
|
+
Do you need live-in accommodation? Yes / No
|
|
11
|
+
Do you hold a full UK driving licence? Yes / No
|
|
12
|
+
Do you have any unspent criminal convictions? Yes / No
|
|
13
|
+
When could you start?
|
|
14
|
+
Referee 1 (name, position, contact):
|
|
15
|
+
Referee 2 (name, position, contact):
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
Head Chef
|
|
2
|
+
Calder House Hotel, Peebles - 62 bedrooms, restaurant and events
|
|
3
|
+
|
|
4
|
+
You will lead the kitchen for our 120-cover restaurant and for weddings and events of up to 180 guests.
|
|
5
|
+
|
|
6
|
+
Requirements
|
|
7
|
+
- Level 3 Food Safety (Supervising Food Safety in Catering)
|
|
8
|
+
- Experience as a head chef, or as a sous chef with full responsibility for a kitchen
|
|
9
|
+
- Experience leading a team of 12 or more
|
|
10
|
+
- Menu design and costing to a gross profit target of 70%
|
|
11
|
+
- Experience of banqueting and events
|
|
12
|
+
- Stock control and supplier management
|
|
13
|
+
|
|
14
|
+
Desirable
|
|
15
|
+
- Experience in a hotel kitchen
|
|
16
|
+
- Experience with Procure Wizard or a similar ordering system
|
|
17
|
+
|
|
18
|
+
Salary 48,000 pounds plus tronc. Live-in available.
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
LEO TANAKA
|
|
2
|
+
Edinburgh | leo.tanaka@example.com | 07700 900271
|
|
3
|
+
|
|
4
|
+
Sous Chef, The Larder at Queensgate (80-cover restaurant), Edinburgh
|
|
5
|
+
May 2022 - present
|
|
6
|
+
- Run the kitchen on the head chef's two days off each week.
|
|
7
|
+
- Lead a brigade of 6 on service.
|
|
8
|
+
- Write and cost the weekly specials; do the fish and vegetable orders.
|
|
9
|
+
- Trained 3 commis chefs, one now a chef de partie.
|
|
10
|
+
- Keep the allergen matrix up to date for every menu change.
|
|
11
|
+
- Environmental health inspection in 2025: rated 5.
|
|
12
|
+
|
|
13
|
+
Chef de Partie, Harbour Rooms Hotel, Leith
|
|
14
|
+
March 2019 - April 2022
|
|
15
|
+
- Ran the sauce section; covered banqueting for weddings in summer.
|
|
16
|
+
|
|
17
|
+
Commis Chef, Harbour Rooms Hotel, Leith
|
|
18
|
+
August 2017 - March 2019
|
|
19
|
+
|
|
20
|
+
TRAINING
|
|
21
|
+
SVQ Level 3 Professional Cookery, Edinburgh College, 2019
|
|
22
|
+
Level 2 Food Safety and Hygiene for Catering, renewed 2024
|
|
23
|
+
Allergen awareness training, 2024
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
Northfield General Hospital - Clinical Nurse Educator - application questions
|
|
2
|
+
|
|
3
|
+
A. NMC PIN and date of first registration:
|
|
4
|
+
B. Current band:
|
|
5
|
+
C. How many years have you spent teaching, precepting or mentoring clinical staff?
|
|
6
|
+
D. Which electronic patient record systems have you used? (tick all that apply) [ ] Epic [ ] Cerner [ ] SystmOne [ ] Other
|
|
7
|
+
E. Do you hold a Basic Life Support instructor certificate? Yes / No
|
|
8
|
+
F. Describe a teaching resource you have written and how it was used. (max 120 words)
|
|
9
|
+
G. Are you currently subject to any fitness to practise proceedings? Yes / No
|
|
10
|
+
H. Do you require a Certificate of Sponsorship to work in the UK? Yes / No
|
|
11
|
+
I. Have you had an occupational health clearance in the last 12 months? Yes / No
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
# Clinical Nurse Educator — Surgical Division
|
|
2
|
+
|
|
3
|
+
**Northfield General Hospital** · Full time, permanent · Band 6
|
|
4
|
+
|
|
5
|
+
Northfield General is a 320-bed teaching hospital. The Surgical Division's education team supports 240 nursing staff across five wards.
|
|
6
|
+
|
|
7
|
+
## The role
|
|
8
|
+
|
|
9
|
+
You will plan and deliver clinical education for surgical nursing staff: induction for new starters, annual skills updates, and ward-based teaching after incidents and audits.
|
|
10
|
+
|
|
11
|
+
## You must have
|
|
12
|
+
|
|
13
|
+
- Current NMC registration (adult)
|
|
14
|
+
- A nursing degree
|
|
15
|
+
- At least 2 years' experience teaching, precepting or mentoring clinical staff
|
|
16
|
+
- At least 3 years' post-registration experience in an acute surgical or medical-surgical setting
|
|
17
|
+
- Experience using Epic, including supporting colleagues with it
|
|
18
|
+
|
|
19
|
+
## It would help if you have
|
|
20
|
+
|
|
21
|
+
- A master's degree in nursing or education, or to be working towards one
|
|
22
|
+
- Basic Life Support instructor certification
|
|
23
|
+
- Experience running sessions in a simulation lab
|
|
24
|
+
- Experience writing teaching materials or guidelines
|
|
25
|
+
|
|
26
|
+
## How to apply
|
|
27
|
+
|
|
28
|
+
Send a CV and a cover letter of no more than one page to the Surgical Education Lead. Closing date 24 October 2026.
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
# Maya Okafor, RN, BSN
|
|
2
|
+
|
|
3
|
+
Leeds, UK · maya.okafor@example.com · 07700 900142
|
|
4
|
+
|
|
5
|
+
## Profile
|
|
6
|
+
|
|
7
|
+
Registered nurse with six years on an acute medical-surgical ward. Charge nurse on rotation since 2023.
|
|
8
|
+
|
|
9
|
+
## Experience
|
|
10
|
+
|
|
11
|
+
**Staff Nurse, then Charge Nurse (rotating)** — Ward 14 Medical-Surgical, Aldermoor Hospital
|
|
12
|
+
August 2020 – present
|
|
13
|
+
|
|
14
|
+
- Care for up to 6 post-operative and acute medical patients per shift on a 28-bed ward.
|
|
15
|
+
- Take charge of the ward on rotation since March 2023: staffing, bed flow and escalation.
|
|
16
|
+
- Precept newly qualified nurses through their first 12 weeks; 9 preceptees so far.
|
|
17
|
+
- Wrote the ward's one-page guide to the sepsis screening tool and walked each shift through it at handover.
|
|
18
|
+
- Document in Cerner; ward superuser for the Cerner medication administration module since 2022.
|
|
19
|
+
- Member of the falls prevention working group.
|
|
20
|
+
|
|
21
|
+
**Healthcare Assistant** — Rowan Court Care Home
|
|
22
|
+
June 2017 – July 2020 (part time during degree)
|
|
23
|
+
|
|
24
|
+
- Personal care, observations and mealtime support for 30 residents.
|
|
25
|
+
|
|
26
|
+
## Education and registration
|
|
27
|
+
|
|
28
|
+
- BSc (Hons) Adult Nursing, University of Bradford, 2020
|
|
29
|
+
- NMC registered nurse (adult), registered 2020
|
|
30
|
+
- Mentorship and Assessment in Practice module, 2022
|
|
31
|
+
- Basic Life Support provider, renewed January 2026
|
|
32
|
+
|
|
33
|
+
## Other
|
|
34
|
+
|
|
35
|
+
- Volunteer first aider, Leeds 10K, 2023 and 2024
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
# Tidewell Outdoor Co. application: Marketing Assistant
|
|
2
|
+
|
|
3
|
+
1. Name
|
|
4
|
+
2. Email
|
|
5
|
+
3. Which of these have you used? Google Analytics / HubSpot / Mailchimp / Canva / Adobe Express (list all that apply)
|
|
6
|
+
4. How many months of marketing experience do you have, including internships?
|
|
7
|
+
5. Share a social media campaign you ran and its results. (max 150 words)
|
|
8
|
+
6. Can you work from our Manchester office three days a week? Yes / No
|
|
9
|
+
7. What salary are you looking for?
|
|
10
|
+
8. When did you or will you graduate, and with what result?
|
|
11
|
+
9. Anything else you'd like us to know? (optional)
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
Marketing Assistant
|
|
2
|
+
Tidewell Outdoor Co. — Manchester (hybrid, 3 days in the office)
|
|
3
|
+
|
|
4
|
+
We make waterproof bags and sell them online and through 40 independent shops.
|
|
5
|
+
|
|
6
|
+
You will:
|
|
7
|
+
- Schedule and write social media posts across Instagram, TikTok and Facebook
|
|
8
|
+
- Help build the monthly email newsletter in HubSpot
|
|
9
|
+
- Pull weekly numbers from Google Analytics for the marketing meeting
|
|
10
|
+
- Support product photo shoots and trade shows
|
|
11
|
+
|
|
12
|
+
You have:
|
|
13
|
+
- At least 1 year of marketing experience (internships count)
|
|
14
|
+
- Experience running social media campaigns with measurable results
|
|
15
|
+
- Confident with Canva or Adobe Express
|
|
16
|
+
- Experience with Google Analytics and an email marketing tool such as HubSpot or Mailchimp
|
|
17
|
+
- A degree in marketing, communications or similar
|
|
18
|
+
|
|
19
|
+
Salary £24,000. Apply with a CV and short cover note.
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
PRIYA NAIR
|
|
2
|
+
Manchester · priya.nair@example.com · 07700 900318
|
|
3
|
+
|
|
4
|
+
EDUCATION
|
|
5
|
+
BA (Hons) Communications, 2:1 — University of Salford, 2023–2026
|
|
6
|
+
Dissertation: how local charities use short-form video
|
|
7
|
+
|
|
8
|
+
EXPERIENCE
|
|
9
|
+
|
|
10
|
+
Communications Intern — Greater Manchester Food Network (charity)
|
|
11
|
+
June 2025 – August 2025 (10 weeks)
|
|
12
|
+
- Wrote the fortnightly supporter newsletter.
|
|
13
|
+
- Made event posters and social media graphics in Canva.
|
|
14
|
+
- Interviewed three volunteers and wrote up their stories for the website.
|
|
15
|
+
|
|
16
|
+
Social Media Officer (volunteer) — Salford Film Society
|
|
17
|
+
September 2024 – June 2026
|
|
18
|
+
- Ran the society's Instagram account and posted before every screening.
|
|
19
|
+
- Started a weekly "what we're watching" reel.
|
|
20
|
+
|
|
21
|
+
Barista — Corner Grind Coffee
|
|
22
|
+
October 2023 – present (weekends)
|
|
23
|
+
- Serve customers, cash up, and train new weekend staff.
|
|
24
|
+
|
|
25
|
+
SKILLS
|
|
26
|
+
Canva, Instagram and TikTok, Microsoft Word and PowerPoint, basic video editing in CapCut
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "application-form-answers",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"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.",
|
|
5
|
+
"entrypoint": "SKILL.md",
|
|
6
|
+
"deps": {
|
|
7
|
+
"npm": [],
|
|
8
|
+
"pip": []
|
|
9
|
+
},
|
|
10
|
+
"env": {
|
|
11
|
+
"required": [],
|
|
12
|
+
"optional": []
|
|
13
|
+
},
|
|
14
|
+
"related": [
|
|
15
|
+
"cover-letter",
|
|
16
|
+
"job-fit-analysis",
|
|
17
|
+
"resume-tailor"
|
|
18
|
+
],
|
|
19
|
+
"tags": [
|
|
20
|
+
"job-application",
|
|
21
|
+
"application-form",
|
|
22
|
+
"screening-questions",
|
|
23
|
+
"resume",
|
|
24
|
+
"career",
|
|
25
|
+
"job-search"
|
|
26
|
+
],
|
|
27
|
+
"model": {
|
|
28
|
+
"tier": "standard",
|
|
29
|
+
"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."
|
|
30
|
+
}
|
|
31
|
+
}
|
|
@@ -31,7 +31,7 @@ MULT = {"k": 1e3, "thousand": 1e3, "m": 1e6, "mm": 1e6, "million": 1e6,
|
|
|
31
31
|
"bn": 1e9, "b": 1e9, "billion": 1e9}
|
|
32
32
|
NUMBER = re.compile(r"(?<![\w.])(\d[\d,]*(?:\.\d+)?)(?:(k|mm|m|bn|b)\b|\s?(thousand|million|billion)\b)?"
|
|
33
33
|
r"(\s?%|\s?percent\b|\s?per cent\b)?", re.I)
|
|
34
|
-
WORD = re.compile(r"\.?[A-Za-z][A-Za-z0-9+#']*(?:\.[A-Za-z0-9]+)*")
|
|
34
|
+
WORD = re.compile(r"(?<![A-Za-z0-9])\.?[A-Za-z][A-Za-z0-9+#']*(?:\.[A-Za-z0-9]+)*")
|
|
35
35
|
LIST_MARK = re.compile(r"^\s*(?:[-*•–>]+|\d+[.)]|#+|\|)\s*")
|
|
36
36
|
LINK = re.compile(r"\[([^\]]*)\]\([^)]*\)")
|
|
37
37
|
SUFFIXES = ("ations", "ation", "ments", "ment", "ings", "ing", "ers", "ies", "ed", "er", "es", "s", "ly")
|
|
@@ -73,8 +73,11 @@ def read(path):
|
|
|
73
73
|
|
|
74
74
|
|
|
75
75
|
def clean(line):
|
|
76
|
-
"""A line with its
|
|
76
|
+
"""A line with its markup removed, so `**Go**` and `Go` read the same. Resumes kept as
|
|
77
|
+
Typst or LaTeX source escape `$`, `&`, `%` and `#`; the escapes are dropped too."""
|
|
77
78
|
line = LINK.sub(r"\1", line)
|
|
79
|
+
line = re.sub(r"\\([$&%#_])", r"\1", line)
|
|
80
|
+
line = re.sub(r"(?<![$£€\w.,])\d+(?:\.\d+)?(?:em|mm|pt|cm|px|fr)\b", " ", line) # layout lengths
|
|
78
81
|
line = line.replace("’", "'").replace("‘", "'").replace("–", " - ").replace("—", " - ")
|
|
79
82
|
return re.sub(r"[*_`~]", "", line)
|
|
80
83
|
|
|
@@ -133,7 +136,7 @@ def phrases(line):
|
|
|
133
136
|
so it only counts when it is name-shaped itself or opens a longer capitalised run."""
|
|
134
137
|
text = LIST_MARK.sub("", clean(line))
|
|
135
138
|
out, run, start_of_sentence = [], [], True
|
|
136
|
-
tokens = re.findall(r"\.?[A-Za-z][A-Za-z0-9+#']*(?:\.[A-Za-z0-9]+)*|&|[.!?;:]\s|[,|·/()]|\s-\s", text + " ")
|
|
139
|
+
tokens = re.findall(r"(?<![A-Za-z0-9])\.?[A-Za-z][A-Za-z0-9+#']*(?:\.[A-Za-z0-9]+)*|&|[.!?;:]\s|[,|·/()]|\s-\s", text + " ")
|
|
137
140
|
for i, tok in enumerate(tokens):
|
|
138
141
|
if not (tok[0].isalpha() or tok[0] in ".&") or tok.strip() in (".", "!", "?", ";", ":"):
|
|
139
142
|
if run:
|
|
@@ -200,7 +203,7 @@ def check(draft, sources, posting):
|
|
|
200
203
|
if missing:
|
|
201
204
|
add("name", " ".join(words), n, raw, all(key(w) in post_names for w in missing))
|
|
202
205
|
elif len(content) > 1 and all(w.lower() not in PLAIN for w in content):
|
|
203
|
-
flat = " ".join(key(w) for w in words)
|
|
206
|
+
flat = " ".join(key(w) for w in words if w != "&")
|
|
204
207
|
if " " + flat + " " not in src_flat:
|
|
205
208
|
add("combination", " ".join(words), n, raw)
|
|
206
209
|
if posting:
|
|
@@ -25,18 +25,29 @@ These four rules outrank the steps below.
|
|
|
25
25
|
"the candidate". Plain words, no scoring jargon, no mention of this skill. When they gave
|
|
26
26
|
you a few lines and no resume, say "what you told me", never "your resume".
|
|
27
27
|
|
|
28
|
-
1. **Read the
|
|
28
|
+
1. **Read everything the person gave you.** The resume is the main evidence, and so is
|
|
29
|
+
any other file of theirs they point to or that sits beside it: a LinkedIn summary, a
|
|
30
|
+
portfolio page, a project's README. Evidence from one of those counts in full: mark the
|
|
31
|
+
requirement `Met` or `Partly` on the strength of it, say where it came from, and say it
|
|
32
|
+
is not on the resume yet, because the employer will only see the resume.
|
|
33
|
+
|
|
34
|
+
When the posting is a link, read the full text. If you cannot open it, say so in one line
|
|
35
|
+
and ask for the text pasted in. Give no verdict and list no requirements for a posting you
|
|
36
|
+
have not read, and never rebuild one from what you remember of the employer. Do not guess
|
|
37
|
+
at why the link would not open.
|
|
38
|
+
|
|
39
|
+
2. **List the posting's requirements.** Keep the employer's own wording. Sort
|
|
29
40
|
them into what the posting calls required and what it calls preferred. When the posting
|
|
30
41
|
doesn't say, treat what it lists first or repeats as required, and say you inferred it.
|
|
31
42
|
|
|
32
|
-
|
|
43
|
+
3. **Find what could get the application rejected.** Two kinds of requirement do it: the
|
|
33
44
|
ones a recruiter or an application form checks before anyone reads the rest (a licence or
|
|
34
45
|
registration, a degree, a certification, a minimum number of years, the right to work,
|
|
35
46
|
location or shift, a clearance, a language), and any other required item the resume does
|
|
36
47
|
not meet, such as a named system the posting lists under "must have". These go first,
|
|
37
48
|
because one of them outweighs five met skills.
|
|
38
49
|
|
|
39
|
-
|
|
50
|
+
4. **Mark each requirement against the evidence** with one of four words:
|
|
40
51
|
- **Met**: the resume shows it. Quote the line.
|
|
41
52
|
- **Partly**: the resume shows something close, smaller or older. Say what it shows and
|
|
42
53
|
what is short: "team of 12; the posting asks for 20 or more".
|
|
@@ -54,7 +65,7 @@ These four rules outrank the steps below.
|
|
|
54
65
|
date, mark it `Partly`, say the resume doesn't show how long, and ask. Never state a
|
|
55
66
|
duration you worked out from a neighbouring date.
|
|
56
67
|
|
|
57
|
-
|
|
68
|
+
5. **Give a verdict the person can act on.** Open with a plain sentence that says whether
|
|
58
69
|
to apply, in the terms they asked ("Yes, apply", "Apply, but expect the degree to be a
|
|
59
70
|
problem", "Probably not worth your weekend unless..."), then one of four labels and the
|
|
60
71
|
reason:
|
|
@@ -65,24 +76,28 @@ These four rules outrank the steps below.
|
|
|
65
76
|
true for it to be worth the time, and whether you would still send it.
|
|
66
77
|
- **Not a match**: a requirement that cannot be worked around is unmet, such as a licence.
|
|
67
78
|
|
|
68
|
-
|
|
69
|
-
the worst one: "four of the six required items aren't met: the degree, the team size,
|
|
79
|
+
Write the table first and take the count from it. The opening sentence counts every
|
|
80
|
+
required item that is `Not met` or `Partly`, not only the worst one: "four of the six required items aren't met: the degree, the team size,
|
|
70
81
|
advanced Excel and SAP". It must agree with the table below it. Give the verdict on what
|
|
71
82
|
you know now; say what answer would raise it, but do not make the verdict wait on the
|
|
72
83
|
answer. Do not soften a long shot into encouragement, do not harden a workable gap into a
|
|
73
84
|
refusal, and do not give a percentage.
|
|
74
85
|
|
|
75
|
-
|
|
86
|
+
6. **Say what to bring forward.** List the two to four things already in the resume that
|
|
76
87
|
answer the posting best and are buried, understated or worded differently from the
|
|
77
88
|
posting. Give the resume's wording and the posting's wording side by side.
|
|
78
89
|
|
|
79
|
-
|
|
90
|
+
7. **Close with what to do next**, in two to four lines: what to lead the application with,
|
|
80
91
|
what to say about the main gap, and the one or two questions whose answers would change
|
|
81
|
-
the verdict ("Have you used Epic anywhere? If so, where and for how long?").
|
|
92
|
+
the verdict ("Have you used Epic anywhere? If so, where and for how long?"). When a
|
|
93
|
+
required item is not shown, ask once whether anything outside the resume covers it: a
|
|
94
|
+
side project, a repository, a portfolio, a volunteer role. People leave their best
|
|
95
|
+
evidence off the page. Anything you credited from another file goes here too, as a line
|
|
96
|
+
to add to the resume. Never tell
|
|
82
97
|
them to add a keyword they have not said is true, and do not end on a list of questions
|
|
83
98
|
with no advice.
|
|
84
99
|
|
|
85
|
-
|
|
100
|
+
8. **Lay the reply out in this order:** the answer and verdict; what could get it rejected;
|
|
86
101
|
one table covering every requirement (requirement, required or preferred, status,
|
|
87
102
|
evidence); what to bring forward; what to do next. Each requirement appears in the table
|
|
88
103
|
once and nothing is repeated in a second table or restated section by section.
|
|
@@ -129,6 +144,7 @@ posting**, ask for the posting in one line: there is nothing to compare against.
|
|
|
129
144
|
doesn't go in.
|
|
130
145
|
- ❌ **Judging the person.** No remarks on age, gaps, family, health or anything a recruiter
|
|
131
146
|
may not lawfully weigh.
|
|
147
|
+
- ❌ **Inventing the posting.** A link you could not open is not a posting you have read.
|
|
132
148
|
- ❌ **Answering in a file.** They asked a question; the answer belongs in the reply.
|
|
133
149
|
- ❌ **A verdict with no advice.** "Long shot" followed by questions leaves them where they
|
|
134
150
|
started.
|
|
@@ -71,6 +71,32 @@
|
|
|
71
71
|
"The reply gives a clear answer on whether it is realistic",
|
|
72
72
|
"It does not credit him with a qualification, a cover count, a team size or a system that is not in the CV"
|
|
73
73
|
]
|
|
74
|
+
},
|
|
75
|
+
{
|
|
76
|
+
"id": 6,
|
|
77
|
+
"prompt": "Am I a fit for this? CV is resume.md, job is posting.md. My LinkedIn about text is in linkedin-about.txt too.",
|
|
78
|
+
"assertions": [
|
|
79
|
+
"The onboarding or training requirement is credited from the monthly onboarding webinar described in the LinkedIn text",
|
|
80
|
+
"The reply says that evidence is not on the CV and should be added to it",
|
|
81
|
+
"Owning renewals is marked partly or not met: she supported renewals alongside the account managers and did not own them",
|
|
82
|
+
"The 3+ years in customer success or account management is marked not met or partly: her roles are in support",
|
|
83
|
+
"Gainsight is marked not shown or not met, and Salesforce is credited from the CV",
|
|
84
|
+
"Leading a small team is marked met from leading 6 support agents",
|
|
85
|
+
"Working with a product team on feedback is credited from the Customer Advisory Board or the ticket-trends report",
|
|
86
|
+
"The reply opens with a clear answer on whether to apply"
|
|
87
|
+
]
|
|
88
|
+
},
|
|
89
|
+
{
|
|
90
|
+
"id": 7,
|
|
91
|
+
"prompt": "Would I be a fit for this one? https://careers.brightloop.example/jobs/4471 - my CV is resume.md",
|
|
92
|
+
"assertions": [
|
|
93
|
+
"The reply says it could not open or read the link",
|
|
94
|
+
"It asks for the posting's text to be pasted in or saved as a file",
|
|
95
|
+
"It does not list the job's requirements or mark any as met or not met, as though it had read the posting",
|
|
96
|
+
"It gives no verdict on fit",
|
|
97
|
+
"It does not state what Brightloop does or what the role involves",
|
|
98
|
+
"The reply is short, about 120 words or fewer"
|
|
99
|
+
]
|
|
74
100
|
}
|
|
75
101
|
]
|
|
76
102
|
}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
About
|
|
2
|
+
|
|
3
|
+
I lead the support team at Hart & Lowe Software. Since January 2024 I've also run our monthly onboarding webinar for new customers, usually around 30 people on the call, and I co-chair the Customer Advisory Board with our Head of Product (8 customers, meets twice a year).
|
|
4
|
+
|
|
5
|
+
Outside work I volunteer as a reading mentor at a primary school.
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# Customer Success Manager
|
|
2
|
+
|
|
3
|
+
**Brightloop** · Manchester (hybrid) · £48,000 – £55,000
|
|
4
|
+
|
|
5
|
+
Brightloop makes scheduling software for 900 dental and veterinary practices.
|
|
6
|
+
|
|
7
|
+
## What you'll do
|
|
8
|
+
|
|
9
|
+
- Own a book of 60 mid-market accounts and be accountable for their renewals
|
|
10
|
+
- Run onboarding and training for new customers
|
|
11
|
+
- Lead quarterly business reviews
|
|
12
|
+
- Bring customer feedback to the product team
|
|
13
|
+
|
|
14
|
+
## What we need
|
|
15
|
+
|
|
16
|
+
- 3+ years in customer success or account management at a B2B software company
|
|
17
|
+
- Experience owning renewals or a revenue target
|
|
18
|
+
- Experience running customer onboarding or training
|
|
19
|
+
- Confident with Salesforce and a customer success platform such as Gainsight
|
|
20
|
+
- Experience leading or mentoring a small team
|
|
21
|
+
|
|
22
|
+
## Nice to have
|
|
23
|
+
|
|
24
|
+
- A customer success certification
|
|
25
|
+
- Experience working with a product team on customer feedback
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
# Nadia Rahman
|
|
2
|
+
|
|
3
|
+
Manchester · nadia.rahman@example.com · 07700 900612
|
|
4
|
+
|
|
5
|
+
## Profile
|
|
6
|
+
|
|
7
|
+
Support team lead with seven years in B2B software support.
|
|
8
|
+
|
|
9
|
+
## Experience
|
|
10
|
+
|
|
11
|
+
**Support Team Lead** · Hart & Lowe Software · March 2022 – present
|
|
12
|
+
|
|
13
|
+
- Lead a team of 6 support agents covering 310 customer accounts.
|
|
14
|
+
- Supported renewals for 40 accounts worth $1.2M a year by joining the account managers' quarterly reviews.
|
|
15
|
+
- Cut median first-response time from 9 hours to 3 hours by rewriting the triage rules in Zendesk.
|
|
16
|
+
- Built the weekly ticket-trends report in Salesforce that the Research & Insights team uses to plan fixes.
|
|
17
|
+
- Wrote 35 help-centre articles; self-service now resolves about a quarter of new tickets.
|
|
18
|
+
- Hire and onboard new agents; 4 hired since 2023.
|
|
19
|
+
|
|
20
|
+
**Support Agent, then Senior Support Agent** · Hart & Lowe Software · June 2019 – March 2022
|
|
21
|
+
|
|
22
|
+
- Handled billing and integration tickets for mid-market customers.
|
|
23
|
+
- Trained 5 new agents on the billing queue.
|
|
24
|
+
|
|
25
|
+
**Customer Service Adviser** · Pennine Water · September 2017 – May 2019
|
|
26
|
+
|
|
27
|
+
- Answered account and billing calls.
|
|
28
|
+
|
|
29
|
+
## Education
|
|
30
|
+
|
|
31
|
+
BA English Literature, University of Leeds, 2017
|
|
32
|
+
|
|
33
|
+
## Tools
|
|
34
|
+
|
|
35
|
+
Zendesk, Salesforce (reports & dashboards), Jira, Excel
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
# Tom Lindqvist
|
|
2
|
+
|
|
3
|
+
Senior Backend Engineer · Stockholm · tom.lindqvist@example.com
|
|
4
|
+
|
|
5
|
+
## Experience
|
|
6
|
+
|
|
7
|
+
### Senior Backend Engineer — Fjordcart (e-commerce platform), 2021 – present
|
|
8
|
+
|
|
9
|
+
- Tech lead for the checkout team (4 engineers).
|
|
10
|
+
- Rewrote the order service from a Python monolith module into three Go services.
|
|
11
|
+
- Cut checkout API p95 latency from 800 ms to 300 ms by removing synchronous calls to the inventory service.
|
|
12
|
+
- Moved order events onto Kafka; the warehouse and email systems now consume the same stream.
|
|
13
|
+
- Run the services on AWS ECS with Terraform; on the on-call rota, one week in five.
|
|
14
|
+
- Integrated two payment providers through their hosted checkout APIs.
|
|
15
|
+
|
|
16
|
+
### Backend Engineer — Nordlys Media, 2018 – 2021
|
|
17
|
+
|
|
18
|
+
- Built the subscription billing service in Python and PostgreSQL.
|
|
19
|
+
- Reduced failed renewals by adding a retry schedule for declined cards.
|
|
20
|
+
- Mentored two junior engineers.
|
|
21
|
+
|
|
22
|
+
### Junior Developer — Brevik Consulting, 2016 – 2018
|
|
23
|
+
|
|
24
|
+
- Client projects in Python and Django.
|
|
25
|
+
|
|
26
|
+
## Skills
|
|
27
|
+
|
|
28
|
+
Go, Python, PostgreSQL, Kafka, AWS (ECS, RDS, SQS), Terraform, Datadog
|
|
29
|
+
|
|
30
|
+
## Education
|
|
31
|
+
|
|
32
|
+
MSc Computer Science, KTH Royal Institute of Technology, 2016
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "job-fit-analysis",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.1",
|
|
4
4
|
"description": "Compare a job posting with a resume and say honestly whether to apply: each requirement marked met, partly met, not shown or not met, with the resume line it rests on; the requirements an employer screens on listed first; and the questions whose answers would change the picture. Works for any occupation and level. Use when the user asks \"am I a good fit for this job\", \"should I apply for this\", \"how does my resume match this posting\", or wants the gaps between a job description and their CV before applying.",
|
|
5
5
|
"entrypoint": "SKILL.md",
|
|
6
6
|
"deps": {
|