cue-ai 0.9.2 → 0.9.3
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 +148 -170
- 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,117 @@
|
|
|
1
|
+
# Job Description Decoder
|
|
2
|
+
|
|
3
|
+
## What This Does
|
|
4
|
+
|
|
5
|
+
Reads between the lines of a job description. What are they really asking for?
|
|
6
|
+
What do the red flags mean? What does this role actually pay? What kind of
|
|
7
|
+
manager posts like this?
|
|
8
|
+
|
|
9
|
+
Most job seekers read a JD at face value. This reads it the way a recruiter
|
|
10
|
+
or insider would.
|
|
11
|
+
|
|
12
|
+
## Instructions for Claude Code
|
|
13
|
+
|
|
14
|
+
### Step 1 — Load inputs
|
|
15
|
+
|
|
16
|
+
Read `inputs/job-description.md`.
|
|
17
|
+
Read `inputs/my-resume.md` for context on fit assessment.
|
|
18
|
+
|
|
19
|
+
### Step 2 — Decode the JD
|
|
20
|
+
|
|
21
|
+
Produce the following sections:
|
|
22
|
+
|
|
23
|
+
---
|
|
24
|
+
|
|
25
|
+
### WHAT THEY'RE ACTUALLY LOOKING FOR
|
|
26
|
+
|
|
27
|
+
Strip away the corporate language and say what this role really needs.
|
|
28
|
+
Not "5+ years of experience in enterprise sales" — but "they had someone
|
|
29
|
+
leave who owned a specific segment and they need someone who can hit the ground
|
|
30
|
+
running without hand-holding."
|
|
31
|
+
|
|
32
|
+
2-4 sentences of plain-language translation.
|
|
33
|
+
|
|
34
|
+
---
|
|
35
|
+
|
|
36
|
+
### RED FLAGS
|
|
37
|
+
|
|
38
|
+
Flag any of the following language patterns if present, and explain what they
|
|
39
|
+
usually mean in practice:
|
|
40
|
+
|
|
41
|
+
- "Fast-paced environment" — often means disorganized or understaffed
|
|
42
|
+
- "Wear many hats" — often means no clear role definition and scope creep
|
|
43
|
+
- "Self-starter" / "entrepreneurial" — often means minimal support or training
|
|
44
|
+
- "Competitive salary" without a number — often means below market
|
|
45
|
+
- "Must be comfortable with ambiguity" — often means leadership doesn't have a plan
|
|
46
|
+
- "Rock star" / "ninja" / "guru" — often signals culture problems
|
|
47
|
+
- "Like a family here" — often means poor boundaries and unpaid overtime expectations
|
|
48
|
+
- "Unlimited PTO" — often means pressure not to take it
|
|
49
|
+
- "Results-oriented" without defining results — often means undefined success metrics
|
|
50
|
+
- Long list of requirements for a mid-level role — often means they've burned through people
|
|
51
|
+
- Requirements that span 3 different job families — often means they want one person to do three jobs
|
|
52
|
+
|
|
53
|
+
For each red flag found: quote the exact phrase, explain what it usually signals,
|
|
54
|
+
and rate the concern: Minor / Worth asking about / Significant.
|
|
55
|
+
|
|
56
|
+
---
|
|
57
|
+
|
|
58
|
+
### WHAT THIS ROLE ACTUALLY PAYS
|
|
59
|
+
|
|
60
|
+
Based on:
|
|
61
|
+
- The role title and seniority level
|
|
62
|
+
- The company size and industry (infer from JD if not stated)
|
|
63
|
+
- The location
|
|
64
|
+
- Whether a range is posted (if yes, note that posted minimums are often negotiable up 10-20%)
|
|
65
|
+
|
|
66
|
+
Produce:
|
|
67
|
+
- Likely base range
|
|
68
|
+
- Likely OTE range (if sales/commission role)
|
|
69
|
+
- What the posting language signals about comp philosophy
|
|
70
|
+
(e.g. "competitive compensation" with no number = likely underpaying vs market)
|
|
71
|
+
|
|
72
|
+
---
|
|
73
|
+
|
|
74
|
+
### WHAT KIND OF MANAGER POSTED THIS
|
|
75
|
+
|
|
76
|
+
Based on the language, structure, and emphasis of the JD, characterize the
|
|
77
|
+
likely manager or culture:
|
|
78
|
+
|
|
79
|
+
- Heavy on requirements, light on what you'll get = transactional culture
|
|
80
|
+
- Detailed about growth and learning = likely invests in people
|
|
81
|
+
- Lots of buzzwords = likely leadership-by-trend
|
|
82
|
+
- Clear metrics and outcomes = likely data-driven, good or bad
|
|
83
|
+
- Vague about success metrics = likely unclear expectations
|
|
84
|
+
|
|
85
|
+
Be direct. This section should help the candidate decide whether to invest
|
|
86
|
+
time applying.
|
|
87
|
+
|
|
88
|
+
---
|
|
89
|
+
|
|
90
|
+
### FIT ASSESSMENT
|
|
91
|
+
|
|
92
|
+
Based on the resume:
|
|
93
|
+
- Where this candidate is strong for this role (specific)
|
|
94
|
+
- Where they have gaps (specific)
|
|
95
|
+
- The one thing they need to nail in the screening call to get past the JD concerns
|
|
96
|
+
|
|
97
|
+
---
|
|
98
|
+
|
|
99
|
+
### QUESTIONS TO ASK IN THE INTERVIEW
|
|
100
|
+
|
|
101
|
+
5 questions this JD specifically warrants asking — to validate or disprove
|
|
102
|
+
the red flags and get the real story on the role.
|
|
103
|
+
|
|
104
|
+
---
|
|
105
|
+
|
|
106
|
+
### Save output
|
|
107
|
+
|
|
108
|
+
Write to `outputs/jd-decoded.md`.
|
|
109
|
+
|
|
110
|
+
---
|
|
111
|
+
|
|
112
|
+
## ✅ What to do next
|
|
113
|
+
|
|
114
|
+
```
|
|
115
|
+
npm run ats ← check your resume against the ATS before tailoring
|
|
116
|
+
npm run resume ← tailor resume to this specific role
|
|
117
|
+
```
|
|
@@ -0,0 +1,183 @@
|
|
|
1
|
+
# Job Fit Scorer
|
|
2
|
+
|
|
3
|
+
## What This Does
|
|
4
|
+
|
|
5
|
+
Scores how competitive you actually are for a specific role before you apply.
|
|
6
|
+
Not the ATS match score — that's software. This is the human judgment score.
|
|
7
|
+
|
|
8
|
+
The ATS scanner tells you if software will filter you out.
|
|
9
|
+
This tells you if a hiring manager will care.
|
|
10
|
+
|
|
11
|
+
Paste your resume and a job description. Get a 1-10 fit score, an honest
|
|
12
|
+
breakdown of where you're strong and where you're not, a clear Apply /
|
|
13
|
+
Don't Apply / Apply With Caveats recommendation, and exactly what to address
|
|
14
|
+
in the cover letter and interviews if you do apply.
|
|
15
|
+
|
|
16
|
+
## Instructions for Claude Code
|
|
17
|
+
|
|
18
|
+
### Step 1 — Load inputs
|
|
19
|
+
|
|
20
|
+
Read `inputs/my-resume.md`.
|
|
21
|
+
Read `inputs/job-description.md`.
|
|
22
|
+
Read `rules/writing-rules.md`.
|
|
23
|
+
|
|
24
|
+
If `outputs/reality-check.md` exists, read it — use the market positioning
|
|
25
|
+
already established there to inform this assessment.
|
|
26
|
+
|
|
27
|
+
### Step 2 — Analyze fit across five dimensions
|
|
28
|
+
|
|
29
|
+
Score each dimension 1-10 and explain the score specifically.
|
|
30
|
+
|
|
31
|
+
**Dimension 1 — Experience Match**
|
|
32
|
+
Does the candidate have relevant experience doing the same or similar work?
|
|
33
|
+
- 9-10: Almost identical role at a comparable company
|
|
34
|
+
- 7-8: Closely related role, similar scope
|
|
35
|
+
- 5-6: Adjacent experience, some overlap
|
|
36
|
+
- 3-4: Thin overlap, significant stretch
|
|
37
|
+
- 1-2: Little to no relevant experience
|
|
38
|
+
|
|
39
|
+
**Dimension 2 — Level Match**
|
|
40
|
+
Is the candidate at the right seniority level for this role?
|
|
41
|
+
- Over-qualified, Under-qualified, or Right-qualified?
|
|
42
|
+
- Over-qualified is not automatically good — companies often reject people
|
|
43
|
+
they think will leave once something better comes along
|
|
44
|
+
|
|
45
|
+
**Dimension 3 — Industry / Domain Match**
|
|
46
|
+
Does their background map to the industry, buyer type, or domain?
|
|
47
|
+
- Selling healthcare software to hospital CFOs vs. selling retail POS to SMBs
|
|
48
|
+
are different skills even if both are "sales"
|
|
49
|
+
- Be specific about the mismatch or match
|
|
50
|
+
|
|
51
|
+
**Dimension 4 — Track Record Match**
|
|
52
|
+
Does their quantified performance align with what this role expects?
|
|
53
|
+
- If the JD implies $2M quota and their biggest was $500K — flag it
|
|
54
|
+
- If the JD wants enterprise and they've done SMB — flag it
|
|
55
|
+
- If their numbers are strong and directly relevant — note it
|
|
56
|
+
|
|
57
|
+
**Dimension 5 — Culture / Company Stage Match**
|
|
58
|
+
Does their background suggest they'd thrive in this environment?
|
|
59
|
+
- Startup vs. enterprise
|
|
60
|
+
- High-growth vs. stable
|
|
61
|
+
- Founder-led vs. professionally managed
|
|
62
|
+
- Infer from JD language and company signals
|
|
63
|
+
|
|
64
|
+
### Step 3 — Fit Score Report
|
|
65
|
+
|
|
66
|
+
Write the report in this exact structure:
|
|
67
|
+
|
|
68
|
+
---
|
|
69
|
+
|
|
70
|
+
```
|
|
71
|
+
JOB FIT SCORE
|
|
72
|
+
Role: [title] at [company]
|
|
73
|
+
─────────────────────────────────────────────────────
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
**OVERALL FIT: [X]/10**
|
|
77
|
+
|
|
78
|
+
**RECOMMENDATION: APPLY / DON'T APPLY / APPLY WITH CAVEATS**
|
|
79
|
+
|
|
80
|
+
One sentence explaining the recommendation. Direct.
|
|
81
|
+
|
|
82
|
+
---
|
|
83
|
+
|
|
84
|
+
**SCORECARD**
|
|
85
|
+
|
|
86
|
+
| Dimension | Score | Summary |
|
|
87
|
+
|---|---|---|
|
|
88
|
+
| Experience Match | X/10 | one line |
|
|
89
|
+
| Level Match | X/10 | one line |
|
|
90
|
+
| Industry / Domain | X/10 | one line |
|
|
91
|
+
| Track Record | X/10 | one line |
|
|
92
|
+
| Culture / Stage | X/10 | one line |
|
|
93
|
+
|
|
94
|
+
---
|
|
95
|
+
|
|
96
|
+
**WHERE YOU'RE STRONG FOR THIS ROLE**
|
|
97
|
+
|
|
98
|
+
2-4 specific things from the resume that directly match what this role needs.
|
|
99
|
+
These are your selling points — use them in the cover letter and interviews.
|
|
100
|
+
|
|
101
|
+
---
|
|
102
|
+
|
|
103
|
+
**WHERE YOU'RE WEAK FOR THIS ROLE**
|
|
104
|
+
|
|
105
|
+
2-4 specific gaps between what the JD requires and what the resume shows.
|
|
106
|
+
Be precise — not "limited experience" but "JD requires enterprise deals over $500K,
|
|
107
|
+
resume shows largest deal was $180K at mid-market."
|
|
108
|
+
|
|
109
|
+
---
|
|
110
|
+
|
|
111
|
+
**IF YOU APPLY: HOW TO FRAME IT**
|
|
112
|
+
|
|
113
|
+
If the recommendation is Apply or Apply With Caveats:
|
|
114
|
+
|
|
115
|
+
- The angle — the single most compelling reason to hire this person despite the gaps
|
|
116
|
+
- What to emphasize in the cover letter (2-3 specific points)
|
|
117
|
+
- What to prepare to address in the screening call (the objections they'll raise)
|
|
118
|
+
- What NOT to bring up or volunteer
|
|
119
|
+
|
|
120
|
+
---
|
|
121
|
+
|
|
122
|
+
**IF YOU DON'T APPLY: WHY NOT AND WHAT INSTEAD**
|
|
123
|
+
|
|
124
|
+
If the recommendation is Don't Apply:
|
|
125
|
+
|
|
126
|
+
- The specific reason this application will likely fail
|
|
127
|
+
- What this role would actually require (honest gap assessment)
|
|
128
|
+
- 2-3 alternative role types that would be a better use of this application effort
|
|
129
|
+
- What would need to change to make this role viable in 12-18 months
|
|
130
|
+
|
|
131
|
+
---
|
|
132
|
+
|
|
133
|
+
### Step 4 — Save output
|
|
134
|
+
|
|
135
|
+
Write to `outputs/fit-score.md`.
|
|
136
|
+
|
|
137
|
+
Tell the user:
|
|
138
|
+
> Fit score complete: [X]/10 — [APPLY/DON'T APPLY/APPLY WITH CAVEATS]
|
|
139
|
+
> Saved to outputs/fit-score.md
|
|
140
|
+
|
|
141
|
+
If the score is 7 or above, continue automatically:
|
|
142
|
+
> Score is [X]/10 — running ATS scan next.
|
|
143
|
+
Then execute `agents/apply-ats-scan.md` against the same resume and JD.
|
|
144
|
+
|
|
145
|
+
### Step 5 — Pipeline continuation
|
|
146
|
+
|
|
147
|
+
If APPLY or APPLY WITH CAVEATS and score >= 7:
|
|
148
|
+
Tell the user the recommended next sequence:
|
|
149
|
+
```
|
|
150
|
+
npm run ats ← check ATS issues
|
|
151
|
+
npm run resume ← tailor resume
|
|
152
|
+
npm run cover-letter ← write cover letter
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
If DON'T APPLY or score < 5:
|
|
156
|
+
Tell the user:
|
|
157
|
+
```
|
|
158
|
+
npm run reality-check ← get a broader picture of where you're competitive
|
|
159
|
+
npm run jobs ← find roles that fit your actual profile
|
|
160
|
+
```
|
|
161
|
+
|
|
162
|
+
## ✅ What to do next
|
|
163
|
+
|
|
164
|
+
**Score 7-10 / Apply:**
|
|
165
|
+
```
|
|
166
|
+
npm run ats ← fix ATS issues before submitting
|
|
167
|
+
npm run resume ← tailor resume to this specific role
|
|
168
|
+
npm run cover-letter ← write the cover letter
|
|
169
|
+
```
|
|
170
|
+
|
|
171
|
+
**Score below 7 / Don't Apply:**
|
|
172
|
+
```
|
|
173
|
+
npm run reality-check ← understand your actual market before applying anywhere
|
|
174
|
+
npm run jobs ← find roles you're genuinely competitive for
|
|
175
|
+
```
|
|
176
|
+
|
|
177
|
+
## Tone
|
|
178
|
+
|
|
179
|
+
Honest. A 4/10 is a 4/10. Don't soften it to a 6 to spare feelings.
|
|
180
|
+
A candidate who applies to a 4/10 role wastes time they could spend on a 8/10.
|
|
181
|
+
The most useful thing this tool can do is tell someone not to apply.
|
|
182
|
+
|
|
183
|
+
Apply all rules from `rules/writing-rules.md` to all written content.
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
# LinkedIn Profile Analyzer
|
|
2
|
+
|
|
3
|
+
## Instructions for Claude Code
|
|
4
|
+
|
|
5
|
+
You are a senior B2B sales recruiter and LinkedIn optimization specialist. Your job is to give an honest, direct audit of a LinkedIn profile — the kind of feedback a good headhunter gives behind closed doors, not the polished version they say to your face.
|
|
6
|
+
|
|
7
|
+
## Step 1 — Load inputs
|
|
8
|
+
|
|
9
|
+
Read `inputs/my-linkedin.md`. This contains the user's LinkedIn profile.
|
|
10
|
+
Read `inputs/job-description.md`. This contains their target role.
|
|
11
|
+
Read `rules/writing-rules.md`. These rules govern all rewritten content you produce.
|
|
12
|
+
|
|
13
|
+
## Step 2 — Analyze each section
|
|
14
|
+
|
|
15
|
+
Audit the following sections in order. For each section give:
|
|
16
|
+
- A rating: Strong / Needs Work / Critical Fix
|
|
17
|
+
- 2-3 sentences of specific feedback
|
|
18
|
+
- A rewritten version (if Needs Work or Critical Fix)
|
|
19
|
+
|
|
20
|
+
### Headline
|
|
21
|
+
- Is it buyer-facing or resume-facing? Buyers skim headlines — they need to know immediately what problem you solve, not your job title.
|
|
22
|
+
- Does it contain keywords a recruiter searching for this role would use?
|
|
23
|
+
- Is it specific enough to be memorable?
|
|
24
|
+
|
|
25
|
+
### About Section
|
|
26
|
+
- Does it open strong? The first two lines appear before "see more" — they must hook.
|
|
27
|
+
- Is it written in first person and does it sound like a human?
|
|
28
|
+
- Does it tell a coherent story about why this person, this role?
|
|
29
|
+
- Does it contain numbers or specifics, or only vague claims?
|
|
30
|
+
|
|
31
|
+
### Experience Section (most recent 2-3 roles)
|
|
32
|
+
- Do the bullets lead with action verbs?
|
|
33
|
+
- Do the bullets contain measurable results?
|
|
34
|
+
- Are the bullets written in the language of the target role (from job-description.md)?
|
|
35
|
+
- Any "responsible for" or filler phrases? Flag and rewrite them.
|
|
36
|
+
|
|
37
|
+
### Skills Section
|
|
38
|
+
- Are the top 3 pinned skills relevant to the target role?
|
|
39
|
+
- Any obvious missing skills from the job description?
|
|
40
|
+
|
|
41
|
+
### Profile Completeness
|
|
42
|
+
- Custom URL set?
|
|
43
|
+
- Featured section populated?
|
|
44
|
+
- Recommendations present?
|
|
45
|
+
|
|
46
|
+
## Step 3 — Keyword gap analysis
|
|
47
|
+
|
|
48
|
+
Compare the job description to the profile. List:
|
|
49
|
+
- Keywords in the JD that appear nowhere in the profile (add these)
|
|
50
|
+
- Keywords in the profile that are irrelevant to the target role (consider removing)
|
|
51
|
+
|
|
52
|
+
## Step 4 — Priority action list
|
|
53
|
+
|
|
54
|
+
Output a numbered list of the top 5 changes to make, ordered by impact. Be direct. "Rewrite your headline" is more useful than "consider updating your headline."
|
|
55
|
+
|
|
56
|
+
## Step 5 — Save output
|
|
57
|
+
|
|
58
|
+
Write the full audit to `outputs/linkedin-audit.md`.
|
|
59
|
+
|
|
60
|
+
## Tone
|
|
61
|
+
|
|
62
|
+
Direct. Honest. Useful. Not harsh for its own sake, but do not soften a bad headline by calling it "a good start." If something is weak, say it is weak and fix it. The user needs accurate feedback, not encouragement.
|
|
63
|
+
|
|
64
|
+
Apply all rules from `rules/writing-rules.md` to any rewritten content you produce.
|
|
65
|
+
|
|
66
|
+
---
|
|
67
|
+
|
|
68
|
+
## ✅ What to do next
|
|
69
|
+
|
|
70
|
+
Make the CRITICAL fixes on LinkedIn first. Then:
|
|
71
|
+
```
|
|
72
|
+
npm run resume ← tailor your resume to the role you're targeting
|
|
73
|
+
npm run decode ← understand the JD before applying
|
|
74
|
+
```
|
|
@@ -0,0 +1,255 @@
|
|
|
1
|
+
# LinkedIn MCP Scraper — Setup & Auto-Audit
|
|
2
|
+
|
|
3
|
+
## What This Does
|
|
4
|
+
|
|
5
|
+
Installs and configures `linkedin-mcp-server`, scrapes your LinkedIn profile by URL,
|
|
6
|
+
formats it into Job Hunter's standard input format, then runs the LinkedIn audit
|
|
7
|
+
automatically — no copy-paste required.
|
|
8
|
+
|
|
9
|
+
**This is the advanced path.** If you just want to paste your profile text, use
|
|
10
|
+
`npm run linkedin` instead.
|
|
11
|
+
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
## Prerequisites Check
|
|
15
|
+
|
|
16
|
+
Before doing anything else, verify the following are installed:
|
|
17
|
+
|
|
18
|
+
```bash
|
|
19
|
+
python3 --version # needs 3.8+
|
|
20
|
+
uv --version # needs uv package manager
|
|
21
|
+
google-chrome --version || chromium-browser --version # needs Chrome or Chromium
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
If `uv` is missing, install it:
|
|
25
|
+
```bash
|
|
26
|
+
curl -LsSf https://astral.sh/uv/install.sh | sh
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
If Chrome is missing, download from https://www.google.com/chrome/
|
|
30
|
+
|
|
31
|
+
---
|
|
32
|
+
|
|
33
|
+
## Instructions for Claude Code
|
|
34
|
+
|
|
35
|
+
You are setting up the LinkedIn MCP scraper and running a full profile audit.
|
|
36
|
+
Follow each step in order. If any step fails, report the exact error before stopping.
|
|
37
|
+
|
|
38
|
+
### Step 1 — Check prerequisites
|
|
39
|
+
|
|
40
|
+
Run the following and report results:
|
|
41
|
+
|
|
42
|
+
```bash
|
|
43
|
+
python3 --version
|
|
44
|
+
uv --version
|
|
45
|
+
which google-chrome || which chromium-browser || which chromium
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
If `uv` is not found, run:
|
|
49
|
+
```bash
|
|
50
|
+
curl -LsSf https://astral.sh/uv/install.sh | sh
|
|
51
|
+
source $HOME/.cargo/env 2>/dev/null || source $HOME/.local/bin/env 2>/dev/null || true
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
If Chrome/Chromium is not found, stop and tell the user to install Chrome from
|
|
55
|
+
https://www.google.com/chrome/ before continuing.
|
|
56
|
+
|
|
57
|
+
### Step 2 — First-time login (only needed once)
|
|
58
|
+
|
|
59
|
+
Check if a LinkedIn session already exists:
|
|
60
|
+
|
|
61
|
+
```bash
|
|
62
|
+
ls ~/.linkedin-mcp/profile/Default/Cookies 2>/dev/null && echo "SESSION EXISTS" || echo "NO SESSION"
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
If NO SESSION, run the login command to open a browser window:
|
|
66
|
+
|
|
67
|
+
```bash
|
|
68
|
+
uvx linkedin-scraper-mcp@latest --login
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
Tell the user:
|
|
72
|
+
> A Chrome window has opened. Log into LinkedIn normally — use your regular
|
|
73
|
+
> username and password. Once you're logged in and can see your LinkedIn feed,
|
|
74
|
+
> come back here and press Enter to continue.
|
|
75
|
+
|
|
76
|
+
Wait for the user to confirm they've logged in before proceeding.
|
|
77
|
+
|
|
78
|
+
If SESSION EXISTS, skip this step and tell the user their session is already saved.
|
|
79
|
+
|
|
80
|
+
### Step 3 — Read the LinkedIn URL
|
|
81
|
+
|
|
82
|
+
Read the file `inputs/apply-linkedin-url.txt`. This should contain a single LinkedIn
|
|
83
|
+
profile URL, e.g. `https://www.linkedin.com/in/yourname/`
|
|
84
|
+
|
|
85
|
+
If the file is empty or missing, stop and tell the user:
|
|
86
|
+
> Please create the file `inputs/apply-linkedin-url.txt` and paste your LinkedIn
|
|
87
|
+
> profile URL into it (just the URL, nothing else), then run this agent again.
|
|
88
|
+
|
|
89
|
+
### Step 4 — Start the MCP server
|
|
90
|
+
|
|
91
|
+
Start the LinkedIn MCP server in the background:
|
|
92
|
+
|
|
93
|
+
```bash
|
|
94
|
+
uvx linkedin-scraper-mcp@latest --transport streamable-http \
|
|
95
|
+
--host 127.0.0.1 --port 8765 --path /mcp \
|
|
96
|
+
--user-data-dir ~/.linkedin-mcp/profile \
|
|
97
|
+
--headless true \
|
|
98
|
+
--log-level WARNING &
|
|
99
|
+
|
|
100
|
+
MCP_PID=$!
|
|
101
|
+
echo "MCP server PID: $MCP_PID"
|
|
102
|
+
sleep 5
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
Verify it started:
|
|
106
|
+
```bash
|
|
107
|
+
curl -s http://127.0.0.1:8765/mcp/health 2>/dev/null && echo "SERVER UP" || echo "SERVER NOT RESPONDING"
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
If SERVER NOT RESPONDING after 10 seconds, try increasing the wait and checking again.
|
|
111
|
+
If it still fails, stop and report the error output.
|
|
112
|
+
|
|
113
|
+
### Step 5 — Scrape the profile
|
|
114
|
+
|
|
115
|
+
Read the URL from `inputs/apply-linkedin-url.txt`.
|
|
116
|
+
|
|
117
|
+
Use the MCP server at `http://127.0.0.1:8765/mcp` to call the `get_person_profile`
|
|
118
|
+
tool with:
|
|
119
|
+
- `profile_url`: the URL from the file
|
|
120
|
+
- `sections`: `["main", "experience", "education", "skills", "contact_info"]`
|
|
121
|
+
|
|
122
|
+
If the scrape returns a captcha challenge or login error:
|
|
123
|
+
> LinkedIn is asking for verification. Run `uvx linkedin-scraper-mcp@latest --login`
|
|
124
|
+
> to re-authenticate, then run this agent again.
|
|
125
|
+
|
|
126
|
+
### Step 6 — Format into Job Hunter input
|
|
127
|
+
|
|
128
|
+
Take the scraped profile data and write it to `inputs/my-linkedin.md` using this
|
|
129
|
+
exact structure:
|
|
130
|
+
|
|
131
|
+
```markdown
|
|
132
|
+
# My LinkedIn Profile
|
|
133
|
+
|
|
134
|
+
## Headline
|
|
135
|
+
[scraped headline]
|
|
136
|
+
|
|
137
|
+
## About
|
|
138
|
+
[scraped about/summary section]
|
|
139
|
+
|
|
140
|
+
## Experience
|
|
141
|
+
|
|
142
|
+
### [Job Title] | [Company] | [Start Date] - [End Date or Present]
|
|
143
|
+
[bullet points from description]
|
|
144
|
+
|
|
145
|
+
[repeat for each role]
|
|
146
|
+
|
|
147
|
+
## Skills
|
|
148
|
+
[comma-separated list of top skills]
|
|
149
|
+
|
|
150
|
+
## Education
|
|
151
|
+
### [Degree] | [School] | [Year]
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
Tell the user:
|
|
155
|
+
> Profile scraped successfully. Saved to inputs/my-linkedin.md — here's a preview
|
|
156
|
+
> of the first few lines:
|
|
157
|
+
|
|
158
|
+
Show the first 20 lines of `inputs/my-linkedin.md`.
|
|
159
|
+
|
|
160
|
+
### Step 7 — Shut down the MCP server
|
|
161
|
+
|
|
162
|
+
```bash
|
|
163
|
+
kill $MCP_PID 2>/dev/null || pkill -f "linkedin-scraper-mcp" 2>/dev/null
|
|
164
|
+
echo "MCP server stopped"
|
|
165
|
+
```
|
|
166
|
+
|
|
167
|
+
### Step 8 — Check for job description
|
|
168
|
+
|
|
169
|
+
Check if `inputs/job-description.md` has been filled in (more than 200 characters
|
|
170
|
+
of non-template content).
|
|
171
|
+
|
|
172
|
+
If it's empty or still a template, tell the user:
|
|
173
|
+
> Your LinkedIn profile has been scraped and saved. Before running the audit,
|
|
174
|
+
> paste a job description into `inputs/job-description.md`, then run:
|
|
175
|
+
> `npm run linkedin`
|
|
176
|
+
|
|
177
|
+
If it's filled in, proceed directly to Step 9.
|
|
178
|
+
|
|
179
|
+
### Step 9 — Run the LinkedIn audit
|
|
180
|
+
|
|
181
|
+
Read `inputs/my-linkedin.md` (just scraped).
|
|
182
|
+
Read `inputs/job-description.md`.
|
|
183
|
+
Read `rules/writing-rules.md`.
|
|
184
|
+
|
|
185
|
+
Now perform the full LinkedIn audit as defined in `agents/linkedin-analyzer.md`.
|
|
186
|
+
|
|
187
|
+
Execute every step in that agent and write the output to `outputs/linkedin-audit.md`.
|
|
188
|
+
|
|
189
|
+
Tell the user:
|
|
190
|
+
> Audit complete. Your results are in outputs/linkedin-audit.md
|
|
191
|
+
|
|
192
|
+
Show the Priority Action List section of the output so the user sees their top
|
|
193
|
+
5 actions immediately.
|
|
194
|
+
|
|
195
|
+
---
|
|
196
|
+
|
|
197
|
+
## Running This Agent
|
|
198
|
+
|
|
199
|
+
```bash
|
|
200
|
+
# First time — reads URL, logs in, scrapes, audits
|
|
201
|
+
claude "follow agents/linkedin-scraper-setup.md"
|
|
202
|
+
|
|
203
|
+
# After first login — just scrape and audit
|
|
204
|
+
claude "follow agents/linkedin-scraper-setup.md"
|
|
205
|
+
```
|
|
206
|
+
|
|
207
|
+
Or with npm:
|
|
208
|
+
```bash
|
|
209
|
+
npm run linkedin-scrape
|
|
210
|
+
```
|
|
211
|
+
|
|
212
|
+
---
|
|
213
|
+
|
|
214
|
+
## Troubleshooting
|
|
215
|
+
|
|
216
|
+
**Captcha / login errors**
|
|
217
|
+
```bash
|
|
218
|
+
uvx linkedin-scraper-mcp@latest --login
|
|
219
|
+
```
|
|
220
|
+
Log in manually in the browser window, then re-run the agent.
|
|
221
|
+
|
|
222
|
+
**Server won't start**
|
|
223
|
+
```bash
|
|
224
|
+
pkill -f linkedin-scraper-mcp
|
|
225
|
+
uvx linkedin-scraper-mcp@latest --transport streamable-http --host 127.0.0.1 --port 8765 --path /mcp --headless true
|
|
226
|
+
```
|
|
227
|
+
|
|
228
|
+
**Profile not found / empty sections**
|
|
229
|
+
Some profiles are private or have restricted visibility. The scraper can only
|
|
230
|
+
access what LinkedIn shows to logged-in users. If your own profile comes back
|
|
231
|
+
empty, make sure you're logged into the correct account.
|
|
232
|
+
|
|
233
|
+
**uv command not found after install**
|
|
234
|
+
```bash
|
|
235
|
+
source $HOME/.local/bin/env
|
|
236
|
+
```
|
|
237
|
+
Then re-run the agent.
|
|
238
|
+
|
|
239
|
+
---
|
|
240
|
+
|
|
241
|
+
## Privacy Note
|
|
242
|
+
|
|
243
|
+
Your LinkedIn credentials are stored locally in `~/.linkedin-mcp/profile/` —
|
|
244
|
+
the same place Chrome stores any browser profile. They never leave your machine.
|
|
245
|
+
The scraper runs Chrome on your computer; it does not proxy through any third-party
|
|
246
|
+
service.
|
|
247
|
+
|
|
248
|
+
---
|
|
249
|
+
|
|
250
|
+
## ✅ What to do next
|
|
251
|
+
|
|
252
|
+
Your profile is saved to `inputs/my-linkedin.md`. Run the audit:
|
|
253
|
+
```
|
|
254
|
+
npm run linkedin ← full audit against your target role
|
|
255
|
+
```
|