بنقرة واحدة
career-ops
AI job search agent — find jobs, evaluate offers, generate CVs, track applications
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
القائمة
AI job search agent — find jobs, evaluate offers, generate CVs, track applications
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
استنادا إلى تصنيف SOC المهني
| name | career-ops |
| description | AI job search agent — find jobs, evaluate offers, generate CVs, track applications |
| user_invocable | true |
| args | mode |
| argument-hint | [search | run | setup | evaluate | pdf | tracker | deep] |
CRITICAL: When this skill is activated, you MUST immediately take action. Do NOT just say "search in progress" or "I will notify you." You must USE TOOLS NOW — read files, call GoogleSearch, fetch URLs. Every response must contain tool calls and concrete output.
{{mode}} is empty or no arguments were provided:IMMEDIATELY print this menu — do not ask anything, just show it:
╔══════════════════════════════════════════════════════════════╗
║ career-ops — Job Search Agent ║
╚══════════════════════════════════════════════════════════════╝
/career-ops setup → Set up profile (parse resume PDF + preferences)
/career-ops search → Search the internet for matching jobs
/career-ops run → Full pipeline: search → evaluate → save to Excel
/career-ops evaluate → Evaluate a specific job (paste URL or JD text)
/career-ops pdf → Generate ATS-optimized CV for a specific job
/career-ops tracker → View your Excel job tracker
/career-ops deep → Deep company research
/career-ops contacto → LinkedIn outreach: find contacts + draft message
Or just paste a job URL / JD text directly to auto-evaluate it.
⚠️ First time? Run: /career-ops setup
Then check if cv.md and config/profile.yml exist. If either is missing, add:
"It looks like you haven't set up your profile yet. Run
/career-ops setupto get started."
Stop here. Wait for the user's next command.
{{mode}} is "search" or "run":YOU MUST EXECUTE ALL STEPS BELOW RIGHT NOW. Use tools at every step. Never stop to ask — just keep going through the entire pipeline.
Read ALL of these files immediately:
config/profile.ymlconfig/portals.ymlconfig/resume.ymlcv.mdIf any file is missing, tell user to run /career-ops setup.
After reading, print:
━━━ career-ops search ━━━
Profile: {name} | {target_roles} | {location}
Skills: {top 5 skills from resume}
Portals: {preferred_portals from profile}
━━━━━━━━━━━━━━━
Generate 3 GoogleSearch queries. EVERY query MUST start with site:{portal_domain}.
Query formula:
site:{portal} {keyword} {optional: fresher | India | city}
GOOD queries (copy these patterns):
site:naukri.com AI ML engineer freshersite:indeed.co.in data scientist Indiasite:instahyre.com machine learning engineersite:linkedin.com/jobs deep learning IndiaBAD queries (NEVER use):
Junior AI ML Engineer Mumbai ← NO site: = 0 resultsData Scientist fresher India ← NO site: = 0 resultsPrint queries, then execute ONE AT A TIME:
Batch 1:
Q1: site:naukri.com AI ML engineer fresher → Naukri
Q2: site:indeed.co.in data scientist India → Indeed
Q3: site:linkedin.com/jobs ML engineer India → LinkedIn
Searching...
Q1: ✓ {N} results
Q2: ✓ {N} results
Q3: ✓ {N} results
Use portals NOT used in Batch 1. Use secondary keywords from profile.yml.
Fetch these URLs directly for additional listings:
https://www.naukri.com/ai-ml-engineer-jobs?experience=0-2https://www.indeed.co.in/jobs?q=AI+ML+engineer&l=Indiahttps://www.naukri.com/data-scientist-jobs?experience=0-2Extract job listings (title, company, location, URL) from the fetched HTML.
search_preferences.excluded_companies from profile.ymlAfter dedup + filter: {N} unique jobsFor the top 10 jobs, use subagents to do deep research. This is the key step.
For each job (up to 10), run TWO subagent calls:
Only if you have a real, specific job URL (not a generic portal URL like "naukri.com"):
@jd_researcher Fetch the job posting at {job_url} and extract the JD details.
Write the result as JSON to data/research/jd-{n}.json
The subagent will fetch the URL, extract JD details, and write a JSON file.
If the job URL is generic (e.g., just "naukri.com" or "indeed.co.in"), skip this subagent and set jd_text to "JD not available — generic URL".
@company_researcher Research {company_name} for the role {role_title} in India.
Write the result as JSON to data/research/company-{n}.json
The subagent will search for company reviews, ratings, and salary data.
After each subagent finishes, read the JSON files it produced:
data/research/jd-{n}.json → jd_text, experience_required, skillsdata/research/company-{n}.json → company_rating, company_reviews, package_rangePrint progress after each job:
Deep research (subagents):
[1/10] {Company} — {Role}
📋 JD: {first 60 chars of jd_text}...
⭐ Rating: {company_rating}
💰 Package: {package_range}
[2/10] {Company} — {Role}
...
IF subagents are not available (e.g., model doesn't support them), fall back to inline research:
google_web_search for "{company} reviews glassdoor India" and "{company} salary {role} India"web_fetch on the job URLScore each job 1-5 using all collected data:
| Dimension | Weight |
|---|---|
| Skills Match | 30% |
| Experience Fit | 25% |
| Role Alignment | 20% |
| Location/Remote Fit | 15% |
| Comp Fit | 10% |
Scoring:
1. {Company} — {Role}: {score}/5 ({reason}) [{portal}]
2. {Company} — {Role}: {score}/5 ({reason}) [{portal}]
IMPORTANT: Do NOT pass JSON as a CLI argument. Write JSON to a file, then use --from.
Step 8a — Write JSON file at data/jobs-batch.json using WriteFile tool:
[{
"company": "Cisco",
"role": "Data Scientist",
"score": 4.2,
"portal": "LinkedIn",
"reliability": "B",
"url": "https://...",
"location": "Bangalore",
"salary": "Not disclosed",
"package_range": "12-18 LPA",
"experience_required": "0-2 years",
"status": "New",
"key_matches": "Python, ML, TensorFlow",
"gaps": "Requires SQL experience",
"jd_text": "Build ML models for network analytics... (full jd text)",
"company_rating": "4.2/5 (Glassdoor)",
"company_reviews": "Great engineering culture.",
"notes": ""
}]
Step 8b — Run:
node save-to-excel.mjs --from data/jobs-batch.json
Print final summary:
━━━ Results ━━━
Saved {N} jobs to data/job-tracker.xlsx
⭐ 4.0+ (apply): {N}
⚠️ 3.5-3.9 (maybe): {N}
❌ Below 3.5 (skip): {N}
Top matches:
1. [{score}] {Company} — {Role} | {package_range} | {company_rating}
2. [{score}] {Company} — {Role} | {package_range} | {company_rating}
━━━━━━━━━━━━━━━
site: operator — bare queries return 0 results--from{{mode}} matches another sub-command:{{mode}} | Action |
|---|---|
setup | Read and follow modes/setup.md |
evaluate | Read modes/_shared.md + modes/_profile.md (if exists) + modes/oferta.md, then execute |
pdf | Read modes/_shared.md + modes/_profile.md (if exists) + modes/pdf.md, then execute |
tracker | Read modes/tracker.md, then execute |
deep | Read modes/deep.md, then execute |
contacto | Read modes/_shared.md + modes/_profile.md (if exists) + modes/contacto.md, then execute |
{{mode}} is NOT a known sub-command:Check if it looks like a JD or URL:
modes/_shared.md + modes/auto-pipeline.md, then execute