Claude Skill

career-agent

Run the Navin Career desk for freelance missions and permanent jobs. Search authorized sources, score matches, tailor a CV from the Master CV, import pasted LinkedIn offers, track inbox and follow-ups. Use for /career, Freelance, Jobs, TJM, candidatures.

LLM Mart · 0 points · 0 views 0 listing impressions 0 install-command copies
Virus-scanned Reviewed automatically before listing.

Full trust report

Download navinspire-ia-navin-navin_skills_career-agent-e9c73a3.zip · 3 KB
Part of navinspire-ia/navin — 182 skills

Install

skills CLI npx skills add https://github.com/Navinspire-ia/navin/tree/main/navin/skills/career-agent
Claude Code claude plugin marketplace add https://llmmart.ai/marketplace.json && claude plugin install navinspire-ia-navin@llmmart
Git git clone https://github.com/Navinspire-ia/navin.git

The skills CLI installs just this skill, for any of its supported agents. Claude Code installs the whole navinspire-ia/navin collection as a plugin from our marketplace. Git is the plain clone.

Skill manifest

Navin Career

Find. Match. Tailor. Apply. Track freelance missions and jobs on one desk.

The Career module (product_module=career) uses Settings → Models → Task routing (search), with or without the /career slash. Switch with /pilot <task> when the turn needs Planning, Medium, or Complex.

The live book is Studio #/career and the career tool. Do not invent an offer that is not in that store. Do not call tenders or trading from this module.

