opencode-skills-collection 3.0.39 → 3.0.41

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 (40) hide show
  1. package/bundled-skills/.antigravity-install-manifest.json +6 -1
  2. package/bundled-skills/2slides-ppt-generator/SKILL.md +12 -2
  3. package/bundled-skills/2slides-ppt-generator/requirements.txt +1 -0
  4. package/bundled-skills/2slides-ppt-generator/scripts/create_pdf_slides.py +1 -1
  5. package/bundled-skills/accesslint-diff/SKILL.md +4 -1
  6. package/bundled-skills/article-illustrations/SKILL.md +159 -0
  7. package/bundled-skills/cv-generator/SKILL.md +874 -0
  8. package/bundled-skills/docs/integrations/jetski-cortex.md +3 -3
  9. package/bundled-skills/docs/integrations/jetski-gemini-loader/README.md +1 -1
  10. package/bundled-skills/docs/maintainers/repo-growth-seo.md +3 -3
  11. package/bundled-skills/docs/maintainers/skills-update-guide.md +1 -1
  12. package/bundled-skills/docs/sources/sources.md +1 -0
  13. package/bundled-skills/docs/users/bundles.md +1 -1
  14. package/bundled-skills/docs/users/claude-code-skills.md +1 -1
  15. package/bundled-skills/docs/users/gemini-cli-skills.md +1 -1
  16. package/bundled-skills/docs/users/getting-started.md +1 -1
  17. package/bundled-skills/docs/users/kiro-integration.md +1 -1
  18. package/bundled-skills/docs/users/usage.md +4 -4
  19. package/bundled-skills/docs/users/visual-guide.md +4 -4
  20. package/bundled-skills/examprep-ai/SKILL.md +8 -0
  21. package/bundled-skills/hugging-face-cli/SKILL.md +2 -2
  22. package/bundled-skills/open-dynamic-workflows/SKILL.md +101 -0
  23. package/bundled-skills/permission-manager/README.md +1 -1
  24. package/bundled-skills/permission-manager/SKILL.md +2 -1
  25. package/bundled-skills/polis-protocol/SKILL.md +13 -4
  26. package/bundled-skills/runapi-cli/SKILL.md +140 -0
  27. package/bundled-skills/schema-markup-generator/SKILL.md +2 -1
  28. package/bundled-skills/smart-git-automation/SKILL.md +4 -2
  29. package/bundled-skills/user-thoughts/scripts/common.py +93 -6
  30. package/bundled-skills/user-thoughts/scripts/ignore_ops.py +20 -20
  31. package/bundled-skills/user-thoughts/scripts/init.py +3 -1
  32. package/bundled-skills/user-thoughts/scripts/show_mdbase.py +5 -5
  33. package/bundled-skills/user-thoughts/scripts/show_raw.py +3 -3
  34. package/bundled-skills/user-thoughts/scripts/sortin.py +37 -26
  35. package/bundled-skills/user-thoughts/scripts/status.py +8 -8
  36. package/bundled-skills/user-thoughts/scripts/write_raw.py +20 -11
  37. package/bundled-skills/vercel-cli-with-tokens/SKILL.md +15 -12
  38. package/bundled-skills/video-content-extractor/SKILL.md +103 -0
  39. package/package.json +1 -1
  40. package/skills_index.json +119 -7
