cue-ai 0.9.2 → 0.9.4
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 +4 -3
- package/README.md +154 -394
- package/bin/cue-learnings +30 -4
- package/bin/cue-review-progress +0 -0
- package/bin/cue-review-watch +0 -0
- package/dist/cue.js +4328 -3108
- package/package.json +1 -1
- package/plugins/cue/commands/cue-switch.md +1 -1
- package/plugins/cue/commands/cue.md +1 -1
- package/profiles/backend/profile.yaml +4 -0
- package/profiles/browser/profile.yaml +4 -0
- package/profiles/career/profile.yaml +2 -13
- package/profiles/commerce/profile.yaml +0 -2
- package/profiles/coolify/profile.yaml +0 -1
- package/profiles/core/profile.yaml +78 -11
- package/profiles/dash-merge-test/profile.yaml +6 -1
- package/profiles/designer/profile.yaml +9 -1
- package/profiles/dropshipping/profile.yaml +69 -0
- package/profiles/frontend/profile.yaml +4 -0
- package/profiles/google-ads/profile.yaml +34 -0
- package/profiles/google-analytics/profile.yaml +34 -0
- package/profiles/google-drive/profile.yaml +34 -0
- package/profiles/gstack/profile.yaml +117 -29
- package/profiles/marketing/profile.yaml +0 -1
- package/profiles/media/README.md +70 -0
- package/profiles/media/profile.yaml +104 -0
- package/profiles/nano-banana/profile.yaml +52 -0
- package/profiles/ops/profile.yaml +1 -2
- package/profiles/secops/profile.yaml +3 -0
- package/profiles/skill-writer/profile.yaml +15 -0
- package/profiles/video/profile.yaml +3 -0
- package/profiles/web-frontend-base/profile.yaml +6 -0
- package/profiles/webshop/profile.yaml +0 -1
- package/profiles/webshop-google/profile.yaml +1 -0
- package/profiles/x-growth-bot/profile.yaml +2 -0
- package/resources/icons/generate-icons.py +2 -128
- package/resources/mcps/configs/claude.sanitized.json +88 -20
- package/resources/mcps/configs/claude_runtime.sanitized.json +40 -1
- package/resources/mcps/configs/codex.sanitized.json +29 -0
- package/resources/skills/skills/career/job-hunter/LICENSE +21 -0
- package/resources/skills/skills/career/job-hunter/README.md +323 -0
- package/resources/skills/skills/career/job-hunter/SKILL.md +91 -0
- package/resources/skills/skills/career/job-hunter/agents/README.md +96 -0
- package/resources/skills/skills/career/job-hunter/agents/apply-assessment-prep.md +195 -0
- package/resources/skills/skills/career/job-hunter/agents/apply-ats-scan.md +155 -0
- package/resources/skills/skills/career/job-hunter/agents/apply-bias-audit.md +224 -0
- package/resources/skills/skills/career/job-hunter/agents/apply-cover-letter.md +69 -0
- package/resources/skills/skills/career/job-hunter/agents/apply-decode-jd.md +117 -0
- package/resources/skills/skills/career/job-hunter/agents/apply-fit-score.md +183 -0
- package/resources/skills/skills/career/job-hunter/agents/apply-linkedin-audit.md +74 -0
- package/resources/skills/skills/career/job-hunter/agents/apply-linkedin-scrape.md +255 -0
- package/resources/skills/skills/career/job-hunter/agents/apply-portfolio-brief.md +123 -0
- package/resources/skills/skills/career/job-hunter/agents/apply-reality-check.md +164 -0
- package/resources/skills/skills/career/job-hunter/agents/apply-reference-prep.md +150 -0
- package/resources/skills/skills/career/job-hunter/agents/apply-rejection-analysis.md +172 -0
- package/resources/skills/skills/career/job-hunter/agents/apply-resume.md +70 -0
- package/resources/skills/skills/career/job-hunter/agents/apply-skills-gap-filler.md +109 -0
- package/resources/skills/skills/career/job-hunter/agents/career-internal.md +94 -0
- package/resources/skills/skills/career/job-hunter/agents/career-linkedin-content.md +173 -0
- package/resources/skills/skills/career/job-hunter/agents/career-linkedin-scanner.md +262 -0
- package/resources/skills/skills/career/job-hunter/agents/career-network-message.md +108 -0
- package/resources/skills/skills/career/job-hunter/agents/career-promote.md +102 -0
- package/resources/skills/skills/career/job-hunter/agents/career-review.md +71 -0
- package/resources/skills/skills/career/job-hunter/agents/interview-debrief.md +117 -0
- package/resources/skills/skills/career/job-hunter/agents/interview-mock.md +171 -0
- package/resources/skills/skills/career/job-hunter/agents/interview-panel-decoder.md +152 -0
- package/resources/skills/skills/career/job-hunter/agents/interview-prep.md +184 -0
- package/resources/skills/skills/career/job-hunter/agents/interview-question-bank.md +133 -0
- package/resources/skills/skills/career/job-hunter/agents/interview-research.md +148 -0
- package/resources/skills/skills/career/job-hunter/agents/offer-compare.md +117 -0
- package/resources/skills/skills/career/job-hunter/agents/offer-counteroffer.md +144 -0
- package/resources/skills/skills/career/job-hunter/agents/offer-deadline-manager.md +148 -0
- package/resources/skills/skills/career/job-hunter/agents/offer-negotiate.md +126 -0
- package/resources/skills/skills/career/job-hunter/agents/offer-schedule.md +99 -0
- package/resources/skills/skills/career/job-hunter/agents/offer-thankyou.md +80 -0
- package/resources/skills/skills/career/job-hunter/agents/search-company-research.md +146 -0
- package/resources/skills/skills/career/job-hunter/agents/search-follow-up.md +129 -0
- package/resources/skills/skills/career/job-hunter/agents/search-ghost-job-detector.md +152 -0
- package/resources/skills/skills/career/job-hunter/agents/search-inbox-scan.md +193 -0
- package/resources/skills/skills/career/job-hunter/agents/search-interview-scorecard.md +164 -0
- package/resources/skills/skills/career/job-hunter/agents/search-jobs.md +149 -0
- package/resources/skills/skills/career/job-hunter/agents/search-momentum-check.md +194 -0
- package/resources/skills/skills/career/job-hunter/agents/search-outreach.md +85 -0
- package/resources/skills/skills/career/job-hunter/agents/search-referral-finder.md +124 -0
- package/resources/skills/skills/career/job-hunter/agents/search-salary.md +96 -0
- package/resources/skills/skills/career/job-hunter/agents/search-send-email.md +109 -0
- package/resources/skills/skills/career/job-hunter/agents/search-tracker-update.md +127 -0
- package/resources/skills/skills/career/job-hunter/inputs/README.md +26 -0
- package/resources/skills/skills/career/job-hunter/inputs/apply-linkedin-url.txt +8 -0
- package/resources/skills/skills/career/job-hunter/inputs/interview-context.md +24 -0
- package/resources/skills/skills/career/job-hunter/inputs/job-description.md +20 -0
- package/resources/skills/skills/career/job-hunter/inputs/job-search-criteria.md +36 -0
- package/resources/skills/skills/career/job-hunter/inputs/my-linkedin.md +24 -0
- package/resources/skills/skills/career/job-hunter/inputs/my-resume.md +28 -0
- package/resources/skills/skills/career/job-hunter/inputs/search-outreach-target.md +24 -0
- package/resources/skills/skills/career/job-hunter/rules/README.md +37 -0
- package/resources/skills/skills/career/job-hunter/rules/writing-rules.md +81 -0
- package/resources/skills/skills/design/banana/SKILL.md +375 -0
- package/resources/skills/skills/design/banana/references/cost-tracking.md +47 -0
- package/resources/skills/skills/design/banana/references/gemini-models.md +236 -0
- package/resources/skills/skills/design/banana/references/mcp-tools.md +145 -0
- package/resources/skills/skills/design/banana/references/post-processing.md +192 -0
- package/resources/skills/skills/design/banana/references/presets.md +69 -0
- package/resources/skills/skills/design/banana/references/prompt-engineering.md +481 -0
- package/resources/skills/skills/design/banana/scripts/batch.py +97 -0
- package/resources/skills/skills/design/banana/scripts/cost_tracker.py +191 -0
- package/resources/skills/skills/design/banana/scripts/edit.py +159 -0
- package/resources/skills/skills/design/banana/scripts/generate.py +168 -0
- package/resources/skills/skills/design/banana/scripts/presets.py +154 -0
- package/resources/skills/skills/design/banana/scripts/setup_mcp.py +151 -0
- package/resources/skills/skills/design/banana/scripts/validate_setup.py +133 -0
- package/resources/skills/skills/gstack/ship/SKILL.md +13 -0
- package/resources/skills/skills/media/3d-logo-animation/SKILL.md +59 -0
- package/resources/skills/skills/media/action-figure-generator/SKILL.md +48 -0
- package/resources/skills/skills/media/ad-creative/SKILL.md +79 -0
- package/resources/skills/skills/media/ai-clipping/SKILL.md +194 -0
- package/resources/skills/skills/media/ai-clipping/scripts/run-ai-clipping.sh +200 -0
- package/resources/skills/skills/media/ai-fight-scene/SKILL.md +132 -0
- package/resources/skills/skills/media/amazon-product-listing/SKILL.md +68 -0
- package/resources/skills/skills/media/animal-video-generator/SKILL.md +59 -0
- package/resources/skills/skills/media/award-ceremony-video/SKILL.md +87 -0
- package/resources/skills/skills/media/blog-header/SKILL.md +61 -0
- package/resources/skills/skills/media/brand-kit/SKILL.md +72 -0
- package/resources/skills/skills/media/brochures/SKILL.md +65 -0
- package/resources/skills/skills/media/cartoon-dance-animation/SKILL.md +62 -0
- package/resources/skills/skills/media/character-story-video/SKILL.md +84 -0
- package/resources/skills/skills/media/chibi-collage-effect/SKILL.md +63 -0
- package/resources/skills/skills/media/cinema-director/SKILL.md +93 -0
- package/resources/skills/skills/media/cinema-director/scripts/generate-film.sh +78 -0
- package/resources/skills/skills/media/color-analysis-board/SKILL.md +71 -0
- package/resources/skills/skills/media/core-edit/SKILL.md +48 -0
- package/resources/skills/skills/media/core-edit/edit-image.sh +54 -0
- package/resources/skills/skills/media/core-edit/enhance-image.sh +191 -0
- package/resources/skills/skills/media/core-edit/lipsync.sh +144 -0
- package/resources/skills/skills/media/core-edit/video-effects.sh +193 -0
- package/resources/skills/skills/media/core-media/SKILL.md +49 -0
- package/resources/skills/skills/media/core-media/create-music.sh +169 -0
- package/resources/skills/skills/media/core-media/generate-image.sh +161 -0
- package/resources/skills/skills/media/core-media/generate-video.sh +137 -0
- package/resources/skills/skills/media/core-media/image-to-video.sh +228 -0
- package/resources/skills/skills/media/core-media/schema_data.json +18708 -0
- package/resources/skills/skills/media/core-media/upload.sh +41 -0
- package/resources/skills/skills/media/core-platform/SKILL.md +41 -0
- package/resources/skills/skills/media/core-platform/check-result.sh +37 -0
- package/resources/skills/skills/media/core-platform/setup.sh +31 -0
- package/resources/skills/skills/media/couple-grid-creator/SKILL.md +47 -0
- package/resources/skills/skills/media/design-guide/SKILL.md +73 -0
- package/resources/skills/skills/media/drone-style-video/SKILL.md +61 -0
- package/resources/skills/skills/media/fashion-try-on/SKILL.md +61 -0
- package/resources/skills/skills/media/floor-plan-rendering/SKILL.md +56 -0
- package/resources/skills/skills/media/freeze-effect-video/SKILL.md +100 -0
- package/resources/skills/skills/media/giant-product-showcase/SKILL.md +61 -0
- package/resources/skills/skills/media/instagram-post/SKILL.md +58 -0
- package/resources/skills/skills/media/interior-design/SKILL.md +61 -0
- package/resources/skills/skills/media/interior-design-visualizer/SKILL.md +57 -0
- package/resources/skills/skills/media/jewelry-product-video/SKILL.md +61 -0
- package/resources/skills/skills/media/kdenlive/SKILL.md +106 -0
- package/resources/skills/skills/media/kdenlive/scripts/assemble.sh +57 -0
- package/resources/skills/skills/media/kdenlive/scripts/common.sh +30 -0
- package/resources/skills/skills/media/kdenlive/scripts/inspect.sh +19 -0
- package/resources/skills/skills/media/kdenlive/scripts/reframe.sh +22 -0
- package/resources/skills/skills/media/kdenlive/scripts/render.sh +16 -0
- package/resources/skills/skills/media/kdenlive/scripts/title-card.sh +25 -0
- package/resources/skills/skills/media/keyboard-art-maker/SKILL.md +44 -0
- package/resources/skills/skills/media/logo-branding/SKILL.md +70 -0
- package/resources/skills/skills/media/logo-creator/SKILL.md +80 -0
- package/resources/skills/skills/media/logo-creator/scripts/create-logo.sh +38 -0
- package/resources/skills/skills/media/logo-generator/SKILL.md +56 -0
- package/resources/skills/skills/media/multi-angle-reshoot/SKILL.md +70 -0
- package/resources/skills/skills/media/multi-angle-shots/SKILL.md +73 -0
- package/resources/skills/skills/media/music-video/SKILL.md +61 -0
- package/resources/skills/skills/media/nano-banana/SKILL.md +80 -0
- package/resources/skills/skills/media/nano-banana/scripts/generate-nano-art.sh +54 -0
- package/resources/skills/skills/media/one-shot-video/SKILL.md +56 -0
- package/resources/skills/skills/media/photo-pack-generator/SKILL.md +205 -0
- package/resources/skills/skills/media/photo-pack-generator/scripts/generate-pack.sh +241 -0
- package/resources/skills/skills/media/product-ad-cinematic/SKILL.md +78 -0
- package/resources/skills/skills/media/product-campaign/SKILL.md +76 -0
- package/resources/skills/skills/media/product-showcase-video/SKILL.md +60 -0
- package/resources/skills/skills/media/product-video-ad-maker/SKILL.md +59 -0
- package/resources/skills/skills/media/rednote-cover/SKILL.md +57 -0
- package/resources/skills/skills/media/seedance-2/SKILL.md +632 -0
- package/resources/skills/skills/media/seedance-2/scripts/generate-seedance.sh +701 -0
- package/resources/skills/skills/media/selfie-with-celebrities/SKILL.md +64 -0
- package/resources/skills/skills/media/social-media-video/SKILL.md +277 -0
- package/resources/skills/skills/media/social-media-video/scripts/run-social-video.sh +316 -0
- package/resources/skills/skills/media/social-pack/SKILL.md +58 -0
- package/resources/skills/skills/media/storyboard/SKILL.md +57 -0
- package/resources/skills/skills/media/storyboard-to-cooking-video/SKILL.md +143 -0
- package/resources/skills/skills/media/talking-baby-video/SKILL.md +57 -0
- package/resources/skills/skills/media/ugc-ads-workflow/SKILL.md +70 -0
- package/resources/skills/skills/media/ugc-lifestyle-try-on/SKILL.md +65 -0
- package/resources/skills/skills/media/ugc-video-factory/SKILL.md +134 -0
- package/resources/skills/skills/media/ui-design/SKILL.md +81 -0
- package/resources/skills/skills/media/ui-design/scripts/generate-mockup.sh +49 -0
- package/resources/skills/skills/media/url-to-design/SKILL.md +61 -0
- package/resources/skills/skills/media/workflow/SKILL.md +197 -0
- package/resources/skills/skills/media/workflow/scripts/discover-workflow.sh +18 -0
- package/resources/skills/skills/media/workflow/scripts/generate-workflow.sh +33 -0
- package/resources/skills/skills/media/workflow/scripts/interactive-run.sh +16 -0
- package/resources/skills/skills/media/workflow/scripts/list-workflows.sh +20 -0
- package/resources/skills/skills/media/workflow/scripts/run-workflow.sh +34 -0
- package/resources/skills/skills/media/youtube-shorts/SKILL.md +173 -0
- package/resources/skills/skills/media/youtube-shorts/scripts/run-youtube-shorts.sh +141 -0
- package/resources/skills/skills/media/youtube-thumbnail/SKILL.md +66 -0
- package/resources/skills/skills/meta/cue-developer/references/architecture.md +2 -2
- package/resources/skills/skills/meta/cue-usage/SKILL.md +1 -1
- package/resources/skills/skills/meta/profile-fit-monitor/SKILL.md +2 -2
- package/resources/skills/skills/meta/profile-optimizer/SKILL.md +1 -1
- package/resources/skills/skills/meta/profile-suggest/SKILL.md +7 -7
- package/resources/skills/skills/meta/profile-summon/SKILL.md +159 -0
- package/resources/skills/skills/meta/profile-summon/evals/evals.json +53 -0
- package/resources/skills/skills/meta/save-profile/SKILL.md +1 -1
- package/resources/skills/skills/meta/skill-reviewer/SKILL.md +3 -0
- package/resources/skills/skills/meta/skill-reviewer/references/tdd-for-skills.md +55 -0
- package/resources/skills/skills/research/find-skills/SKILL.md +1 -1
- package/resources/skills/skills/review/code-review-deep/SKILL.md +20 -0
- package/resources/skills/skills/security/trivy-scan/SKILL.md +139 -0
- package/resources/skills/skills/security/trivy-scan/scripts/ensure-trivy.sh +21 -0
- package/resources/skills/skills/tools/ccusage/SKILL.md +142 -0
- package/src/commands/_index.ts +8 -0
- package/src/commands/ai.ts +2 -2
- package/src/commands/auto-detect.test.ts +74 -0
- package/src/commands/auto-detect.ts +9 -7
- package/src/commands/cli.test.ts +20 -4
- package/src/commands/cli.ts +36 -20
- package/src/commands/create-profile.ts +2 -2
- package/src/commands/debug.ts +2 -2
- package/src/commands/discover.ts +14 -4
- package/src/commands/export-docker.ts +1 -1
- package/src/commands/features-batch1.test.ts +1 -1
- package/src/commands/gates.ts +1 -1
- package/src/commands/import-profile.ts +1 -1
- package/src/commands/init.ts +15 -11
- package/src/commands/install.test.ts +192 -0
- package/src/commands/install.ts +610 -0
- package/src/commands/launch-handoff.e2e.test.ts +33 -1
- package/src/commands/launch.e2e.test.ts +15 -10
- package/src/commands/launch.ts +73 -116
- package/src/commands/materialize.ts +2 -2
- package/src/commands/prune.ts +1 -1
- package/src/commands/security-audit.ts +1 -1
- package/src/commands/shell.ts +7 -7
- package/src/commands/skill-report.ts +1 -1
- package/src/commands/skills.ts +3 -3
- package/src/commands/snapshot.ts +2 -2
- package/src/commands/summon.test.ts +116 -0
- package/src/commands/summon.ts +338 -0
- package/src/commands/trigger-gaps.ts +1 -1
- package/src/commands/use.ts +47 -3
- package/src/commands/watch-live.ts +5 -5
- package/src/commands/watch.ts +8 -8
- package/src/index.ts +2 -0
- package/src/lib/active-sessions.test.ts +3 -3
- package/src/lib/active-sessions.ts +4 -4
- package/src/lib/auto-detect.test.ts +172 -8
- package/src/lib/auto-detect.ts +191 -136
- package/src/lib/codex-persona-parity.test.ts +58 -0
- package/src/lib/companion-detect.test.ts +43 -1
- package/src/lib/companion-detect.ts +35 -0
- package/src/lib/credentials-sync.test.ts +121 -1
- package/src/lib/credentials-sync.ts +95 -1
- package/src/lib/cwd-resolver.test.ts +8 -8
- package/src/lib/cwd-resolver.ts +2 -2
- package/src/lib/dashboard-merge.test.ts +9 -4
- package/src/lib/dashboard-server.ts +1 -1
- package/src/lib/picker.test.ts +1 -1
- package/src/lib/picker.ts +5 -5
- package/src/lib/profile-merge.test.ts +8 -0
- package/src/lib/profile-names.test.ts +3 -3
- package/src/lib/runtime-install.ts +166 -0
- package/src/lib/runtime-materializer.test.ts +137 -0
- package/src/lib/runtime-materializer.ts +105 -2
- package/src/lib/skill-router.test.ts +38 -0
- package/src/lib/skill-router.ts +65 -4
- package/profiles/eu-tender-research/README.md +0 -48
- package/profiles/eu-tender-research/logo.png +0 -0
- package/profiles/eu-tender-research/profile.yaml +0 -108
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
# Your Interview Scorecard
|
|
2
|
+
|
|
3
|
+
## What This Does
|
|
4
|
+
|
|
5
|
+
Builds your personal scorecard for evaluating a company — the specific
|
|
6
|
+
things that would make you say no to this role, before you get swept up
|
|
7
|
+
in the excitement of being wanted.
|
|
8
|
+
|
|
9
|
+
Candidates spend all their energy trying to impress. The companies that
|
|
10
|
+
are worth your time are also trying to impress you. This agent builds
|
|
11
|
+
the criteria you'll use to evaluate them, so when the offer comes you're
|
|
12
|
+
deciding with your head, not your relief.
|
|
13
|
+
|
|
14
|
+
Run this before the first interview. Use it to evaluate throughout the process.
|
|
15
|
+
|
|
16
|
+
## Instructions for Claude Code
|
|
17
|
+
|
|
18
|
+
### Step 1 — Load inputs
|
|
19
|
+
|
|
20
|
+
Read `inputs/my-resume.md`.
|
|
21
|
+
Read `inputs/job-description.md`.
|
|
22
|
+
Read `outputs/company-research.md` if it exists.
|
|
23
|
+
Read `outputs/salary-research.md` if it exists.
|
|
24
|
+
Read `rules/writing-rules.md`.
|
|
25
|
+
|
|
26
|
+
Ask the user:
|
|
27
|
+
```
|
|
28
|
+
A few questions to build your scorecard:
|
|
29
|
+
|
|
30
|
+
1. Why are you looking? (leaving something specific, or seeking something specific)
|
|
31
|
+
2. What went wrong in your last role? (this is often what you need to avoid repeating)
|
|
32
|
+
3. What's non-negotiable for you right now?
|
|
33
|
+
(comp floor, remote/hybrid, manager quality, growth path, culture, stability, industry)
|
|
34
|
+
4. What have you compromised on before that you regret?
|
|
35
|
+
5. What does "this was the right move" look like in 2 years?
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
Wait for their answers.
|
|
39
|
+
|
|
40
|
+
### Step 2 — Build the scorecard
|
|
41
|
+
|
|
42
|
+
Create a personal evaluation scorecard with 6-8 criteria specific to this person.
|
|
43
|
+
|
|
44
|
+
For each criterion:
|
|
45
|
+
|
|
46
|
+
**[CRITERION NAME]**
|
|
47
|
+
Why it matters to you: [from their answers — make it personal]
|
|
48
|
+
What good looks like: [specific, not vague]
|
|
49
|
+
What bad looks like: [specific signals to watch for]
|
|
50
|
+
How to verify it: [the question to ask, the person to ask it to, the signal to watch for]
|
|
51
|
+
Current signal from what I know: [based on JD and company research if available]
|
|
52
|
+
Weight: Critical / Important / Nice-to-have
|
|
53
|
+
|
|
54
|
+
---
|
|
55
|
+
|
|
56
|
+
Common criteria to consider (adapt to their specific situation):
|
|
57
|
+
|
|
58
|
+
**Compensation**
|
|
59
|
+
Not just base — total comp, bonus structure, equity, benefits, trajectory.
|
|
60
|
+
Question: "Can you walk me through the comp structure and how it progresses?"
|
|
61
|
+
|
|
62
|
+
**Manager Quality**
|
|
63
|
+
Your direct manager determines 80% of your day-to-day experience.
|
|
64
|
+
Question: "How would you describe your management style? What do your direct reports say about working with you?"
|
|
65
|
+
Signal: Do they ask you questions? Do they talk about their team's success or their own?
|
|
66
|
+
|
|
67
|
+
**Growth Path**
|
|
68
|
+
Is there a real path from this role or is it a terminal position?
|
|
69
|
+
Question: "Where have people who held this role previously gone within the company?"
|
|
70
|
+
Signal: Can they name 2-3 people?
|
|
71
|
+
|
|
72
|
+
**Team Stability**
|
|
73
|
+
Constant churn destroys productivity and signals dysfunction.
|
|
74
|
+
Question: "How long has the current team been together? Has there been significant turnover recently?"
|
|
75
|
+
Signal: How they answer, not just what they say.
|
|
76
|
+
|
|
77
|
+
**Real Autonomy**
|
|
78
|
+
The difference between "you'll own this" in the JD and what it actually means.
|
|
79
|
+
Question: "Walk me through how a decision gets made in this role. When do I need approval?"
|
|
80
|
+
Signal: Specificity of their answer.
|
|
81
|
+
|
|
82
|
+
**Culture Honesty**
|
|
83
|
+
Every company says "great culture." What they mean varies.
|
|
84
|
+
Question: "What's something about working here that surprised you — good or bad?"
|
|
85
|
+
Signal: Are they willing to name something real?
|
|
86
|
+
|
|
87
|
+
**Financial Stability**
|
|
88
|
+
Is this company going to be here in 2 years?
|
|
89
|
+
From company research — funding runway, revenue signals, layoff history.
|
|
90
|
+
|
|
91
|
+
**Work-Life Sustainability**
|
|
92
|
+
Realistic expectations for hours, availability, urgency culture.
|
|
93
|
+
Question: "What does a typical week look like for someone in this role?"
|
|
94
|
+
Signal: "We work hard but we play hard" = red flag.
|
|
95
|
+
|
|
96
|
+
### Step 3 — The go/no-go framework
|
|
97
|
+
|
|
98
|
+
Write a clear decision guide:
|
|
99
|
+
|
|
100
|
+
```
|
|
101
|
+
YOUR GO / NO-GO FRAMEWORK
|
|
102
|
+
|
|
103
|
+
MUST HAVE (any of these missing = decline):
|
|
104
|
+
[List their critical criteria]
|
|
105
|
+
|
|
106
|
+
STRONG PREFERENCE (2+ missing = serious concern):
|
|
107
|
+
[List their important criteria]
|
|
108
|
+
|
|
109
|
+
NICE TO HAVE (factor in but not deciding):
|
|
110
|
+
[List their lower-weight criteria]
|
|
111
|
+
|
|
112
|
+
THE ONE QUESTION THAT DECIDES IT:
|
|
113
|
+
[Based on their specific situation — the single question they need answered]
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
### Step 4 — Evaluation tracker
|
|
117
|
+
|
|
118
|
+
Create a scorecard table to fill in after each round:
|
|
119
|
+
|
|
120
|
+
```
|
|
121
|
+
EVALUATION TRACKER
|
|
122
|
+
|
|
123
|
+
Criterion | Weight | What I learned | Score (1-5) | Questions remaining
|
|
124
|
+
─────────────────────────────────────────────────────────────────────────────────────
|
|
125
|
+
[criterion 1] | Critical | | |
|
|
126
|
+
[criterion 2] | Critical | | |
|
|
127
|
+
[criterion 3] | Important | | |
|
|
128
|
+
...
|
|
129
|
+
─────────────────────────────────────────────────────────────────────────────────────
|
|
130
|
+
OVERALL: | |
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
### Step 5 — The reality check note
|
|
134
|
+
|
|
135
|
+
End with this:
|
|
136
|
+
|
|
137
|
+
```
|
|
138
|
+
A NOTE ON THE OFFER HIGH
|
|
139
|
+
|
|
140
|
+
When an offer comes — if it comes — you will feel relieved. That relief
|
|
141
|
+
will make everything look better than it is. That's normal. That's human.
|
|
142
|
+
|
|
143
|
+
Before you say yes, fill in the scorecard completely.
|
|
144
|
+
The criteria you set before you knew you had the offer
|
|
145
|
+
are more reliable than the judgment you'll have after.
|
|
146
|
+
|
|
147
|
+
If 2 of your Critical criteria are unfilled or concerning —
|
|
148
|
+
that's information. Take 24 hours before deciding.
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
### Step 6 — Save output
|
|
152
|
+
|
|
153
|
+
Write to `outputs/interview-scorecard.md`.
|
|
154
|
+
|
|
155
|
+
## ✅ What to do next
|
|
156
|
+
|
|
157
|
+
```
|
|
158
|
+
npm run panel-decode ← understand who you're evaluating and who's evaluating you
|
|
159
|
+
npm run questions ← build your question bank to fill in your scorecard
|
|
160
|
+
npm run debrief ← update your scorecard after each round
|
|
161
|
+
npm run compare ← compare this offer against others using your criteria
|
|
162
|
+
```
|
|
163
|
+
|
|
164
|
+
Apply all rules from `rules/writing-rules.md`.
|
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
# Job Search Agent
|
|
2
|
+
|
|
3
|
+
## What This Does
|
|
4
|
+
|
|
5
|
+
Searches for live job postings across Indeed, LinkedIn, Glassdoor, and other
|
|
6
|
+
platforms using JobSpy MCP. Scores each posting against your resume and outputs
|
|
7
|
+
a ranked shortlist with match scores and recommended next steps.
|
|
8
|
+
|
|
9
|
+
## Prerequisites
|
|
10
|
+
|
|
11
|
+
JobSpy MCP server installed:
|
|
12
|
+
```bash
|
|
13
|
+
pip install jobspy-mcp-server
|
|
14
|
+
```
|
|
15
|
+
(Requires Python 3.10+.)
|
|
16
|
+
|
|
17
|
+
Or via Docker (recommended fallback — works on any Python version):
|
|
18
|
+
```bash
|
|
19
|
+
docker run -p 9423:9423 borgius/jobspy-mcp-server
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
## Instructions for Claude Code
|
|
23
|
+
|
|
24
|
+
### Step 1 — Load inputs
|
|
25
|
+
|
|
26
|
+
Read `inputs/my-resume.md`.
|
|
27
|
+
Read `inputs/job-search-criteria.md`. This contains the user's search preferences.
|
|
28
|
+
Read `rules/writing-rules.md`.
|
|
29
|
+
|
|
30
|
+
### Step 2 — Start JobSpy MCP server
|
|
31
|
+
|
|
32
|
+
First check if a server is already running:
|
|
33
|
+
```bash
|
|
34
|
+
curl -s http://localhost:9423/health && echo "SERVER ALREADY UP"
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
If not running, try to start locally:
|
|
38
|
+
```bash
|
|
39
|
+
python3 -m jobspy_mcp_server --port 9423 &
|
|
40
|
+
MCP_PID=$!
|
|
41
|
+
sleep 3
|
|
42
|
+
curl -s http://localhost:9423/health && echo "SERVER UP" || echo "SERVER DOWN"
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
If the local server does not start, try Docker:
|
|
46
|
+
```bash
|
|
47
|
+
docker run -d -p 9423:9423 --name jobspy-mcp borgius/jobspy-mcp-server
|
|
48
|
+
sleep 5
|
|
49
|
+
curl -s http://localhost:9423/health && echo "DOCKER SERVER UP" || echo "DOCKER SERVER DOWN"
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
If neither is available, tell the user to install JobSpy MCP first (see Prerequisites)
|
|
53
|
+
and stop here.
|
|
54
|
+
|
|
55
|
+
### Step 3 — Parse search criteria
|
|
56
|
+
|
|
57
|
+
From `inputs/job-search-criteria.md` extract:
|
|
58
|
+
- Role titles to search (may be multiple)
|
|
59
|
+
- Locations (city, state, or remote)
|
|
60
|
+
- Keywords to include
|
|
61
|
+
- Keywords to exclude
|
|
62
|
+
- Date posted preference (last 7 days default)
|
|
63
|
+
- Full-time vs contract preference
|
|
64
|
+
|
|
65
|
+
### Step 4 — Execute searches
|
|
66
|
+
|
|
67
|
+
Use the JobSpy MCP server at `http://localhost:9423` to search for jobs.
|
|
68
|
+
Run one search per role title. Collect all results.
|
|
69
|
+
|
|
70
|
+
For each search, use these parameters:
|
|
71
|
+
- search_term: role title
|
|
72
|
+
- location: from criteria
|
|
73
|
+
- results_wanted: 20
|
|
74
|
+
- hours_old: 168 (7 days)
|
|
75
|
+
- site_name: ["indeed", "linkedin", "glassdoor"]
|
|
76
|
+
|
|
77
|
+
### Step 5 — Score each posting against resume
|
|
78
|
+
|
|
79
|
+
For each job posting returned, score it 1-10 against the resume on:
|
|
80
|
+
- Title match (does the role title align with the user's background?)
|
|
81
|
+
- Keyword overlap (how many JD keywords appear in the resume?)
|
|
82
|
+
- Experience level match (seniority alignment)
|
|
83
|
+
- Industry match (does the company industry align with their background?)
|
|
84
|
+
|
|
85
|
+
Discard any postings scoring below 5.
|
|
86
|
+
|
|
87
|
+
### Step 6 — Output ranked shortlist
|
|
88
|
+
|
|
89
|
+
Write `outputs/job-shortlist.md` with:
|
|
90
|
+
|
|
91
|
+
```
|
|
92
|
+
JOB SEARCH RESULTS
|
|
93
|
+
Searched: [date]
|
|
94
|
+
Criteria: [role] in [location]
|
|
95
|
+
Total found: [n] | After scoring: [n]
|
|
96
|
+
|
|
97
|
+
─────────────────────────────────────
|
|
98
|
+
RANK 1 — SCORE: 9/10
|
|
99
|
+
Role: [title]
|
|
100
|
+
Company: [company]
|
|
101
|
+
Location: [location]
|
|
102
|
+
Posted: [date]
|
|
103
|
+
Source: [indeed/linkedin/glassdoor]
|
|
104
|
+
URL: [link]
|
|
105
|
+
|
|
106
|
+
WHY IT SCORES HIGH:
|
|
107
|
+
- [specific reason from resume match]
|
|
108
|
+
- [specific reason]
|
|
109
|
+
|
|
110
|
+
GAPS TO PREPARE FOR:
|
|
111
|
+
- [requirement in JD not in resume]
|
|
112
|
+
|
|
113
|
+
RECOMMENDED ACTION: Apply now / Research first / Skip
|
|
114
|
+
─────────────────────────────────────
|
|
115
|
+
[repeat for each posting, ranked by score]
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
### Step 7 — Stop MCP server
|
|
119
|
+
```bash
|
|
120
|
+
kill $MCP_PID 2>/dev/null || pkill -f jobspy_mcp_server 2>/dev/null
|
|
121
|
+
docker stop jobspy-mcp 2>/dev/null && docker rm jobspy-mcp 2>/dev/null
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
### Step 8 — Prompt next steps
|
|
125
|
+
|
|
126
|
+
Tell the user:
|
|
127
|
+
> Found [n] matches. Top result: [role] at [company] — score [x]/10.
|
|
128
|
+
> Your shortlist is saved to outputs/job-shortlist.md
|
|
129
|
+
>
|
|
130
|
+
> To apply to any of these:
|
|
131
|
+
> 1. Copy the job URL into inputs/job-description.md
|
|
132
|
+
> 2. Run: npm run resume
|
|
133
|
+
> 3. Run: npm run cover-letter
|
|
134
|
+
> 4. Run: npm run ats
|
|
135
|
+
|
|
136
|
+
## Running
|
|
137
|
+
|
|
138
|
+
```bash
|
|
139
|
+
npm run jobs
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
---
|
|
143
|
+
|
|
144
|
+
## ✅ What to do next
|
|
145
|
+
|
|
146
|
+
```
|
|
147
|
+
npm run decode ← decode the top posting before applying
|
|
148
|
+
npm run salary ← research comp for the role before any screening call
|
|
149
|
+
```
|
|
@@ -0,0 +1,194 @@
|
|
|
1
|
+
# Weekly Momentum Check
|
|
2
|
+
|
|
3
|
+
## What This Does
|
|
4
|
+
|
|
5
|
+
Your weekly check-in. Measures what's actually working, flags what isn't,
|
|
6
|
+
and tells you honestly whether you're making progress — or burning out.
|
|
7
|
+
|
|
8
|
+
Job searching feels like failure by default because rejection is the
|
|
9
|
+
default response. This agent replaces that feeling with evidence. Your
|
|
10
|
+
callback rate, your funnel metrics, your patterns — measured against what's
|
|
11
|
+
actually normal so you know where you stand, not where anxiety says you stand.
|
|
12
|
+
|
|
13
|
+
Run this every Friday. It takes 10 minutes and changes how the weekend feels.
|
|
14
|
+
|
|
15
|
+
## Instructions for Claude Code
|
|
16
|
+
|
|
17
|
+
### Step 1 — Load inputs
|
|
18
|
+
|
|
19
|
+
Read `outputs/job-tracker.md` if it exists.
|
|
20
|
+
Read `outputs/rejection-analysis.md` if it exists.
|
|
21
|
+
Read `rules/writing-rules.md`.
|
|
22
|
+
|
|
23
|
+
Ask the user:
|
|
24
|
+
```
|
|
25
|
+
Quick rundown of your week — don't overthink it, just tell me:
|
|
26
|
+
|
|
27
|
+
1. Applications submitted this week (number + types: targeted / cold ATS / referral)
|
|
28
|
+
2. Responses received (callbacks, rejections, anything)
|
|
29
|
+
3. Interviews or conversations that happened
|
|
30
|
+
4. Anything that moved forward (second rounds, final rounds, offers)
|
|
31
|
+
5. How many hours did you spend on the search this week?
|
|
32
|
+
6. Honest: how are you feeling right now? (1 word or a sentence — either is fine)
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
Wait for their answer.
|
|
36
|
+
|
|
37
|
+
### Step 2 — Calculate the real metrics
|
|
38
|
+
|
|
39
|
+
**Callback rate this week:**
|
|
40
|
+
Responses ÷ Applications submitted (this week)
|
|
41
|
+
|
|
42
|
+
**Cumulative callback rate (if tracker data available):**
|
|
43
|
+
Total responses ÷ Total applications
|
|
44
|
+
|
|
45
|
+
**Industry benchmarks:**
|
|
46
|
+
- Cold ATS applications: 2-8% callback rate is normal
|
|
47
|
+
- Targeted applications (tailored + researched): 10-20% is good
|
|
48
|
+
- Referral applications: 30-50% callback rate
|
|
49
|
+
- LinkedIn Easy Apply: 1-3% (if it's your primary method, this is why)
|
|
50
|
+
|
|
51
|
+
Compare their actual rate to benchmark. Be honest about what it means.
|
|
52
|
+
|
|
53
|
+
**Funnel health:**
|
|
54
|
+
- Applied → Response: [their rate] vs. benchmark
|
|
55
|
+
- Response → Interview: [if data available]
|
|
56
|
+
- Interview → Offer: [if data available]
|
|
57
|
+
|
|
58
|
+
### Step 3 — The honest assessment
|
|
59
|
+
|
|
60
|
+
Write a plain, honest paragraph. Not cheerful. Not crushing. True.
|
|
61
|
+
|
|
62
|
+
If they're performing well:
|
|
63
|
+
Say so specifically. "Your targeted application rate is 15%. That's above
|
|
64
|
+
average. The referral you got for [company] converting to a screen means
|
|
65
|
+
the referral strategy is working. Keep doing that."
|
|
66
|
+
|
|
67
|
+
If they're struggling:
|
|
68
|
+
Name the specific problem. "Your cold ATS callback rate is 2%. That's
|
|
69
|
+
consistent with industry average for cold apps, which means the method
|
|
70
|
+
is the problem, not the resume. Shifting 50% of your effort to referrals
|
|
71
|
+
would likely double your callback rate."
|
|
72
|
+
|
|
73
|
+
If the data is too thin to say anything useful:
|
|
74
|
+
"You have 8 applications total. That's not enough data to find a pattern.
|
|
75
|
+
The goal is 15-20 targeted applications before drawing any conclusions
|
|
76
|
+
about what's working."
|
|
77
|
+
|
|
78
|
+
### Step 4 — The week's wins
|
|
79
|
+
|
|
80
|
+
Write this section no matter what the metrics say.
|
|
81
|
+
|
|
82
|
+
Pull out specifically what went right this week — not vague encouragement,
|
|
83
|
+
evidence of real progress:
|
|
84
|
+
|
|
85
|
+
```
|
|
86
|
+
THIS WEEK'S ACTUAL WINS
|
|
87
|
+
|
|
88
|
+
[List 2-5 specific things — they may feel small but they are real:]
|
|
89
|
+
|
|
90
|
+
- Got a callback from [company type] = your resume is landing with this audience
|
|
91
|
+
- Made it through a phone screen = you can get past the first filter
|
|
92
|
+
- Found a warm intro path = you have an application that won't go into a black hole
|
|
93
|
+
- Completed your mock interview = you're more prepared than you were Monday
|
|
94
|
+
- Sent a follow-up = most candidates don't do this
|
|
95
|
+
- Identified a pattern in your rejections = that's intelligence, not failure
|
|
96
|
+
- Applied to one fewer spray-and-pray role = that's strategy
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
The goal is not to minimize hard things. It's to make real things visible
|
|
100
|
+
that anxiety makes invisible.
|
|
101
|
+
|
|
102
|
+
### Step 5 — The burnout check
|
|
103
|
+
|
|
104
|
+
Based on their hours and how they said they're feeling:
|
|
105
|
+
|
|
106
|
+
**If they're overworking (8+ hours/day on the search):**
|
|
107
|
+
```
|
|
108
|
+
YOU ARE DOING TOO MUCH
|
|
109
|
+
|
|
110
|
+
More applications does not mean more offers. The research is clear:
|
|
111
|
+
quality beats quantity by a significant margin. 10 targeted applications
|
|
112
|
+
outperform 100 cold ones.
|
|
113
|
+
|
|
114
|
+
Next week: cap your search at 4 hours/day. Use the rest for things that
|
|
115
|
+
restore you. You will not perform well in interviews when you're depleted.
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
**If they sound burnt out:**
|
|
119
|
+
```
|
|
120
|
+
THIS IS A REAL THING
|
|
121
|
+
|
|
122
|
+
76% of job seekers experience significant stress. 45% report burnout symptoms.
|
|
123
|
+
You are not unusual. You are not weak. You are human doing a hard thing.
|
|
124
|
+
|
|
125
|
+
Two things that are true simultaneously:
|
|
126
|
+
1. The search requires consistent effort
|
|
127
|
+
2. You cannot sustain consistent effort without rest
|
|
128
|
+
|
|
129
|
+
This week: take one full day off from the search. No applications,
|
|
130
|
+
no LinkedIn, no email checking. You will come back sharper.
|
|
131
|
+
The roles will still be there.
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
**If they're pacing well:**
|
|
135
|
+
```
|
|
136
|
+
YOUR PACING IS SUSTAINABLE
|
|
137
|
+
|
|
138
|
+
You're putting in enough effort to make progress without burning out.
|
|
139
|
+
That's harder than it sounds. Keep the rhythm.
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
### Step 6 — Next week's focus
|
|
143
|
+
|
|
144
|
+
Write 3 specific actions for next week — not a long list, just 3:
|
|
145
|
+
|
|
146
|
+
```
|
|
147
|
+
NEXT WEEK: THREE THINGS
|
|
148
|
+
|
|
149
|
+
1. [Most important — based on what's working or what needs to change]
|
|
150
|
+
2. [Second priority]
|
|
151
|
+
3. [One thing to protect your energy or momentum]
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
### Step 7 — The closing note
|
|
155
|
+
|
|
156
|
+
Always end the momentum check with this (vary the wording, keep the message):
|
|
157
|
+
|
|
158
|
+
```
|
|
159
|
+
ONE MORE THING
|
|
160
|
+
|
|
161
|
+
A job search is not a performance review of your worth.
|
|
162
|
+
|
|
163
|
+
The hiring process has structural barriers, random timing, and biases
|
|
164
|
+
that have nothing to do with your competence. Getting filtered by an
|
|
165
|
+
AI screener is not a verdict on your value. Getting ghosted by a
|
|
166
|
+
recruiter is not a measure of your potential. Getting rejected after
|
|
167
|
+
a final round is not proof that you're not good enough.
|
|
168
|
+
|
|
169
|
+
It is a process with noise in it. Your job is to navigate it with
|
|
170
|
+
strategy and patience, not to internalize every outcome as signal
|
|
171
|
+
about who you are.
|
|
172
|
+
|
|
173
|
+
You are making progress. It doesn't always feel like it.
|
|
174
|
+
Keep going.
|
|
175
|
+
```
|
|
176
|
+
|
|
177
|
+
### Step 8 — Save output
|
|
178
|
+
|
|
179
|
+
Write to `outputs/momentum-check.md`.
|
|
180
|
+
Append to the file — don't overwrite — so you build a weekly record.
|
|
181
|
+
|
|
182
|
+
Tell the user:
|
|
183
|
+
> Momentum check complete. Week of [date] logged.
|
|
184
|
+
> [1-line summary of their actual status]
|
|
185
|
+
|
|
186
|
+
## ✅ What to do next
|
|
187
|
+
|
|
188
|
+
```
|
|
189
|
+
npm run tracker ← update your pipeline with this week's activity
|
|
190
|
+
npm run rejection ← if callback rate is consistently below 5%
|
|
191
|
+
npm run referrals ← if most applications are cold ATS
|
|
192
|
+
```
|
|
193
|
+
|
|
194
|
+
Apply all rules from `rules/writing-rules.md`.
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
# Recruiter Cold Outreach
|
|
2
|
+
|
|
3
|
+
## What This Does
|
|
4
|
+
|
|
5
|
+
Writes a cold message to a recruiter or hiring manager at a company you want
|
|
6
|
+
to work at — even when there's no open role posted. Harder than a cover letter
|
|
7
|
+
because there's no job description to anchor to. Most people either never send
|
|
8
|
+
these or send generic ones that get ignored.
|
|
9
|
+
|
|
10
|
+
## Instructions for Claude Code
|
|
11
|
+
|
|
12
|
+
### Step 1 — Load inputs
|
|
13
|
+
|
|
14
|
+
Read `inputs/my-resume.md` for background and experience.
|
|
15
|
+
Read `inputs/search-outreach-target.md` for target company and contact details.
|
|
16
|
+
Read `rules/writing-rules.md`.
|
|
17
|
+
|
|
18
|
+
### Step 2 — Research the target
|
|
19
|
+
|
|
20
|
+
Use web search to find:
|
|
21
|
+
- What the company does and who they sell to / serve
|
|
22
|
+
- Recent news, funding, launches, or expansions (last 90 days)
|
|
23
|
+
- The contact's LinkedIn title and background (if name provided)
|
|
24
|
+
- Any job postings at the company that signal what teams are growing
|
|
25
|
+
(even if not the exact role — hiring in sales means the sales team is growing)
|
|
26
|
+
|
|
27
|
+
### Step 3 — Find the angle
|
|
28
|
+
|
|
29
|
+
The angle is the single most specific reason this person should respond.
|
|
30
|
+
It must be one of:
|
|
31
|
+
- A mutual connection (strongest — always lead with this if it exists)
|
|
32
|
+
- A specific recent company event that connects to the candidate's background
|
|
33
|
+
- A specific problem the company likely has that the candidate has solved before
|
|
34
|
+
- A genuine specific reason for wanting this company over others
|
|
35
|
+
|
|
36
|
+
Generic angles ("I admire your company's mission") are not angles. They are
|
|
37
|
+
the reason cold messages get deleted.
|
|
38
|
+
|
|
39
|
+
### Step 4 — Write three versions
|
|
40
|
+
|
|
41
|
+
**Version 1 — LinkedIn message (300 characters max)**
|
|
42
|
+
LinkedIn has a character limit. This version is brutally short.
|
|
43
|
+
One sentence on who you are, one sentence on why you're reaching out, one ask.
|
|
44
|
+
No filler. No "I hope this message finds you well."
|
|
45
|
+
|
|
46
|
+
**Version 2 — Email (under 100 words)**
|
|
47
|
+
Slightly more room but still disciplined.
|
|
48
|
+
- Line 1: The angle — something specific, not generic
|
|
49
|
+
- Line 2-3: Who you are in one or two sentences with one number
|
|
50
|
+
- Line 4: The ask — specific and low-friction ("15 minutes" not "a meeting")
|
|
51
|
+
- No subject line clichés: not "Exploring Opportunities" not "Quick Question"
|
|
52
|
+
Subject line should be specific: "Ex-HealthStream AE — interested in [Company]'s expansion into Southeast"
|
|
53
|
+
|
|
54
|
+
**Version 3 — Referral message (if a mutual connection exists)**
|
|
55
|
+
Shorter and warmer. Reference the mutual connection in line one.
|
|
56
|
+
Ask the mutual to forward or make an intro — not the target directly.
|
|
57
|
+
|
|
58
|
+
### Step 5 — What not to do
|
|
59
|
+
|
|
60
|
+
Flag any of the following if they appear in the drafts and rewrite:
|
|
61
|
+
- "I came across your profile and was impressed..."
|
|
62
|
+
- "I would love to connect..."
|
|
63
|
+
- "I am passionate about..."
|
|
64
|
+
- "I believe I would be a great fit..."
|
|
65
|
+
- Attaching a resume in a cold message (never do this — ask if they want it)
|
|
66
|
+
- Asking for a job in a cold message (ask for a conversation, not a job)
|
|
67
|
+
|
|
68
|
+
### Step 6 — Save output
|
|
69
|
+
|
|
70
|
+
Write all three versions to `outputs/cold-outreach.md` with context on when
|
|
71
|
+
to use each.
|
|
72
|
+
|
|
73
|
+
## Tone
|
|
74
|
+
|
|
75
|
+
The best cold messages read like they were written by a confident person who
|
|
76
|
+
did their homework — not a desperate job seeker. The goal is curiosity, not sympathy.
|
|
77
|
+
|
|
78
|
+
---
|
|
79
|
+
|
|
80
|
+
## ✅ What to do next
|
|
81
|
+
|
|
82
|
+
Send the message. Then:
|
|
83
|
+
```
|
|
84
|
+
npm run research ← when they respond and book a call, prep the company brief
|
|
85
|
+
```
|