Wiring

  • Tool: career (same store as Studio #/career, Tauri, HTTP /api/career, navin career, and python -m navin.career.desk_cli).
  • Skills preloaded: this file plus job-search-agent, CV / ATS / follow-up specialists, scrape-operator, scrapling, web-extractor.
  • Open-host tools kept: scrape, web_search. LinkedIn stays a deep-link, never a fetch.
  • Desk loop: Studio Start loop hunts (career action=start / schedule / tick) with collect then watch on the saved wall-clock calendar while the gateway is up. That is the autonomous hunt. Never apply. Never scrape LinkedIn.
  • Heartbeat: the gateway already ran career action=watch. Silent when watch.count is 0. Never search, collect, start or tick from heartbeat.
  • Sandbox: ~/.navin/career is writable. Never write config.json or the machine key.
  • MCP: LinkedIn (recommended session), Notion, GitHub, Exa on #/tools. Never scrape LinkedIn.

Workflow

Discover → Match → Prepare CV → Apply → Inbox → Follow-up → Interview → Offer → Won/Rejected

  1. career action=status (alias dossier) before any pipeline claim. That call returns the full local book: Master CV, strengths, gaps, projects, company, talents, channels, pay, preferred markets, and every stored offer (live, favorite, archive). Studio filters are UI-only. Nothing is hidden from this chat. Treat it as the only source of truth. Local files are listed in the status (cv.md, dossier.md, INDEX.md under the career data dir).
  2. Confirm the profile from that book (titles, track freelance/jobs, primary / secondary / excluded countries, TJM or salary, stack, visa, apply_mode, CV facts). Default apply_mode is manual. To write facts back, career action=profile with master_cv / strengths / payload JSON. Never invent experience.
  3. career action=search (alias collect) uses the same store as Studio. For a company, search/find/collect use prospecting.criteria: selected sources, countries, roles, minimum selling day rate, work mode and a maximum publication age of 30 days. These are mandatory constraints. Do not broaden countries or treat missing pay, location, work mode or publication dates as confirmed matches. For solo accounts, sources come from profile.source_ids, with keys in secrets.json or process env. Closed boards stay as official URLs or a pasted import. Never invent a scrape to replace a missing API key. career action=ingest hits=[...] stores eligible offers already listed elsewhere without fetching them again.
  4. LinkedIn: if MCP linkedin is enabled, use the user session (search_jobs, get_saved_jobs, get_job_details, get_my_profile) then career action=ingest with via=linkedin-mcp (never fetch). Otherwise open the official page, copy title + description, then career action=import. Never fetch those URLs with scrape. Never scrape LinkedIn. Never Easy Apply. A wall (login, captcha, Cloudflare) stops the fetch. /scrape is allowed for a public listing Search missed. Use scrape-operator / scrapling on open hosts, never on LinkedIn.
  5. career action=match scores Perfect / Good / Skip. Preferred-market weights change the score (primary above secondary, excluded never ranks). On Perfect or Good, career action=prepare builds a CV pack from the Master CV only.
  6. Apply with career action=apply. Autopilot is blocked on LinkedIn. Mail drafts stay on allowed channels.
  7. Inbox: career action=inbox. Relances: career action=followup wave=j3 or j7.
  8. "Trouve-moi une mission" → career action=find with the full brief.
  9. Recurring silence: heartbeat already ran career action=watch. Report only when count > 0 or the prompt includes a Career digest.
  10. For "find profiles/candidates", call career action=search_candidates, passing the offer id when available, or prospecting_match with that id. This searches the configured platforms using the mission's role and skills and the configured candidate countries. An empty saved pool is not a reason to stop. candidates only reads saved profiles; prospecting_reuse is for an explicit request to reuse them. Report source errors, access requirements and deferred searches accurately. Never claim a platform has no candidates if it was not searched. Do not recommend historical offers marked search_scope.eligible=false.

Specialists: job-search-agent, cv-builder, cv-tailoring, cover-letter-writer, ats-analyzer, application-tracker, followup-writer, interview-coach, offer-analyzer, salary-negotiator, freelance-rate-card, career-advisor, linkedin-optimizer, scrape-operator, scrapling, web-extractor.

MCP

  • linkedin - recommended option (Settings → Tools, Career MCP). stickerdaniel/linkedin-mcp-server via uvx mcp-server-linkedin@latest. User session only: search_jobs, get_saved_jobs, get_job_details, get_my_profile, people, company, posts, inbox. Sign in on first use or uvx mcp-server-linkedin@latest --login / --import-from-browser. connect_with_person and send_message need confirm=true. Never scrape. Never Easy Apply.
  • notion - application notes and interview pages.
  • github - public repos as portfolio proof.
  • exa - public web research. Never point Exa or Firecrawl at a LinkedIn job URL.

Rules

  • Never scrape a login wall. Never invent experience, dates, or diplomas.
  • Cite source_url. Closed hits are snippets or user paste.
  • No em dash characters.
  • When asked for a report, save a Track A career-report-* UI (Vite + official DS + framer-motion + three + R3F + drei) and open_preview.
Files (navin)
  • SKILL.md 6.4 KB
    ---
    name: career-agent
    description: Run the Navin Career desk for freelance missions and permanent jobs. Search authorized sources, score matches, tailor a CV from the Master CV, import pasted LinkedIn offers, track inbox and follow-ups. Use for /career, Freelance, Jobs, TJM, candidatures.
    metadata: {"navin":{"emoji":"🎯","category":"careers","default_for":"career"}}
    ---
    
    # Navin Career
    
    Find. Match. Tailor. Apply. Track freelance missions and jobs on one desk.
    
    The Career module (`product_module=career`) uses Settings → Models → Task routing (`search`), with or without the `/career` slash. Switch with `/pilot <task>` when the turn needs Planning, Medium, or Complex.
    
    The live book is Studio `#/career` and the `career` tool. Do not invent an offer that is not in that store. Do not call `tenders` or `trading` from this module.
    
    ## Wiring
    
    - Tool: `career` (same store as Studio `#/career`, Tauri, HTTP `/api/career`, `navin career`, and `python -m navin.career.desk_cli`).
    - Skills preloaded: this file plus `job-search-agent`, CV / ATS / follow-up specialists, `scrape-operator`, `scrapling`, `web-extractor`.
    - Open-host tools kept: `scrape`, `web_search`. LinkedIn stays a deep-link, never a fetch.
    - Desk loop: Studio Start loop hunts (`career action=start` / `schedule` / `tick`) with collect then watch on the saved wall-clock calendar while the gateway is up. That is the autonomous hunt. Never apply. Never scrape LinkedIn.
    - Heartbeat: the gateway already ran `career action=watch`. Silent when `watch.count` is 0. Never search, collect, start or tick from heartbeat.
    - Sandbox: `~/.navin/career` is writable. Never write config.json or the machine key.
    - MCP: LinkedIn (recommended session), Notion, GitHub, Exa on `#/tools`. Never scrape LinkedIn.
    
    ## Workflow
    
    Discover → Match → Prepare CV → Apply → Inbox → Follow-up → Interview → Offer → Won/Rejected
    
    1. `career action=status` (alias `dossier`) before any pipeline claim. That call returns the **full local book**: Master CV, strengths, gaps, projects, company, talents, channels, pay, preferred markets, and every stored offer (live, favorite, archive). Studio filters are UI-only. Nothing is hidden from this chat. Treat it as the only source of truth. Local files are listed in the status (`cv.md`, `dossier.md`, `INDEX.md` under the career data dir).
    2. Confirm the profile from that book (titles, track freelance/jobs, primary / secondary / excluded countries, TJM or salary, stack, visa, apply_mode, CV facts). Default apply_mode is **manual**. To write facts back, `career action=profile` with `master_cv` / `strengths` / `payload` JSON. Never invent experience.
    3. `career action=search` (alias collect) uses the **same store as Studio**. For a company, search/find/collect use `prospecting.criteria`: selected sources, countries, roles, minimum selling day rate, work mode and a maximum publication age of 30 days. These are mandatory constraints. Do not broaden countries or treat missing pay, location, work mode or publication dates as confirmed matches. For solo accounts, sources come from `profile.source_ids`, with keys in `secrets.json` or process env. Closed boards stay as official URLs or a pasted import. Never invent a scrape to replace a missing API key. `career action=ingest hits=[...]` stores eligible offers already listed elsewhere without fetching them again.
    4. LinkedIn: if MCP `linkedin` is enabled, use the user session (`search_jobs`, `get_saved_jobs`, `get_job_details`, `get_my_profile`) then `career action=ingest` with `via=linkedin-mcp` (never fetch). Otherwise open the official page, copy title + description, then `career action=import`. Never fetch those URLs with scrape. Never scrape LinkedIn. Never Easy Apply. A wall (login, captcha, Cloudflare) stops the fetch. `/scrape` is allowed for a public listing Search missed. Use `scrape-operator` / `scrapling` on open hosts, never on LinkedIn.
    5. `career action=match` scores Perfect / Good / Skip. Preferred-market weights change the score (primary above secondary, excluded never ranks). On Perfect or Good, `career action=prepare` builds a CV pack from the Master CV only.
    6. Apply with `career action=apply`. Autopilot is blocked on LinkedIn. Mail drafts stay on allowed channels.
    7. Inbox: `career action=inbox`. Relances: `career action=followup` wave=j3 or j7.
    8. "Trouve-moi une mission" → `career action=find` with the full brief.
    9. Recurring silence: heartbeat already ran `career action=watch`. Report only when count > 0 or the prompt includes a Career digest.
    10. For "find profiles/candidates", call `career action=search_candidates`, passing the offer `id` when available, or `prospecting_match` with that id. This searches the configured platforms using the mission's role and skills and the configured candidate countries. An empty saved pool is not a reason to stop. `candidates` only reads saved profiles; `prospecting_reuse` is for an explicit request to reuse them. Report source errors, access requirements and deferred searches accurately. Never claim a platform has no candidates if it was not searched. Do not recommend historical offers marked `search_scope.eligible=false`.
    
    Specialists: `job-search-agent`, `cv-builder`, `cv-tailoring`, `cover-letter-writer`, `ats-analyzer`, `application-tracker`, `followup-writer`, `interview-coach`, `offer-analyzer`, `salary-negotiator`, `freelance-rate-card`, `career-advisor`, `linkedin-optimizer`, `scrape-operator`, `scrapling`, `web-extractor`.
    
    ## MCP
    
    - `linkedin` - recommended option (Settings → Tools, Career MCP). [stickerdaniel/linkedin-mcp-server](https://github.com/stickerdaniel/linkedin-mcp-server) via `uvx mcp-server-linkedin@latest`. User session only: `search_jobs`, `get_saved_jobs`, `get_job_details`, `get_my_profile`, people, company, posts, inbox. Sign in on first use or `uvx mcp-server-linkedin@latest --login` / `--import-from-browser`. `connect_with_person` and `send_message` need `confirm=true`. Never scrape. Never Easy Apply.
    - `notion` - application notes and interview pages.
    - `github` - public repos as portfolio proof.
    - `exa` - public web research. Never point Exa or Firecrawl at a LinkedIn job URL.
    
    ## Rules
    
    - Never scrape a login wall. Never invent experience, dates, or diplomas.
    - Cite `source_url`. Closed hits are snippets or user paste.
    - No em dash characters.
    - When asked for a report, save a Track A career-report-* UI (Vite + official DS + framer-motion + three + R3F + drei) and open_preview.
    

Comments (0)

Sign in to join the conversation.

No comments yet.

Reviews (0)

No reviews yet.

Related