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,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.
|