From career-navigator
Runs on the daily scheduler. Delivers the routine operating brief (pipeline digest, overdue follow-ups, interview context, conditional pre-interview brief for today, market summary, and action prompts). /career-navigator:morning-brief triggers a focused day-of prep slice only—no separate morning-brief skill.
npx claudepluginhub tmargolis/career-navigator --plugin career-navigatorThis skill uses the workspace's default tool permissions.
This skill is designed to run as a **daily scheduled task** using Cowork’s **`/schedule`** (or equivalent). Example payload the user might schedule:
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.
This skill is designed to run as a daily scheduled task using Cowork’s /schedule (or equivalent). Example payload the user might schedule:
Run the Career Navigator
daily-scheduleskill for my job search folder. Deliver the daily brief perskills/daily-schedule/SKILL.md.
After the first successful run, Cowork typically refines the scheduled prompt with learned paths, connectors, and context.
{user_dir} and validate data filesCheck:
{user_dir}/CareerNavigator/profile.md{user_dir}/CareerNavigator/ExperienceLibrary.json{user_dir}/CareerNavigator/tracker.json{user_dir}/CareerNavigator/artifacts-index.json{user_dir}/CareerNavigator/StoryCorpus.json (create-on-demand is allowed via mine-stories)If missing, output:
Daily brief skipped: run
/career-navigator:launchto initialize Career Navigator.
Before computing the brief, scan {user_dir} for any PDF/DOCX artifacts.
If one or more artifact files are present, run artifact-saved first so
artifacts-index.json is synchronized before counts are calculated.
If no artifacts are found, continue without running artifact-saved.
Before finalizing the brief, detect whether newly discovered resume/CV-style files are present in {user_dir} but not yet represented as source entries in ExperienceLibrary.
When such files are found:
add-source for each newly discovered source document (no manual prompt required).artifact-saved once to keep artifacts-index.json consistent.If an ingest fails for any file:
/career-navigator:add-source for those specific files.Before finalizing the brief, detect whether story-bearing source files changed since the last story mining run:
Use CareerNavigator/StoryCorpus.json source_index entries (path + mtime) as the
baseline when available.
When at least one new/changed eligible source file is detected:
mine-stories in incremental mode (no manual prompt required).StoryCorpus.json and its meta.updated + source_index.Story corpus refreshed: {n_files} source file(s) scanned, {n_stories} stories added/updated.If refresh fails:
Story corpus refresh failed; run "mine-stories" to retry.If {user_dir}/CareerNavigator/career-trajectory.md exists, determine whether it
is stale:
as_of date from the career_trajectory_v1 JSON
block, or a heading like ## Career trajectory analysis ({YYYY-MM-DD}).as_of
(rejections, offers, accepted completions; do not count pending).If stale, set career_plan_refresh_due = true.
Check tracker for any active application where:
status is "offer"{user_dir}/CareerNavigator/offer-context-{application_id}.json does
not exist (offer evaluation has not been run yet)If any exist, set offer_evaluation_due = true and capture up to 3 items
with company, role, and deadline (if present).
Read {user_dir}/CareerNavigator/tracker.json and {user_dir}/CareerNavigator/artifacts-index.json.
Compute:
considering, applied, phone_screen, interview, offer, accepted, rejected, withdrew, ghosted)follow_up_date if present)stage_history entries where date is today (local) and stage matches the allowlist below (case-insensitive substring on stage string)resume, cover_letter)Treat a stage_history row as “meeting today” when date equals today and any substring match holds:
interview, recruiter, phone screen, phone_screen, hiring manager, hm , hm interview, technical, panel, onsite, executive, final round, final interview
Build the list of applications that have at least one such row today (dedupe by application id).
Pre-interview brief (today). For each qualifying application, produce short bullets only (strict brevity — this is not a full prep doc):
/career-navigator:prep-interview for depth”)ExperienceLibrary + role fitcontacts[] or stage_history[].interviewers has a nameFollow agents/interview-coach/AGENT.md in morning_section mode for tone and limits. You are implementing that mode inline in this skill (no separate skill file).
/career-navigator:morning-brief — focused runIf the user’s message is primarily a day-of interview request (triggers include /career-navigator:morning-brief, “morning brief before my interview”, etc.):
Career Navigator — Pre-interview brief [{today}]tracker.json for today—then suggest /career-navigator:track-application to log scheduled screens and /career-navigator:prep-interview for deep prep.If the user runs a general daily trigger, produce the full template in §5, including Pre-interview brief when §3.2 applies.
If user has run market workflows recently, summarize top signal in one line. If no recent strategy signals exist in tracker data, append:
Run
/career-navigator:suggest-rolesto refresh strategy signals for job-scout ranking.
If no market brief has been generated recently, append:
Run
/career-navigator:market-brieffor weekly demand and displacement updates.
**Career Navigator — Daily Brief** [{today}]
Pipeline
Considering {n}
Applied {n}
Phone screen {n}
Interview {n}
Offer {n}
Follow-up due {n}
Meetings today {n from §3.1 or "None scheduled"}
Artifacts
Resumes {n}
Cover letters {n}
If §3.2 applies, append:
Pre-interview brief (today)
{per-application concise bullets — see §3.2}
Then append at most 3 concise action bullets, highest urgency first. Include:
offer_evaluation_due: an "Offer evaluation due" bullet with the top item(s)
and prompt to run /career-navigator:evaluate-offer.career_plan_refresh_due: a "Career plan refresh due" bullet prompting
the user to run /career-navigator:career-plan.focus-career