From career-navigator
Read-only snapshot of the user's own LinkedIn post analytics into tracker.json networking entries. Requires browser control (Claude in Chrome MCP or approved computer/browser use). Scheduled-friendly.
npx claudepluginhub tmargolis/career-navigator --plugin career-navigatorThis skill uses the workspace's default tool permissions.
1. **Pattern:** [CONNECTORS.md](CONNECTORS.md) **three-step** for this integration: **Discover** — no standard LinkedIn MCP here; **Configure** — user **logged into LinkedIn** in the host browser (**they** sign in); **Browser access** — **ask** **Claude in Chrome** and/or **computer use** (**neither** / one / both). If **neither** or no tooling, **stop**—do **not** scrape without **read-only** ...
Guides Payload CMS config (payload.config.ts), collections, fields, hooks, access control, APIs. Debugs validation errors, security, relationships, queries, transactions, hook behavior.
Builds scalable data pipelines, modern data warehouses, and real-time streaming architectures using Spark, dbt, Airflow, Kafka, and cloud platforms like Snowflake, BigQuery.
Builds production Apache Airflow DAGs with best practices for operators, sensors, testing, and deployment. For data pipelines, workflow orchestration, and batch job scheduling.
{user_dir}: Resolve the job-search folder; tracker is {user_dir}/CareerNavigator/tracker.json./schedule (or user asked for unattended), do not ask interactive browser/tooling questions. Continue only when prior consent is already saved in {user_dir}/CareerNavigator/profile.md under ## LinkedIn:
LinkedIn slug: <value>LinkedIn analytics permission: grantedLinkedIn analytics mode: chrome | computer | either
If any of these are missing, stop with a concise setup message telling the user to run one interactive setup once.Preferred order: for interactive runs, use the user-approved mode (chrome, computer, or either). If mode is either, try Claude in Chrome first, then computer.
Claude in Chrome path (strict, typed params):
tabs_context_mcp with correctly typed values (for example, createIfEmpty must be the boolean true, not the string "true").tabs_create_mcp, then retry tabs_context_mcp once.navigate to the LinkedIn URL.navigate fails because tabId is typed incorrectly, retry once with a numeric tabId (integer, not quoted).linkedin-post-analytics."No circular fallback loops:
either.For your own posts only: open recent activity, collect per-post analytics, append today’s snapshot to tracker.json (networking[]), report a one-line summary per post.
{user_dir}/CareerNavigator/profile.md → ## LinkedIn → LinkedIn slug:. If present, use it. If missing or blank, ask once and save it back to profile.md under that heading before proceeding.LinkedIn analytics permission: granted | deniedLinkedIn analytics mode: chrome | computer | either
Scheduled runs require permission: granted plus a mode.…/feed/update/urn:li:activity:…), date posted (best effort), topic (short label). Open View analytics (bar chart) and read: impressions, members reached, reactions, comments, reposts, saves, sends on LinkedIn, profile viewers from post, followers gained, link visits, plus top audience (industry / seniority / company size) if shown.tracker.json. For each post:
networking has type: "linkedin_post" and matching url: append to analytics_history one object: { "date": "YYYY-MM-DD", …metrics… } (same field names as below).id = next net-NNN (max existing + 1), type: "linkedin_post", description, url, date_posted, analytics_history: [ { … } ], notes (e.g. auto-discovered + date), outcome: "active".tracker.json back. Preserve unrelated keys (applications, etc.).analytics_history object (use 0 or [] / "—" when unknown):
impressions, members_reached, reactions, comments, reposts, saves, sends, profile_viewers_from_post, followers_gained, link_visits, links (array), top_audience: { "industry", "seniority", "company_size" } (strings).
One line per post: [topic], impressions: X(+Y), reactions: X(+Y), comments: X(+Y), reposts: X(+Y), link visits: X(+Y), [date]. Flag posts with meaningful day-over-day growth (Y) vs the latest prior snapshot. If no posts in the window, say so and exit.
For users who granted permission and saved mode, morning /schedule runs are supported. Weekly or biweekly cadence is enough for most job-search visibility loops, but daily is acceptable during active networking pushes.