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,109 @@
|
|
|
1
|
+
# Skills Gap Filler
|
|
2
|
+
|
|
3
|
+
## What This Does
|
|
4
|
+
|
|
5
|
+
Reads a job description and tells you exactly which "requirements" are real
|
|
6
|
+
gates vs. recruiter wishlist — and for the real gaps, gives you the fastest
|
|
7
|
+
path to closing them.
|
|
8
|
+
|
|
9
|
+
Recruiters copy-paste requirements from previous job postings, add
|
|
10
|
+
everything the last person in the role happened to know, and then use
|
|
11
|
+
the list to filter out qualified people. Most postings have 10-12
|
|
12
|
+
requirements. You need 60-70% to be competitive. This agent tells you
|
|
13
|
+
which 60-70% matters and what to do about the rest.
|
|
14
|
+
|
|
15
|
+
## Instructions for Claude Code
|
|
16
|
+
|
|
17
|
+
### Step 1 — Load inputs
|
|
18
|
+
|
|
19
|
+
Read `inputs/my-resume.md`.
|
|
20
|
+
Read `inputs/job-description.md`.
|
|
21
|
+
Read `rules/writing-rules.md`.
|
|
22
|
+
|
|
23
|
+
### Step 2 — Classify every requirement
|
|
24
|
+
|
|
25
|
+
Extract every stated requirement from the JD. For each one, classify it:
|
|
26
|
+
|
|
27
|
+
**HARD GATE** — You will be screened out without this. Non-negotiable.
|
|
28
|
+
- Specific license or certification (Series 7, RN, PE, Bar)
|
|
29
|
+
- Minimum years experience explicitly stated ("5+ years required")
|
|
30
|
+
- Specific technology that is core to the role (not "preferred")
|
|
31
|
+
- Location or legal requirement (must be US citizen, must be on-site)
|
|
32
|
+
|
|
33
|
+
**REAL REQUIREMENT** — Hiring manager will test for this directly.
|
|
34
|
+
- Primary skill of the role
|
|
35
|
+
- Tools they use daily
|
|
36
|
+
- Domain knowledge central to the function
|
|
37
|
+
|
|
38
|
+
**NICE-TO-HAVE** — Listed to describe an ideal candidate, not a gate.
|
|
39
|
+
- "Preferred" or "plus" language
|
|
40
|
+
- Secondary tools ("experience with Salesforce a plus")
|
|
41
|
+
- Soft skills (everyone lists these, no one actually screens for them)
|
|
42
|
+
- Advanced degrees when not explicitly required
|
|
43
|
+
- Industry experience when transferable experience exists
|
|
44
|
+
|
|
45
|
+
**INFLATED REQUIREMENT** — Sounds hard, actually learnable in weeks.
|
|
46
|
+
- Common when JD was written by someone who doesn't do the job
|
|
47
|
+
- Often: specific software version, methodology names, tool names
|
|
48
|
+
- Tells you what to learn before the interview, not what blocks you
|
|
49
|
+
|
|
50
|
+
### Step 3 — Gap analysis against the resume
|
|
51
|
+
|
|
52
|
+
For each HARD GATE and REAL REQUIREMENT the candidate doesn't have:
|
|
53
|
+
|
|
54
|
+
**Gap:** [what's missing]
|
|
55
|
+
**Type:** Hard Gate / Real Requirement
|
|
56
|
+
**Honest assessment:** Is this actually required or are they describing their last hire?
|
|
57
|
+
**Time to close:** [realistic estimate — days, weeks, months]
|
|
58
|
+
**How to close it:**
|
|
59
|
+
- Free: [specific resource — YouTube channel, documentation, free course]
|
|
60
|
+
- Fast: [certification or course that signals competency, with cost and time]
|
|
61
|
+
- Deep: [if this requires significant work — be honest about the timeline]
|
|
62
|
+
**What to say in the interview if you don't have it yet:**
|
|
63
|
+
[Exact language for addressing the gap honestly without disqualifying yourself]
|
|
64
|
+
|
|
65
|
+
### Step 4 — The Apply Decision
|
|
66
|
+
|
|
67
|
+
Based on the gap analysis:
|
|
68
|
+
|
|
69
|
+
**APPLY NOW** — You meet the hard gates, have the real requirements, gaps are closeable
|
|
70
|
+
**APPLY + CLOSE GAPS FAST** — You meet most requirements, specific gaps closeable before interview rounds
|
|
71
|
+
**APPLY IN [X WEEKS]** — You have a gap that would disqualify but can close it in a specific timeframe
|
|
72
|
+
**DON'T APPLY YET** — A hard gate you cannot realistically close soon
|
|
73
|
+
|
|
74
|
+
Be direct. If the honest answer is "don't apply yet because X," say that.
|
|
75
|
+
|
|
76
|
+
### Step 5 — The Fast Track
|
|
77
|
+
|
|
78
|
+
If the recommendation is APPLY + CLOSE GAPS FAST, write a specific
|
|
79
|
+
3-7 day sprint plan:
|
|
80
|
+
|
|
81
|
+
```
|
|
82
|
+
GAP-CLOSING SPRINT
|
|
83
|
+
|
|
84
|
+
Goal: Close [gap] before the interview stage
|
|
85
|
+
|
|
86
|
+
Day 1-2: [specific resource + what to complete]
|
|
87
|
+
Day 3-4: [specific resource + what to complete]
|
|
88
|
+
Day 5-7: [hands-on practice + what to build or document]
|
|
89
|
+
|
|
90
|
+
By end of sprint:
|
|
91
|
+
- You can speak credibly about [topic]
|
|
92
|
+
- You have [specific artifact/project/cert] to point to
|
|
93
|
+
- Interview answer: "[exact phrasing]"
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
### Step 6 — Save output
|
|
97
|
+
|
|
98
|
+
Write to `outputs/skills-gap.md`.
|
|
99
|
+
|
|
100
|
+
## ✅ What to do next
|
|
101
|
+
|
|
102
|
+
```
|
|
103
|
+
npm run fit ← score overall fit now that you know the gaps
|
|
104
|
+
npm run resume ← tailor resume to emphasize what you DO have
|
|
105
|
+
npm run ats ← ensure keywords from real requirements are in your resume
|
|
106
|
+
npm run interview ← prep for how to handle gap questions in the interview
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
Apply all rules from `rules/writing-rules.md`.
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
# Internal Job Application
|
|
2
|
+
|
|
3
|
+
## What This Does
|
|
4
|
+
|
|
5
|
+
Applies for an internal role differently than an external one. You know people,
|
|
6
|
+
you have context, you have a reputation — and you have more to lose if it goes
|
|
7
|
+
sideways. This agent accounts for all of that.
|
|
8
|
+
|
|
9
|
+
## Instructions for Claude Code
|
|
10
|
+
|
|
11
|
+
### Step 1 — Load inputs
|
|
12
|
+
|
|
13
|
+
Read `inputs/my-resume.md`.
|
|
14
|
+
Read `inputs/job-description.md` for the internal role.
|
|
15
|
+
Read `rules/writing-rules.md`.
|
|
16
|
+
|
|
17
|
+
### Step 2 — Gather internal context
|
|
18
|
+
|
|
19
|
+
Ask:
|
|
20
|
+
> A few things I need to know about the internal situation:
|
|
21
|
+
> 1. Does your current manager know you're applying?
|
|
22
|
+
> 2. Do you have a relationship with the hiring manager for this role?
|
|
23
|
+
> 3. Who else might be applying internally?
|
|
24
|
+
> 4. What's the general perception of you in the company — strong performer, under the radar, known for specific things?
|
|
25
|
+
> 5. Why are you moving — growth, better fit, comp, or getting out of a bad situation? (be honest, this affects strategy)
|
|
26
|
+
> 6. What would your current manager say about you if the hiring manager asked?
|
|
27
|
+
|
|
28
|
+
### Step 3 — Strategy assessment
|
|
29
|
+
|
|
30
|
+
Based on their answers, assess:
|
|
31
|
+
|
|
32
|
+
**Visibility advantage** — what does this person's internal reputation add to
|
|
33
|
+
their application that an external candidate can't match?
|
|
34
|
+
|
|
35
|
+
**Political considerations** — is there anything that needs to be handled before
|
|
36
|
+
or during the application? (informing current manager, managing relationships)
|
|
37
|
+
|
|
38
|
+
**The real pitch** — internal applications should reference institutional knowledge,
|
|
39
|
+
existing relationships, and demonstrated cultural fit. External candidates can't do this.
|
|
40
|
+
|
|
41
|
+
### Step 4 — Internal resume tailoring
|
|
42
|
+
|
|
43
|
+
Tailor the resume for this role with internal framing:
|
|
44
|
+
- Lead experience bullets with company-specific impact where possible
|
|
45
|
+
- Reference internal initiatives, products, or teams by name where relevant
|
|
46
|
+
- Quantify with internal metrics the hiring manager will recognize
|
|
47
|
+
|
|
48
|
+
### Step 5 — Internal cover letter
|
|
49
|
+
|
|
50
|
+
Write an internal cover letter (shorter than external — 150-200 words):
|
|
51
|
+
- Opens differently than an external letter — no need to introduce yourself
|
|
52
|
+
- References the internal context: "Having spent [X] years building [thing] here..."
|
|
53
|
+
- Names something specific about why this role is the right next move internally
|
|
54
|
+
- Does not apologize for applying or over-explain the move
|
|
55
|
+
- Ends with confidence — you know this company, you know what you're getting into
|
|
56
|
+
|
|
57
|
+
### Step 6 — The conversation to have first
|
|
58
|
+
|
|
59
|
+
Before submitting: who should the user talk to before the application goes in?
|
|
60
|
+
|
|
61
|
+
Write a short script for:
|
|
62
|
+
1. The conversation with their current manager (if not already had)
|
|
63
|
+
2. A conversation with the hiring manager if they have a relationship
|
|
64
|
+
("I wanted to let you know I'm planning to apply for the [role]...")
|
|
65
|
+
|
|
66
|
+
These conversations, done right, are often more important than the application itself.
|
|
67
|
+
|
|
68
|
+
### Step 7 — What's different about the interview
|
|
69
|
+
|
|
70
|
+
Flag 3 things that are different about an internal interview:
|
|
71
|
+
- They already know your reputation — the interview validates it or contradicts it
|
|
72
|
+
- You can reference internal context that external candidates can't
|
|
73
|
+
- The stakes are higher if you don't get it — have a plan for that scenario
|
|
74
|
+
|
|
75
|
+
### Step 8 — If you don't get it
|
|
76
|
+
|
|
77
|
+
Write 2-3 sentences on how to handle not getting the role with your reputation intact:
|
|
78
|
+
What to say to the hiring manager, what to say to your current manager, and
|
|
79
|
+
how to use the feedback constructively.
|
|
80
|
+
|
|
81
|
+
### Step 9 — Save output
|
|
82
|
+
|
|
83
|
+
Write to `outputs/internal-application.md`.
|
|
84
|
+
|
|
85
|
+
---
|
|
86
|
+
|
|
87
|
+
## ✅ What to do next
|
|
88
|
+
|
|
89
|
+
Have the conversation with your current manager before submitting — if you haven't already.
|
|
90
|
+
Then submit. Then prepare as you would for any interview:
|
|
91
|
+
```
|
|
92
|
+
npm run research ← pull context on the team and hiring manager
|
|
93
|
+
npm run interview ← build your prep guide
|
|
94
|
+
```
|
|
@@ -0,0 +1,173 @@
|
|
|
1
|
+
# LinkedIn Content Generator
|
|
2
|
+
|
|
3
|
+
## What This Does
|
|
4
|
+
|
|
5
|
+
Writes 5 LinkedIn posts built around your real experience and target
|
|
6
|
+
positioning — posts that build credibility with the people who hire for
|
|
7
|
+
the roles you want.
|
|
8
|
+
|
|
9
|
+
Posting on LinkedIn during a job search increases inbound recruiter contact
|
|
10
|
+
meaningfully. But most job seeker LinkedIn content is either too generic
|
|
11
|
+
("5 lessons from my career") or too obviously desperate ("open to work —
|
|
12
|
+
DM me"). Neither builds authority.
|
|
13
|
+
|
|
14
|
+
This agent writes posts that demonstrate expertise, not availability. The
|
|
15
|
+
goal is to become recognizable to the right people before you need them.
|
|
16
|
+
|
|
17
|
+
## Instructions for Claude Code
|
|
18
|
+
|
|
19
|
+
### Step 1 — Load inputs
|
|
20
|
+
|
|
21
|
+
Read `inputs/my-resume.md`.
|
|
22
|
+
Read `inputs/job-description.md` if available — use target role as positioning lens.
|
|
23
|
+
Read `rules/writing-rules.md`.
|
|
24
|
+
|
|
25
|
+
Ask the user:
|
|
26
|
+
|
|
27
|
+
```
|
|
28
|
+
A few questions to write posts that sound like you:
|
|
29
|
+
|
|
30
|
+
1. What's the most counterintuitive thing you've learned in your career?
|
|
31
|
+
Something most people in your field get wrong.
|
|
32
|
+
|
|
33
|
+
2. What's a story from your work that you find yourself telling a lot?
|
|
34
|
+
The one you use when explaining what you do.
|
|
35
|
+
|
|
36
|
+
3. What do you know about [your industry/function] that took you years
|
|
37
|
+
to figure out but seems obvious now?
|
|
38
|
+
|
|
39
|
+
4. What are you genuinely interested in right now — a trend, a problem,
|
|
40
|
+
a debate in your field?
|
|
41
|
+
|
|
42
|
+
5. What's something you did that failed, and what did you actually learn?
|
|
43
|
+
(not the polished failure story — the real one)
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
### Step 2 — Generate 5 posts
|
|
47
|
+
|
|
48
|
+
One post per type. Each one is based on their answers — not generic.
|
|
49
|
+
|
|
50
|
+
---
|
|
51
|
+
|
|
52
|
+
**POST TYPE 1 — The Counterintuitive Take**
|
|
53
|
+
|
|
54
|
+
Format: Lead with the counterintuitive claim. Explain why most people
|
|
55
|
+
think the opposite. 3-4 sentences of evidence or reasoning. One
|
|
56
|
+
practical implication.
|
|
57
|
+
|
|
58
|
+
Length: 150-200 words
|
|
59
|
+
Hook: Starts with the claim, not setup
|
|
60
|
+
Tone: Direct. Confident. Not preachy.
|
|
61
|
+
No: "In my experience..." "I've learned that..." "Here's the thing:"
|
|
62
|
+
|
|
63
|
+
---
|
|
64
|
+
|
|
65
|
+
**POST TYPE 2 — The Story Post**
|
|
66
|
+
|
|
67
|
+
Format: Open in the middle of the story (not "once upon a time").
|
|
68
|
+
Build to the insight. The lesson comes last — and it's one sentence.
|
|
69
|
+
|
|
70
|
+
Length: 200-250 words
|
|
71
|
+
Hook: First line is a moment, not a setup
|
|
72
|
+
Tone: Specific. Human. The reader should feel like they were there.
|
|
73
|
+
No: Emojis as bullets. Ellipsis cliffhangers. Manufactured suspense.
|
|
74
|
+
|
|
75
|
+
---
|
|
76
|
+
|
|
77
|
+
**POST TYPE 3 — The Hard-Won Insight**
|
|
78
|
+
|
|
79
|
+
Format: State the insight plainly. Back it with one specific example
|
|
80
|
+
from their career. Three implications, stated briefly.
|
|
81
|
+
|
|
82
|
+
Length: 150-175 words
|
|
83
|
+
Hook: The insight, stated as a declarative sentence
|
|
84
|
+
Tone: Earned authority. Not arrogant, but confident.
|
|
85
|
+
No: "I used to think X but now I know Y" (overused)
|
|
86
|
+
|
|
87
|
+
---
|
|
88
|
+
|
|
89
|
+
**POST TYPE 4 — The Industry Take**
|
|
90
|
+
|
|
91
|
+
Format: Name the debate or trend. Take a clear position.
|
|
92
|
+
One supporting argument. One honest acknowledgment of the counterargument.
|
|
93
|
+
Close with what you're watching.
|
|
94
|
+
|
|
95
|
+
Length: 175-225 words
|
|
96
|
+
Hook: The position, stated directly
|
|
97
|
+
Tone: Informed. Specific to their industry/function.
|
|
98
|
+
No: Fence-sitting. Generic observations. "It depends."
|
|
99
|
+
|
|
100
|
+
---
|
|
101
|
+
|
|
102
|
+
**POST TYPE 5 — The Useful Failure**
|
|
103
|
+
|
|
104
|
+
Format: What happened (briefly). What you thought you knew.
|
|
105
|
+
What actually happened. What you changed. One sentence on why it matters.
|
|
106
|
+
|
|
107
|
+
Length: 200-250 words
|
|
108
|
+
Hook: The moment it went wrong — specific
|
|
109
|
+
Tone: Self-aware without self-flagellation. The lesson should be useful,
|
|
110
|
+
not a confession.
|
|
111
|
+
No: "I failed and it was the best thing that ever happened to me" framing.
|
|
112
|
+
No: Vague lessons. The takeaway should be specific enough to be actionable.
|
|
113
|
+
|
|
114
|
+
---
|
|
115
|
+
|
|
116
|
+
### Step 3 — Posting strategy
|
|
117
|
+
|
|
118
|
+
Add a one-page strategy:
|
|
119
|
+
|
|
120
|
+
```
|
|
121
|
+
POSTING STRATEGY
|
|
122
|
+
|
|
123
|
+
Cadence: 2-3 posts per week during active search. 1 per week otherwise.
|
|
124
|
+
Best days: Tuesday, Wednesday, Thursday
|
|
125
|
+
Best time: 8-9am or 5-6pm in your target market's time zone
|
|
126
|
+
|
|
127
|
+
Post order (recommended):
|
|
128
|
+
Week 1: Counterintuitive Take (establishes POV)
|
|
129
|
+
Week 2: Story Post (builds trust)
|
|
130
|
+
Week 3: Hard-Won Insight (demonstrates depth)
|
|
131
|
+
Week 4: Industry Take (signals relevance)
|
|
132
|
+
Week 5: Useful Failure (earns credibility)
|
|
133
|
+
Repeat with fresh angles.
|
|
134
|
+
|
|
135
|
+
What to do after posting:
|
|
136
|
+
- Reply to every comment in the first hour
|
|
137
|
+
- Do not reply with "Thanks!" — add something to the conversation
|
|
138
|
+
- Connect with everyone who engages who might be relevant
|
|
139
|
+
|
|
140
|
+
What NOT to post:
|
|
141
|
+
- Anything about being "open to work" or "exploring new opportunities"
|
|
142
|
+
- Vague inspiration content: hustle culture, grind mindset, motivational quotes
|
|
143
|
+
- Anything with a poll that has no real stakes
|
|
144
|
+
- Job application status updates
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
### Step 4 — Profile optimization note
|
|
148
|
+
|
|
149
|
+
Add a brief note:
|
|
150
|
+
If their LinkedIn headline or About section doesn't match the target
|
|
151
|
+
positioning, flag it and suggest they run `npm run linkedin` first.
|
|
152
|
+
|
|
153
|
+
### Step 5 — Save output
|
|
154
|
+
|
|
155
|
+
Write to `outputs/linkedin-content.md`.
|
|
156
|
+
|
|
157
|
+
Tell the user:
|
|
158
|
+
> 5 posts ready. outputs/linkedin-content.md
|
|
159
|
+
>
|
|
160
|
+
> Post Type 1 first — it's the fastest way to establish a POV.
|
|
161
|
+
> Schedule them out, don't post all at once.
|
|
162
|
+
> The goal is recognition, not virality.
|
|
163
|
+
|
|
164
|
+
## ✅ What to do next
|
|
165
|
+
|
|
166
|
+
```
|
|
167
|
+
npm run linkedin ← audit your profile before you start posting
|
|
168
|
+
npm run network ← warm up specific contacts once you're posting
|
|
169
|
+
npm run referrals ← leverage the visibility for warm intros
|
|
170
|
+
```
|
|
171
|
+
|
|
172
|
+
Apply all rules from `rules/writing-rules.md`.
|
|
173
|
+
No em dashes in any post. Posts should sound like a person talking, not writing.
|
|
@@ -0,0 +1,262 @@
|
|
|
1
|
+
# LinkedIn Post Scanner
|
|
2
|
+
|
|
3
|
+
## What This Does
|
|
4
|
+
|
|
5
|
+
Scans your LinkedIn feed for posts worth commenting on — people talking
|
|
6
|
+
about job market struggles, hiring, layoffs, bad interview experiences,
|
|
7
|
+
resume tips, career pivots — and drafts a genuine comment for each one.
|
|
8
|
+
|
|
9
|
+
You review every comment before it goes anywhere. Nothing posts automatically.
|
|
10
|
+
The automation is in the finding and drafting. The judgment is yours.
|
|
11
|
+
|
|
12
|
+
One well-placed comment from the person who built a job search tool,
|
|
13
|
+
on a post with 500 likes, reaches more people than a cold post of your own.
|
|
14
|
+
|
|
15
|
+
## Prerequisites
|
|
16
|
+
|
|
17
|
+
LinkedIn MCP connected in Claude.ai settings:
|
|
18
|
+
**Settings → Integrations → LinkedIn**
|
|
19
|
+
|
|
20
|
+
Or use the LinkedIn scraper MCP:
|
|
21
|
+
```bash
|
|
22
|
+
uvx linkedin-scraper-mcp@latest --login
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
## Instructions for Claude Code
|
|
26
|
+
|
|
27
|
+
### Step 1 — Load inputs
|
|
28
|
+
|
|
29
|
+
Read `inputs/my-resume.md` for your background context.
|
|
30
|
+
Read `rules/writing-rules.md`.
|
|
31
|
+
|
|
32
|
+
Ask the user:
|
|
33
|
+
```
|
|
34
|
+
A few quick questions:
|
|
35
|
+
|
|
36
|
+
1. What's your LinkedIn profile URL?
|
|
37
|
+
(so the comment sounds like you specifically)
|
|
38
|
+
|
|
39
|
+
2. What's the one-line description of Job Hunter you want to use?
|
|
40
|
+
(e.g. "I built a free open source job search toolkit — jobhunter.ai")
|
|
41
|
+
|
|
42
|
+
3. Any topics to avoid commenting on?
|
|
43
|
+
(e.g. specific companies, political topics, anything sensitive)
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
Wait for their answers.
|
|
47
|
+
|
|
48
|
+
### Step 2 — Define search targets
|
|
49
|
+
|
|
50
|
+
Look for posts matching these signals — high engagement, relevant topic,
|
|
51
|
+
comment window still open (under 48 hours old is ideal):
|
|
52
|
+
|
|
53
|
+
**Primary targets — highest value:**
|
|
54
|
+
- Posts about job market difficulty ("can't get callbacks", "100 applications")
|
|
55
|
+
- Posts about recruiter behavior (ghosting, ghost jobs, bias)
|
|
56
|
+
- Posts about resume and ATS struggles
|
|
57
|
+
- Posts about interview processes being too long
|
|
58
|
+
- Posts from recruiters giving job search advice (like the screenshot above)
|
|
59
|
+
- Posts about layoffs and career pivots
|
|
60
|
+
- Posts asking for resume feedback or job search advice
|
|
61
|
+
|
|
62
|
+
**Secondary targets — worth engaging:**
|
|
63
|
+
- Posts about LinkedIn optimization
|
|
64
|
+
- Posts about salary negotiation
|
|
65
|
+
- Posts about career growth and promotion
|
|
66
|
+
- Posts from hiring managers explaining their process
|
|
67
|
+
|
|
68
|
+
**Skip:**
|
|
69
|
+
- Anything political
|
|
70
|
+
- Posts from direct competitors
|
|
71
|
+
- Posts where top comments are already from tools/bots (signals low quality engagement)
|
|
72
|
+
- Posts older than 72 hours (engagement window mostly closed)
|
|
73
|
+
- Any topic the user said to avoid
|
|
74
|
+
|
|
75
|
+
### Step 3 — Scan the feed
|
|
76
|
+
|
|
77
|
+
Use LinkedIn MCP to:
|
|
78
|
+
1. Pull the user's home feed (last 24-48 hours)
|
|
79
|
+
2. Search LinkedIn for recent posts using these queries:
|
|
80
|
+
- "job search" + high engagement filter
|
|
81
|
+
- "job market" + recent posts
|
|
82
|
+
- "resume" OR "ATS" + recruiter posts
|
|
83
|
+
- "interview process" + frustration signals
|
|
84
|
+
- "layoff" OR "laid off" + recent
|
|
85
|
+
- "hiring" + recruiter perspective
|
|
86
|
+
|
|
87
|
+
For each post found, extract:
|
|
88
|
+
- Author name and title
|
|
89
|
+
- Post text (full)
|
|
90
|
+
- Engagement count (likes + comments)
|
|
91
|
+
- Posted time
|
|
92
|
+
- Post URL
|
|
93
|
+
|
|
94
|
+
### Step 4 — Score and filter
|
|
95
|
+
|
|
96
|
+
Score each post on 3 dimensions:
|
|
97
|
+
|
|
98
|
+
**Relevance (1-5):** How directly relevant is Job Hunter to this post?
|
|
99
|
+
- 5: Post is exactly about the problem Job Hunter solves
|
|
100
|
+
- 4: Adjacent topic where Job Hunter adds clear value
|
|
101
|
+
- 3: Tangentially related
|
|
102
|
+
- 1-2: Too far, skip
|
|
103
|
+
|
|
104
|
+
**Reach (1-5):** How many people will see this comment?
|
|
105
|
+
- 5: 500+ likes or the poster has 10k+ followers
|
|
106
|
+
- 4: 200-500 likes or 5k-10k followers
|
|
107
|
+
- 3: 100-200 likes
|
|
108
|
+
- 1-2: Under 100, skip (not worth the effort)
|
|
109
|
+
|
|
110
|
+
**Comment window (1-5):** Is there still time for the comment to get traction?
|
|
111
|
+
- 5: Under 6 hours old
|
|
112
|
+
- 4: 6-24 hours old
|
|
113
|
+
- 3: 24-48 hours old
|
|
114
|
+
- 1-2: Over 48 hours, skip
|
|
115
|
+
|
|
116
|
+
**Total score: 3-15. Surface anything scoring 9+.**
|
|
117
|
+
|
|
118
|
+
### Step 5 — Draft comments
|
|
119
|
+
|
|
120
|
+
For each qualifying post (score 9+), draft 2 comment options:
|
|
121
|
+
|
|
122
|
+
**Comment style rules:**
|
|
123
|
+
- 2-4 sentences maximum — LinkedIn comments reward brevity
|
|
124
|
+
- First sentence must add something specific to the conversation
|
|
125
|
+
- Not "Great post!" or "This is so true" — both are noise
|
|
126
|
+
- Reference something specific from the post text
|
|
127
|
+
- Mention Job Hunter naturally — not as an ad, as a genuine contribution
|
|
128
|
+
- Sound like a person who built something to solve this exact problem
|
|
129
|
+
- Never start with "Hi" or "I" as the first word
|
|
130
|
+
- No em dashes
|
|
131
|
+
|
|
132
|
+
**Option A — Contribution style:**
|
|
133
|
+
Add a specific insight or data point that extends the conversation,
|
|
134
|
+
then mention Job Hunter as context for why you know this.
|
|
135
|
+
|
|
136
|
+
*Example:*
|
|
137
|
+
"The ghost job problem is worse than most people realize — postings stay up
|
|
138
|
+
for months after hiring freezes because no one removes them. Built a ghost
|
|
139
|
+
job detector into an open source tool (jobhunter.ai) after getting burned
|
|
140
|
+
by this multiple times. Eight signals worth checking before you spend hours
|
|
141
|
+
tailoring an application."
|
|
142
|
+
|
|
143
|
+
**Option B — Solidarity + resource style:**
|
|
144
|
+
Acknowledge the specific frustration from the post, then offer
|
|
145
|
+
Job Hunter as a direct resource.
|
|
146
|
+
|
|
147
|
+
*Example:*
|
|
148
|
+
"100 applications, 2 callbacks — that math usually means the ATS is
|
|
149
|
+
filtering before a human sees the resume. Built a free tool specifically
|
|
150
|
+
for this after going through the same thing. jobhunter.ai if it's useful."
|
|
151
|
+
|
|
152
|
+
### Step 6 — Present for approval
|
|
153
|
+
|
|
154
|
+
Present each qualifying post and its draft comments in this format:
|
|
155
|
+
|
|
156
|
+
```
|
|
157
|
+
─────────────────────────────────────────────────────
|
|
158
|
+
POST [n] — Score: [X]/15
|
|
159
|
+
─────────────────────────────────────────────────────
|
|
160
|
+
Author: [Name] — [Title]
|
|
161
|
+
Posted: [X hours ago]
|
|
162
|
+
Engagement: [likes] likes · [comments] comments
|
|
163
|
+
URL: [url]
|
|
164
|
+
|
|
165
|
+
POST SUMMARY:
|
|
166
|
+
[2-3 sentence summary of what they said]
|
|
167
|
+
|
|
168
|
+
OPTION A — Contribution style:
|
|
169
|
+
─────────────────────
|
|
170
|
+
[Draft comment]
|
|
171
|
+
─────────────────────
|
|
172
|
+
|
|
173
|
+
OPTION B — Solidarity + resource style:
|
|
174
|
+
─────────────────────
|
|
175
|
+
[Draft comment]
|
|
176
|
+
─────────────────────
|
|
177
|
+
|
|
178
|
+
→ Use A / Use B / Edit / Skip
|
|
179
|
+
─────────────────────────────────────────────────────
|
|
180
|
+
```
|
|
181
|
+
|
|
182
|
+
Go through posts one at a time. Wait for the user's decision before
|
|
183
|
+
showing the next one.
|
|
184
|
+
|
|
185
|
+
### Step 7 — Approved comments queue
|
|
186
|
+
|
|
187
|
+
Keep a running list of approved comments:
|
|
188
|
+
|
|
189
|
+
```
|
|
190
|
+
APPROVED COMMENTS — Ready to post
|
|
191
|
+
─────────────────────────────────────────────────────
|
|
192
|
+
[n] comments approved
|
|
193
|
+
|
|
194
|
+
1. [Author] — [Post URL]
|
|
195
|
+
[Approved comment text]
|
|
196
|
+
[ ] Posted
|
|
197
|
+
|
|
198
|
+
2. [Author] — [Post URL]
|
|
199
|
+
[Approved comment text]
|
|
200
|
+
[ ] Posted
|
|
201
|
+
```
|
|
202
|
+
|
|
203
|
+
### Step 8 — Post queue
|
|
204
|
+
|
|
205
|
+
When the user has finished reviewing all posts, show the approved queue
|
|
206
|
+
and offer two paths:
|
|
207
|
+
|
|
208
|
+
**Path A — Post via LinkedIn MCP (if connected):**
|
|
209
|
+
"Ready to post [n] comments. Post them now? (yes / one at a time / save for later)"
|
|
210
|
+
|
|
211
|
+
If yes: post each approved comment via LinkedIn MCP to the correct thread.
|
|
212
|
+
Mark each as posted.
|
|
213
|
+
|
|
214
|
+
**Path B — Manual posting guide:**
|
|
215
|
+
If LinkedIn MCP isn't available for posting, generate a posting guide:
|
|
216
|
+
```
|
|
217
|
+
MANUAL POSTING GUIDE
|
|
218
|
+
|
|
219
|
+
For each comment below:
|
|
220
|
+
1. Open the URL
|
|
221
|
+
2. Click Comment
|
|
222
|
+
3. Paste the text
|
|
223
|
+
4. Post
|
|
224
|
+
|
|
225
|
+
[numbered list with URL + comment text]
|
|
226
|
+
```
|
|
227
|
+
|
|
228
|
+
### Step 9 — Save output
|
|
229
|
+
|
|
230
|
+
Write approved comments and status to `outputs/linkedin-scanner.md`.
|
|
231
|
+
Append each session — don't overwrite — so you build a record.
|
|
232
|
+
|
|
233
|
+
Tell the user:
|
|
234
|
+
> Scan complete. [n] posts found, [n] qualifying, [n] approved.
|
|
235
|
+
> [If posted:] [n] comments posted.
|
|
236
|
+
> [If manual:] Manual posting guide saved to outputs/linkedin-scanner.md
|
|
237
|
+
|
|
238
|
+
## Posting frequency guidance
|
|
239
|
+
|
|
240
|
+
```
|
|
241
|
+
SUSTAINABLE CADENCE
|
|
242
|
+
|
|
243
|
+
3-5 meaningful comments per day is enough to build real visibility.
|
|
244
|
+
More than 10/day starts to look like a bot — even when it isn't.
|
|
245
|
+
|
|
246
|
+
Best times: 8-10am and 5-7pm in your target market's time zone.
|
|
247
|
+
Best days: Tuesday through Thursday.
|
|
248
|
+
|
|
249
|
+
Track which comment styles get replies — those are the ones to do more of.
|
|
250
|
+
A comment that starts a real conversation is worth 10 that get ignored.
|
|
251
|
+
```
|
|
252
|
+
|
|
253
|
+
## ✅ What to do next
|
|
254
|
+
|
|
255
|
+
```
|
|
256
|
+
npm run linkedin-post ← write original posts for your own feed
|
|
257
|
+
npm run linkedin ← audit your profile so new visitors convert
|
|
258
|
+
npm run network ← direct outreach to people who engage with your comments
|
|
259
|
+
```
|
|
260
|
+
|
|
261
|
+
Apply all rules from `rules/writing-rules.md`.
|
|
262
|
+
No em dashes in any comment. Sound like a person.
|