@@ -0,0 +1,874 @@
1
+ ---
2
+ name: cv-generator
3
+ description: "Generate professional, ATS-optimized CVs for FlowCV, Canva, Google Docs, or Word. Handles multi-source merging, JD targeting, seniority adaptation, and humanized rewriting. Outputs paste-ready text with an ATS flaw report and improvement suggestions."
4
+ category: content
5
+ risk: safe
6
+ source: community
7
+ date_added: "2026-06-06"
8
+ author: "WHOISABHISHEKADHIKARI"
9
+ user-invokable: true
10
+ tags:
11
+ - cv
12
+ - resume
13
+ - ats
14
+ - career
15
+ - job-application
16
+ - career-change
17
+ ---
18
+
19
+ # CV Generator Skill — FlowCV / Canva Edition
20
+
21
+ ## When to Use
22
+
23
+ Use this skill when you need to:
24
+ - Generate a professional, ATS-optimized CV from multiple sources (LinkedIn, GitHub, Portfolio).
25
+ - Tailor an existing CV for a specific Job Description (JD).
26
+ - Improve the language, metrics, and structure of a draft resume.
27
+ - Prepare a paste-ready version of your CV for tools like FlowCV or Canva.
28
+
29
+ Turns raw profile data into a polished, ATS-ready CV. Outputs a paste-ready plain-text
30
+ version formatted for FlowCV, Canva, Google Docs, or Word — with a flaw report and
31
+ missing-info checklist.
32
+
33
+ ---
34
+
35
+ ## FLAW REGISTER — KNOWN ISSUES FIXED IN THIS VERSION
36
+
37
+ The following issues were identified across the two prior skill drafts and are corrected here:
38
+
39
+ | # | Flaw | Fix applied |
40
+ |---|------|-------------|
41
+ | F-01 | Output was Markdown-first, not paste-ready plain text | Final output is plain text; Markdown is internal staging only |
42
+ | F-02 | FlowCV/Canva field structure was never addressed | Section mapping to tool fields added (section 11c) |
43
+ | F-03 | Questionnaire dumped all 20 questions at once in practice | Hard rule: one question at a time, wait for answer |
44
+ | F-04 | Anti-hallucination rules listed but never enforced structurally | Enforcement gate added before every output (section 10) |
45
+ | F-05 | Cover letter was offered but never scoped for these tools | Cover letter now outputs to a separate plain-text block, not inline |
46
+ | F-06 | ATS check listed but had no scored output | Flaw report now scores 0–100 with per-item pass/fail |
47
+ | F-07 | Seniority detection was "detect or ask" with no fallback | Default is mid-level if undetectable; user is told the assumption |
48
+ | F-08 | No guidance on what FlowCV/Canva cannot render | Added explicit field-by-field paste map (section 11c) |
49
+ | F-09 | Tense rules stated but never verified in quality gate | Tense check is now a hard gate — output blocked until corrected |
50
+ | F-10 | "Passionate about" and similar banned phrases still appeared in examples | Phrase blocklist now machine-checkable (section 7c) |
51
+ | F-11 | Nepal/South Asia market conventions were present but incomplete | Confirmed and expanded (section 14) |
52
+ | F-12 | No explicit rule on what to do when LinkedIn scraping is blocked | Hard fallback rule: ask for PDF export immediately, do not proceed empty |
53
+ | F-13 | File naming convention mentioned once, never enforced | File name rule is part of the final output block (section 11) |
54
+ | F-14 | Skill had no version history or upgrade path | Version field added to frontmatter |
55
+ | F-15 | GitHub was listed as a source but extraction rules were missing | GitHub extraction rules added (section 4f) |
56
+
57
+ ---
58
+
59
+ ## 1. Invocation
60
+
61
+ ```
62
+ Use @cv-generator to build my CV from my LinkedIn PDF.
63
+ Use @cv-generator to tailor my CV for this job description.
64
+ Use @cv-generator to improve my existing draft.
65
+ Use @cv-generator to create a fresh CV via questionnaire.
66
+ Use @cv-generator — I want a FlowCV-ready output.
67
+ ```
68
+
69
+ Any combination of sources is valid. Multiple sources are merged and deduplicated
70
+ before writing begins.
71
+
72
+ ---
73
+
74
+ ## Source Selection
75
+
76
+ Ask the user which source(s) to use. At least one is required.
77
+ If no source is provided, default immediately to the questionnaire (section 4d).
78
+
79
+ | # | Source | Instruction |
80
+ |---|--------|-------------|
81
+ | 1 | LinkedIn profile URL | Fetch page; extract all visible sections. **If blocked or empty: immediately ask for a LinkedIn PDF — do not proceed on an empty extraction.** |
82
+ | 2 | LinkedIn PDF export | Parse uploaded file. If scanned image: apply OCR and warn the user to verify accuracy. |
83
+ | 3 | Portfolio / personal website | Fetch URL; extract About, Projects, Skills, Services, Testimonials, Case Studies, Contact. |
84
+ | 4 | Questionnaire | Step-by-step (section 4d). One question at a time. |
85
+ | 5 | Existing CV or draft | Upload or paste; improve only — never alter facts. |
86
+ | 6 | GitHub profile | Extract pinned repos, bio, tech stack, contribution summary (section 4f). |
87
+ | 7 | Resume file (DOCX / PDF / TXT) | Parse and rewrite. Flag scanned PDFs; apply OCR. |
88
+
89
+ ---
90
+
91
+ ## Purpose, seniority, and format
92
+
93
+ ### Purpose
94
+
95
+ Ask after source selection:
96
+
97
+ > "What is the main purpose of this CV?"
98
+
99
+ | Purpose | Key adaptation |
100
+ |---------|----------------|
101
+ | Applying for a specific job | Full JD analysis + keyword targeting (section 9) |
102
+ | General professional CV | Balanced, role-agnostic, reverse-chronological |
103
+ | Internship / entry-level | Education and projects lead; transferable skills foregrounded |
104
+ | Academic / research | Publications, grants, teaching, research interests |
105
+ | Freelance / client proposal | Deliverables, outcomes, services |
106
+ | Career change | Functional or hybrid; transferable skills reframed |
107
+ | Executive / board-level | Executive summary, board positions, P&L scope |
108
+ | Military-to-civilian | Translate ranks and jargon to civilian equivalents |
109
+ | Return to work / career break | Frame gap positively; emphasise upskilling |
110
+ | Other | Ask the user to describe the goal in one sentence |
111
+
112
+ ### Seniority
113
+
114
+ Detect from data. If undetectable, **default to mid-level and tell the user:**
115
+ > "I've assumed mid-level (3–8 years). Let me know if this should be different."
116
+
117
+ | Level | Years | CV emphasis |
118
+ |-------|-------|-------------|
119
+ | Student / fresh graduate | 0–1 | Education first; projects; extracurriculars; 1 page |
120
+ | Junior / entry | 1–3 | Skills + education prominent; 1 page |
121
+ | Mid-level | 3–8 | Experience leads; achievements over duties; 1–2 pages |
122
+ | Senior | 8–15 | Leadership, scope, impact, mentoring; 2 pages |
123
+ | Executive / C-suite | 15+ | Strategic narrative; board roles; P&L; 2–3 pages |
124
+ | Academic | Any | No page limit; publications; grants; teaching |
125
+
126
+ ### Format
127
+
128
+ | Format | Use when |
129
+ |--------|----------|
130
+ | Chronological (default) | Clear career progression; most job applications |
131
+ | Functional / skills-first | Career changers; large gaps; military-to-civilian |
132
+ | Hybrid / combination | Senior professionals rebranding; career changers with strong experience |
133
+ | Academic CV | University, research, PhDs, postdocs |
134
+ | Executive / Board bio | C-suite, NED, advisory |
135
+ | Portfolio-led | Designers, architects, creatives |
136
+
137
+ ---
138
+
139
+ ## Data extraction rules
140
+
141
+ ### LinkedIn URL
142
+
143
+ If the page is blocked or returns no content, **stop immediately** and ask:
144
+ > "LinkedIn blocked the fetch. Please export your LinkedIn profile as a PDF
145
+ > (LinkedIn → Me → Settings → Data Privacy → Get a copy of your data) and upload it."
146
+
147
+ If accessible, extract in order:
148
+ 1. Full name and headline
149
+ 2. Contact information (email, phone, location — public only)
150
+ 3. About / Professional Summary
151
+ 4. Work experience: title, company, location, dates, bullets
152
+ 5. Education: degree, institution, dates, grade/honours
153
+ 6. Skills (flag top endorsed skills)
154
+ 7. Certifications and licences
155
+ 8. Projects
156
+ 9. Achievements, honours, awards
157
+ 10. Volunteer experience
158
+ 11. Languages and proficiency
159
+ 12. Publications, patents, courses
160
+
161
+ ### LinkedIn PDF
162
+
163
+ Hard rules:
164
+ - Extract only what is physically present in the document.
165
+ - Preserve all dates exactly as written.
166
+ - If a section is absent, mark it **[Not provided]** — do not skip silently.
167
+ - Do not merge bullets across different roles.
168
+ - If scanned: apply OCR and display this warning before continuing:
169
+ > "OCR was used to read this document. Please review the extracted text below
170
+ > for accuracy before we continue."
171
+
172
+ ### Portfolio / personal website
173
+
174
+ Extract:
175
+ - About / bio → Professional Summary
176
+ - Projects: name, description, technologies, outcomes, live/repo URLs
177
+ - Skills and services
178
+ - Testimonials or client logos → Achievements
179
+ - Case studies → 2–4 bullets each
180
+ - Blog posts or articles → Publications / Thought Leadership
181
+ - Contact details
182
+
183
+ ### Questionnaire
184
+
185
+ **One question at a time. Wait for the answer before continuing.**
186
+ Do not display the full list unless the user explicitly asks for a form.
187
+
188
+ ```
189
+ Q1. Full legal name (as it should appear on the CV)
190
+ Q2. Target job title or role
191
+ Q3. Email address
192
+ Q4. Phone number including country code (optional but recommended)
193
+ Q5. City and country of residence
194
+ Q6. LinkedIn URL (optional)
195
+ Q7. Portfolio, GitHub, or personal website URL (optional)
196
+ Q8. Professional summary — describe yourself in 2–3 sentences (will be rewritten)
197
+ Q9. Work experience — for EACH role:
198
+ - Job title
199
+ - Company name and industry
200
+ - Employment type (full-time / part-time / contract / freelance / internship)
201
+ - Location or Remote
202
+ - Start and end date (or "Present")
203
+ - 3–6 key responsibilities and achievements
204
+ - Any measurable results (numbers, %, revenue, team size, budget)
205
+ Q10. Education — for EACH qualification:
206
+ - Degree or certificate name
207
+ - Institution name and country
208
+ - Start and graduation year
209
+ - Grade, GPA, or classification if notable
210
+ - Thesis or relevant modules (optional; for academic/entry-level only)
211
+ Q11. Technical and professional skills
212
+ (ask to separate: Expert / Proficient / Familiar)
213
+ Q12. Projects — for each:
214
+ - Name
215
+ - Purpose
216
+ - Your specific role
217
+ - Technologies or methods used
218
+ - Outcome or impact
219
+ Q13. Certifications (name, issuing body, date, expiry if applicable)
220
+ Q14. Achievements, awards, or recognitions
221
+ Q15. Languages and proficiency: Native / Fluent / Professional / Conversational / Basic
222
+ Q16. Volunteer or open-source work (optional)
223
+ Q17. Publications, speaking engagements, press mentions (optional)
224
+ Q18. Preferred CV format: chronological / functional / hybrid / academic / executive
225
+ Q19. Target country or job market
226
+ Q20. Any employment gaps? Dates and brief reason — will be framed constructively.
227
+ ```
228
+
229
+ ### Existing CV or draft
230
+
231
+ Rules:
232
+ - Preserve every fact: titles, companies, dates, institutions, grades.
233
+ - Rewrite weak or passive bullets with strong action verbs.
234
+ - Remove repetition across roles.
235
+ - Correct grammar, punctuation, spelling.
236
+ - Fix tense: past for completed roles, present for current role.
237
+ - Replace all banned phrases (section 7c).
238
+ - Improve ATS keyword density where natural — do not keyword-stuff.
239
+ - Restructure section order if it does not match target market or seniority.
240
+ - **Do not add experience, qualifications, metrics, or skills not present in the original.**
241
+
242
+ ### GitHub profile
243
+
244
+ Extract:
245
+ - Bio / tagline → supplement Professional Summary
246
+ - Pinned repositories: name, description, tech stack, stars/forks
247
+ - Contribution activity (years active, languages used)
248
+ - README content for context on major projects
249
+ - Do not infer seniority from commit count alone
250
+
251
+ ### Employment gaps and special situations
252
+
253
+ **Gap under 3 months:** no special treatment.
254
+
255
+ **Gap 3–12 months:** one-line entry:
256
+ > "Career break — [brief honest reason: personal development / caregiving / travel / health]"
257
+
258
+ **Gap over 12 months:** add a neutral framing entry in the experience section;
259
+ highlight any upskilling, freelance, volunteering, or relevant activity during the gap.
260
+ Never fabricate activity.
261
+
262
+ **Contract / freelance / part-time:** label employment type clearly. Group multiple
263
+ short contracts under one umbrella entry (e.g. "Freelance Consultant") if they share
264
+ a skill area.
265
+
266
+ **Concurrent roles:** list both with accurate overlapping dates; add "(concurrent with
267
+ [other role])" if helpful.
268
+
269
+ **Early or irrelevant roles (> 10 years):** condense to one line for senior professionals
270
+ unless directly relevant to the target role.
271
+
272
+ **Fresh graduate:** lead with Education → Projects → Skills → Internships.
273
+ Use academic projects as proof of practical skills.
274
+
275
+ **Military-to-civilian:** translate all ranks and jargon to civilian equivalents;
276
+ quantify command scope (e.g. "Managed 35 personnel and $2M in equipment").
277
+
278
+ **Non-English source:** translate accurately; preserve institution and company names
279
+ in the original language with an English translation in parentheses on first use;
280
+ advise the user to have the translation reviewed by a native speaker.
281
+
282
+ ---
283
+
284
+ ## Multi-source merging
285
+
286
+ 1. Build a master profile combining all extracted data.
287
+ 2. Deduplicate: keep the most detailed version of each entry.
288
+ 3. If two sources conflict on a date or title, flag it and ask the user to confirm.
289
+ 4. Identify gaps; ask follow-up questions only for critical missing data.
290
+ 5. Never fabricate a detail — mark it **[Not provided]** until the user confirms.
291
+
292
+ ---
293
+
294
+ ## CV section order
295
+
296
+ ### Chronological (default — mid / senior)
297
+ ```
298
+ 1. Full Name
299
+ 2. Contact Information (email | phone | LinkedIn | portfolio | city, country)
300
+ 3. Professional Summary
301
+ 4. Core Skills
302
+ 5. Work Experience (reverse chronological)
303
+ 6. Education (reverse chronological)
304
+ 7. Certifications and Licences
305
+ 8. Projects
306
+ 9. Technical Skills (grouped: Languages | Frameworks | Tools | Platforms)
307
+ 10. Achievements and Awards
308
+ 11. Volunteer Experience
309
+ 12. Publications / Speaking
310
+ 13. Languages
311
+ 14. Additional Information
312
+ ```
313
+
314
+ ### Fresh graduate / student
315
+ ```
316
+ 1. Full Name + Contact Information
317
+ 2. Professional Summary / Objective
318
+ 3. Education
319
+ 4. Projects and Coursework
320
+ 5. Skills
321
+ 6. Work Experience / Internships
322
+ 7. Certifications
323
+ 8. Extracurricular / Volunteer
324
+ 9. Languages
325
+ ```
326
+
327
+ ### Functional / skills-first (career changers, large gaps)
328
+ ```
329
+ 1. Full Name + Contact Information
330
+ 2. Professional Summary
331
+ 3. Core Competencies / Skills
332
+ 4. Key Achievements
333
+ 5. Work History (company, title, dates — minimal bullets)
334
+ 6. Education
335
+ 7. Certifications
336
+ 8. Languages
337
+ ```
338
+
339
+ ### Academic CV
340
+ ```
341
+ 1. Full Name + Contact + ORCID / ResearchGate
342
+ 2. Research Interests
343
+ 3. Education
344
+ 4. Academic Positions
345
+ 5. Publications
346
+ 6. Grants and Funding
347
+ 7. Teaching Experience
348
+ 8. Supervision
349
+ 9. Awards and Honours
350
+ 10. Conference Presentations
351
+ 11. Professional Memberships
352
+ 12. Skills
353
+ 13. References
354
+ ```
355
+
356
+ ### Executive / Board
357
+ ```
358
+ 1. Full Name + Contact Information
359
+ 2. Executive Summary
360
+ 3. Core Competencies
361
+ 4. Board and Advisory Roles
362
+ 5. Executive Experience
363
+ 6. Education and Qualifications
364
+ 7. Publications / Media / Speaking
365
+ 8. Professional Memberships
366
+ ```
367
+
368
+ ---
369
+
370
+ ## Writing rules
371
+
372
+ ### Professional Summary
373
+
374
+ Write 3–5 sentences (executive: 5–7) covering:
375
+ 1. Who the person is: job title + years of experience
376
+ 2. Primary domain of expertise
377
+ 3. One concrete differentiator or standout achievement
378
+ 4. Value proposition aligned to the target role
379
+
380
+ - Do not open with "I am".
381
+ - Do not open with any banned phrase (section 7c).
382
+ - Base strictly on data collected — no padding.
383
+
384
+ Good example:
385
+ > "Software engineer with seven years building distributed systems at scale.
386
+ > Deep expertise in Go and Kubernetes, with a track record of cutting infrastructure
387
+ > costs 30–40% through cloud-native redesigns. Seeking a staff-level role where
388
+ > systems reliability and platform engineering intersect."
389
+
390
+ ### Experience bullets — STAR-lite
391
+
392
+ Pattern: `[Strong verb] + [what you did] + [scale/scope] + [outcome if available]`
393
+
394
+ Rules:
395
+ - 3–6 bullets per role (2–3 for short-tenure or early roles)
396
+ - Past tense for completed roles; present tense for current role
397
+ - 15–30 words per bullet
398
+ - Different verb to open each bullet — never repeat within one role
399
+ - If no metric was provided: write a result-focused statement without inventing numbers
400
+ - Never fabricate metrics — if the user says "we grew a lot", ask for specifics
401
+
402
+ Action verb bank:
403
+
404
+ ```
405
+ Leadership: Led, Directed, Managed, Supervised, Mentored, Coached, Championed
406
+ Building: Built, Developed, Engineered, Architected, Designed, Implemented, Launched, Shipped
407
+ Improvement: Reduced, Improved, Optimised, Streamlined, Accelerated, Automated, Consolidated
408
+ Analysis: Analysed, Researched, Evaluated, Identified, Diagnosed, Assessed, Mapped
409
+ Communication: Presented, Authored, Documented, Trained, Negotiated, Advised, Collaborated
410
+ Growth: Grew, Expanded, Scaled, Generated, Increased, Secured, Delivered
411
+ Strategy: Defined, Established, Prioritised, Planned, Coordinated, Oversaw, Aligned
412
+ ```
413
+
414
+ Rewrites:
415
+ ```
416
+ BEFORE: "Responsible for managing the team"
417
+ AFTER: "Managed a cross-functional team of 8 engineers, delivering the product roadmap
418
+ on schedule for three consecutive quarters"
419
+
420
+ BEFORE: "Helped with developing new features"
421
+ AFTER: "Developed four customer-facing features in React, reducing support tickets by 25%"
422
+
423
+ BEFORE: "Was involved in the migration project"
424
+ AFTER: "Led migration from monolith to microservices, cutting deployment time from
425
+ 45 minutes to under 4 minutes"
426
+ ```
427
+
428
+ ### Banned phrases — machine-checkable blocklist
429
+
430
+ Before output, scan the full CV text and **reject any bullet or sentence containing**
431
+ any of the following strings (case-insensitive):
432
+
433
+ ```
434
+ results-driven
435
+ dynamic individual
436
+ highly motivated
437
+ team player
438
+ proven track record
439
+ passionate about
440
+ passionate professional
441
+ detail-oriented
442
+ self-starter
443
+ hard worker
444
+ strong communication skills
445
+ excellent communication
446
+ synergy
447
+ leverage (when used as a verb meaning "use")
448
+ paradigm shift
449
+ thought leader
450
+ go-getter
451
+ innovative thinker
452
+ outside the box
453
+ people person
454
+ visionary
455
+ change agent
456
+ ```
457
+
458
+ If found: rewrite the sentence to show the specific evidence instead.
459
+
460
+ ### Tense enforcement
461
+
462
+ This is a hard gate — output is blocked until tense is correct:
463
+
464
+ - **Completed role** → all bullets in past tense (Led, Built, Reduced...)
465
+ - **Current role** → all bullets in present tense (Lead, Build, Reduce...)
466
+ - **Mixed tense within one role** → always fail; fix before output
467
+
468
+ ### Acronym and terminology
469
+
470
+ - Spell out on first use: "Machine Learning (ML)"; use abbreviation thereafter.
471
+ - Consistent capitalisation throughout: "JavaScript" not "Javascript".
472
+ - Mirror exact JD phrasing where applicable.
473
+ - Include both full form and abbreviation for searchability.
474
+
475
+ ---
476
+
477
+ ## ATS optimisation
478
+
479
+ ### Structural rules
480
+
481
+ | Rule | Why it matters |
482
+ |------|----------------|
483
+ | Name must be the very first line of the body | Parsers read top-to-bottom; name in header/footer is often missed |
484
+ | Contact info in body, not in header or footer | Header/footer text is invisible to Taleo, Workday, iCIMS |
485
+ | Single-column layout only | Two-column layouts break ATS text extraction order |
486
+ | No tables for layout | Table cells are read in unpredictable order |
487
+ | No text boxes, shapes, or SmartArt | Text inside shapes is invisible to ATS |
488
+ | No images or photos (unless market requires it) | Images are ignored; photos risk bias filtering |
489
+ | No icons in bullets or headings | Symbols like ➤ ✓ ★ corrupt parsed text |
490
+ | Bullet characters: hyphen (-) or plain dot (•) only | Safe across all ATS platforms |
491
+ | Standard section headings only | Non-standard headings cause misclassification |
492
+ | No "Objective" heading | Flags CV as outdated; use "Professional Summary" |
493
+ | Font: minimum 10pt body, 12–14pt headings | Smaller text garbles in PDF-to-text conversion |
494
+ | Margins: minimum 0.5 in / 1.27 cm all sides | Narrow margins cause line-wrapping errors |
495
+ | Spell out all URLs fully | Anchor text loses URL when ATS strips formatting |
496
+ | File format: .docx preferred for ATS; PDF for email | DOCX parses more accurately in most ATS |
497
+ | File name: FirstName_LastName_CV.docx | Generic names ("resume.pdf") get buried in recruiter files |
498
+
499
+ ### Keyword strategy
500
+
501
+ 1. Extract top 10–20 keywords from the JD (if provided).
502
+ 2. Categorise: hard skills | soft skills | qualifications | industry terms.
503
+ 3. For each keyword, record:
504
+ - Present and prominent
505
+ - Present but weak or buried → strengthen placement
506
+ - Absent but user has the skill → weave in naturally
507
+ - Absent and user lacks the skill → do not add
508
+ 4. Target keyword density: 2–4 natural occurrences per hard skill across the full CV.
509
+ 5. Include both spelled-out form and abbreviation for key terms.
510
+ 6. Mirror exact JD phrasing for shared responsibilities.
511
+
512
+ ### ATS platform quick notes
513
+
514
+ | Platform | Key quirk |
515
+ |----------|-----------|
516
+ | Workday | DOCX preferred; complex PDF tables fail |
517
+ | Taleo | Strictest; no special characters; plain text preferred |
518
+ | Greenhouse | Lenient; weights keyword frequency |
519
+ | Lever | Modern parser; handles most formats |
520
+ | iCIMS | DOCX preferred; strips header/footer text |
521
+ | SmartRecruiters | Handles DOCX and PDF; relatively lenient |
522
+
523
+ Default when platform is unknown: apply Taleo-level strictness.
524
+
525
+ ---
526
+
527
+ ## Job description integration
528
+
529
+ When a JD is provided, run four steps:
530
+
531
+ **Step 1 — Parse:**
532
+ - Job title and seniority signals
533
+ - Required vs preferred qualifications
534
+ - Hard skills: tools, languages, platforms, methodologies
535
+ - Soft skills and collaboration patterns
536
+ - Industry terminology
537
+ - Responsibility verb phrases (mirror these in bullets)
538
+
539
+ **Step 2 — Score:**
540
+ For each of the top 15 keywords, mark: present and prominent / present but weak /
541
+ absent.
542
+
543
+ **Step 3 — Integrate:**
544
+ - Strengthen weak keyword placements.
545
+ - Weave in missing keywords the user genuinely has experience with.
546
+ - Never add a keyword the user cannot truthfully claim.
547
+
548
+ **Step 4 — Report (include at end of output):**
549
+ ```
550
+ JD KEYWORD MATCH REPORT
551
+ Total JD keywords identified: 18
552
+ Matched in CV: 14 (78%)
553
+ Added naturally during generation: 3
554
+ Not added (user lacks skill): 1 — Salesforce
555
+ Recommendation: even limited Salesforce exposure is worth noting if any exists
556
+ ```
557
+
558
+ ---
559
+
560
+ ## Anti-hallucination enforcement gate
561
+
562
+ Before any output is produced, confirm every item in the CV passes this check.
563
+ **Output is blocked until all items pass.**
564
+
565
+ | Item | Rule |
566
+ |------|------|
567
+ | Job titles | Sourced directly from user data — not inferred or upgraded |
568
+ | Company names | Sourced directly — not corrected, normalised, or embellished |
569
+ | Dates | Reproduced exactly as provided — no normalisation without noting it |
570
+ | Degrees and institutions | Reproduced exactly as provided |
571
+ | Certifications | Only those explicitly named by the user |
572
+ | Metrics and numbers | Only those provided by the user — never approximated or invented |
573
+ | Awards and achievements | Only those named by the user |
574
+ | Skills and tools | Only those provided or clearly evidenced in source data |
575
+ | Projects | Only those named by the user |
576
+
577
+ If any item cannot be verified: mark it **[Not provided]** and include it in the
578
+ missing information checklist (section 11d). Never fill gaps silently.
579
+
580
+ ---
581
+
582
+ ## Final output — deliver in this exact order
583
+
584
+ ### Formatted CV (staging draft)
585
+
586
+ Clean plain-text draft with clear section labels. Used as the working version
587
+ before generating the tool-specific paste copies below.
588
+
589
+ ### FlowCV paste-ready version
590
+
591
+ FlowCV uses structured text fields, not free-form documents. Format accordingly:
592
+
593
+ ```
594
+ FULL NAME
595
+ [First name] [Last name]
596
+
597
+ PROFESSIONAL TITLE
598
+ [Target job title]
599
+
600
+ CONTACT
601
+ Email: [email]
602
+ Phone: [+country code number]
603
+ Location: [City, Country]
604
+ LinkedIn: [full URL]
605
+ Portfolio: [full URL if applicable]
606
+
607
+ PROFESSIONAL SUMMARY
608
+ [3–5 sentence plain paragraph — no bullets, no Markdown]
609
+
610
+ CORE SKILLS
611
+ [skill], [skill], [skill], [skill]
612
+ [skill], [skill], [skill], [skill]
613
+
614
+ WORK EXPERIENCE
615
+
616
+ [Job Title]
617
+ [Company Name] | [City, Country] | [Mon YYYY] – [Mon YYYY or Present]
618
+ [Employment type if not full-time: Contract / Freelance / Part-time]
619
+ - [Bullet one: action verb + context + outcome]
620
+ - [Bullet two]
621
+ - [Bullet three]
622
+
623
+ [Repeat for each role]
624
+
625
+ EDUCATION
626
+
627
+ [Degree Name]
628
+ [Institution Name], [Country] | [YYYY] – [YYYY]
629
+ [Grade or classification if notable]
630
+
631
+ [Repeat for each qualification]
632
+
633
+ CERTIFICATIONS
634
+ [Certificate Name] — [Issuing Body] — [Month YYYY]
635
+
636
+ PROJECTS
637
+
638
+ [Project Name]
639
+ [Technologies: tool, tool, tool]
640
+ - [What it does / your role / outcome]
641
+
642
+ ACHIEVEMENTS
643
+ - [Achievement one]
644
+ - [Achievement two]
645
+
646
+ VOLUNTEER EXPERIENCE
647
+ [Role] — [Organisation] — [YYYY–YYYY]
648
+ - [One-line description]
649
+
650
+ LANGUAGES
651
+ [Language]: [Native / Fluent / Professional / Conversational / Basic]
652
+
653
+ ADDITIONAL INFORMATION
654
+ [Anything else: open-source, interests relevant to role]
655
+ ```
656
+
657
+ ### Canva paste-ready version
658
+
659
+ Canva CV templates use individual text boxes per section. Provide each section as
660
+ a separate clearly labelled block, with no Markdown symbols.
661
+
662
+ ```
663
+ --- PASTE INTO: Name field ---
664
+ [Full name]
665
+
666
+ --- PASTE INTO: Job title / headline field ---
667
+ [Target job title]
668
+
669
+ --- PASTE INTO: Contact block ---
670
+ [email] | [phone] | [city, country] | [LinkedIn URL]
671
+
672
+ --- PASTE INTO: Summary / About field ---
673
+ [3–5 sentence paragraph, plain text, no hyphens or bullets]
674
+
675
+ --- PASTE INTO: Skills field ---
676
+ [skill] | [skill] | [skill] | [skill] | [skill]
677
+
678
+ --- PASTE INTO: Experience entry 1 ---
679
+ [Job Title]
680
+ [Company] | [Location] | [Mon YYYY – Mon YYYY]
681
+ - [Bullet]
682
+ - [Bullet]
683
+ - [Bullet]
684
+
685
+ [Continue for each role as a separate block]
686
+
687
+ --- PASTE INTO: Education entry 1 ---
688
+ [Degree]
689
+ [Institution], [Country] | [YYYY – YYYY]
690
+ [Grade if notable]
691
+
692
+ --- PASTE INTO: Certifications ---
693
+ [Certificate] | [Issuer] | [YYYY]
694
+
695
+ --- PASTE INTO: Languages ---
696
+ [Language] ([Proficiency])
697
+ ```
698
+
699
+ ### Missing information checklist
700
+
701
+ ```
702
+ MISSING INFORMATION
703
+ [ ] Phone number
704
+ [ ] LinkedIn URL
705
+ [ ] Portfolio or GitHub URL
706
+ [ ] Measurable results for [Role] at [Company]
707
+ [ ] Certifications — do you hold any?
708
+ [ ] Languages — list any beyond English
709
+ [ ] Employment gap [Mon YYYY – Mon YYYY] — add a brief framing note
710
+ [ ] [Any other flagged item]
711
+ ```
712
+
713
+ ### CV flaw report (scored 0–100)
714
+
715
+ Run all checks. Display a scored report:
716
+
717
+ ```
718
+ CV FLAW REPORT
719
+ ──────────────────────────────────────
720
+ Score: [X]/100
721
+
722
+ PASS Truthfulness — all facts sourced from user data
723
+ PASS No hallucination — no fabricated details
724
+ PASS Tense correctness — past for completed, present for current
725
+ PASS ATS structure — single column, no tables or images
726
+ PASS Standard headings — all recognisable by parsers
727
+ PASS No forbidden characters — no ➤ ✓ ★
728
+ PASS Humanized — no banned phrases found
729
+ PASS Contact info in body (not header/footer)
730
+ FAIL [Check name] — [specific issue and location in CV]
731
+ ──────────────────────────────────────
732
+ Deductions: -[N] per FAIL item
733
+ Final score: [X]/100
734
+
735
+ ISSUES TO FIX:
736
+ 1. [Exact location] — [Exact problem] — [Suggested fix]
737
+ 2. [Exact location] — [Exact problem] — [Suggested fix]
738
+ ```
739
+
740
+ Score deductions: -10 per FAIL on truthfulness or hallucination;
741
+ -5 per FAIL on tense, ATS structure, or banned phrases;
742
+ -3 per FAIL on formatting issues.
743
+
744
+ ### Improvement suggestions (3–7, specific and actionable)
745
+
746
+ - "Your summary does not state the target role. Open with your job title explicitly."
747
+ - "The [Company] role has no metrics. Even approximate scope (team size, users, budget range) strengthens credibility."
748
+ - "Skills section mixes expert and basic tools without distinction. Group into Proficient / Familiar."
749
+ - "Add a GitHub or portfolio URL — technical recruiters check it before the interview."
750
+ - "Three bullets begin with 'Responsible for' — replace with direct action verbs."
751
+ - "CV is [N] pages for [N] years of experience. Target is [N] pages; trim older roles to one line."
752
+
753
+ ### Suggested file name
754
+
755
+ ```
756
+ Suggested filename: [FirstName]_[LastName]_CV.docx
757
+ ```
758
+
759
+ ---
760
+
761
+ ## Cover letter companion (optional)
762
+
763
+ After the CV output, offer:
764
+
765
+ > "Would you like a tailored cover letter for this application?"
766
+
767
+ If yes, output as a **separate clearly labelled plain-text block** — not inline with the CV.
768
+
769
+ Rules:
770
+ - Opens with a specific hook — not "I am writing to apply for…"
771
+ - References company and role by name
772
+ - Bridges 2–3 strongest CV points to the JD's key requirements
773
+ - Closes with a clear call to action
774
+ - Matches tone of the target industry
775
+ - 3 paragraphs maximum, 250–350 words
776
+ - Does not repeat the CV verbatim
777
+
778
+ ---
779
+
780
+ ## Limitations
781
+
782
+ - **No hallucination.** Never invent a title, company, date, degree, cert, skill, metric, or award.
783
+ - **No fake metrics.** If the user says "we grew a lot", ask for specifics — never insert a percentage.
784
+ - **Respect source truth.** "Junior Developer" stays "Junior Developer" — suggest a reframe if needed; never silently change it.
785
+ - **No silent changes.** If something is materially reworded, note the change.
786
+ - **One version at a time.** Complete the CV before offering variants.
787
+ - **Privacy.** Do not expose full home address, national ID, DOB, marital status, or religion unless the user's target market requires it.
788
+ - **No keyword stuffing.** Adding skills the user does not have is fraud. Flag gaps; never fabricate.
789
+ - **OCR warning.** Always display before continuing: "OCR was used — please verify the extracted text for accuracy."
790
+
791
+ ---
792
+
793
+ ## Country and market conventions
794
+
795
+ | Market | Length | Photo | DOB | Marital status | References |
796
+ |--------|--------|-------|-----|----------------|------------|
797
+ | USA | 1–2 pages | No | No | No | "Available on request" |
798
+ | Canada | 1–2 pages | No | No | No | "Available on request" |
799
+ | UK | 2 pages | No | No | No | "Available on request" |
800
+ | Ireland | 2 pages | No | No | No | "Available on request" |
801
+ | Australia / NZ | 2–3 pages | No | No | No | "Available on request" |
802
+ | Germany / Austria / Switzerland | 2–3 pages | Yes (expected) | Yes | Sometimes | Listed or on request |
803
+ | France | 1–2 pages | Optional | No (illegal to require) | No | On request |
804
+ | Netherlands / Scandinavia | 1–2 pages | Optional | No | No | On request |
805
+ | Japan | 1–2 pages (rirekisho) | Yes | Yes | Yes | Listed |
806
+ | South Korea | 1–2 pages | Yes | Yes | Yes | Listed |
807
+ | China | 1–2 pages | Yes | Yes | Yes | Listed |
808
+ | India | 2–3 pages | Optional | Yes (common) | Sometimes | Listed |
809
+ | Nepal | 2–3 pages | Yes (common) | Yes | Sometimes | Listed |
810
+ | Bangladesh / Sri Lanka | 2–3 pages | Yes (common) | Yes | Sometimes | Listed |
811
+ | UAE / Gulf (GCC) | 2–3 pages | Yes (common) | Yes | Yes (sometimes) | Listed |
812
+ | Nigeria / East Africa | 2–3 pages | Yes (common) | Yes | Sometimes | Listed |
813
+ | South Africa | 3–5 pages | Optional | Yes (common) | No | Listed |
814
+ | Brazil | 1–2 pages | Optional | Yes (common) | No | On request |
815
+ | Academic (global) | No limit | Varies | Varies | No | Full list required |
816
+ | Executive / board (global) | 2–3 pages | No | No | No | On request |
817
+
818
+ Default when market is unknown: UK / international conventions (no photo, no DOB, 2 pages,
819
+ "Available on request").
820
+
821
+ ---
822
+
823
+ ## Decision tree
824
+
825
+ ```
826
+ User invokes @cv-generator
827
+ |
828
+ v
829
+ Source provided? --No--> Run questionnaire (Q1–Q20, one at a time)
830
+ |Yes
831
+ v
832
+ LinkedIn URL blocked? --Yes--> Ask for PDF export immediately; do not proceed empty
833
+ |No
834
+ v
835
+ Collect all sources --> merge and deduplicate (section 5)
836
+ |
837
+ v
838
+ Ask: Purpose? --> Detect or assume seniority (default: mid-level; tell the user)
839
+ |
840
+ v
841
+ Select format (section 3c)
842
+ |
843
+ v
844
+ Select section order (section 6)
845
+ |
846
+ v
847
+ JD provided? --Yes--> Parse JD --> extract and score keywords (section 9)
848
+ |No |
849
+ v v
850
+ Write CV content Integrate keywords naturally
851
+ (sections 7–8) |
852
+ |<-------------------+
853
+ v
854
+ Run anti-hallucination gate (section 10) --> block output until all pass
855
+ |
856
+ v
857
+ Run tense enforcement (section 7d) --> block output until all pass
858
+ |
859
+ v
860
+ Run banned phrase scan (section 7c) --> fix any found
861
+ |
862
+ v
863
+ Output in order:
864
+ Formatted CV (staging draft)
865
+ FlowCV paste-ready version
866
+ Canva paste-ready version
867
+ Missing information checklist
868
+ CV flaw report (scored)
869
+ Improve suggestions
870
+ Suggested file name
871
+ |
872
+ v
873
+ Offer cover letter (section 12)
874
+ ```