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.
Files changed (278) hide show
  1. package/CHANGELOG.md +4 -3
  2. package/README.md +154 -394
  3. package/bin/cue-learnings +30 -4
  4. package/bin/cue-review-progress +0 -0
  5. package/bin/cue-review-watch +0 -0
  6. package/dist/cue.js +4328 -3108
  7. package/package.json +1 -1
  8. package/plugins/cue/commands/cue-switch.md +1 -1
  9. package/plugins/cue/commands/cue.md +1 -1
  10. package/profiles/backend/profile.yaml +4 -0
  11. package/profiles/browser/profile.yaml +4 -0
  12. package/profiles/career/profile.yaml +2 -13
  13. package/profiles/commerce/profile.yaml +0 -2
  14. package/profiles/coolify/profile.yaml +0 -1
  15. package/profiles/core/profile.yaml +78 -11
  16. package/profiles/dash-merge-test/profile.yaml +6 -1
  17. package/profiles/designer/profile.yaml +9 -1
  18. package/profiles/dropshipping/profile.yaml +69 -0
  19. package/profiles/frontend/profile.yaml +4 -0
  20. package/profiles/google-ads/profile.yaml +34 -0
  21. package/profiles/google-analytics/profile.yaml +34 -0
  22. package/profiles/google-drive/profile.yaml +34 -0
  23. package/profiles/gstack/profile.yaml +117 -29
  24. package/profiles/marketing/profile.yaml +0 -1
  25. package/profiles/media/README.md +70 -0
  26. package/profiles/media/profile.yaml +104 -0
  27. package/profiles/nano-banana/profile.yaml +52 -0
  28. package/profiles/ops/profile.yaml +1 -2
  29. package/profiles/secops/profile.yaml +3 -0
  30. package/profiles/skill-writer/profile.yaml +15 -0
  31. package/profiles/video/profile.yaml +3 -0
  32. package/profiles/web-frontend-base/profile.yaml +6 -0
  33. package/profiles/webshop/profile.yaml +0 -1
  34. package/profiles/webshop-google/profile.yaml +1 -0
  35. package/profiles/x-growth-bot/profile.yaml +2 -0
  36. package/resources/icons/generate-icons.py +2 -128
  37. package/resources/mcps/configs/claude.sanitized.json +88 -20
  38. package/resources/mcps/configs/claude_runtime.sanitized.json +40 -1
  39. package/resources/mcps/configs/codex.sanitized.json +29 -0
  40. package/resources/skills/skills/career/job-hunter/LICENSE +21 -0
  41. package/resources/skills/skills/career/job-hunter/README.md +323 -0
  42. package/resources/skills/skills/career/job-hunter/SKILL.md +91 -0
  43. package/resources/skills/skills/career/job-hunter/agents/README.md +96 -0
  44. package/resources/skills/skills/career/job-hunter/agents/apply-assessment-prep.md +195 -0
  45. package/resources/skills/skills/career/job-hunter/agents/apply-ats-scan.md +155 -0
  46. package/resources/skills/skills/career/job-hunter/agents/apply-bias-audit.md +224 -0
  47. package/resources/skills/skills/career/job-hunter/agents/apply-cover-letter.md +69 -0
  48. package/resources/skills/skills/career/job-hunter/agents/apply-decode-jd.md +117 -0
  49. package/resources/skills/skills/career/job-hunter/agents/apply-fit-score.md +183 -0
  50. package/resources/skills/skills/career/job-hunter/agents/apply-linkedin-audit.md +74 -0
  51. package/resources/skills/skills/career/job-hunter/agents/apply-linkedin-scrape.md +255 -0
  52. package/resources/skills/skills/career/job-hunter/agents/apply-portfolio-brief.md +123 -0
  53. package/resources/skills/skills/career/job-hunter/agents/apply-reality-check.md +164 -0
  54. package/resources/skills/skills/career/job-hunter/agents/apply-reference-prep.md +150 -0
  55. package/resources/skills/skills/career/job-hunter/agents/apply-rejection-analysis.md +172 -0
  56. package/resources/skills/skills/career/job-hunter/agents/apply-resume.md +70 -0
  57. package/resources/skills/skills/career/job-hunter/agents/apply-skills-gap-filler.md +109 -0
  58. package/resources/skills/skills/career/job-hunter/agents/career-internal.md +94 -0
  59. package/resources/skills/skills/career/job-hunter/agents/career-linkedin-content.md +173 -0
  60. package/resources/skills/skills/career/job-hunter/agents/career-linkedin-scanner.md +262 -0
  61. package/resources/skills/skills/career/job-hunter/agents/career-network-message.md +108 -0
  62. package/resources/skills/skills/career/job-hunter/agents/career-promote.md +102 -0
  63. package/resources/skills/skills/career/job-hunter/agents/career-review.md +71 -0
  64. package/resources/skills/skills/career/job-hunter/agents/interview-debrief.md +117 -0
  65. package/resources/skills/skills/career/job-hunter/agents/interview-mock.md +171 -0
  66. package/resources/skills/skills/career/job-hunter/agents/interview-panel-decoder.md +152 -0
  67. package/resources/skills/skills/career/job-hunter/agents/interview-prep.md +184 -0
  68. package/resources/skills/skills/career/job-hunter/agents/interview-question-bank.md +133 -0
  69. package/resources/skills/skills/career/job-hunter/agents/interview-research.md +148 -0
  70. package/resources/skills/skills/career/job-hunter/agents/offer-compare.md +117 -0
  71. package/resources/skills/skills/career/job-hunter/agents/offer-counteroffer.md +144 -0
  72. package/resources/skills/skills/career/job-hunter/agents/offer-deadline-manager.md +148 -0
  73. package/resources/skills/skills/career/job-hunter/agents/offer-negotiate.md +126 -0
  74. package/resources/skills/skills/career/job-hunter/agents/offer-schedule.md +99 -0
  75. package/resources/skills/skills/career/job-hunter/agents/offer-thankyou.md +80 -0
  76. package/resources/skills/skills/career/job-hunter/agents/search-company-research.md +146 -0
  77. package/resources/skills/skills/career/job-hunter/agents/search-follow-up.md +129 -0
  78. package/resources/skills/skills/career/job-hunter/agents/search-ghost-job-detector.md +152 -0
  79. package/resources/skills/skills/career/job-hunter/agents/search-inbox-scan.md +193 -0
  80. package/resources/skills/skills/career/job-hunter/agents/search-interview-scorecard.md +164 -0
  81. package/resources/skills/skills/career/job-hunter/agents/search-jobs.md +149 -0
  82. package/resources/skills/skills/career/job-hunter/agents/search-momentum-check.md +194 -0
  83. package/resources/skills/skills/career/job-hunter/agents/search-outreach.md +85 -0
  84. package/resources/skills/skills/career/job-hunter/agents/search-referral-finder.md +124 -0
  85. package/resources/skills/skills/career/job-hunter/agents/search-salary.md +96 -0
  86. package/resources/skills/skills/career/job-hunter/agents/search-send-email.md +109 -0
  87. package/resources/skills/skills/career/job-hunter/agents/search-tracker-update.md +127 -0
  88. package/resources/skills/skills/career/job-hunter/inputs/README.md +26 -0
  89. package/resources/skills/skills/career/job-hunter/inputs/apply-linkedin-url.txt +8 -0
  90. package/resources/skills/skills/career/job-hunter/inputs/interview-context.md +24 -0
  91. package/resources/skills/skills/career/job-hunter/inputs/job-description.md +20 -0
  92. package/resources/skills/skills/career/job-hunter/inputs/job-search-criteria.md +36 -0
  93. package/resources/skills/skills/career/job-hunter/inputs/my-linkedin.md +24 -0
  94. package/resources/skills/skills/career/job-hunter/inputs/my-resume.md +28 -0
  95. package/resources/skills/skills/career/job-hunter/inputs/search-outreach-target.md +24 -0
  96. package/resources/skills/skills/career/job-hunter/rules/README.md +37 -0
  97. package/resources/skills/skills/career/job-hunter/rules/writing-rules.md +81 -0
  98. package/resources/skills/skills/design/banana/SKILL.md +375 -0
  99. package/resources/skills/skills/design/banana/references/cost-tracking.md +47 -0
  100. package/resources/skills/skills/design/banana/references/gemini-models.md +236 -0
  101. package/resources/skills/skills/design/banana/references/mcp-tools.md +145 -0
  102. package/resources/skills/skills/design/banana/references/post-processing.md +192 -0
  103. package/resources/skills/skills/design/banana/references/presets.md +69 -0
  104. package/resources/skills/skills/design/banana/references/prompt-engineering.md +481 -0
  105. package/resources/skills/skills/design/banana/scripts/batch.py +97 -0
  106. package/resources/skills/skills/design/banana/scripts/cost_tracker.py +191 -0
  107. package/resources/skills/skills/design/banana/scripts/edit.py +159 -0
  108. package/resources/skills/skills/design/banana/scripts/generate.py +168 -0
  109. package/resources/skills/skills/design/banana/scripts/presets.py +154 -0
  110. package/resources/skills/skills/design/banana/scripts/setup_mcp.py +151 -0
  111. package/resources/skills/skills/design/banana/scripts/validate_setup.py +133 -0
  112. package/resources/skills/skills/gstack/ship/SKILL.md +13 -0
  113. package/resources/skills/skills/media/3d-logo-animation/SKILL.md +59 -0
  114. package/resources/skills/skills/media/action-figure-generator/SKILL.md +48 -0
  115. package/resources/skills/skills/media/ad-creative/SKILL.md +79 -0
  116. package/resources/skills/skills/media/ai-clipping/SKILL.md +194 -0
  117. package/resources/skills/skills/media/ai-clipping/scripts/run-ai-clipping.sh +200 -0
  118. package/resources/skills/skills/media/ai-fight-scene/SKILL.md +132 -0
  119. package/resources/skills/skills/media/amazon-product-listing/SKILL.md +68 -0
  120. package/resources/skills/skills/media/animal-video-generator/SKILL.md +59 -0
  121. package/resources/skills/skills/media/award-ceremony-video/SKILL.md +87 -0
  122. package/resources/skills/skills/media/blog-header/SKILL.md +61 -0
  123. package/resources/skills/skills/media/brand-kit/SKILL.md +72 -0
  124. package/resources/skills/skills/media/brochures/SKILL.md +65 -0
  125. package/resources/skills/skills/media/cartoon-dance-animation/SKILL.md +62 -0
  126. package/resources/skills/skills/media/character-story-video/SKILL.md +84 -0
  127. package/resources/skills/skills/media/chibi-collage-effect/SKILL.md +63 -0
  128. package/resources/skills/skills/media/cinema-director/SKILL.md +93 -0
  129. package/resources/skills/skills/media/cinema-director/scripts/generate-film.sh +78 -0
  130. package/resources/skills/skills/media/color-analysis-board/SKILL.md +71 -0
  131. package/resources/skills/skills/media/core-edit/SKILL.md +48 -0
  132. package/resources/skills/skills/media/core-edit/edit-image.sh +54 -0
  133. package/resources/skills/skills/media/core-edit/enhance-image.sh +191 -0
  134. package/resources/skills/skills/media/core-edit/lipsync.sh +144 -0
  135. package/resources/skills/skills/media/core-edit/video-effects.sh +193 -0
  136. package/resources/skills/skills/media/core-media/SKILL.md +49 -0
  137. package/resources/skills/skills/media/core-media/create-music.sh +169 -0
  138. package/resources/skills/skills/media/core-media/generate-image.sh +161 -0
  139. package/resources/skills/skills/media/core-media/generate-video.sh +137 -0
  140. package/resources/skills/skills/media/core-media/image-to-video.sh +228 -0
  141. package/resources/skills/skills/media/core-media/schema_data.json +18708 -0
  142. package/resources/skills/skills/media/core-media/upload.sh +41 -0
  143. package/resources/skills/skills/media/core-platform/SKILL.md +41 -0
  144. package/resources/skills/skills/media/core-platform/check-result.sh +37 -0
  145. package/resources/skills/skills/media/core-platform/setup.sh +31 -0
  146. package/resources/skills/skills/media/couple-grid-creator/SKILL.md +47 -0
  147. package/resources/skills/skills/media/design-guide/SKILL.md +73 -0
  148. package/resources/skills/skills/media/drone-style-video/SKILL.md +61 -0
  149. package/resources/skills/skills/media/fashion-try-on/SKILL.md +61 -0
  150. package/resources/skills/skills/media/floor-plan-rendering/SKILL.md +56 -0
  151. package/resources/skills/skills/media/freeze-effect-video/SKILL.md +100 -0
  152. package/resources/skills/skills/media/giant-product-showcase/SKILL.md +61 -0
  153. package/resources/skills/skills/media/instagram-post/SKILL.md +58 -0
  154. package/resources/skills/skills/media/interior-design/SKILL.md +61 -0
  155. package/resources/skills/skills/media/interior-design-visualizer/SKILL.md +57 -0
  156. package/resources/skills/skills/media/jewelry-product-video/SKILL.md +61 -0
  157. package/resources/skills/skills/media/kdenlive/SKILL.md +106 -0
  158. package/resources/skills/skills/media/kdenlive/scripts/assemble.sh +57 -0
  159. package/resources/skills/skills/media/kdenlive/scripts/common.sh +30 -0
  160. package/resources/skills/skills/media/kdenlive/scripts/inspect.sh +19 -0
  161. package/resources/skills/skills/media/kdenlive/scripts/reframe.sh +22 -0
  162. package/resources/skills/skills/media/kdenlive/scripts/render.sh +16 -0
  163. package/resources/skills/skills/media/kdenlive/scripts/title-card.sh +25 -0
  164. package/resources/skills/skills/media/keyboard-art-maker/SKILL.md +44 -0
  165. package/resources/skills/skills/media/logo-branding/SKILL.md +70 -0
  166. package/resources/skills/skills/media/logo-creator/SKILL.md +80 -0
  167. package/resources/skills/skills/media/logo-creator/scripts/create-logo.sh +38 -0
  168. package/resources/skills/skills/media/logo-generator/SKILL.md +56 -0
  169. package/resources/skills/skills/media/multi-angle-reshoot/SKILL.md +70 -0
  170. package/resources/skills/skills/media/multi-angle-shots/SKILL.md +73 -0
  171. package/resources/skills/skills/media/music-video/SKILL.md +61 -0
  172. package/resources/skills/skills/media/nano-banana/SKILL.md +80 -0
  173. package/resources/skills/skills/media/nano-banana/scripts/generate-nano-art.sh +54 -0
  174. package/resources/skills/skills/media/one-shot-video/SKILL.md +56 -0
  175. package/resources/skills/skills/media/photo-pack-generator/SKILL.md +205 -0
  176. package/resources/skills/skills/media/photo-pack-generator/scripts/generate-pack.sh +241 -0
  177. package/resources/skills/skills/media/product-ad-cinematic/SKILL.md +78 -0
  178. package/resources/skills/skills/media/product-campaign/SKILL.md +76 -0
  179. package/resources/skills/skills/media/product-showcase-video/SKILL.md +60 -0
  180. package/resources/skills/skills/media/product-video-ad-maker/SKILL.md +59 -0
  181. package/resources/skills/skills/media/rednote-cover/SKILL.md +57 -0
  182. package/resources/skills/skills/media/seedance-2/SKILL.md +632 -0
  183. package/resources/skills/skills/media/seedance-2/scripts/generate-seedance.sh +701 -0
  184. package/resources/skills/skills/media/selfie-with-celebrities/SKILL.md +64 -0
  185. package/resources/skills/skills/media/social-media-video/SKILL.md +277 -0
  186. package/resources/skills/skills/media/social-media-video/scripts/run-social-video.sh +316 -0
  187. package/resources/skills/skills/media/social-pack/SKILL.md +58 -0
  188. package/resources/skills/skills/media/storyboard/SKILL.md +57 -0
  189. package/resources/skills/skills/media/storyboard-to-cooking-video/SKILL.md +143 -0
  190. package/resources/skills/skills/media/talking-baby-video/SKILL.md +57 -0
  191. package/resources/skills/skills/media/ugc-ads-workflow/SKILL.md +70 -0
  192. package/resources/skills/skills/media/ugc-lifestyle-try-on/SKILL.md +65 -0
  193. package/resources/skills/skills/media/ugc-video-factory/SKILL.md +134 -0
  194. package/resources/skills/skills/media/ui-design/SKILL.md +81 -0
  195. package/resources/skills/skills/media/ui-design/scripts/generate-mockup.sh +49 -0
  196. package/resources/skills/skills/media/url-to-design/SKILL.md +61 -0
  197. package/resources/skills/skills/media/workflow/SKILL.md +197 -0
  198. package/resources/skills/skills/media/workflow/scripts/discover-workflow.sh +18 -0
  199. package/resources/skills/skills/media/workflow/scripts/generate-workflow.sh +33 -0
  200. package/resources/skills/skills/media/workflow/scripts/interactive-run.sh +16 -0
  201. package/resources/skills/skills/media/workflow/scripts/list-workflows.sh +20 -0
  202. package/resources/skills/skills/media/workflow/scripts/run-workflow.sh +34 -0
  203. package/resources/skills/skills/media/youtube-shorts/SKILL.md +173 -0
  204. package/resources/skills/skills/media/youtube-shorts/scripts/run-youtube-shorts.sh +141 -0
  205. package/resources/skills/skills/media/youtube-thumbnail/SKILL.md +66 -0
  206. package/resources/skills/skills/meta/cue-developer/references/architecture.md +2 -2
  207. package/resources/skills/skills/meta/cue-usage/SKILL.md +1 -1
  208. package/resources/skills/skills/meta/profile-fit-monitor/SKILL.md +2 -2
  209. package/resources/skills/skills/meta/profile-optimizer/SKILL.md +1 -1
  210. package/resources/skills/skills/meta/profile-suggest/SKILL.md +7 -7
  211. package/resources/skills/skills/meta/profile-summon/SKILL.md +159 -0
  212. package/resources/skills/skills/meta/profile-summon/evals/evals.json +53 -0
  213. package/resources/skills/skills/meta/save-profile/SKILL.md +1 -1
  214. package/resources/skills/skills/meta/skill-reviewer/SKILL.md +3 -0
  215. package/resources/skills/skills/meta/skill-reviewer/references/tdd-for-skills.md +55 -0
  216. package/resources/skills/skills/research/find-skills/SKILL.md +1 -1
  217. package/resources/skills/skills/review/code-review-deep/SKILL.md +20 -0
  218. package/resources/skills/skills/security/trivy-scan/SKILL.md +139 -0
  219. package/resources/skills/skills/security/trivy-scan/scripts/ensure-trivy.sh +21 -0
  220. package/resources/skills/skills/tools/ccusage/SKILL.md +142 -0
  221. package/src/commands/_index.ts +8 -0
  222. package/src/commands/ai.ts +2 -2
  223. package/src/commands/auto-detect.test.ts +74 -0
  224. package/src/commands/auto-detect.ts +9 -7
  225. package/src/commands/cli.test.ts +20 -4
  226. package/src/commands/cli.ts +36 -20
  227. package/src/commands/create-profile.ts +2 -2
  228. package/src/commands/debug.ts +2 -2
  229. package/src/commands/discover.ts +14 -4
  230. package/src/commands/export-docker.ts +1 -1
  231. package/src/commands/features-batch1.test.ts +1 -1
  232. package/src/commands/gates.ts +1 -1
  233. package/src/commands/import-profile.ts +1 -1
  234. package/src/commands/init.ts +15 -11
  235. package/src/commands/install.test.ts +192 -0
  236. package/src/commands/install.ts +610 -0
  237. package/src/commands/launch-handoff.e2e.test.ts +33 -1
  238. package/src/commands/launch.e2e.test.ts +15 -10
  239. package/src/commands/launch.ts +73 -116
  240. package/src/commands/materialize.ts +2 -2
  241. package/src/commands/prune.ts +1 -1
  242. package/src/commands/security-audit.ts +1 -1
  243. package/src/commands/shell.ts +7 -7
  244. package/src/commands/skill-report.ts +1 -1
  245. package/src/commands/skills.ts +3 -3
  246. package/src/commands/snapshot.ts +2 -2
  247. package/src/commands/summon.test.ts +116 -0
  248. package/src/commands/summon.ts +338 -0
  249. package/src/commands/trigger-gaps.ts +1 -1
  250. package/src/commands/use.ts +47 -3
  251. package/src/commands/watch-live.ts +5 -5
  252. package/src/commands/watch.ts +8 -8
  253. package/src/index.ts +2 -0
  254. package/src/lib/active-sessions.test.ts +3 -3
  255. package/src/lib/active-sessions.ts +4 -4
  256. package/src/lib/auto-detect.test.ts +172 -8
  257. package/src/lib/auto-detect.ts +191 -136
  258. package/src/lib/codex-persona-parity.test.ts +58 -0
  259. package/src/lib/companion-detect.test.ts +43 -1
  260. package/src/lib/companion-detect.ts +35 -0
  261. package/src/lib/credentials-sync.test.ts +121 -1
  262. package/src/lib/credentials-sync.ts +95 -1
  263. package/src/lib/cwd-resolver.test.ts +8 -8
  264. package/src/lib/cwd-resolver.ts +2 -2
  265. package/src/lib/dashboard-merge.test.ts +9 -4
  266. package/src/lib/dashboard-server.ts +1 -1
  267. package/src/lib/picker.test.ts +1 -1
  268. package/src/lib/picker.ts +5 -5
  269. package/src/lib/profile-merge.test.ts +8 -0
  270. package/src/lib/profile-names.test.ts +3 -3
  271. package/src/lib/runtime-install.ts +166 -0
  272. package/src/lib/runtime-materializer.test.ts +137 -0
  273. package/src/lib/runtime-materializer.ts +105 -2
  274. package/src/lib/skill-router.test.ts +38 -0
  275. package/src/lib/skill-router.ts +65 -4
  276. package/profiles/eu-tender-research/README.md +0 -48
  277. package/profiles/eu-tender-research/logo.png +0 -0
  278. package/profiles/eu-tender-research/profile.yaml +0 -108
