cue-ai 0.9.1 → 0.9.2
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/CHANGELOG.md +40 -0
- package/README.md +38 -0
- package/bin/cue-review-progress +107 -0
- package/bin/cue-review-watch +98 -0
- package/package.json +2 -1
- package/profiles/career/profile.yaml +13 -2
- package/profiles/core/profile.yaml +8 -0
- package/profiles/eu-tender-research/README.md +48 -0
- package/profiles/eu-tender-research/logo.png +0 -0
- package/profiles/eu-tender-research/profile.yaml +108 -0
- package/profiles/gstack/profile.yaml +2 -0
- package/profiles/skill-writer/profile.yaml +4 -0
- package/profiles/x-growth-bot/profile.yaml +0 -2
- package/resources/icons/generate-icons.py +128 -2
- package/resources/mcps/configs/claude.sanitized.json +17 -0
- package/resources/skills/skills/career/resume-version-manager/SKILL.md +351 -0
- package/resources/skills/skills/career/salary-negotiation-prep/SKILL.md +378 -0
- package/resources/skills/skills/eu-funding/grant-outreach/SKILL.md +70 -0
- package/resources/skills/skills/eu-funding/hu-grant-finder/SKILL.md +114 -0
- package/resources/skills/skills/eu-funding/hu-grant-finder/evals.md +26 -0
- package/resources/skills/skills/eu-funding/ted-tender-search/SKILL.md +80 -0
- package/resources/skills/skills/eu-funding/ted-tender-search/evals.md +26 -0
- package/resources/skills/skills/eu-funding/ted-tender-search/scripts/ted-search.sh +46 -0
- package/resources/skills/skills/github/gx-agents/SKILL.md +96 -0
- package/resources/skills/skills/meta/focus/SKILL.md +62 -0
- package/resources/skills/skills/tools/portless/SKILL.md +186 -0
- package/src/lib/analytics.ts +13 -1
|
@@ -17,19 +17,145 @@ Sources:
|
|
|
17
17
|
|
|
18
18
|
import io
|
|
19
19
|
import os
|
|
20
|
+
import re
|
|
21
|
+
import shutil
|
|
22
|
+
import subprocess
|
|
20
23
|
import sys
|
|
24
|
+
import tempfile
|
|
21
25
|
import urllib.request
|
|
22
26
|
|
|
23
27
|
try:
|
|
24
|
-
import cairosvg
|
|
25
28
|
from PIL import Image
|
|
26
29
|
except ImportError:
|
|
27
30
|
print("Missing deps. Run with: uv run --with Pillow --with cairosvg python3 generate-icons.py")
|
|
28
31
|
sys.exit(1)
|
|
29
32
|
|
|
33
|
+
# cairosvg is the primary rasterizer but optional: if it (or its native
|
|
34
|
+
# libcairo) is unavailable, rasterize() falls back to a headless browser,
|
|
35
|
+
# then ImageMagick. So a broken libcairo no longer blocks icon generation.
|
|
36
|
+
try:
|
|
37
|
+
import cairosvg
|
|
38
|
+
except Exception: # ImportError, or OSError when libcairo can't be loaded
|
|
39
|
+
cairosvg = None
|
|
40
|
+
|
|
30
41
|
SCRIPT_DIR = os.path.dirname(os.path.abspath(__file__))
|
|
31
42
|
SIZE = 64
|
|
32
43
|
|
|
44
|
+
|
|
45
|
+
def _sized_svg(svg_content: str, size: int) -> str:
|
|
46
|
+
"""Force explicit width/height on the root <svg> so browsers/IM render at `size`."""
|
|
47
|
+
# Drop any existing width/height on the opening tag, then inject our own.
|
|
48
|
+
def fix(m: re.Match) -> str:
|
|
49
|
+
tag = re.sub(r'\s(width|height)="[^"]*"', "", m.group(0))
|
|
50
|
+
return tag[:-1] + f' width="{size}" height="{size}">'
|
|
51
|
+
|
|
52
|
+
return re.sub(r"<svg\b[^>]*>", fix, svg_content, count=1)
|
|
53
|
+
|
|
54
|
+
|
|
55
|
+
def _rasterize_rsvg(svg_content: str, size: int) -> bytes | None:
|
|
56
|
+
"""Render via librsvg's rsvg-convert. Fast, accurate, no browser needed."""
|
|
57
|
+
rsvg = shutil.which("rsvg-convert")
|
|
58
|
+
if not rsvg:
|
|
59
|
+
return None
|
|
60
|
+
try:
|
|
61
|
+
res = subprocess.run(
|
|
62
|
+
[rsvg, "-w", str(size), "-h", str(size), "-f", "png"],
|
|
63
|
+
input=svg_content.encode(),
|
|
64
|
+
capture_output=True,
|
|
65
|
+
timeout=30,
|
|
66
|
+
check=False,
|
|
67
|
+
)
|
|
68
|
+
except Exception:
|
|
69
|
+
return None
|
|
70
|
+
return res.stdout if res.returncode == 0 and res.stdout else None
|
|
71
|
+
|
|
72
|
+
|
|
73
|
+
def _rasterize_chrome(svg_content: str, size: int) -> bytes | None:
|
|
74
|
+
"""Render via headless Chrome. Returns PNG bytes or None if unavailable."""
|
|
75
|
+
chrome = (
|
|
76
|
+
shutil.which("google-chrome")
|
|
77
|
+
or shutil.which("chromium")
|
|
78
|
+
or shutil.which("chromium-browser")
|
|
79
|
+
)
|
|
80
|
+
if not chrome:
|
|
81
|
+
return None
|
|
82
|
+
with tempfile.TemporaryDirectory() as tmp:
|
|
83
|
+
svg_path = os.path.join(tmp, "icon.svg")
|
|
84
|
+
out_path = os.path.join(tmp, "icon.png")
|
|
85
|
+
with open(svg_path, "w") as f:
|
|
86
|
+
f.write(_sized_svg(svg_content, size))
|
|
87
|
+
# Isolated --user-data-dir avoids clashing with a running browser's
|
|
88
|
+
# profile lock. Transparent background via RRGGBBAA = 00000000.
|
|
89
|
+
cmd = [
|
|
90
|
+
chrome,
|
|
91
|
+
"--headless=new",
|
|
92
|
+
"--disable-gpu",
|
|
93
|
+
"--hide-scrollbars",
|
|
94
|
+
"--force-device-scale-factor=1",
|
|
95
|
+
f"--user-data-dir={tmp}/profile",
|
|
96
|
+
"--default-background-color=00000000",
|
|
97
|
+
f"--window-size={size},{size}",
|
|
98
|
+
f"--screenshot={out_path}",
|
|
99
|
+
svg_path,
|
|
100
|
+
]
|
|
101
|
+
try:
|
|
102
|
+
subprocess.run(cmd, capture_output=True, timeout=30, check=False)
|
|
103
|
+
except Exception:
|
|
104
|
+
return None
|
|
105
|
+
if os.path.exists(out_path) and os.path.getsize(out_path) > 0:
|
|
106
|
+
with open(out_path, "rb") as f:
|
|
107
|
+
return f.read()
|
|
108
|
+
return None
|
|
109
|
+
|
|
110
|
+
|
|
111
|
+
def _rasterize_imagemagick(svg_content: str, size: int) -> bytes | None:
|
|
112
|
+
"""Last resort: ImageMagick. Unreliable without an rsvg-convert delegate."""
|
|
113
|
+
magick = shutil.which("magick") or shutil.which("convert")
|
|
114
|
+
if not magick:
|
|
115
|
+
return None
|
|
116
|
+
base = [magick] if magick.endswith("magick") else []
|
|
117
|
+
with tempfile.TemporaryDirectory() as tmp:
|
|
118
|
+
svg_path = os.path.join(tmp, "icon.svg")
|
|
119
|
+
out_path = os.path.join(tmp, "icon.png")
|
|
120
|
+
with open(svg_path, "w") as f:
|
|
121
|
+
f.write(_sized_svg(svg_content, size))
|
|
122
|
+
cmd = base + [
|
|
123
|
+
"convert" if not base else "",
|
|
124
|
+
"-background", "none",
|
|
125
|
+
"-density", "384",
|
|
126
|
+
svg_path,
|
|
127
|
+
"-resize", f"{size}x{size}",
|
|
128
|
+
out_path,
|
|
129
|
+
]
|
|
130
|
+
cmd = [c for c in cmd if c != ""]
|
|
131
|
+
try:
|
|
132
|
+
subprocess.run(cmd, capture_output=True, timeout=30, check=False)
|
|
133
|
+
except Exception:
|
|
134
|
+
return None
|
|
135
|
+
if os.path.exists(out_path) and os.path.getsize(out_path) > 0:
|
|
136
|
+
with open(out_path, "rb") as f:
|
|
137
|
+
return f.read()
|
|
138
|
+
return None
|
|
139
|
+
|
|
140
|
+
|
|
141
|
+
def rasterize(svg_content: str, size: int) -> bytes:
|
|
142
|
+
"""SVG -> PNG bytes via cairosvg, then headless Chrome, then ImageMagick."""
|
|
143
|
+
if cairosvg is not None:
|
|
144
|
+
try:
|
|
145
|
+
return cairosvg.svg2png(
|
|
146
|
+
bytestring=svg_content.encode(), output_width=size, output_height=size
|
|
147
|
+
)
|
|
148
|
+
except Exception as e: # broken libcairo at call time, malformed SVG, etc.
|
|
149
|
+
print(f" (cairosvg failed: {e}; trying fallback)", end="")
|
|
150
|
+
for fn in (_rasterize_rsvg, _rasterize_chrome, _rasterize_imagemagick):
|
|
151
|
+
png = fn(svg_content, size)
|
|
152
|
+
if png:
|
|
153
|
+
return png
|
|
154
|
+
raise RuntimeError(
|
|
155
|
+
"No working SVG rasterizer. Install cairosvg (uv run --with cairosvg), "
|
|
156
|
+
"or a headless Chrome/Chromium, or ImageMagick with an SVG delegate."
|
|
157
|
+
)
|
|
158
|
+
|
|
33
159
|
# Brand icon definitions: name -> {svg_slug, color, bg}
|
|
34
160
|
# svg_slug: name on simpleicons.org (lowercase, no spaces)
|
|
35
161
|
# color: fill color for the SVG path (hex without #)
|
|
@@ -180,7 +306,7 @@ def render_icon(svg_content: str, color: str | None, bg: str | None) -> Image.Im
|
|
|
180
306
|
f'xmlns="http://www.w3.org/2000/svg"><rect width="24" height="24" fill="#{bg}"/>',
|
|
181
307
|
)
|
|
182
308
|
|
|
183
|
-
png_data =
|
|
309
|
+
png_data = rasterize(svg_content, SIZE)
|
|
184
310
|
img = Image.open(io.BytesIO(png_data)).convert("RGBA")
|
|
185
311
|
return img
|
|
186
312
|
|
|
@@ -1,6 +1,19 @@
|
|
|
1
1
|
{
|
|
2
2
|
"server_key": "mcpServers",
|
|
3
3
|
"servers": {
|
|
4
|
+
"ted-eu": {
|
|
5
|
+
"type": "http",
|
|
6
|
+
"url": "https://gateway.pipeworx.io/ted-eu/mcp"
|
|
7
|
+
},
|
|
8
|
+
"apify-ted-eu": {
|
|
9
|
+
"command": "npx",
|
|
10
|
+
"args": [
|
|
11
|
+
"mcp-remote",
|
|
12
|
+
"https://mcp.apify.com/?tools=jeeves_is_my_copilot/ted-eu-tenders-api",
|
|
13
|
+
"--header",
|
|
14
|
+
"Authorization: Bearer ${APIFY_API_TOKEN}"
|
|
15
|
+
]
|
|
16
|
+
},
|
|
4
17
|
"strapi-docs": {
|
|
5
18
|
"type": "http",
|
|
6
19
|
"url": "https://strapi-docs.mcp.kapa.ai"
|
|
@@ -48,6 +61,10 @@
|
|
|
48
61
|
"command": "npx",
|
|
49
62
|
"args": ["-y", "@upstash/context7-mcp"]
|
|
50
63
|
},
|
|
64
|
+
"codegraph": {
|
|
65
|
+
"command": "codegraph",
|
|
66
|
+
"args": ["serve", "--mcp"]
|
|
67
|
+
},
|
|
51
68
|
"kroschuorder": {
|
|
52
69
|
"args": [
|
|
53
70
|
"tsx",
|
|
@@ -0,0 +1,351 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: resume-version-manager
|
|
3
|
+
description: Track resume versions, maintain one master resume, and manage per-job tailored copies. Use when user says "manage my resumes", "track resume versions", "which resume did I send", "master resume", "organize my resumes", or "version of my resume for this job".
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Resume Version Manager
|
|
7
|
+
|
|
8
|
+
## When to Use This Skill
|
|
9
|
+
|
|
10
|
+
Use this skill when the user:
|
|
11
|
+
- Has multiple resume versions to manage
|
|
12
|
+
- Needs to track tailored resumes
|
|
13
|
+
- Wants to maintain a master resume
|
|
14
|
+
- Is applying to many different roles
|
|
15
|
+
- Mentions: "resume versions", "master resume", "different versions", "track resumes", "which resume"
|
|
16
|
+
|
|
17
|
+
## Core Capabilities
|
|
18
|
+
|
|
19
|
+
- Create and maintain master resume document
|
|
20
|
+
- Track tailored resume versions
|
|
21
|
+
- Organize resume versions by role/industry
|
|
22
|
+
- Maintain consistent source of truth
|
|
23
|
+
- Streamline resume updates
|
|
24
|
+
- Prevent version confusion
|
|
25
|
+
|
|
26
|
+
## The Version Management Problem
|
|
27
|
+
|
|
28
|
+
**Common Pain Points:**
|
|
29
|
+
- "Which version did I send to Company X?"
|
|
30
|
+
- "Where's my most recent resume?"
|
|
31
|
+
- "I have 15 resume files and don't know which is best"
|
|
32
|
+
- "I forgot to update my resume after that project"
|
|
33
|
+
- "I keep tailoring from different base versions"
|
|
34
|
+
|
|
35
|
+
**The Solution:**
|
|
36
|
+
A systematic approach with:
|
|
37
|
+
1. One master resume (source of truth)
|
|
38
|
+
2. Organized tailored versions
|
|
39
|
+
3. Clear naming conventions
|
|
40
|
+
4. Update workflow
|
|
41
|
+
|
|
42
|
+
## Master Resume Concept
|
|
43
|
+
|
|
44
|
+
### What is a Master Resume?
|
|
45
|
+
|
|
46
|
+
A comprehensive document containing:
|
|
47
|
+
- ALL your experiences (not just recent)
|
|
48
|
+
- ALL bullet points you've ever written
|
|
49
|
+
- Every achievement, project, skill
|
|
50
|
+
- Full details (even if they won't fit on one page)
|
|
51
|
+
|
|
52
|
+
**Purpose:** Source of truth to pull from when tailoring
|
|
53
|
+
|
|
54
|
+
### Master Resume Structure
|
|
55
|
+
|
|
56
|
+
```markdown
|
|
57
|
+
# MASTER RESUME - [YOUR NAME]
|
|
58
|
+
Last Updated: [Date]
|
|
59
|
+
|
|
60
|
+
## CONTACT INFORMATION
|
|
61
|
+
[Full contact details]
|
|
62
|
+
|
|
63
|
+
## PROFESSIONAL SUMMARY VERSIONS
|
|
64
|
+
[Summary for Role Type A]
|
|
65
|
+
[Summary for Role Type B]
|
|
66
|
+
[Summary for Role Type C]
|
|
67
|
+
|
|
68
|
+
## ALL SKILLS
|
|
69
|
+
### Technical Skills
|
|
70
|
+
[Complete list by category]
|
|
71
|
+
|
|
72
|
+
### Soft Skills
|
|
73
|
+
[Complete list]
|
|
74
|
+
|
|
75
|
+
### Industry Knowledge
|
|
76
|
+
[All domains]
|
|
77
|
+
|
|
78
|
+
## PROFESSIONAL EXPERIENCE
|
|
79
|
+
|
|
80
|
+
### Company Name | Title | Dates
|
|
81
|
+
|
|
82
|
+
**All Bullets (choose best for each application):**
|
|
83
|
+
• Bullet 1 (leadership focused)
|
|
84
|
+
• Bullet 2 (technical focused)
|
|
85
|
+
• Bullet 3 (results focused)
|
|
86
|
+
• Bullet 4 (collaboration focused)
|
|
87
|
+
• Bullet 5 (additional achievement)
|
|
88
|
+
• Bullet 6 (additional achievement)
|
|
89
|
+
|
|
90
|
+
**Keywords this experience covers:**
|
|
91
|
+
[List of keywords this job demonstrates]
|
|
92
|
+
|
|
93
|
+
### Previous Company | Title | Dates
|
|
94
|
+
[Same format...]
|
|
95
|
+
|
|
96
|
+
## EDUCATION
|
|
97
|
+
[Complete education history]
|
|
98
|
+
|
|
99
|
+
## CERTIFICATIONS
|
|
100
|
+
[All certifications ever earned]
|
|
101
|
+
|
|
102
|
+
## PROJECTS
|
|
103
|
+
[All notable projects]
|
|
104
|
+
|
|
105
|
+
## VOLUNTEER / ADDITIONAL
|
|
106
|
+
[All other relevant experience]
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
## File Organization System
|
|
110
|
+
|
|
111
|
+
### Folder Structure
|
|
112
|
+
|
|
113
|
+
```
|
|
114
|
+
Resume/
|
|
115
|
+
├── Master/
|
|
116
|
+
│ └── LastName_Master_Resume.docx
|
|
117
|
+
├── Tailored/
|
|
118
|
+
│ ├── ProductManagement/
|
|
119
|
+
│ │ ├── LastName_PM_Google_Jan2024.pdf
|
|
120
|
+
│ │ └── LastName_PM_Meta_Jan2024.pdf
|
|
121
|
+
│ ├── Engineering/
|
|
122
|
+
│ │ ├── LastName_SWE_Startup_Feb2024.pdf
|
|
123
|
+
│ │ └── LastName_SWE_Enterprise_Feb2024.pdf
|
|
124
|
+
│ └── General/
|
|
125
|
+
│ └── LastName_General_Resume.pdf
|
|
126
|
+
├── CoverLetters/
|
|
127
|
+
│ ├── Google_PM_CoverLetter.docx
|
|
128
|
+
│ └── Meta_PM_CoverLetter.docx
|
|
129
|
+
└── Applications/
|
|
130
|
+
└── ApplicationTracker.xlsx
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
### File Naming Convention
|
|
134
|
+
|
|
135
|
+
**Pattern:**
|
|
136
|
+
`[LastName]_[Role/Type]_[Company]_[Date].pdf`
|
|
137
|
+
|
|
138
|
+
**Examples:**
|
|
139
|
+
- `Smith_ProductManager_Google_Jan2024.pdf`
|
|
140
|
+
- `Smith_SWE_Stripe_Feb2024.pdf`
|
|
141
|
+
- `Smith_DataScience_General_2024.pdf`
|
|
142
|
+
- `Smith_Master_Resume_v3.docx`
|
|
143
|
+
|
|
144
|
+
## Version Categories
|
|
145
|
+
|
|
146
|
+
### By Target Role
|
|
147
|
+
|
|
148
|
+
**Product Management:**
|
|
149
|
+
- Emphasizes: Strategy, roadmap, metrics, stakeholders
|
|
150
|
+
- Skills highlight: Product tools, analytics, user research
|
|
151
|
+
|
|
152
|
+
**Software Engineering:**
|
|
153
|
+
- Emphasizes: Technical projects, systems, code
|
|
154
|
+
- Skills highlight: Languages, frameworks, tools
|
|
155
|
+
|
|
156
|
+
**Data Science:**
|
|
157
|
+
- Emphasizes: Analysis, ML, statistical methods
|
|
158
|
+
- Skills highlight: Python, SQL, ML libraries
|
|
159
|
+
|
|
160
|
+
### By Industry
|
|
161
|
+
|
|
162
|
+
**Tech/Startup:**
|
|
163
|
+
- Emphasizes: Innovation, growth, scrappiness
|
|
164
|
+
- Tone: Modern, direct, achievement-focused
|
|
165
|
+
|
|
166
|
+
**Enterprise/Corporate:**
|
|
167
|
+
- Emphasizes: Scale, process, collaboration
|
|
168
|
+
- Tone: Professional, structured, comprehensive
|
|
169
|
+
|
|
170
|
+
**Finance:**
|
|
171
|
+
- Emphasizes: Analysis, compliance, accuracy
|
|
172
|
+
- Tone: Conservative, precise, credentialed
|
|
173
|
+
|
|
174
|
+
### By Seniority Level
|
|
175
|
+
|
|
176
|
+
**Individual Contributor:**
|
|
177
|
+
- Focus on execution and technical skills
|
|
178
|
+
- Detailed project descriptions
|
|
179
|
+
- Technical accomplishments
|
|
180
|
+
|
|
181
|
+
**Manager:**
|
|
182
|
+
- Team leadership and development
|
|
183
|
+
- Cross-functional collaboration
|
|
184
|
+
- Business impact metrics
|
|
185
|
+
|
|
186
|
+
**Executive:**
|
|
187
|
+
- Strategic leadership
|
|
188
|
+
- P&L responsibility
|
|
189
|
+
- Organizational transformation
|
|
190
|
+
|
|
191
|
+
## Application Tracking
|
|
192
|
+
|
|
193
|
+
### Simple Tracker Spreadsheet
|
|
194
|
+
|
|
195
|
+
```
|
|
196
|
+
| Company | Role | Version Used | Date Applied | Status | Notes |
|
|
197
|
+
|---------|------|--------------|--------------|--------|-------|
|
|
198
|
+
| Google | PM | PM_Google_Jan | 1/15/24 | Interview | 2nd round 2/1 |
|
|
199
|
+
| Meta | PM | PM_Meta_Jan | 1/18/24 | Applied | Referral from John |
|
|
200
|
+
| Startup | PM | PM_General | 1/20/24 | Rejected | Too senior |
|
|
201
|
+
```
|
|
202
|
+
|
|
203
|
+
### Information to Track
|
|
204
|
+
|
|
205
|
+
- Company name
|
|
206
|
+
- Job title
|
|
207
|
+
- Resume version used
|
|
208
|
+
- Cover letter version used
|
|
209
|
+
- Application date
|
|
210
|
+
- Application method (portal, referral, direct)
|
|
211
|
+
- Current status
|
|
212
|
+
- Follow-up dates
|
|
213
|
+
- Notes and contacts
|
|
214
|
+
|
|
215
|
+
## Update Workflow
|
|
216
|
+
|
|
217
|
+
### When to Update Master Resume
|
|
218
|
+
|
|
219
|
+
**Immediately Update For:**
|
|
220
|
+
- New job or promotion
|
|
221
|
+
- Completed major project
|
|
222
|
+
- New skills or certifications
|
|
223
|
+
- Significant achievements
|
|
224
|
+
- Awards or recognition
|
|
225
|
+
|
|
226
|
+
**Quarterly Review:**
|
|
227
|
+
- Add recent accomplishments
|
|
228
|
+
- Update metrics with new data
|
|
229
|
+
- Refresh skills section
|
|
230
|
+
- Remove outdated information
|
|
231
|
+
|
|
232
|
+
### Master to Tailored Workflow
|
|
233
|
+
|
|
234
|
+
```
|
|
235
|
+
1. Start with Master Resume
|
|
236
|
+
↓
|
|
237
|
+
2. Copy to new file (don't edit master)
|
|
238
|
+
↓
|
|
239
|
+
3. Analyze job description
|
|
240
|
+
↓
|
|
241
|
+
4. Select relevant bullets from master
|
|
242
|
+
↓
|
|
243
|
+
5. Choose appropriate summary version
|
|
244
|
+
↓
|
|
245
|
+
6. Reorder skills for relevance
|
|
246
|
+
↓
|
|
247
|
+
7. Add job-specific keywords
|
|
248
|
+
↓
|
|
249
|
+
8. Trim to appropriate length
|
|
250
|
+
↓
|
|
251
|
+
9. Save with proper naming convention
|
|
252
|
+
↓
|
|
253
|
+
10. Update application tracker
|
|
254
|
+
```
|
|
255
|
+
|
|
256
|
+
## Common Scenarios
|
|
257
|
+
|
|
258
|
+
### Scenario 1: Applying to Similar Roles
|
|
259
|
+
|
|
260
|
+
**Strategy:**
|
|
261
|
+
- Create one well-tailored version for the role type
|
|
262
|
+
- Make minor adjustments for each company
|
|
263
|
+
- Track which slight variation went where
|
|
264
|
+
|
|
265
|
+
### Scenario 2: Applying to Different Role Types
|
|
266
|
+
|
|
267
|
+
**Strategy:**
|
|
268
|
+
- Create separate base versions for each role type
|
|
269
|
+
- Maintain clear folder organization
|
|
270
|
+
- Each version pulls from same master
|
|
271
|
+
|
|
272
|
+
### Scenario 3: Rapid Application Volume
|
|
273
|
+
|
|
274
|
+
**Strategy:**
|
|
275
|
+
- Create 2-3 strong category versions
|
|
276
|
+
- Use "general" versions for quick applications
|
|
277
|
+
- Reserve deep tailoring for top choices
|
|
278
|
+
|
|
279
|
+
### Scenario 4: Career Transition
|
|
280
|
+
|
|
281
|
+
**Strategy:**
|
|
282
|
+
- Create transition-focused version
|
|
283
|
+
- Emphasize transferable skills
|
|
284
|
+
- Maintain original industry version as backup
|
|
285
|
+
|
|
286
|
+
## Version Control Best Practices
|
|
287
|
+
|
|
288
|
+
### DO:
|
|
289
|
+
- ✅ Always work from master as source
|
|
290
|
+
- ✅ Use consistent naming conventions
|
|
291
|
+
- ✅ Track which version went where
|
|
292
|
+
- ✅ Keep master updated
|
|
293
|
+
- ✅ Date your files
|
|
294
|
+
- ✅ Backup to cloud storage
|
|
295
|
+
|
|
296
|
+
### DON'T:
|
|
297
|
+
- ❌ Edit master directly for applications
|
|
298
|
+
- ❌ Use vague names like "resume_final_v2"
|
|
299
|
+
- ❌ Forget which version you sent
|
|
300
|
+
- ❌ Let master get out of date
|
|
301
|
+
- ❌ Have multiple "master" files
|
|
302
|
+
- ❌ Delete old versions (archive instead)
|
|
303
|
+
|
|
304
|
+
## Output Format
|
|
305
|
+
|
|
306
|
+
When managing resume versions:
|
|
307
|
+
|
|
308
|
+
```markdown
|
|
309
|
+
# RESUME VERSION MANAGEMENT
|
|
310
|
+
|
|
311
|
+
## Master Resume Status
|
|
312
|
+
**Last Updated:** [Date]
|
|
313
|
+
**Location:** [File path]
|
|
314
|
+
**Total Experience Entries:** [X]
|
|
315
|
+
**Total Bullet Points Available:** [X]
|
|
316
|
+
|
|
317
|
+
## Active Versions
|
|
318
|
+
|
|
319
|
+
### Role Type: Product Management
|
|
320
|
+
**Base Version:** PM_General_2024.docx
|
|
321
|
+
**Tailored Versions:**
|
|
322
|
+
| Company | File Name | Date Created | Status |
|
|
323
|
+
|---------|-----------|--------------|--------|
|
|
324
|
+
| Google | PM_Google_Jan24 | 1/15/24 | Submitted |
|
|
325
|
+
| Meta | PM_Meta_Jan24 | 1/18/24 | Submitted |
|
|
326
|
+
|
|
327
|
+
### Role Type: Engineering
|
|
328
|
+
[Same structure]
|
|
329
|
+
|
|
330
|
+
## Update Queue
|
|
331
|
+
- [ ] Add Q4 project results to master
|
|
332
|
+
- [ ] Update skills with new certification
|
|
333
|
+
- [ ] Archive versions older than 6 months
|
|
334
|
+
|
|
335
|
+
## Recommended Actions
|
|
336
|
+
1. [Action 1]
|
|
337
|
+
2. [Action 2]
|
|
338
|
+
```
|
|
339
|
+
|
|
340
|
+
## Version Management Checklist
|
|
341
|
+
|
|
342
|
+
- ✅ Master resume exists and is current
|
|
343
|
+
- ✅ Folder structure is organized
|
|
344
|
+
- ✅ Naming convention is consistent
|
|
345
|
+
- ✅ Application tracker is maintained
|
|
346
|
+
- ✅ Know which version sent to each company
|
|
347
|
+
- ✅ All versions pull from same master
|
|
348
|
+
- ✅ Backup system in place
|
|
349
|
+
- ✅ Old versions archived (not deleted)
|
|
350
|
+
- ✅ Update workflow is established
|
|
351
|
+
- ✅ Regular master resume reviews scheduled
|