@@ -0,0 +1,80 @@
1
+ # Send Thank-You Note — Gmail Agent
2
+
3
+ ## What This Does
4
+
5
+ Takes the thank-you note you generated, formats it as an email, and sends it
6
+ via Gmail — directly from the tool. No copy-paste.
7
+
8
+ Requires Gmail MCP connected in Claude.ai settings.
9
+
10
+ ## Instructions for Claude Code
11
+
12
+ ### Step 1 — Load inputs
13
+
14
+ Read `outputs/thank-you-templates.md`. This contains the three templates.
15
+ Read `inputs/job-description.md` for role and company context.
16
+
17
+ ### Step 2 — Select template
18
+
19
+ Ask the user:
20
+ > Which template fits your interview?
21
+ > 1. Strong interview — I want this job
22
+ > 2. One concern came up
23
+ > 3. I'm also interviewing elsewhere
24
+
25
+ Wait for their answer.
26
+
27
+ ### Step 3 — Get recipient details
28
+
29
+ Ask:
30
+ > Interviewer's email address?
31
+ > Their name? (for personalization)
32
+ > Anything specific from the interview to reference? (optional — leave blank to use the template as-is)
33
+
34
+ ### Step 4 — Personalize if context provided
35
+
36
+ If the user provided interview context, lightly personalize the chosen template:
37
+ - Replace any [placeholder] text with the specific detail
38
+ - Keep the same structure and tone
39
+ - Do not change the opening or closing
40
+ - Apply all rules from `rules/writing-rules.md`
41
+
42
+ ### Step 5 — Show draft for approval
43
+
44
+ Show the complete email to the user and ask:
45
+ > Ready to send? (yes / edit first)
46
+
47
+ If they want to edit, take their changes and show the updated version before sending.
48
+
49
+ ### Step 6 — Send via Gmail MCP
50
+
51
+ Once approved, use Gmail MCP to:
52
+ - Create a draft with the finalized email
53
+ - Subject line: "Following up — [Role] interview"
54
+ - To: interviewer email
55
+ - Send immediately or save as draft based on user preference
56
+
57
+ Tell the user:
58
+ > Sent. Subject: "Following up — [Role] interview"
59
+ > Sent to: [email]
60
+ > Sent at: [timestamp]
61
+
62
+ ## Note on Gmail MCP
63
+
64
+ Requires Gmail MCP connected in Claude.ai settings.
65
+ Settings → Integrations → Gmail
66
+
67
+ Claude Code will only send email when you explicitly confirm. It will always
68
+ show you the draft before sending.
69
+
70
+ ---
71
+
72
+ ## ✅ What to do next
73
+
74
+ Send within 24 hours. Use the template that fits — don't send all three.
75
+
76
+ If an offer comes:
77
+ ```
78
+ npm run salary ← research comp before responding
79
+ npm run negotiate ← practice the conversation before taking the call
80
+ ```
@@ -0,0 +1,146 @@
1
+ # Company Deep Research
2
+
3
+ ## What This Does
4
+
5
+ Goes deeper than the pre-interview brief. This is what you run before you
6
+ decide whether to seriously pursue an opportunity — before investing hours
7
+ on applications and prep.
8
+
9
+ The pre-interview research (`npm run research`) is a one-pager for the
10
+ morning of the interview. This is the due diligence you do when you're
11
+ deciding whether the company is worth your time.
12
+
13
+ ## Instructions for Claude Code
14
+
15
+ ### Step 1 — Load inputs
16
+
17
+ Read `inputs/job-description.md`.
18
+ Read `inputs/my-resume.md` for context on what matters to this person.
19
+ Read `rules/writing-rules.md`.
20
+
21
+ Extract the company name and role title.
22
+
23
+ ### Step 2 — Research the company across 6 dimensions
24
+
25
+ For each dimension, give a rating (Strong / Neutral / Concerning) and
26
+ specific evidence. No vague assessments — every rating needs a reason.
27
+
28
+ ---
29
+
30
+ **DIMENSION 1 — Financial Health**
31
+
32
+ For public companies:
33
+ - Revenue trend (growing, flat, declining)
34
+ - Profitability and cash position
35
+ - Recent earnings calls — what are they prioritizing?
36
+ - Stock performance trend vs. sector
37
+
38
+ For private companies:
39
+ - Last funding round, amount, lead investor, date
40
+ - Runway estimate (when did they last raise and how much?)
41
+ - Revenue signals from job posting density and LinkedIn headcount trend
42
+ - Any recent layoffs or hiring freezes
43
+
44
+ Rating: Strong / Neutral / Concerning
45
+ Evidence: [specific numbers or signals]
46
+
47
+ ---
48
+
49
+ **DIMENSION 2 — Hiring Velocity**
50
+
51
+ Look at LinkedIn headcount trend:
52
+ - Is the team growing, flat, or shrinking?
53
+ - Is this department specifically growing?
54
+ - How long has this specific role been posted? (stale = red flag)
55
+ - Are there multiple similar roles posted? (high churn = red flag)
56
+ - Any recent layoffs mentioned in news or Glassdoor?
57
+
58
+ Rating: Strong / Neutral / Concerning
59
+ Evidence: [headcount numbers, posting age, role count]
60
+
61
+ ---
62
+
63
+ **DIMENSION 3 — Leadership Stability**
64
+
65
+ - CEO and executive team tenure
66
+ - Recent C-suite departures (look for exits in last 12 months)
67
+ - How long has the direct manager been in role?
68
+ - Glassdoor reviews mentioning leadership specifically
69
+
70
+ Rating: Strong / Neutral / Concerning
71
+ Evidence: [specific names, tenures, patterns]
72
+
73
+ ---
74
+
75
+ **DIMENSION 4 — Culture and Environment**
76
+
77
+ Based on Glassdoor, LinkedIn, and news:
78
+ - Glassdoor overall score and trend (improving or declining?)
79
+ - Top themes in positive reviews (what do people actually like)
80
+ - Top themes in negative reviews (what keeps coming up)
81
+ - Work-from-home or hybrid policy signals from job postings
82
+ - Patterns in how long people stay in this type of role
83
+
84
+ Rating: Strong / Neutral / Concerning
85
+ Evidence: [Glassdoor score, specific review patterns]
86
+
87
+ ---
88
+
89
+ **DIMENSION 5 — Competitive Position**
90
+
91
+ - Who are the top 3 competitors?
92
+ - Where does this company sit in its market?
93
+ - Any recent news: acquisitions, product launches, losses to competitors?
94
+ - Is the market they're in growing, stable, or contracting?
95
+
96
+ Rating: Strong / Neutral / Concerning
97
+ Evidence: [specific competitive signals]
98
+
99
+ ---
100
+
101
+ **DIMENSION 6 — Role-Specific Signals**
102
+
103
+ - Is this a backfill or a new role? (new = growth, backfill = need to understand why)
104
+ - How does this role interact with the rest of the org?
105
+ - What does success look like in year 1 based on the JD language?
106
+ - Any concerning language: "fast-paced", "wear many hats", "self-starter" — what does it mean here?
107
+
108
+ Rating: Strong / Neutral / Concerning
109
+ Evidence: [JD language analysis]
110
+
111
+ ---
112
+
113
+ ### Step 3 — Overall Assessment
114
+
115
+ **PURSUE / PROCEED WITH EYES OPEN / DEPRIORITIZE**
116
+
117
+ Scoring:
118
+ - 5-6 Strong: PURSUE
119
+ - 3-4 Strong, some Neutral: PROCEED WITH EYES OPEN
120
+ - Any Concerning + pattern: DEPRIORITIZE unless role is exceptional
121
+
122
+ **THE THREE THINGS TO ASK IN THE INTERVIEW**
123
+ Based on the research, list the 3 most important things to verify directly
124
+ with the hiring manager. These should address whatever is Neutral or Concerning.
125
+
126
+ **NEGOTIATION CONTEXT**
127
+ Based on the financial and hiring signals, how strong is your leverage?
128
+ Is this a company in growth mode (you have leverage) or tightening mode (be careful)?
129
+
130
+ ### Step 4 — Save output
131
+
132
+ Write to `outputs/company-research.md`.
133
+
134
+ Tell the user:
135
+ > Company research complete: [PURSUE / PROCEED WITH EYES OPEN / DEPRIORITIZE]
136
+ > Full report: outputs/company-research.md
137
+
138
+ ## ✅ What to do next
139
+
140
+ ```
141
+ npm run fit ← score your fit for the specific role
142
+ npm run research ← quick interview brief once you've decided to pursue
143
+ npm run decode ← decode the JD before applying
144
+ ```
145
+
146
+ Apply all rules from `rules/writing-rules.md`.
@@ -0,0 +1,129 @@
1
+ # Follow-Up Generator
2
+
3
+ ## What This Does
4
+
5
+ Writes the right follow-up message for the right stage at the right time.
6
+
7
+ Most candidates either never follow up or follow up wrong — too soon, too
8
+ desperate, too generic. This agent generates the exact message for your
9
+ specific situation: after applying, after a screen, after a final round,
10
+ or when you've heard nothing for too long.
11
+
12
+ ## Instructions for Claude Code
13
+
14
+ ### Step 1 — Load inputs
15
+
16
+ Read `inputs/my-resume.md`.
17
+ Read `inputs/job-description.md`.
18
+ Read `inputs/interview-context.md` if it exists.
19
+ Read `rules/writing-rules.md`.
20
+
21
+ Ask the user:
22
+ ```
23
+ What stage are you following up from?
24
+ 1. Applied but haven't heard back
25
+ 2. After a phone screen / initial interview
26
+ 3. After a final round interview
27
+ 4. Waiting on an offer decision
28
+ 5. Offer accepted — following up on start date / onboarding
29
+ 6. Rejected — keeping the relationship warm
30
+ ```
31
+
32
+ Wait for their answer. Then ask:
33
+ ```
34
+ How long ago did the last contact happen?
35
+ ```
36
+
37
+ ### Step 2 — Generate the right follow-up
38
+
39
+ **Stage 1 — Applied, no response (7-14 days after applying)**
40
+
41
+ Goal: Get your application noticed without being annoying.
42
+ Tone: Confident, brief, adds value.
43
+ Do: Reference something specific about the company or role.
44
+ Don't: "Just checking in." "I wanted to follow up on my application."
45
+
46
+ Length: 50-70 words max.
47
+
48
+ **Stage 2 — After phone screen (24-48 hours after the call)**
49
+
50
+ Goal: Reinforce your interest and address anything that came up.
51
+ Tone: Warm, specific, forward-moving.
52
+ Do: Reference one specific thing from the conversation.
53
+ Do: Reiterate one concrete reason you're the right fit.
54
+ Don't: Repeat what was already said. Don't be effusive.
55
+
56
+ Length: 80-120 words.
57
+
58
+ **Stage 3 — After final round (24 hours after)**
59
+
60
+ Goal: Differentiate yourself one last time before the decision.
61
+ Tone: Confident, substantive.
62
+ Do: Address the hardest question they asked. Show you thought about it.
63
+ Do: Reference something specific about the company's direction or challenge.
64
+ Don't: "I think I'd be a great fit." Don't restate your resume.
65
+
66
+ Length: 100-150 words.
67
+
68
+ **Stage 4 — Waiting on offer decision (5+ business days, no word)**
69
+
70
+ Goal: Stay top of mind without pressure.
71
+ Tone: Calm, professional, one option offered.
72
+ Do: Mention if you have competing offers or a decision deadline (if true).
73
+ Don't: Express anxiety. Don't demand an update.
74
+
75
+ Length: 50-75 words.
76
+
77
+ **Stage 5 — Offer accepted, onboarding follow-up**
78
+
79
+ Goal: Confirm logistics, build relationship before day 1.
80
+ Tone: Warm, organized, enthusiastic without being cloying.
81
+ Do: Confirm start date. Ask one practical question. Express genuine excitement.
82
+
83
+ Length: 80-100 words.
84
+
85
+ **Stage 6 — After rejection**
86
+
87
+ Goal: Keep the door open. People move roles. Companies rehire.
88
+ Tone: Gracious, brief, no bitterness.
89
+ Do: Thank them genuinely for their time. Express continued interest in the company.
90
+ Do: Ask for feedback (they rarely give it but worth asking once).
91
+ Don't: Push back on the decision. Don't express disappointment directly.
92
+
93
+ Length: 60-80 words.
94
+
95
+ ### Step 3 — Write 2 versions
96
+
97
+ Write two versions of the follow-up:
98
+ - **Version A** — Standard: appropriate for most situations
99
+ - **Version B** — Assertive: slightly more direct, use if you're competing for time
100
+
101
+ Label them clearly. Tell the user which to default to.
102
+
103
+ ### Step 4 — Subject line
104
+
105
+ If email, write 3 subject line options:
106
+ - One referencing the role title
107
+ - One referencing a specific conversation point
108
+ - One direct and minimal
109
+
110
+ ### Step 5 — Timing guidance
111
+
112
+ Tell the user exactly when to send:
113
+ - Best time: Tuesday-Thursday, 9-11am recipient's time zone
114
+ - Avoid: Monday AM, Friday PM, any time around major holidays
115
+ - If they don't respond: one more follow-up after 5 business days, then stop
116
+
117
+ ### Step 6 — Save output
118
+
119
+ Write to `outputs/follow-up.md`.
120
+
121
+ ## ✅ What to do next
122
+
123
+ ```
124
+ npm run send-email ← send the follow-up via Gmail
125
+ npm run interview ← if they respond and want to move forward
126
+ npm run research ← if a new interview is scheduled
127
+ ```
128
+
129
+ Apply all rules from `rules/writing-rules.md`.
@@ -0,0 +1,152 @@
1
+ # Ghost Job Detector
2
+
3
+ ## What This Does
4
+
5
+ Scores a job posting for signals that it's not a real, active opening —
6
+ and tells you whether to invest time applying.
7
+
8
+ Ghost jobs are real and widespread. Companies post roles they have no
9
+ immediate intention of filling: to build a talent pipeline, to justify
10
+ headcount requests, to collect competitive intelligence on who's looking,
11
+ or because the system auto-renewed a posting. Applying to a ghost job
12
+ wastes hours of your time and skews your rejection analysis.
13
+
14
+ Run this before investing time tailoring an application.
15
+
16
+ ## Instructions for Claude Code
17
+
18
+ ### Step 1 — Load inputs
19
+
20
+ Read `inputs/job-description.md`.
21
+ Read `rules/writing-rules.md`.
22
+
23
+ Also ask the user:
24
+ ```
25
+ A few things to check — if you know them:
26
+
27
+ 1. When was this posting first listed? (check LinkedIn "posted X days ago")
28
+ 2. Have you seen this exact role posted before at this company?
29
+ 3. Do you know anything about this company's current hiring status?
30
+ (recent layoffs, hiring freeze news, funding news)
31
+ ```
32
+
33
+ ### Step 2 — Score 8 ghost job signals
34
+
35
+ Check every signal. Each one that fires adds to the ghost score.
36
+
37
+ ---
38
+
39
+ **SIGNAL 1 — Posting age**
40
+
41
+ - Under 2 weeks: Low concern
42
+ - 2-4 weeks: Mild concern — most roles fill faster than this
43
+ - 4-8 weeks: Moderate concern — ask why it's still open
44
+ - 8+ weeks: High concern — either very hard to fill or not actively hiring
45
+
46
+ **SIGNAL 2 — JD specificity**
47
+
48
+ Real open roles tend to be specific: they describe actual challenges,
49
+ name the team, mention what the previous person did or why the role exists.
50
+
51
+ Ghost job signals:
52
+ - Generic language that could apply to any company
53
+ - No mention of team size, reporting structure, or company stage
54
+ - JD that reads like it was written by committee or copied from a template
55
+ - Every bullet uses vague corporate language with no specifics
56
+
57
+ **SIGNAL 3 — Requirements inflation**
58
+
59
+ Real roles list what they actually need. Ghost jobs or roles frozen in
60
+ approval list everything anyone could ever want:
61
+ - 12+ bullet requirements
62
+ - Years of experience doesn't match the seniority level offered
63
+ - Requires skills that don't obviously connect to the role
64
+ - Lists 3-4 competing technologies as all required (a real team uses one)
65
+
66
+ **SIGNAL 4 — Multiple simultaneous postings**
67
+
68
+ Search LinkedIn/Indeed for the same company + similar role title.
69
+ If the same company is posting:
70
+ - The same role in 5+ cities: often pipeline building, not active hire
71
+ - 3+ near-identical roles at once: either real growth OR approval limbo
72
+ - The same role repeatedly over 6+ months: high churn warning
73
+
74
+ **SIGNAL 5 — Company health signals**
75
+
76
+ Look for:
77
+ - Recent layoffs mentioned in news (check company name + "layoffs 2024 2025")
78
+ - Hiring freeze announcements
79
+ - Recent acquisition (hiring often pauses post-acquisition)
80
+ - Series A or earlier startup with no recent funding news (runway concern)
81
+ - Public company with recent earnings miss mentioning cost cuts
82
+
83
+ **SIGNAL 6 — Application friction mismatch**
84
+
85
+ Real companies with real openings usually want to make it easy to apply.
86
+
87
+ Ghost job signals:
88
+ - ATS-only application with no human contact anywhere
89
+ - No recruiter name on LinkedIn associated with this role
90
+ - Application asks for full project portfolios or lengthy assessments upfront
91
+ before any human has seen your resume (screening out, not selecting in)
92
+ - Application form asks for salary history (in states where this is legal —
93
+ often used to pre-screen based on comp, not competency)
94
+
95
+ **SIGNAL 7 — Social proof check**
96
+
97
+ Check LinkedIn:
98
+ - Are there real employees in this department? Do they exist?
99
+ - Has anyone listed this company on their profile recently?
100
+ - Does the company LinkedIn page look active or dormant?
101
+ - Does the hiring manager listed actually exist and work there?
102
+
103
+ **SIGNAL 8 — The "always hiring" pattern**
104
+
105
+ Some companies permanently post certain roles because turnover is so high
106
+ that they're always looking. This is not a ghost job — it's a warning sign.
107
+ Different problem, same outcome: your time is better spent elsewhere.
108
+
109
+ ---
110
+
111
+ ### Step 3 — Score and verdict
112
+
113
+ **Ghost Score: X/8 signals fired**
114
+
115
+ **0-1: APPLY** — Looks like a real, active opening
116
+ **2-3: APPLY WITH HEDGE** — Probably real but verify before heavy investment
117
+ **4-5: VERIFY FIRST** — Check LinkedIn for a real recruiter, reach out before tailoring
118
+ **6-8: SKIP OR INVESTIGATE** — Strong ghost signals. Reach out directly to verify before applying.
119
+
120
+ ### Step 4 — The verification move
121
+
122
+ For any score 3+, write the exact LinkedIn message to verify:
123
+
124
+ ---
125
+ [To: Recruiter or hiring manager at the company, found via LinkedIn]
126
+
127
+ Saw the [Role] posting at [Company] and I'm genuinely interested. Before I
128
+ put together a full application, I wanted to confirm the role is actively
129
+ being filled right now — I've been caught by stale postings before. Is
130
+ this a current search?
131
+
132
+ [Name]
133
+ ---
134
+
135
+ 30 seconds. If they respond, it's real. If they don't within a week, it's likely not.
136
+
137
+ ### Step 5 — Save output
138
+
139
+ Write to `outputs/ghost-check.md`.
140
+
141
+ Tell the user:
142
+ > Ghost score: [X]/8 — [APPLY / APPLY WITH HEDGE / VERIFY FIRST / SKIP]
143
+
144
+ ## ✅ What to do next
145
+
146
+ ```
147
+ npm run fit ← score your fit if this is a real role
148
+ npm run decode ← decode what the JD actually means
149
+ npm run company ← research the company before investing in an application
150
+ ```
151
+
152
+ Apply all rules from `rules/writing-rules.md`.
@@ -0,0 +1,193 @@
1
+ # Inbox Scanner — Job Search Email Monitor
2
+
3
+ ## What This Does
4
+
5
+ Scans your Gmail for emails from companies you've applied to, flags anything
6
+ that needs a response, drafts replies ready to review and send.
7
+
8
+ Recruiters send emails with short windows. A reply that comes 3 hours after
9
+ they reach out is very different from one that comes 3 days later.
10
+ This agent makes sure you never miss the window.
11
+
12
+ ## Prerequisites
13
+
14
+ Gmail MCP must be connected in your Claude.ai settings:
15
+ **Settings → Integrations → Gmail**
16
+
17
+ ## Instructions for Claude Code
18
+
19
+ ### Step 1 — Load inputs
20
+
21
+ Read `inputs/my-resume.md` for background context.
22
+ Read `JOB-TRACKER.md` or `outputs/job-shortlist.md` if they exist —
23
+ these contain the companies you've applied to or are tracking.
24
+
25
+ ### Step 2 — Parse tracked companies
26
+
27
+ Extract a list of company names and domains from:
28
+ - `JOB-TRACKER.md` — Active Pipeline table (Company column)
29
+ - `outputs/job-shortlist.md` — any companies in the shortlist
30
+
31
+ If neither file has content, ask the user:
32
+ > Paste a list of companies you've applied to or are tracking (one per line):
33
+
34
+ Build a list of company names and likely email domains
35
+ (e.g. "Veeva Systems" → `veeva.com`, `Salesforce` → `salesforce.com`).
36
+
37
+ ### Step 3 — Scan Gmail
38
+
39
+ Use Gmail MCP to search for recent emails from tracked companies.
40
+
41
+ Run these searches in order:
42
+
43
+ **Search 1 — Direct recruiter outreach**
44
+ Query: `from:(recruiter OR talent OR hiring OR careers OR noreply) newer_than:14d`
45
+ Limit: 50 results
46
+
47
+ **Search 2 — Company domain matches**
48
+ For each tracked company domain, search:
49
+ Query: `from:*@[domain] newer_than:30d`
50
+ Limit: 10 per company
51
+
52
+ **Search 3 — Application status**
53
+ Query: `subject:(application OR interview OR opportunity OR position OR role) newer_than:30d`
54
+ Limit: 30 results
55
+
56
+ Deduplicate results across all three searches by thread ID.
57
+
58
+ ### Step 4 — Classify each email
59
+
60
+ For each email found, classify it:
61
+
62
+ | Type | Description | Urgency |
63
+ |---|---|---|
64
+ | **RECRUITER OUTREACH** | Recruiter reaching out about a role | 🔴 HIGH — respond within 24hr |
65
+ | **INTERVIEW INVITE** | Request to schedule an interview | 🔴 HIGH — respond same day |
66
+ | **APPLICATION STATUS** | Update on an application | 🟡 MEDIUM — review, may need reply |
67
+ | **OFFER / NEXT STEPS** | Offer letter or next steps request | 🔴 HIGH — respond same day |
68
+ | **REJECTION** | Application declined | ⚪ LOW — no reply needed |
69
+ | **AUTO-CONFIRM** | Automated application receipt | ⚪ LOW — no action needed |
70
+ | **FOLLOW-UP NEEDED** | You haven't replied in 48+ hours | 🔴 HIGH — draft reply now |
71
+
72
+ Flag any email older than 48 hours that hasn't been replied to as
73
+ **FOLLOW-UP NEEDED** regardless of original type.
74
+
75
+ ### Step 5 — Draft responses
76
+
77
+ For every HIGH urgency email, draft a response.
78
+
79
+ **For RECRUITER OUTREACH:**
80
+ - Express genuine interest (not "I'm excited" — that's a tell)
81
+ - Reference the specific role if mentioned
82
+ - Propose 2-3 specific time slots for a call in the next 48 hours
83
+ - Keep it under 100 words
84
+ - Apply all rules from `rules/writing-rules.md`
85
+
86
+ **For INTERVIEW INVITE:**
87
+ - Confirm availability immediately
88
+ - If times given don't work, propose alternatives the same day
89
+ - Include any prep questions if appropriate (role details, format, who attending)
90
+ - Under 80 words
91
+
92
+ **For OFFER / NEXT STEPS:**
93
+ - Acknowledge receipt
94
+ - Ask for 24-48 hours to review if needed
95
+ - Do not negotiate in email — that happens on a call
96
+ - Under 60 words
97
+
98
+ **For FOLLOW-UP NEEDED (you haven't replied):**
99
+ - Acknowledge the delay briefly without over-apologizing
100
+ - Re-engage with genuine interest
101
+ - Propose next steps
102
+ - Under 100 words
103
+
104
+ ### Step 6 — Write the inbox report
105
+
106
+ Write `outputs/inbox-scan.md` with this structure:
107
+
108
+ ```
109
+ INBOX SCAN REPORT
110
+ Scanned: [date and time]
111
+ Companies tracked: [n]
112
+ Emails found: [n] | Action required: [n]
113
+
114
+ ─────────────────────────────────────────────────────
115
+
116
+ 🔴 HIGH PRIORITY — RESPOND NOW
117
+ ─────────────────────────────────────────────────────
118
+
119
+ [For each high-priority email:]
120
+
121
+ FROM: [sender name and email]
122
+ COMPANY: [company name]
123
+ SUBJECT: [subject line]
124
+ RECEIVED: [time ago — e.g. "3 hours ago", "2 days ago"]
125
+ TYPE: [classification]
126
+
127
+ SUMMARY:
128
+ [2-3 sentence summary of what they said]
129
+
130
+ DRAFTED RESPONSE:
131
+ ─────────────────────────────────────
132
+ [full drafted response ready to copy]
133
+ ─────────────────────────────────────
134
+
135
+ ─────────────────────────────────────────────────────
136
+
137
+ 🟡 REVIEW — MAY NEED RESPONSE
138
+ ─────────────────────────────────────────────────────
139
+
140
+ [For each medium-priority email:]
141
+ FROM / SUBJECT / RECEIVED / SUMMARY
142
+ [Draft response if reply is warranted]
143
+
144
+ ─────────────────────────────────────────────────────
145
+
146
+ ⚪ NO ACTION NEEDED
147
+ ─────────────────────────────────────────────────────
148
+ [List: rejections, auto-confirms — company, subject, date]
149
+ ```
150
+
151
+ ### Step 7 — Summary
152
+
153
+ Tell the user:
154
+ > Inbox scan complete.
155
+ > 🔴 [n] emails need a response now
156
+ > 🟡 [n] emails to review
157
+ > ⚪ [n] no action needed
158
+ >
159
+ > Full report: outputs/inbox-scan.md
160
+ >
161
+ > To send any of the drafted responses:
162
+ > npm run send-email ← opens Gmail MCP sender
163
+
164
+ If there are HIGH priority emails, show the first drafted response
165
+ immediately in the terminal so the user can act on it without opening a file.
166
+
167
+ ## Running
168
+
169
+ ```bash
170
+ npm run inbox
171
+ ```
172
+
173
+ Or directly:
174
+ ```bash
175
+ claude "follow agents/search-inbox-scan.md"
176
+ ```
177
+
178
+ ## ✅ What to do next
179
+
180
+ ```
181
+ npm run send-email ← send a drafted response via Gmail
182
+ npm run research ← if an interview is scheduled, pull the company brief
183
+ npm run interview ← if a screening call is coming up, build prep guide
184
+ npm run schedule ← add the interview to your calendar
185
+ ```
186
+
187
+ ## Tone
188
+
189
+ Responses should sound like a person who is interested but not desperate.
190
+ Specific beats generic. Prompt replies signal respect for the recruiter's time.
191
+ Never start with "Hi" or "Thank you for reaching out" — both are tells.
192
+
193
+ Apply all rules from `rules/writing-rules.md` to all drafted responses.