Works with 18 LLM providers — Anthropic, OpenAI, Gemini, Qwen, OpenRouter, GitHub, DeepSeek, Kimi, MiniMax, Mistral, Ollama and more

பயன்பாட்டைத் தொடங்கிய தருணத்திலிருந்து ஒரு நேர்காணலைப் பெறும் வரை — ஒவ்வொரு பக்கத்திற்குமான முழுமையான வழிநடத்தல். கீழே உள்ள ஒவ்வொரு ## தலைப்பும் ஒரு பக்கப்பட்டி உள்ளீட்டையோ அல்லது பணிப்பாதையின் ஒரு கட்டத்தையோ குறிக்கும். முதல் இயக்கத்தில் மேலிருந்து கீழாகப் படியுங்கள்; பின்னர் உதவிப் பக்கப்பட்டியின் உள்ளடக்க அட்டவணை வழியாக குறிப்பிட்ட பிரிவுக்குக் குதிக்கலாம்.

சுற்றி வருதல் (v2 shell). பக்கப்பட்டி ஆதாரத் தேடல், முடிவு, விண்ணப்பம், வலைப்பின்னல், பகுப்பாய்வு, அமைவு (nav.group.*) என மடிக்கக்கூடிய குழுக்களாக அமைந்துள்ளது — ஒரு பிரிவைப் பார்வையிடும்போது அந்தக் குழு திறந்து, நீங்கள் விட்ட இடத்திலேயே இருக்கும். எந்தப் பக்கத்தையும் நட்சத்திரமிட்டால் அது பிடித்தவை-யின் கீழ் பொருத்தப்படும்; Cmd/Ctrl+K அழுத்தினால் (அல்லது பக்கப்பட்டியின் மேலே உள்ள கட்டளை மெனு பொத்தான், nav.v2.palette) எங்கிருந்தும் எந்தப் பக்கத்திற்கும் fuzzy-jump செய்யலாம். ஒவ்வொரு பக்கமும் தலைப்பை உடனடியாகக் காட்டி, தரவு ஏற்றப்படும் வரை ஒளிரும் சாம்பல் நிரப்பு வரிசைகளைக் காட்டும் — வழிசெலுத்தல் ஒருபோதும் காலித் தோற்றமாக இருக்காது. எந்தப் பக்கமும் காலி வெற்றிடத்துடன் வரவேற்காது: தொடக்கத்தில் காலியாக இருக்கும் நான்கு பக்கங்கள் — Auto-pipeline, விண்ணப்பப் பட்டியல், பேச், நிதி பெற்ற நிறுவனங்கள் — ஒரு செய்து-காட்டும் உதாரணத்தையும் அதை நிரப்பும் ஒரே செயலையும் காட்டும் (v2empty.exampleTag).

இது யாருக்காக: career-ops checkout-க்குள் இந்த UI-ஐ விட்டு, bash bin/start.sh இயக்கிய எவருக்கும். career-ops பற்றிய முன் அறிவு எதுவும் எதிர்பார்க்கப்படவில்லை.

career-ops பற்றி

career-ops என்பது எந்த AI coding CLI-க்குள்ளும் (Claude Code, Cursor, Codex, OpenCode, Antigravity CLI, Grok Build CLI, Qwen Code, Kimi, GitHub Copilot CLI, Gemini CLI (legacy) — பிற Claude-இசைவு CLIs அதே slash-command மேற்பரப்பு வழியாக வேலை செய்யும்) slash கட்டளைகளாக இயங்கும் திறந்த மூல வேலை தேடல் அமைப்பு. மாதிரி-சார்ந்ததல்ல. ஒவ்வொரு பதவியையும் ஐந்து பரிமாணங்கள் கொண்ட 0.0–5.0 தரஅளவுகோல் மற்றும் ஒருங்கிணைந்த மொத்த மதிப்பெண்ணுடன் உங்கள் CV-க்கு எதிராக மதிப்பிடும், பொருத்தமான PDF அனுபவ வரைவுகளை உருவாக்கும், ஒவ்வொரு விண்ணப்பத்தையும் உங்கள் கணினியிலேயே கண்காணிக்கும்.

அதிகாரப்பூர்வக் குறிப்பு (முதல் நிறுவலில் இந்த வரிசையில் படியுங்கள்):

  • What is career-ops — அமைப்பு, கொள்கைகள், கருத்தாக்கங்களின் பட்டியல்.
  • Scan job portals — வேலைவாய்ப்புகளைக் கண்டறிதல்; பைப்லைனை நிரப்புதல்.
  • Apply for a job — Playwright படிவ-வாசிப்புடன் முழு சமர்ப்பிப்பு ஓட்டம்.
  • Batch-evaluate offers — batch-runner.sh மூலம் ஒரே நேரத்தில் 10+ JD-களை மதிப்பிடுதல்.
  • Set up Playwright — Chromium நிறுவல் + PDF மற்றும் படிவ-நிரப்புதலுக்கு MCP பதிவு.
  • How career-ops scores job listings — மதிப்பீட்டு முறையியல்: ஐந்து பரிமாணங்கள் + ஒருங்கிணைந்த மொத்த மதிப்பெண், 4.0 விண்ணப்ப வரம்பு, மற்றும் அமைப்பு வெளிப்படையாக செய்ய மறுப்பது என்ன. cvstart.org/methodology இல் உங்கள் மொழியிலும் சுருக்கம் உண்டு.

வரையறுக்கும் கொள்கைகள் (career-ops.org/docs/introduction/what-is-career-ops இலிருந்து):

  • திறந்த மூலம், உண்மையாக — MIT, கட்டண அடுக்கு இல்லை, காத்திருப்புப் பட்டியல் இல்லை, தொலைநோக்கி இல்லை, கணக்குகள் இல்லை. கட்டண அடுக்குகள், கணக்குகள், தொலைநோக்கி எதுவும் இல்லாமல் அமைப்பு இயங்குகிறது. குறியீடு பங்களிப்புகள் வெளியீட்டுக்கு முன் சமூக மதிப்பாய்வு செய்யப்படும்.
  • தரவு இறையாண்மை — cv.md, config/profile.yml, data/, reports/, interview-prep/ — நீங்கள் வெளிப்படையாகத் தள்ளும் வரை உங்கள் மடிக்கணினியை விட்டு வெளியேறாது. நீங்கள் உள்ளூரில் இயக்குகிறீர்கள்; முழு தரவு இறையாண்மை உங்களிடமே.
  • AI-சார்ந்ததல்லாத கட்டமைப்பு — career-ops ஒரு மாதிரியை ஒட்டி வழங்காது. ஏற்கனவே உள்ள AI coding CLIs-க்குள் இயங்கும் கட்டளைகளாகவே செயல்படுகிறது. வழங்குநர்களை மாற்றினாலும் (Anthropic ↔ Gemini ↔ OpenAI) உங்கள் மதிப்பீட்டு வரலாறு சீராகவே இருக்கும்.
  • மனிதன் கட்டுப்படுத்தும் சமர்ப்பிப்புகள் — career-ops பதில்களை வரைந்து படிவத்தைத் திறக்கும், ஆனால் சமர்ப்பி என்ற பொத்தானை நீங்களே அழுத்துவீர்கள். அமைப்பு ஒருபோதும் தானாக விண்ணப்பிக்காது. அமைப்பு கட்டமைப்பும் மதிப்பீடும் தரும்; இறுதி சமர்ப்பிப்பு அதிகாரம் மனிதனிடமே.
  • அமைப்புள்ள தேடல் — பல விண்ணப்பங்களுடன் செயலில், வேண்டுமென்றே நடத்தப்படும் வேலை வேட்டைக்காக வடிவமைக்கப்பட்டது; ஒற்றை-சமர்ப்பிப்புக் கருவி அல்ல, பரிந்துரை இயந்திரம் அல்ல. அமைவுக்கு ~15 நிமிடங்கள்; டெர்மினல் பழக்கம் எதிர்பார்க்கப்படுகிறது.

career-ops எது இல்லை (வெளிப்படையான இலக்குகள் அல்லாதவை):

  • தானியங்கி விண்ணப்பிப்பவன் அல்ல. உங்களுக்காகப் படிவங்களைச் சமர்ப்பிக்காது.
  • அனுபவ வரைவை மீண்டும் கட்டியெழுப்புபவன் அல்ல. ஒவ்வொரு JD-க்கும் ஏற்ப வடிவமைக்கும்; அனுபவத்தைக் கற்பனை செய்யாது.
  • LinkedIn மேம்படுத்தியல்ல. உங்கள் சுயவிவரம் உங்கள் விவகாரம்.
  • SaaS UI-க்குப் பின்னால் மறையும் spreadsheet-மாற்று அல்ல. தரவு உங்கள் கோப்பு முறைமையில் சாதாரண மார்க்டவுன்.

முக்கியக் கருத்தாக்கங்கள் (முழு பட்டியல் — career-ops தொடும் ஒவ்வொரு செயற்கைப் பொருளும்):

கருத்தாக்கம் அது என்ன
Mode modes/<slug>.md கீழ் ஒரு பிராம்ட் டெம்ப்ளேட். உள்ளடக்கியவை: oferta, deep, apply, pipeline, batch, contacto, followup, interview-prep, patterns, project, training, ofertas, auto-pipeline, pdf, latex, scan, tracker.
Archetype config/profile.yml-இல் உள்ள இலக்குப் பதவி சுயவிவரம். தரஅளவுகோல் திறன் பொருத்தங்களை செயலில் உள்ள ஆர்க்கிடைப்பிற்கு எதிராக எடையிடும் — மிக முக்கியமான ஒற்றைப் புலம் இதுவே.
Pipeline data/pipeline.md — மதிப்பிடக் காத்திருக்கும் JD URL-களின் இன்பாக்ஸ்.
Tracker data/applications.md — ஒவ்வொரு மதிப்பீடு + விண்ணப்ப நிலையின் வரலாற்று GFM அட்டவணை.
Report reports/<NNN>-<company>-<DATE>.md — ஒவ்வொரு JD-க்குமான முழு A–F மதிப்பீடு, தலைப்பில் மதிப்பெண் + நம்பகத்தன்மையுடன்.
Scan history data/scan-history.tsv — சேர்ப்பு-மட்டும் பதிவு; ஸ்கேன்களுக்கிடையில் நகல்களைத் தடுக்கும்.
Proof points cv.md-இலிருந்து பிரித்தெடுக்கப்பட்ட STAR+R சான்று தொகுதிகள்; மதிப்பீடு, விண்ணப்பப் பதில்கள், நேர்காணல் தயாரிப்பு முழுவதும் மீண்டும் பயன்படும்.
JD store jds/jd-<date>-<ts>.txt — தணிக்கைப் பதிவுக்காக மதிப்பீட்டின்போது சேமிக்கப்படும் சொல்லொண்ணா வேலை விவரங்கள்.
Interview-prep interview-prep/<company>-<role>.md — ஆழ்-ஆய்வு சுருக்கங்கள் மற்றும் ஒவ்வொரு சுற்றுக்குமான ஒரு-பக்கங்கள்.
Batch additions batch/tracker-additions/*.tsv — batch-runner.sh ட்ரேக்கரில் இணைக்க வரிசைப்படுத்திய நிலுவை வரிசைகள்.

career-ops vs career-ops-ui (இந்தப் பயன்பாடு)

career-ops (CLI) career-ops-ui (இந்தப் பயன்பாடு)
எங்கு இயங்கும் Claude Code / Cursor / Codex / OpenCode / Antigravity CLI / Grok Build CLI / Qwen Code / Kimi / GitHub Copilot CLI / Gemini CLI (legacy) க்குள் உங்கள் உலாவியில் http://127.0.0.1:4317
மேற்பரப்பு /career-ops <mode> slash கட்டளைகள் ஒவ்வொரு பணிப்பாதைக்கும் ஒரு பக்கம் கொண்ட பக்கப்பட்டி
படிவம்-நிரப்புதல் உண்டு, Playwright MCP வழியாக இல்லை — பட்டியலை உருவாக்கும், நீங்கள் CLI-இல் முடிப்பீர்கள்
PDF generate-pdf.mjs #/cv, #/reports/:slug, #/evaluate, #/deep, #/interview-prep பக்கங்களில் 📄 Generate PDF
தரவுக் கோப்புகள் career-ops-ui-உடன் பகிர்ந்தவை career-ops-உடன் பகிர்ந்தவை

career-ops-ui தூய சேர்ப்புகள் மட்டுமே. career-ops/-க்குள் எதுவும் மாறாது. இரு மேற்பரப்புகளும் அதே cv.md, config/profile.yml, portals.yml, data/, reports/, interview-prep/, modes/-ஐப் பகிரும்.

மதிப்பெண் வாரியான செயல் வரம்புகள்

ஒரு JD-க்கு மதிப்பீடு கிடைத்ததும், அடுத்து என்ன செய்வது என்பதை மதிப்பெண் தீர்மானிக்கும் (career-ops.org/docs/introduction/what-is-career-ops இலிருந்தான அதிகாரப்பூர்வ அட்டவணை):

மதிப்பெண் அடுத்த படி
≥ 4.5 /career-ops apply இயக்கு — உயர் பொருத்தம், உடனடியாக முன்னுக்கு.
4.0 – 4.4 விண்ணப்பி, அல்லது முதலில் பழக்கமான அறிமுகத்திற்கு /career-ops contacto.
3.5 – 3.9 /career-ops deep இயக்கு — முடிவெடுக்கும் முன் நிறுவனம் / பதவியை ஆராய்.
< 3.5 குறிப்பிட்ட தனிப்பட்ட காரணம் இல்லையெனில் தாண்டு.

career-ops-ui-இன் #/dashboard மற்றும் #/tracker 4.0 அல்லது அதற்கு மேல் உள்ள ஒவ்வொரு வரிசையையும் முன்னிலைப்படுத்தும் — எதையும் மீண்டும் இயற்றாமல் செயலைத் தேர்ந்தெடுக்கலாம்.

வெளி ஆவணங்கள்

அடியில் உள்ள career-ops இயந்திரத்திற்கான முழுக் குறிப்பு (ஸ்கேனிங், மதிப்பீட்டுத் தரஅளவுகோல், பேச் செயலாக்கம், apply ஓட்டம், Playwright அமைவு) career-ops.org/docs இல் உள்ளது:


1. விரைவுத் தொடக்கம் — “CV உருவாக்கு” முதல் “விண்ணப்பித்து செய்தி அனுப்பு” வரை முழுமையான படிப்படியான வழிகாட்டி

இது அதிகாரப்பூர்வ, பொத்தான்-பொத்தனான playbook. முதல் முறை இதை வரிசையாகப் பின்பற்றுங்கள். ஒவ்வொரு படியும் துல்லியமான வழி, துல்லியமான பொத்தான், வெற்றியில் நீங்கள் பார்ப்பதைப் பெயரிடும். கீழே 2–16 பிரிவுகள் ஒவ்வொரு கட்டத்தையும் ஆழமாக ஆராயும்.

வெறும் கேட்க விரும்புகிறீர்களா? ஆவணங்களிடம் கேளுங்கள் 💬 (பக்கப்பட்டியில், Help-இன் கீழ்) திறந்து “வேலை போர்டல்களை எப்படி ஸ்கேன் செய்வது?” அல்லது “இரு-பக்க பொருத்த மதிப்பெண் எப்படி வேலை செய்கிறது?” போன்ற கேள்வியைத் தட்டச்சு செய்யுங்கள். இது இந்த வழிகாட்டியிலிருந்து மட்டுமே உங்கள் மொழியில் பதிலளிக்கும்; எந்தப் பிரிவுகளிலிருந்து இழுத்தது என்பதைக் காட்டும் — உங்கள் CV-ஐயோ வேலை தேடலையோ ஒருபோதும் படிக்காது. LLM key இருந்தால் நேரடியாகப் பதிலளிக்கும்; இல்லையெனில் எந்த உதவியாளரிலும் ஒட்டத் தயார்-நிலை பிராம்ட்டை (தொடர்புடைய உதவிப் பிரிவுகள் ஏற்கனவே நிரப்பப்பட்டது) தரும். அதே உதவியாளர் ஒவ்வொரு பக்கத்திலிருந்தும் ஒரு சொடுக்கு தூரத்தில் — கீழ்-வலது மூலையில் (வலது-இடது எழுத்து மொழிகளில் கீழ்-இடது) ஒரு ரோபோ அரட்டைப் பொத்தான் மிதக்கும்; நீங்கள் செய்வதை விடாமல் கேட்க அதைச் சொடுக்கவும்.

ஒரு-கட்டளை தொடக்கம் & init. ஒரு டெர்மினலிலிருந்தே UI-ஐத் தொடாமல் முழு bootstrap-ஐயும் செய்யலாம்:

career-ops-ui setup      # install deps → doctor → run the server
career-ops-ui init       # pick LLM provider + paste its key (echo suppressed)
career-ops-ui doctor     # re-verify any time (exit 0 ⇔ all required green)
career-ops-ui run        # just launch the server at http://127.0.0.1:4317
career-ops-ui open       # open + RAISE the dashboard tab in your browser

setup/run-க்குப் பிறகு உலாவி தாவல் தானாகத் திறக்கப்பட்டு முன்னுக்குக் கொண்டுவரப்படும் (v1.43.0); career-ops-ui open தேவைப்படும்போது அதே செயலைச் செய்யும் — டாஷ்போர்டு தாவலைத் தேட வேண்டியதில்லை. NO_OPEN=1 headless/CI தொடக்கங்களில் auto-open-ஐ முடக்கும்.

setup முழு சங்கிலியையும் தானே இயக்கும். init கீயை பெற்றோர் career-ops/.env-இல் #/config API-keys தாவல் பயன்படுத்தும் அதே சரிபாக்கப்பட்ட பாதை வழியாக எழுதும், மேலும் LLM_PROVIDER-ஐ (auto | claude | gemini) அமைக்கும் — நேரடி evaluate / deep / mode / auto-pipeline வழிகள் இதை மதிக்கும். CI வடிவம்: career-ops-ui init --provider claude --anthropic-key sk-ant-… --yes. UI-ஐ விரும்புகிறீர்களா? கீழே உள்ள படிகளைத் தொடருங்கள்.

A. அமைவு (இவற்றை ஒரே முறை செய்யுங்கள், ~5 நிமிடங்கள்)

career-ops-ui கண்டிப்பாக career-ops/web-ui/ இல் இருக்க வேண்டும் (பெற்றோர் career-ops திட்டத்தின் உள்ளே). அது உங்கள் cv.md, config/, data/-ஐ ../ வழியாகப் பெற்றோர் அடைவிலிருந்து படிக்கும்; தனித்து இயங்காது. Pull-க்குப் பிறகு career-ops-ui init கிடைக்கவில்லை என்றால், cd career-ops/web-ui && npm install && npx career-ops-ui init இயக்கவும்.

படி 1 — http://127.0.0.1:4317 இல் பயன்பாட்டைத் திறங்கள். இயங்கவில்லை என்றால், டெர்மினலில் repo root-இலிருந்து bash bin/start.sh இயக்கவும். டாஷ்போர்டு (#/dashboard) ஏற்றப்படும்.

படி 2 — இடது பக்கப்பட்டியில் ❤ Health சொடுக்கவும். ஒவ்வொரு தேவையான சோதனையும் பச்சையாக இருக்க வேண்டும்:

  • cv.md, config/profile.yml, portals.yml இருக்கின்றன
  • API key அமைக்கப்பட்டுள்ளது (ANTHROPIC_API_KEY / GEMINI_API_KEY இல் குறைந்தது ஒன்று)
  • Playwright நிறுவப்பட்டுள்ளது (Generate PDF பயன்படுத்தினால் மட்டுமே தேவை)

எது சிவப்பாக இருந்தாலும், சரிக்க வேண்டிய துல்லியமான கோப்பு அல்லது env var-ஐப் பக்கம் சொல்லும். Health பச்சையாகும் வரை முன்னேற வேண்டாம்.

படி 3 — பக்கப்பட்டியில் ⚒ App settings சொடுக்கவும். API keys & runtime தாவலில் இறங்குவீர்கள்.

  • ANTHROPIC_API_KEY (விருப்பம் — நீள-உரை மதிப்பீட்டிற்கு சிறந்தது) மற்றும்/அல்லது GEMINI_API_KEY ஒட்டவும். கீகள் இங்கே: https://console.anthropic.com/settings/keys அல்லது https://aistudio.google.com/apikey.
  • 💾 Save சொடுக்கவும். பிறகு ▶ Test Anthropic (அல்லது Gemini) சொடுக்கவும் — சிறிய ரவுண்ட்-டிரிப் கீ வேலை செய்கிறதா என்று உறுதிப்படுத்தும்.

படி 4 — அதே பக்கத்தில் Profile தாவலுக்கு மாறவும். இது config/profile.yml-க்கான நேரடி YAML எடிட்டர். குறைந்தது இவற்றைத் திருத்தவும்:

  • candidate.full_name — எந்த placeholder-ஐயும் (“Jane Smith”) உங்கள் உண்மைப் பெயரால் மாற்றவும்
  • candidate.email, linkedin, github — சுட்டுக் கடிதங்களில் பயன்படும்
  • target.roles — நீங்கள் விண்ணப்பிக்கப் போகும் பணித் தலைப்புகள்
  • target.comp_total_min_usd — குறைந்தபட்ச மொத்த சம்பளம்; இதற்குக் கீழ் ஆஃபர்கள் ஒவ்வொரு மதிப்பீட்டின் D பிரிவிலும் குறிக்கப்படும்
  • target.archetypes — நீங்கள் ஏற்கும் தொழில் போக்குகள் (மிகவும் தாக்கமுள்ள ஒற்றைப் புலம்)

💾 Save சொடுக்கவும். சர்வர் YAML-ஐச் சரிபார்த்து அதிகாரப்பூர்வ # Career-Ops Profile Configuration தலைப்பைச் சேர்க்கும்.

B. CV (ஒரே முறை, ~10 நிமிடங்கள்)

படி 5 — பக்கப்பட்டியில் ✎ CV சொடுக்கவும். இரு பத்திகள்: இடது பக்கம் எடிட்டர், வலது பக்கம் நேரடி முன்தோற்றம்.

படி 6 — எடிட்டரை நிரப்ப ஒரு பாதையைத் தேர்வு செய்யவும்:

  • ஏற்கனவே உள்ள அனுபவ வரைவைப் பதிவேற்று — 📁 Upload CV சொடுக்கி, .docx / .odt / .rtf / .pdf / .html / .txt / .md எதையும் தேர்ந்தெடுங்கள். சர்வர் pandoc அல்லது pdftotext மூலம் மார்க்டவுனாக மாற்றி, XSS-ஐச் சுத்திகரித்து, முடிவை எடிட்டரில் போடும். மாற்றத்தை மதிப்பாய்வு செய்யவும் — குறிப்பாக PDF-கள் இடஅமைப்பை இழக்கலாம்.
  • மார்க்டவுனை நேரடியாக ஒட்டு — textarea ஒரு மார்க்டவுன் எடிட்டர்; வலது பலகை தான் LLM-உம் உங்கள் எதிர்கால ரிக்ரூட்டரும் பார்ப்பது.
  • தொனிக் குறிப்புகள்: ஒரு கோடு = ஒரு அளவீடுடன் ஒரு சாதனை. 1500 சொற்களுக்குக் கீழே வைக்கவும். பிரிவுகள் இந்த வரிசையில்: Summary, Experience, Projects, Education, Skills.

படி 7 — 💾 Save சொடுக்கவும் (CV பக்கத்தின் மேல்-வலது). சர்வர் (<script> / javascript: / inline handlers நீக்கி) சுத்திகரித்து cv.md-ஐ எழுதும். டோஸ்ட்: “Saved”.

படி 8 (விருப்பத்தேர்வு) — 📄 Generate PDF சொடுக்கவும். பெற்றோரில் generate-pdf.mjs இயங்கும் (Playwright தேவை); முடிந்ததும் புதிய PDF தானாகப் பதிவிறக்கமாகும். பக்கத்தின் கீழ் உள்ள பட்டியல் முன்பு உருவாக்கிய ஒவ்வொரு கோப்பையும் வைத்திருக்கும்.

C. வேலைவாய்ப்புகளைக் கண்டறிதல் (ஒரு ஸ்கேனுக்கு ~2 நிமிடங்கள்)

படி 9 — பக்கப்பட்டியில் 🌐 ஸ்கேன் சொடுக்கவும். portals.yml உங்களுக்கு முக்கியமான பலகைகளை பட்டியலிடுகிறதா எனச் சரிபார்க்கவும் (இந்த உதவியின் பிரிவு 5). 🌐 இப்போதே ஸ்கேன் பொத்தானை அழுத்தவும். ஸ்கேனர் Greenhouse / Ashby / Lever / Workable / SmartRecruiters / Workday (ஆங்கிலப் பலகைகள்) மற்றும் hh.ru / Habr Career (இயக்கப்பட்டிருந்தால் ரஷ்யப் பலகைகள்) நடக்கும்போது நேரடி SSE பதிவு ஒளிபரப்பாகும்.

படி 10 — ஸ்கேன் முடிந்ததும் முடிவுகளை மதிப்பாய்வு செய்யவும். வடிகட்ட எந்த நிறுவனத் தகட்டையும் சொடுக்கவும்; நிறுவனத்தின் கேரியர்ஸ் பக்கத்தைப் புதிய தாவலில் திறக்க ↗ குறியைச் சொடுக்கவும். தலைப்பு-வடிப்பானைத் தாண்டிய ஒவ்வொரு வேலைவாய்ப்பும் பைப்லைனில் வரிசைப்படுத்தப்படும். ஒவ்வொரு முடிவு வரிசையும் பதவியை இரு சுருக்கமான வரிகளாக வைக்கும் — மேலே தலைப்பு, கீழே சிறு குறியீடுகளின் விவர வரி (தலைப்புப் பொருத்தம், அளவு ஊக்கம், பொருத்த மதிப்பெண், ஆதாரம் மற்றும் தேதி) — மற்றும் நீளமான முடிவுப் பட்டியல்கள் பக்கம்-பிரிக்கப்படும்.

D. ஆஃபர்களுக்கு மதிப்பெண் (ஒரு JD-க்கு ~30 விநாடிகள்)

படி 11 — பக்கப்பட்டியில் Pipeline சொடுக்கவும். ஸ்கேனர் வரிசைப்படுத்திய ஒவ்வொரு URL-ஐயும் பார்ப்பீர்கள். JD-ஐ inline-ஆக முன்தோற்றம் காண ஒரு உள்ளீட்டைச் சொடுக்கவும்.

படி 12 — எந்த JD-க்கும் அருகில் ▶ Evaluate சொடுக்கவும். இது #/evaluate-க்குக் குதிக்கும். API key அமைக்கப்பட்டிருந்தால் நேரடியாக இயங்கும்; இல்லையெனில் உங்கள் சொந்த LLM-இல் ஒட்டக் கைமுறைப் பிராம்ட் கிடைக்கும். நேரடி முறை உங்கள் CV-க்கு எதிராக A–G பிரிவுகளில் (Role / Company / Compensation / Risk / Stretch / Cultural fit / Verdict) 0–5 மதிப்பெண் தரும். சேமிப்பு reports/<date>-<slug>.md-இல் விழும்.

படி 13 — பக்கப்பட்டியில் Reports சொடுக்கி சமீபத்திய மதிப்பீட்டை மதிப்பாய்வு செய்யவும். உங்கள் comp_total_min_usd-க்குக் கீழ் எதுவும் D பிரிவில் சிவப்பாகக் குறிக்கப்படும். Verdict: pursue கொண்டவை உங்கள் குறுகிய பட்டியல்.

E. முடிவு & குறுகிய பட்டியல் நிறுவனத்தை ஆழமாக ஆராய்தல் (~3 நிமிடங்கள்)

படி 14 — தொடரத்தகுந்த ஒரு வேலைவாய்ப்பைத் தேர்ந்தெடுங்கள். பக்கப்பட்டியில் Deep research சொடுக்கவும். நிறுவனப் பெயர் மற்றும் பதவியை உள்ளிடவும். மாதிரி 7-பிரிவு நிறுவனச் சுருக்கத்தை உருவாக்கும் (நோக்கம், சமீபத்திய செய்திகள், தொழில்நுட்ப ஸ்டாக், ஆட்சேர்ப்பு அறிகுறிகள், சம்பள அளவுகோல்கள், இடர்கள், பரிந்துரைக்கப்பட்ட அணுகுமுறை). சேமிப்பு interview-prep/<company>-<role>.md-இல் விழும்.

F. விண்ணப்பம் (ஒரு விண்ணப்பத்திற்கு ~5 நிமிடங்கள்)

படி 15 — பக்கப்பட்டியில் Apply checklist சொடுக்கவும். வேலைவாய்ப்பு URL + JD-ஐ ஒட்டவும். உதவியாளர் படிப்படியான சமர்ப்பிப்புப் பட்டியலை உருவாக்கும்:

  • வடிவமைக்கப்பட்ட சுட்டுக் கடித வரைவு (உங்கள் cv.md + profile.yml பயன்படுத்தும்)
  • JD-இலிருந்து பிரதிபலிக்கத்தக்க குறிப்பிட்ட முக்கிய சொற்கள்
  • இணைக்க வேண்டிய கோப்புகள் (CV PDF — படி 8 பார்க்கவும்)
  • எங்கு விண்ணப்பிக்க வேண்டும் (aggregator-திருப்பல் அல்ல, அதிகாரப்பூர்வ கேரியர்ஸ் URL)
  • நினைவூட்டல்: ஒருபோதும் தானாகச் சமர்ப்பிக்காது — இறுதி மதிப்பாய்வும் சமர்ப்பிப்பும் எப்போதும் கைமுறையே.

படி 16 — கேரியர்ஸ் பக்கத்தைப் புதிய தாவலில் திறங்கள். விண்ணப்ப பட்டியலை உங்கள் todo பட்டியலாகப் பயன்படுத்துங்கள். நிறுவனத்தின் உண்மையான படிவம் வழியாகச் சமர்ப்பிக்கவும். படி 8-இல் உருவாக்கிய PDF-ஐ இணைக்கவும்.

படி 17 — உண்மையான மனிதரை அணுகவும். Outreach முறையைத் திறங்கள் (பக்கப்பட்டியில் #/contacto). மாதிரி, படி 14-இன் நிறுவனச் சுருக்கத்திற்கு ஏற்ப சிறு LinkedIn / மின்னஞ்சல் செய்தியை வரையும். திறப்பைத் தனிப்பயனாக்குங்கள் (உங்கள் ஆழ்-ஆய்வுச் சுருக்கத்திலிருந்து ஒரு குறிப்பிட்ட விவரம்). அனுப்பவும்.

G. கண்காணிப்பு & தொடர் தொடர்பு (தொடர்ச்சியானது)

படி 18 — பக்கப்பட்டியில் Tracker சொடுக்கி விண்ணப்பத்திற்கு ஒரு வரிசையைச் சேர்க்கவும்: நிறுவனம், பதவி, மதிப்பெண், நிலை Applied, அறிக்கைக்கான இணைப்பு, ஆழ்-ஆய்வுச் சுருக்கத்திற்கான இணைப்பு. தேதி தானாக நிரப்பப்படும்.

படி 19 — ஒரு வாரம் கழித்து: Follow-up முறையைத் திறவும் (#/followup). அசல் விண்ணப்பத்தைக் குறிப்பிடும் மரியாதையான நிலை-விசாரணை மின்னஞ்சலை வரையும். அனுப்பவும். ட்ரேக்கர் நிலையை Followed up ஆகப் புதுப்பிக்கவும்.

படி 20 — நேர்காணல் அழைப்பு வந்தால், Interview prep முறையை இயக்கவும் (#/interview-prep). குறிப்பிட்ட நிறுவனம் + நிலைக்கு (system design / behavioral / coding) இலக்கு தயாரிப்பை உருவாக்கும். ஆழ்-ஆய்வுச் சுருக்கத்திலிருந்து தானாக இழுக்கும்.

படி 21 — ஆஃபர் கிடைத்ததா? ட்ரேக்கர் நிலையை Offer ஆக்கி உங்கள் மதிப்பீட்டு அறிக்கையின் சம்பளப் பிரிவை மீண்டும் பாருங்கள் — உங்கள் குறைந்தபட்ச ஏற்பு எண் அங்கேயிருக்கும்.

TL;DR — பக்கப்பட்டி வரிசை பணிப்பாதையுடன் பொருந்துகிறது

Health → App settings → Profile → CV → Scan → Pipeline → Evaluate → Reports → Deep research → Apply checklist → Outreach → Tracker → Follow-up → Interview prep → Activity log

பக்கப்பட்டி இந்த அதே பக்கங்களை கட்டம் வாரியாக (ஆதாரத் தேடல் → முடிவு → விண்ணப்பம் → …) குழுவாக்குகிறது — எனவே பணிப்பாதை வரிசையும் மெனு வரிசையும் ஒன்றாகவே இருக்கும்; பட்டியலை வருடுவதைக் காட்டிலும் மூன்று எழுத்துகள் தட்டச்சு செய்ய விரும்பினால் Cmd/Ctrl+K கட்டளை மெனு-வை (nav.v2.palette) திறக்கும். அவ்வளவுதான். 21 படிகள், பொத்தான்-பொத்தனாக, பூஜ்ஜியத்திலிருந்து ஆஃபர் வரை.

ஒரு-சொடுக்கு Auto-pipeline (#/auto) — 21 படிகளின் சுருக்கு வழி

ஒரு குறிப்பிட்ட பதவியை விரைவாக மதிப்பிட வேண்டுமானால், கைமுறை வழிநடத்தலைத் தாண்டுங்கள். பக்கப்பட்டி → ✨ Auto-pipeline (அல்லது டாஷ்போர்டின் ✨ பொத்தான்) ஒரு தனி திரையைத் திறக்கும்: வேலை URL-ஐ ஒட்டி Enter அழுத்தவும் அல்லது Auto-pipeline இயக்கு (auto.run) சொடுக்கவும் — சர்வர் முழு சங்கிலியையும் ஒரு கண்காணிக்கக்கூடிய கட்டமாக இயக்கும்:

  1. URL சரிபார்ப்பு (auto.step.validate) — SSRF-பாதுகாப்பான சோதனை (isValidJobUrl); loopback / file: / private IP / ஸ்கிரிப்ட் எழுத்துகளை மறுக்கும்.
  2. வேலை விவரத்தைப் பெறுதல் (auto.step.fetch) — safeGet (DNS-pinned, redirect-revalidated) JD-ஐ இழுத்து + சுத்திகரிக்கும்.
  3. உங்கள் CV-க்கு எதிரான மதிப்பீடு (auto.step.evaluate) — Anthropic (விருப்பம்) → Gemini பின்வாங்கல் → கீ இல்லையெனில் கைமுறைப் பிராம்ட்.
  4. அறிக்கை சேமிப்பு (auto.step.report) — தலைப்பில் மதிப்பெண் + நம்பகத்தன்மையுடன் reports/<slug>.md எழுதும்.
  5. ட்ரேக்கரில் சேர்த்தல் (auto.step.tracker) — data/applications.md-இல் ஒரு வரிசையைச் சேர்க்கும்.

நேரடி கருத்து ஒரு செங்குத்து stepper (ஒவ்வொரு படியும் இயங்குகிறது → முடிந்தது / தோல்வி என ஒளிரும்; செயலில் உள்ள படியை aria-current குறிக்கும், ஒவ்வொரு மாற்றத்தையும் மரியாதையான screen-reader live-region அறிவிக்கும்). வெற்றியில் முடிவு அட்டை நேரடியாகச் சேமித்த அறிக்கைக்கு (அறிக்கையைப் பார், auto.viewReport) மற்றும் ட்ரேக்கருக்கும் (auto.viewTracker) இணைக்கும். தோல்வியுற்ற படி அதன் செய்தியுடன் சிவப்பாகக் குறிக்கப்படும்; பொத்தான் மீண்டும் இயங்கும் — URL-ஐச் சரிசெய்து மீண்டும் முயற்சிக்கலாம், மறுஏற்றம் தேவையில்லை. ஒரு இயக்கம் இன்னும் நடந்துகொண்டிருக்கும்போது புதிய இயக்கத்தைத் தொடங்குவது பாதுகாப்பானது: பழைய இயக்கம் இடமாற்றம் — புதிய இயக்கம் கோரப்பட்டது (auto.superseded) எனத் தன்னையே குறிக்கும் — காலாவதியான பதிலுக்கு இரட்டிப்புச் செலவு இல்லை.

காலி பக்கம் தனது ஒற்றை புலத்தைப் பற்றி நேர்மையாக இருக்கும்: உதாரணம் தகடும் உதாரண URL-ஐ முயற்சிக்கவும் பொத்தானும் (v2empty.auto.tryExample) உள்ளீட்டை ஒரு மாதிரி பதவியால் நிரப்பும் — நீங்கள் இயக்கு அழுத்தும் வரை எதுவும் இயங்காது (v2empty.auto.hint), எனவே ஆராய்வதற்குச் செலவில்லை.

API key இல்லையா? பைப்லைன் கைமுறை முறையில் இயங்கும்: 3–5 படிகள் சுருங்கி, ஒட்டத் தயாரான பிராம்ட் அட்டை கிடைக்கும் (Claude Code / Anthropic / Gemini-இல் நகலெடுங்கள்). நேரடி LLM அழைப்பு இல்லை, செலவில்லை.

#/auto இணைக்கக்கூடியது: #/auto?url=<encoded>&go=1 திரையைத் திறந்து தானாகத் தொடங்கும். டாஷ்போர்டின் ✨ பொத்தானும் இந்தப் பக்கப்பட்டி உள்ளீடும் இரண்டும் இங்கேயே வரும் (ஒரே ஒத்த ஓட்டம் — pre-1.34 தற்காலிக மோடல் இந்தப் பக்கமாக உயர்த்தப்பட்டது).

CLI (v1.38.0). ஒரே கட்டளை சங்கிலியைச் செய்யும்: career-ops-ui setup (bootstrap → install → start). தனித்த வினைச்சொற்கள்: career-ops-ui doctor (env/keys/tooling சோதனை — Health பக்கத்தின் அதே இயந்திரம்; எந்தத் தேவை தோல்வியிலும் exit 1), career-ops-ui run, career-ops-ui init (provider+key உதவி, v1.39.0). வழங்குநர்கள் (v1.39.0). API-keys தாவல் LLM_PROVIDER select-ஐச் சேர்க்கிறது (auto = Anthropic→Gemini இயல்புநிலை · claude · gemini) மற்றும் OPENAI_API_KEY புலம் (Codex/OpenCode CLI பக்கம்). career-ops-ui init அதற்கான ஊடாடும் உதவியாளர்.

வழங்குநர்கள் (v1.57.0). Headless நேரடி-மதிபீடு இப்போது Anthropic → Gemini → OpenAI → Qwen → OpenRouter → GitHub Models → Hermes → DeepSeek → GLM (Z.ai) → Kimi (Moonshot) → MiniMax → Mistral → Grok (xAI) → Together → Fireworks → Ollama → BytePlus Ark → Volcengine Ark வரை பரவுகிறது (auto வரிசை; LLM_PROVIDER ஒன்றை நிலைநிறுத்தும்). OpenRouter — ஒரே OPENROUTER_API_KEY 300+ மாடல்களை முன்னிற்கும்; OPENROUTER_MODEL dropdown OpenRouter-இன் நேரடி பட்டியலை ஏற்றும் (சர்வர்-பக்க ப்ராக்ஸி, offline தேர்ந்தெடுத்த பின்வாங்கல்). மேலும் சரி: trailing newline / சுற்றி இடைவெளிகளுடன் ஒட்டப்பட்ட கீகள் சரிபார்ப்புக்கு முன் trim செய்யப்படும் — /#/config எந்த வழங்குநருக்கும் “validation failed” காட்டாது.


2. பயன்பாட்டு அமைப்புகள் & API keys (#/config)

v1.55 → v1.56-இல் புதியது. எந்த LLM கீயும் அமைக்கப்படாத நிலையில், ஒவ்வொரு திரையிலும் ஒரு சிவப்பு பானர் ⚡ Run-live கைமுறை-பிராம்ட் முறையில் இருப்பதை விளக்கி இங்கு இணைக்கும்; ஒரு கீ அமைக்கப்பட்டதும் அது செயலில் உள்ள வழங்குநரைப் பெயரிடும் அமைதியான சிப் ஆகும். எந்த ⚡ Run-live பொத்தானுக்கும் முன் (#/auto, #/evaluate, #/deep, modes) நேர்மையான செலவு தோராயம் காட்டப்படும் (எ.கா. “Estimated cost: OpenAI gpt-5-codex · ~$0.04/eval”, அல்லது கைமுறை முறையில் API-செலவில்லா குறிப்பு). #/scan இரண்டாம்-நிலை வடிப்பான்களை Advanced filters வெளிப்பாட்டுக்குப் பின்னால் வைக்கும்; #/tracker சொடுக்கக்கூடிய funnel சிப்கள் + விருப்ப சர்வர்-பக்க pagination சேர்க்கும்; #/pipeline 1000 வரிசைக்கு மேல் virtualize செய்யும்.

மூன்று தாவல்கள்:

  1. API keys & runtime — பெற்றோர் திட்டத்தின் .env மீதான அமைப்புள்ள புலப் படிவம் (career-ops Node ஸ்கிரிப்ட்கள் தொடக்கத்தில் படிக்கும் அதே கோப்பு). குழுக்கள்: API keys / Runtime / Regional sources. தாவல் ஒவ்வொரு வழங்குநருக்குமான மாடல் தேர்வான்களையும் வெளிப்படுத்தும் — ANTHROPIC_MODEL, GEMINI_MODEL அருகே OPENAI_MODEL (OpenAI/Codex).
  2. Profile — config/profile.yml மீதான புலம்-புலமான படிவம் (web-ui 1.32.0). சேமிப்பு கோப்பில் இணைக்கும் — உங்கள் ஆர்க்கிடைப்புகள், சான்று புள்ளிகள், எந்தத் தனிப்பயன் கீயும் அப்படியே பாதுகாக்கப்படும்.
  3. Modes — modes/_profile.md-க்கான அமைப்புள்ள புலப் படிவம் (web-ui 1.54.3), ஆவணப்படுத்தப்பட்ட அமைப்பிலிருந்து பெறப்பட்டது. பட்டியல்-வகை பிரிவுகள் — Target Roles / Adaptive Framing / Comp Targets — மறுபடியும் கோரக்கூடிய வரி-உருப்படி உள்ளீடுகளாக (வரிசைகளைச் சேர்/நீக்கு) வரும்; உரைப் பிரிவுகள் — Exit Narrative / Location Policy — பெயரிடப்பட்ட textarea-களாக வரும்; எந்தத் தெரியாத அல்லது பட்டியல்-அல்லாத பிரிவும் பெயரிடப்பட்ட சொல்லொண்ணா textarea-வாக விழும். சேமிப்பு இன்னும் பிரிவு வாரியாக இணைக்கும் — முன்னுரை, தொடாத பிரிவுகள், எந்தத் தனிப்பயன் பிரிவும் byte-வாரியாகப் பாதுகாக்கப்படும். முழு-கோப்புத் திருத்தங்களுக்கு — பிரிவுகளைச் சேர்க்க/நீக்க அல்லது முன்னுரையைத் திருத்த — ஒரு Advanced: raw markdown வெளிப்பாடு இருக்கும்.

எந்தத் தாவலிலான சேமிப்பும் உடனடியாகப் பரவும் — சர்வர் மறுதொடக்கம் தேவையில்லை.

உங்கள் LLM வழங்குநரை அமைத்தல் (படிப்படியாக). web UI-இன் ⚡ நேரடி மதிப்பீடு headless ஆக இயங்குகிறது; ஒரே API key-ஐப் பயன்படுத்தும். இது “OR” முறையில் வேலை செய்யும் — இவற்றில் எதையும் ஒன்றை அமைத்தால் அப்படியே வேலை செய்யும்; பல அமைக்கப்பட்டிருந்தால் auto இந்த வரிசையில் விரும்பும்: Anthropic → Gemini → OpenAI → Qwen → OpenRouter → GitHub Models → Hermes → DeepSeek → GLM (Z.ai) → Kimi (Moonshot) → MiniMax → Mistral → Grok (xAI) → Together → Fireworks → Ollama → BytePlus Ark → Volcengine Ark. (career-ops என்பது CLI-சார்ந்ததல்ல — நீங்கள் அதை Claude Code, Cursor, Codex, Gemini, OpenCode, Antigravity, Grok Build, Qwen, Copilot அல்லது Kimi-க்குள்ளும் இயக்கலாம்; அது இந்த headless key-இலிருந்து தனித்தது.)

  1. #/config திறங்கள் → API keys & runtime தாவல்.
  2. LLM_PROVIDER-இல் உங்கள் வழங்குநரைத் தேர்ந்தெடுங்கள்: auto (அமைக்கப்பட்ட எந்தக் கீயும்), அல்லது எந்த வழங்குநர் ஸ்லக்குடனும் ஒன்றை நிலைநிறுத்துங்கள் — claude / gemini / openai / qwen / openrouter / github / hermes / deepseek / zai / kimi / minimax / mistral / grok / together / fireworks / ollama.
  3. நீங்கள் தேர்ந்தெடுத்த வழங்குநருக்கு கீ + மாடலை நிரப்பவும்:
    • Anthropic — ANTHROPIC_API_KEY அமையுங்கள் (console.anthropic.com), விருப்பமாக ANTHROPIC_MODEL (இயல்புநிலை claude-sonnet-4-6).
    • Gemini — GEMINI_API_KEY அமையுங்கள் (aistudio.google.com/apikey), விருப்பமாக GEMINI_MODEL (இயல்புநிலை gemini-3.6-flash).
    • OpenAI — OPENAI_API_KEY அமையுங்கள் (platform.openai.com), விருப்பமாக OPENAI_MODEL (இயல்புநிலை gpt-5-codex).
    • Qwen — QWEN_API_KEY அமையுங்கள் (Alibaba Model Studio / DashScope, dashscope.console.aliyun.com), விருப்பமாக QWEN_MODEL (இயல்புநிலை qwen-max). நிலப்பரப்பு-CN முனையத்திற்கு மூல .env-இல் QWEN_BASE_URL அமையுங்கள்.
    • மேலும் OpenAI-இசைவு வழங்குநர்கள் (v1.216.0) — ஒவ்வொன்றும் ஒரு கீ தூரத்தில், அதே ⚡ நேரடி மதிபீடு மற்றும் புலப் பட்டியலில் எழுத்து-சின்ன ஓட்டை: DeepSeek (DEEPSEEK_API_KEY, platform.deepseek.com), GLM / Z.ai (ZAI_API_KEY, z.ai — ZAI_BASE_URL சீன முனையம் open.bigmodel.cn-க்கு மாற்றும்), Kimi / Moonshot (MOONSHOT_API_KEY, platform.moonshot.ai — CN முனையத்திற்கு MOONSHOT_BASE_URL), MiniMax (MINIMAX_API_KEY), Mistral (MISTRAL_API_KEY, console.mistral.ai), Grok / xAI (XAI_API_KEY, console.x.ai), Together (TOGETHER_API_KEY, together.ai — Thinking Machines-இன் Inkling உட்பட திறந்த-எடை மாடல்கள், thinkingmachines/Inkling), Fireworks (FIREWORKS_API_KEY, fireworks.ai), மற்றும் Ollama — முழுவதும் உள்ளூர், கீ இல்லை: OLLAMA_BASE_URL அமைத்து (இயல்புநிலை http://localhost:11434/v1) ollama serve இயக்கவும். ஒவ்வொன்றிற்கும் புலமையான இயல்புநிலையுடன் ஒரு விருப்ப *_MODEL புலம் உண்டு.
  4. சேமி சொடுக்கவும். கீகள் பெற்றோர் திட்டத்தின் .env-இல் எழுதப்படும்; மாற்றம் உடனடியாகச் செயல்படும் — சர்வர் மறுதொடக்கம் தேவையில்லை.
  5. #/evaluate இல் சரிபார்க்கவும்: ஒரு வேலை URL/விவரத்தை ஒட்டி ⚡ நேரடியாக இயக்கு அழுத்தவும். முடிவுத் தலைப்பு எந்த வழங்குநர் இயங்கியது என்பதைக் காட்டும் (anthropic / gemini / openai / qwen). எங்கும் கீ அமைக்கப்படவில்லை என்றால் → அதற்குப் பதிலாக நகலெடுக்கக்கூடிய கைமுறைப் பிராம்ட் கிடைக்கும்.

சேமித்த பிறகு ரகசியங்கள் மறைக்கப்படும்; எப்போதும் பதிவு செய்யப்படாது. மாடல்-id புலங்கள் (*_MODEL) ரகசியம் அல்ல.

Profile தாவல் (புலப் படிவம் — v1.32.0)

v1.32.0-க்கு முன் இந்தத் தாவல் ஒவ்வொரு அமைப்பும் ஒரே பிரிக்கப்படாத தொகுதியாக இருந்த ஒரே மூல-YAML textarea. இப்போது அது அமைப்புள்ள படிவம்; புலங்கள் மூன்று சுருங்கக்கூடிய பிரிவுகளாகக் குழுவாக்கப்பட்டுள்ளன:

  • Candidate — முழு பெயர் (தேவை), மின்னஞ்சல், தொலைபேசி, இடம், LinkedIn, GitHub, போர்ட்ஃபோலியோ URL, X / Twitter.
  • Narrative — தலைப்பு, வெளியேற்றக் கதை.
  • Compensation — இலக்கு வரம்பு, நாணயம், கீழ்-வரம்பு நிமிடம், இட நெகிழ்வு.
  • அமைப்புள்ள அணி எடிட்டர்கள் (web-ui 1.35.0) — பட்டியல்-வடிவ புலங்களுக்கான சேர்/நீக்கு-வரி எடிட்டர்கள்; இப்போது இவற்றுக்கும் மூல YAML தேவையில்லை: Target roles + Superpowers (சரம் பட்டியல்கள்); Archetypes (பெயர் / நிலை / பொருத்தம் வரிசைகள்); Proof points (பெயர் / url / hero-அளவீடு வரிசைகள்). காலி வரிசைகள் கைவிடப்படும்; முழுவதும் காலியாக்கிய பட்டியல் கீயைச் சுத்தமாக நீக்கும். அதே இணை-மாற்றா-உத்தரவாதம் — நீங்கள் தொடாத ஒவ்வொரு அணியும் அப்படியே எஞ்சும்.

சேமிப்பு பாதுகாப்பானது எப்படி:

  • படிவம் 14 மாதிரிகாட்டப்பட்ட ஸ்கேலர் பாதைகளை மட்டுமே { fields: { "candidate.full_name": … } } ஆக அனுப்பும். சர்வர் ஏற்கனவே உள்ள config/profile.yml-ஐப் படித்து, அந்த இலைகளை மட்டும் அமைத்து/அழித்து, முழு பொருளையும் மீண்டும் serialize செய்யும் — எனவே படிவம் மாதிரிகாட்டாத உட்பொதிந்த அணிகள் (target_roles.archetypes, narrative.proof_points, narrative.superpowers) மற்றும் நீங்கள் கையால் சேர்த்த எந்தத் தனிப்பயன் கீயும் ரவுண்ட்-டிரிப் அப்படியே எஞ்சும். புலத்தை அழிப்பது அந்தக் கீயைச் சுத்தமாக நீக்கும் (phone: "" மிச்சம் இல்லை).
  • சரிபார்ப்பு இன்னும் முழு பெயரைக் கோரும்; # Career-Ops Profile Configuration தலைப்பு தானாகச் சேர்க்கப்படும்.
  • ஒரு சமரசம்: புலப்-படிவச் சேமிப்பு YAML-ஐ மீண்டும் serialize செய்யும், எனவே inline # கருத்துரைகள் இழக்கப்படும். கருத்துரைகளைப் பாதுகாக்க அல்லது உட்பொதிந்த அணிகளைத் திருத்த, தாவலின் கீழ் உள்ள Advanced: edit raw YAML வெளிப்பாட்டைப் பயன்படுத்துங்கள் — அது pre-1.32 முழு-கோப்பு எடிட்டர், மாறவில்லை (சேமிக்கும்போது முழு கோப்பையும் மாற்றும்).
  • #/profile இல் உள்ள வாசிப்பத்தற்கு மட்டுமான சுருக்கம் அதன் காட்சி இணை.

அங்கீகரிக்கப்பட்ட கீகள்

மிகவும் பொதுவாகத் தேவைப்படும் கீகள். இது ஒரு தேர்வு, பதிவேடு அல்ல — #/config எல்லா அங்கீகரிக்கப்பட்ட கீகளையும் குழுவாக்கி ஒவ்வொன்றுக்கும் குறிப்புடன் பட்டியலிடும்.

கீ இது என்ன செய்யும் எங்கு பெறுவது
ANTHROPIC_API_KEY நேரடி Anthropic SDK அழைப்புகளை இயக்கும். Anthropic + Gemini இரண்டும் அமைக்கப்பட்டிருந்தால் விருப்பம் — JD மதிப்பீடு மற்றும் ஆழ் ஆய்வுக்கு சிறந்த நீள-உரை அமைப்புள்ள வெளியீடு. https://console.anthropic.com/settings/keys
ANTHROPIC_MODEL இயல்புநிலை claude-sonnet-4-6-ஐ மேலெழுதும். கடின சிந்தனைக்கு claude-opus-4-7, மலிவு-வேகத்திற்கு claude-haiku-4-5-20251001 முயற்சிக்கவும். —
GEMINI_API_KEY Anthropic கீ இல்லாதபோது பின்வாங்கல். oferta முறைக்கு gemini-eval.mjs பயன்படுத்தும். குறைந்த அளவுக்கு இலவச அடுக்கு போதும். https://aistudio.google.com/apikey
GEMINI_MODEL இயல்புநிலை Gemini மாடலை மேலெழுதும். —
PORT Express bind துறை. இயல்புநிலை 4317. —
HOST Bind முகவரி. இயல்புநிலை 127.0.0.1. 0.0.0.0 அமைத்தால் UI LAN-இல் தெரியும் — இன்னும் அங்கீகார வாயில் இல்லை, Production-readiness ஆவணம் பார்க்கவும். —

நடத்தை

  • Read (GET /api/config) அங்கீகரிக்கப்பட்ட ஒவ்வொரு கீயையும் திருப்பும். ரகசியக் கீகள் (ANTHROPIC_API_KEY, GEMINI_API_KEY) மறைக்கப்படும் — sk-ant•••••••a1b2 பார்ப்பீர்கள், முழு மதிப்பு ஒருபோதும் இல்லை.
  • சேமி (POST /api/config) ஒவ்வொரு மதிப்பையும் சரிபார்த்து, <parent>/.env-இல் எழுதி, இயங்கும் செயல்முறைக்கு உடனடியாகப் பயன்படுத்தும். மறுதொடக்கம் தேவையில்லை.
  • காலி மதிப்பு கீயை நீக்கும் — அமைப்பு அமைக்கப்படாத நிலைக்குத் திரும்பும்; திட்ட இயல்புநிலை மீண்டும் பொருந்தும்.
  • Dropdown-கள் “Use the default (…)” உடன் தொடங்கும். அதைத் தேர்வு செய்வது கீ அமைக்கப்படாத நிலையைக் குறிக்கும்: பயன்பாடு திட்ட இயல்புநிலையைப் பயன்படுத்தும்; திட்டம் அதை மாற்றும்போது நீங்கள் புதியதைப் பெறுவீர்கள். கீழ் பட்டியலில் இருந்து அதே மதிப்பைத் தேர்ந்தெடுப்பது அதை நிலைநிறுத்தும் — இயல்புநிலை நகர்ந்தாலும் அப்படியே இருக்கும்.
  • நீங்கள் ஒருபோதும் தொடாத புலம் எழுதப்படாது. அமைக்கப்படாத புலம் சர்வர் பயன்படுத்தும் இயல்புநிலையைக் காட்டும்; நீங்கள் உண்மையில் திருத்தும் வரை அந்தக் காட்சி மதிப்பு சேமிக்கப்படாது.
  • சேமிப்பு என்ன மாறியது என்பதை அறிவிக்கும். டோஸ்ட் எழுதப்பட்ட கீகளையும் மற்றும் நீக்கப்பட்ட கீகளையும் எண்ணும் — புலத்தை அழிப்பது · 1 காட்டும், · 0 அல்ல.

சோதனை பொத்தான்கள்

சேமித்த பிறகு ▶ Test Anthropic அல்லது ▶ Test Gemini சொடுக்கவும் — இரண்டும் சிறிய பிராம்ட்டை (≤256 டோக்கன் வெளியீடு) இயக்கும்; கீ சரியாக இணைக்கப்பட்டுள்ளதா என உறுதிப்படுத்தும்போது கிட்டத்தட்ட எதுவும் செலவாகாது. வெற்றியில் ~200 எழுத்து மாதிரியைத் திருப்பும்.

AI CLI கருவிகள் தாவல். career-ops Claude-Code-ஆல் இயங்குகிறது, ஆனால் திறந்த ஸ்கில் தரத்தில் எந்த ஏஜென்ட் CLI-உடனும் வேலை செய்யும். AI CLI tools தாவல் அது அறிந்தவற்றை பட்டியலிடும் — Claude Code, Cursor, Codex, Gemini CLI, OpenCode, GitHub Copilot CLI, Qwen, Antigravity, Kimi CLI, Grok Build CLI — மற்றும் எவை சர்வர் இயங்கும் கணினியில் நிறுவப்பட்டுள்ளன, எங்கே என்பதைக் காட்டும். சர்வரின் PATH-இன் வாசிப்பத்தற்கு மட்டுமான ஸ்கேன்: பைனரி இருக்கிறதா என்று மட்டுமே சரிபார்க்கும், ஒருபோதும் இயக்காது (--version கூட இல்லை), எதுவும் எழுதாது. எதுவும் தோன்றவில்லை என்றால், டெர்மினலிலிருந்து பைப்லைனை இயக்க ஒன்றை (எ.கா. Claude Code) நிறுவுங்கள்.

தோற்றம் — நிறுவன லோகோக்கள். Appearance அட்டையில் ஒரே டோக்கிள்: Show company logos in the scan table. இயல்புநிலையில் முடக்கப்பட்டது. இயக்கினால், ஒவ்வொரு ஸ்கேன் வரிசையும் நிறுவனத்தின் லோகோவைக் காட்டும் — அதன் சொந்த டொமைனிலிருந்து பெறப்பட்ட favicon, சர்வர் வழியாகப் ப்ராக்ஸி (/api/logo); எந்த மூன்றாம் தரப்பு லோகோ சேவையும் நீங்கள் பார்க்கும் முதலாளிகளைப் பற்றி அறியாது. பகிர்ந்த வேலைப் பலகையில் (Greenhouse, Lever, Ashby, …) ஹோஸ்ட் செய்யப்பட்ட பதவிகள் பலகையின் குறிக்குப் பதிலாக வண்ண எழுத்து பேட்ஜை காட்டும்; ஏற்றத் தோல்வியுற்ற எந்த லோகோவும் அதே பேட்ஜுக்கு விழும். இது தூய அழகியல் — எதுவும் எழுதப்படாது; CV/சுயவிவரத் தரவு ஈடுபடாது.

அமைவு மருத்துவர் — முழுமையற்ற CV அல்லது சுயவிவரத்தைக் கண்டறிதல்

#/config-இன் Setup doctor தாவல், உங்கள் cv.md மற்றும் config/profile.yml உண்மையில் நிரப்பப்பட்டுள்ளனவா என்பதற்கான வாசிப்பத்தற்கு மட்டுமான சோதனையை இயக்கும் — மேலும் எஞ்சிய மாதிரி அல்லது placeholder தரவு, அல்லது உங்கள் பிராம்ட் கோப்புகளில் (modes/_shared.md, modes/_writing.md, batch/batch-prompt.md) கையால் எழுதப்பட்ட அளவீடுகள் தவறிவிட்டால் எச்சரிக்கும். இது பிழைகளையும் (பைப்லைனுக்குத் தேவையான ஒன்று இல்லை, எ.கா. cv.md இல்லை) எச்சரிக்கைகளிலிருந்தும் (மாதிரித் தரவு இன்னும் உள்ளது, மிகச் சிறிய தோன்றும் CV, சந்தேகத்திற்குரிய அளவீடு) பிரிக்கும். எதுவும் எழுதப்படாது; எதுவும் எங்கும் அனுப்பப்படாது — வாசித்து அறிவிக்கவே செய்யும். அந்தக் கோப்புகளைத் திருத்திய பிறகு Re-run check அழுத்தவும். பெற்றோர் திட்டம் இல்லாத தனித்த நிறுவலில் தாவல் மங்கலான “not available” வரியைக் காட்டும்.


3. சுயவிவரம் (#/profile — #/settings ஆகவும் அடையலாம்)

config/profile.yml-இன் வாசிப்பத்தற்கு மட்டுமான சுருக்க அட்டைக் காட்சி. திருத்த, App settings → Profile தாவலுக்குச் செல்லவும் (#/config → Profile) — web-ui 1.32.0 முதல் அது புலம்-புலமான படிவம் (Candidate / Narrative / Compensation), மூல-YAML தொகுதி அல்ல. சேமிப்புகள் அதே கோப்பில் இணைக்கும்; மறுஏற்றத்தில் இந்தப் பக்கம் மீண்டும் parse செய்யும்.

மிக முக்கியமான புலங்கள்:

  • candidate.full_name — ஒவ்வொரு பிராம்ட்டிலும் பயன்படும். எந்த template Jane Smith உள்ளது — உண்மையாக எதையும் ஸ்கேன் செய்வதற்கு முன் அதை மாற்றவும், இல்லையெனில் உருவாக்கப்படும் சுட்டுக் கடிதங்கள் placeholder பெயருக்குக் கீழே வெளியேறும்.
  • candidate.email, linkedin, github — சுட்டுக் கடித உருவாக்கம் மற்றும் விண்ணப்பப் பட்டியலில் குறிப்பிடப்படும்.
  • target.roles — ஏற்கப்படும் பணித் தலைப்புகள். ஸ்கேனரின் positive வடிப்பான் இதை மறைமுகமாகப் பயன்படுத்தும் (portals.yml::title_filter வழியாக).
  • target.comp_total_min_usd — குறைந்தபட்ச மொத்த சம்பளம். ஒவ்வொரு மதிப்பீட்டின் D பிரிவும் இதற்குக் கீழ் ஆஃபர்களைக் குறிக்கும்.
  • target.archetypes — மிக முக்கியமான புலம். இவை நீங்கள் ஏற்கும் தொழில் போக்குகள் (எ.கா. Tech-Lead-Backend, Founding-Engineer, Data-Platform). ஒவ்வொரு JD-யும் இவற்றுடன் பொருத்தப்படும்; சிறந்த-பொருத்த ஆர்க்கிடைப் அறிக்கைத் தலைப்பில் விழும்.

full_name தெரிந்த placeholder பெயருடன் பொருந்தும் வரை Health பக்கம் தோல்வியுறும் Profile customized சோதனையைக் காட்டும்.


4. CV (#/cv)

ஒவ்வொரு மதிப்பீடு, ஆழ் ஆய்வு மற்றும் சுட்டுக் கடிதத்திற்குமான ஒற்றை உண்மை ஆதாரம். பெற்றோர் திட்ட root-இல் cv.md ஆக இருக்கும்.

திருத்தும் விருப்பங்கள்

  • நேரடியாக ஒட்டு — இடது textarea ஒரு மார்க்டவுன் எடிட்டர். வலது பலகை LLM-உம் (மற்றும் உங்கள் எதிர்கால ரிக்ரூட்டரும்) பார்ப்பதைப் பிரதிபலிக்கும்.
  • 📁 Upload CV — இந்த வடிவங்களில் எதையும் உள்ளூர் கோப்பாகத் தேர்ந்தெடுங்கள்; சர்வர் அதை உங்களுக்காக மார்க்டவுனாக மாற்றும்:
    • உரை வடிவங்கள் — .md, .markdown, .txt, .html, .htm அப்படியே கடந்து செல்லும் (HTML pandoc வழியாக → GFM மார்க்டவுன்).
    • Office வடிவங்கள் — .docx, .odt, .rtf — pandoc மூலம் மாற்றப்படும் (macOS-இல் brew install pandoc, Linux-இல் apt install pandoc).
    • PDF — .pdf Poppler-இன் pdftotext மூலம் பிரித்தெடுக்கப்படும் (brew install poppler / apt install poppler-utils).
    • மாற்றப்பட்ட மார்க்டவுன் எடிட்டரில் விழும்; நிலைநிறுத்த 💾 Save சொடுக்கவும். முடிவு சுத்திகரிக்கப்படும் (ஒட்டுதலின் அதே XSS strip).
    • கடும் வரம்பு: பதிவேற்றத்திற்கு 10 MB. பெரிய கோப்புகள் → 413.
  • LinkedIn-இலிருந்து — எளிதான பாதை: பெற்றோர் திட்டத்தில் Claude Code-ஐத் திறந்து, /career-ops இயக்கி, உங்கள் LinkedIn URL-ஐ ஒட்டி, extract my CV from this and write it to cv.md எனக் கேளுங்கள்.

எது சுத்திகரிக்கப்படுகிறது

சர்வர்-பக்கத்தில், /api/cv-க்கான ஒவ்வொரு PUT-உம் stripDangerousMarkdown வழியாகச் செல்லும்:

  • <script>, <iframe>, <object>, <embed>, <svg>, <style>, <form> தகடுகள் — முழுவதுமாக நீக்கப்படும்.
  • Inline event handlers (onclick=, onerror=, போன்றவை) — நீக்கப்படும்.
  • javascript:, vbscript:, data:text/html URI திட்டங்கள் — முடக்கப்படும்.

மேலே உள்ளவை எது நீக்கப்பட்டாலும் பதிலில் sanitized: true இருக்கும் — ஆதாரத்தில் ஏதோ கெட்டது இருந்தது என்று உங்களுக்குத் தெரியும்.

அதிகபட்ச body அளவு: 1 MB. பெரியது 413 திருப்பும்.

பிற பொத்தான்கள்

  • sync-check — பெற்றோர் திட்டத்தில் cv-sync-check.mjs இயக்கும். ஒற்றுமையின்மைகளைக் குறிக்கும்: உங்கள் CV-இல் பட்டியலிடப்பட்டு data/applications.md ஆர்க்கிடைப்புகளில் இல்லாத திட்டம் போன்றவை.
  • 📄 PDF உருவாக்கு — generate-pdf.mjs-ஐ ஒளிபரப்பும். வெளியீடு output/*.pdf-இல் விழும். Playwright தேவை (Health பக்கம் பெற்றோரின் node_modules-இல் நிறுவப்பட்டுள்ளதா என்பதைக் காட்டும்). உருவாக்கம் முடிந்ததும் புதிய PDF உங்கள் இயல்புநிலை Downloads அடைவுக்குத் தானாகப் பதிவிறக்கமாகும்; பக்கத்தில் உள்ள பட்டியல் முன்பு உருவாக்கிய ஒவ்வொரு கோப்பையும் வைத்திருக்கும்.

தொனி / வடிவக் குறிப்புகள்

  • ஒரு கோடு = ஒரு அளவீடுடன் ஒரு சாதனை. “Reduced p99 latency by 38%” என்பது “improved performance”-ஐ விட ஒவ்வொரு மதிப்பீட்டுத் தரஅளவுகோலிலும் மேல்.
  • பிரிவுகள் இந்த வரிசையில்: Summary (3–5 வரிகள்), Experience (தலைகீழ்-காலவரிசை), Projects (அதிகபட்சம் 5), Education, Skills (நகல் நீக்கப்பட்டது, ஆடம்பரச் சொல் சூப்பில்லை).
  • 1500 சொற்களுக்குக் கீழே வைக்கவும். மதிப்பீட்டுத் தரஅளவுகோல் அடர்த்தியான தகவலைப் பயன்படுத்தும்; பரந்து கிடக்கும் CV சத்தத்திற்காகத் தண்டிக்கப்படும்.

5. போர்டல்கள் & ஆதாரங்கள் (portals.yml)

ஸ்கேனர் அமைவு பெற்றோர் root-இல் portals.yml இல் இருக்கும். மூன்று பிரிவுகள் முக்கியம். SPA-இன் மூன்று பிரிவுகளும் (கீழே) scan-job-portals இன் அதிகாரப்பூர்வ career-ops.org அமைப்புடன் 1:1 பொருந்தும்.

சுருக்கு வழி: #/portals URL இப்போது நேரடியாக App settings-க்கு வழிநடத்தும், மேலும் (ஒரு பிராந்திய ஆதாரம் அமைக்கப்பட்டிருந்தால்) Regional sources குழுவுக்குக் குதிக்கும் — எனவே bookmark செய்யப்பட்ட அல்லது தட்டச்சு செய்யப்பட்ட #/portals இணைப்பு இனி 404 ஆகாது (v1.42.0).

title_filter

title_filter:
  positive: [backend, engineer, senior, tech lead, golang, php]
  negative: [junior, intern, frontend, ios, android, java]
  seniority_boost: [Senior, Staff, Lead, Principal]

ஸ்கேன் செய்யப்பட்ட ஒரு வேலைவாய்ப்பு கடக்கும்: அதன் தலைப்பில் குறைந்தது ஒரு positive முக்கிய சொல் இருக்க வேண்டும், எந்த negative முக்கிய சொல்லும் இருக்கக் கூடாது. இரண்டையும் சீரமையுங்கள். முக்கிய சொற்கள் எழுத்து-உணராத substring-கள்.

seniority_boost தலைப்பு-வடிப்பானின் மூன்றாவது கீ. இங்கே பட்டியலிடப்பட்ட முக்கிய சொற்கள் எதையும் வடிகட்டாது — பொருந்தும் வேலைகளை முடிவுகளில் மேலே தள்ளும்; எனவே “Senior Backend Engineer” ஒரு “Engineer”-க்கு மேலே விழும். இயல்புநிலை: ["Senior", "Staff", "Lead"]. உங்கள் இலக்குப் பதவிகள் எப்படித் தலைப்பிடப்படுகின்றன என்பதற்கேற்ப சீரமையுங்கள்.

தெளிவுக்கு 3–5 positive முக்கிய சொற்களில் தொடங்குங்கள்; பின்னர் விரிவாக்கவும்.

location_filter (விருப்பத்தேர்வு — web-ui 1.33.0, parent #570)

location_filter:
  allow:
    - "Remote"
    - "United States"
    - "Atlanta"
  block:
    - "India"
    - "London"
    - "Germany"

ஸ்கேன் செய்யப்பட்ட வேலைவாய்ப்புகளை அவற்றின் இடம் சரத்தால் (எழுத்து-உணராத substring) வடிகட்டும்; ATS ஸ்வீப் மற்றும் பிராந்திய ஸ்வீப் இரண்டாலும் பயன்படுத்தப்படும். அர்த்தங்கள், அதிகாரப்பூர்வ career-ops scan.mjs-உடன் ஒரே மாதிரி:

  • location_filter கீ இல்லை → எல்லா இடங்களும் கடக்கும் (இயல்புநிலை).
  • காலி/இல்லாத இடம் கொண்ட வேலைவாய்ப்பு → கடக்கும் (இல்லாத தரவு தண்டிக்கப்படாது).
  • block முக்கிய சொல் பொருத்தம் → மறுக்கப்படும் (block-க்கு allow-ஐ விட முன்னுரிமை).
  • always_allow பொருத்தம் → கடந்து செல்லும், block பொருத்தமும் இருந்தாலும் — பல-நாடு இட வரிசைகளுக்கான தப்பிக்கும் வழி (v1.248.1).
  • block_hard பொருத்தம் → நிராகரிக்கப்படும், always_allow அதை மேலெழுத முடியாது.
  • allow காலி → கடக்கும் (block ஏற்கனவே அழித்தது).
  • allow காலி இல்லை → குறைந்தது ஒரு முக்கிய சொல்லுடன் பொருந்த வேண்டும்.

portals.yml-இன் உச்ச-மட்டக் கீ (title_filter-இன் சகோதரி; russian_portals-க்கு உள்ளே அல்ல). தலைப்பு வடிப்பானைத் தாண்டிய ஆனால் நீங்கள் எடுக்க முடியாத பிராந்தியத்தில் உள்ள வேலைகளைக் கீழிறக்க இதைப் பயன்படுத்துங்கள்.

தெளிவுக்கு 3–5 positive முக்கிய சொற்களில் தொடங்குங்கள்; பின்னர் விரிவாக்கவும்.

content_filter (விருப்பத்தேர்வு — web-ui 1.75.0, parent #974). location_filter-இன் உச்ச-மட்ட சகோதரி; அதே positive / negative முக்கிய சொல் பட்டியல்கள், ஆனால் இடத்திற்குப் பதிலாக ஒரு பதவியின் விவரம் / snippet உரைக்கு எதிராகப் பொருத்தப்படும்:

content_filter:
  positive: ["python", "machine learning"]
  negative: ["security clearance", "on-site only"]

location_filter-உடன் ஒரே அர்த்தங்கள்: கீ இல்லை → எல்லாம் கடக்கும்; காலி/இல்லாத விவரம் கொண்ட பதவி கடக்கும் (இல்லாத தரவு தண்டிக்கப்படாது); negative பொருத்தம் → மறுக்கப்படும்; positive காலி → கடக்கும்; positive காலி இல்லை → குறைந்தது ஒரு முக்கிய சொல்லுடன் பொருந்த வேண்டும் (எழுத்து-உணராத substring). ATS மற்றும் பிராந்திய ஸ்வீப் இரண்டாலும் பயன்படுத்தப்படும். விவரம்/snippet அனுப்பும் ஆதாரங்கள் (எ.கா. RSS) மட்டுமே பாதிக்கப்படும் — மற்ற ஒவ்வொரு பதவியும் கடக்கும் — எனவே இதை இயக்குவது body இல்லாத ஆதாரங்களிலிருந்து வரிசைகளை ஒருபோதும் அமைதியாகக் கீழிறக்காது. தலைப்பு-கடந்த ஒரு பதவியின் body உங்கள் ஒப்பந்தம்-முடிப்பை வெளிப்படுத்தினால் அதைக் கீழிறக்க இதைப் பயன்படுத்துங்கள்.

trust_filter (விருப்பத்தேர்வு — web-ui 1.76.0, parent career-ops v1.13.0). ஒவ்வொரு ஸ்கேன் செய்யப்பட்ட பதவியையும் ஒரு நம்பிக்கை மதிப்பெண்ணுடன் (0–100), ஒரு நிலையுடன் (high / medium / low) மற்றும் கொடிகளுடன் குறியிடும் (ஒருபோதும் கீழிறக்காது) உச்ச-மட்டத் தொகுதி. இருந்து முடக்கப்படாவிட்டால் தவிர முடக்கப்பட்டது:

trust_filter:
  enabled: true
  suspicious_domains: ["bit.ly", "tinyurl.com"]   # optional — overrides the default shortener list
  ats_allowlist: ["greenhouse.io", "ashbyhq.com"] # optional — overrides the default ATS host allowlist

ஹியூரிஸ்டிக்குகள்: apply URL இல்லை (−40), தவறான URL (−50), சந்தேகத்திற்குரிய shortener டொமைன் (−25), நிறுவன↔டொமைன் பொருத்தமின்மை (−15, தெரிந்த ATS ஹோஸ்ட்களுக்குத் தாண்டப்படும்). high-க்குக் கீழ் பதவிகள் #/scan அட்டவணையில் மொழி-சார்ந்ததல்லாத ⚠ score பேட்ஜைப் பெறும் (டூல்டிப் கொடிக் குறியீடுகளைப் பட்டியலிடும்); எதுவும் வடிகட்டப்படாமல் குறைந்த-நம்பிக்கை வரிசைகளை ஒரு பார்வையில் காணலாம். pre-1.76 நடத்தையை (குறியிடல் இல்லை, பேட்ஜ் இல்லை) வைக்க தொகுதியை முழுவதுமாக விட்டுவிடுங்கள்.

years_min (விருப்பத்தேர்வு — web-ui 1.262.0)

years_min: 3

விளக்கம் உங்கள் வரம்புக்குக் கீழான குறைந்தபட்ச அனுபவத்தைக் குறிப்பிடும் பதவிகளைத் தாண்டும். parser குறிப்பிடப்பட்ட தேவைகளை மட்டுமே படிக்கும் — குறிப்பிட்ட எண் இல்லாத பதவி எப்போதும் தாண்டிச் செல்லும் (ஊகத்தின் பேரில் ஒருபோதும் நீக்கப்படாது). தாண்டப்பட்ட வரிசைகள் data/scan-history.tsv-இல் skipped_experience ஆகப் பதிவாகும் — URL-ஐ ஒருபோதும் பின் செய்யாத கவனிப்பு-நிலை இது; எனவே அந்தப் பதவி அடுத்த ஸ்கேனில் மீண்டும் தோன்றும்.

search_queries

search_queries:
  - name: "Greenhouse — Rails Engineer"
    query: 'site:job-boards.greenhouse.io "Rails Engineer" OR "Ruby on Rails" remote'
    enabled: true
  - name: "Ashby — Senior Backend"
    query: 'site:jobs.ashbyhq.com "Senior Backend" remote'
    enabled: false

search_queries AI-இயக்க Option B ஸ்கேனை (/career-ops scan Claude Code / Cursor / Codex-க்குள்) இயக்கும். இவை in-process npm run scan-ஆல் (அது பொதுப் பலகை API-களை மட்டுமே தாக்கும்) இயக்கப்படாது. tracked_companies-இல் இன்னும் இல்லாத நிறுவனங்களில் பதவிகளைக் கண்டறிய வேண்டும்போது இவற்றைப் பயன்படுத்துங்கள். ஒரு உள்ளீட்டை இயக்காமல் வைக்க enabled: false அமையுங்கள்.

tracked_companies

tracked_companies:
  - { name: Stripe,     enabled: true, careers_url: https://job-boards.greenhouse.io/stripe }
  - { name: Linear,     enabled: true, careers_url: https://jobs.ashbyhq.com/linear }
  - { name: JetBrains,  enabled: true, careers_url: https://jobs.lever.co/jetbrains }

ஒவ்வொரு உள்ளீட்டுக்கும் தேவையான புலங்கள்: name மற்றும் careers_url. விருப்பம்: api (வெளிப்படையான Greenhouse / Ashby / Lever / Workable / SmartRecruiters / Workday முனையம்), உள்ளீட்டை நீக்காமல் சேர்க்க/விலக்க enabled: true|false. ATS ஸ்கேனர் URL முறையிலிருந்து ATS-ஐக் கண்டறிந்து (job-boards.greenhouse.io/<slug> → Greenhouse, போன்றவை) ஒவ்வொரு நிறுவனத்தின் பொது boards-api-ஐ நேரடியாகப் பெறும். அடையாளம் காணக்கூடிய ATS இல்லாத நிறுவனங்கள் தாண்டப்படும் (/#/scan-இன் Active Companies அட்டை அவற்றை சாம்பலில் ○ உடன் காட்டும்).

Per-tenant ATS வழங்குநர்கள் (v1.76.0 — parent career-ops v1.13.0 parity). இன்னும் ஆறு ATS-கள் careers_url-இலிருந்து (அல்லது வெளிப்படையான api:) நேரடியாகத் தானாகக் கண்டறியும்; provider: தேவையில்லை:

tracked_companies:
  - { name: Acme,    enabled: true, careers_url: https://acme.bamboohr.com }          # BambooHR
  - { name: Foo,     enabled: true, careers_url: https://foo.breezy.hr }              # Breezy HR
  - { name: Bar,     enabled: true, careers_url: https://bar.jobs.personio.de }       # Personio (XML feed)
  - { name: Baz,     enabled: true, careers_url: https://baz.recruitee.com }          # Recruitee
  - { name: SolidCo, enabled: true, careers_url: https://solid.jobs/public-api/offers/it }  # SolidJobs
  # Comeet needs the full careers-api URL (uid + token aren't in the branded page):
  - { name: ComeetCo, enabled: true, api: https://www.comeet.co/careers-api/2.0/company/<uid>/positions?token=<token> }

ஒவ்வொன்றும் அதன் ஹோஸ்ட்டை நங்கூரமிட்ட regex + redirect:'error' (SSRF-பாதுகாப்பு) உடன் நிலைநிறுத்தும். முழுமையான copy-paste உள்ளீடுகளுக்கு docs/portals-examples.md பார்க்கவும்.

ஒரு Personio tenant-ஐ நிலைநிறுத்துதல் (v1.237.0). பல நிறுவனங்கள் தங்கள் Personio பலகையை பிராண்டட் கேரியர்ஸ் பக்கத்தில் iframe ஆகப் பொதிகின்றன; எனவே careers_url நிறுவனத்தின் சொந்த டொமைனைச் சுட்டிக்காட்டும், ஆனால் feed உண்மையில் <slug>.jobs.personio.de இல் வாழும். நங்கூரம் இல்லாமல் அந்தப் பலகைகள் எதுவும் தீர்க்காது. tenant ஸ்லக்கை வெளிப்படையாகத் தாங்கினால் அது careers_url-ஐ வெல்லும்:

tracked_companies:
  - { name: Acme, enabled: true, provider: personio, personio: acme, careers_url: https://acme.com/careers }

ஸ்லக் charset-கட்டுப்படுத்தப்பட்டது (எழுத்துகள், எண்கள், ஐயப்பாடு-குறி; ஐயப்பாடு-குறியில் தொடங்கக் கூடாது; அதிகபட்சம் 63 எழுத்துகள்) மற்றும் உருவாகும் URL அதே ஹோஸ்ட் allowlist மற்றும் HTTPS சோதனையைக் கடக்கும் — புள்ளி, ஸ்லேஷ், @ அல்லது : கொண்ட ஸ்லக் மறுக்கப்படும்; உள்ளீடு careers_url-க்குத் திரும்பும்.

தலைப்பில் வேலை வகையைக் காட்டுதல் (Jobstreet / SEEK, v1.237.0). appendWorkType உடன் ஒப்புக்கொண்டால் பட்டியலின் பணி வகைகள் தலைப்பில் சேர்க்கப்படும்; தலைப்பு வடிப்பான்களும் முதன்மைப்படுத்தலும் ஸ்கேன் நேரத்தில் அவற்றைப் பார்க்கும். இயல்புநிலையில் முடக்கப்பட்டது:

tracked_companies:
  - name: Acme
    enabled: true
    provider: jobstreet
    jobstreet: { siteKey: AU-Main, appendWorkType: true }   # → "Strategy Consultant [Part time]"

siteKey சந்தையைத் தேர்ந்தெடுக்கும்: ID-Main (id.jobstreet.com), SG-Main, MY-Main, HK-Main (hk.jobsdb.com), AU-Main (au.seek.com, www.seek.com.au) மற்றும் NZ-Main (nz.seek.com, www.seek.co.nz). வேலை இணைப்பு சந்தைக்கேற்ப உருவாகும் — /id/ locale முன்னொட்டை இந்தோனேஷிய ஹோஸ்ட்கள் மட்டுமே பயன்படுத்தும்; வேறு எந்தச் சந்தைக்கும் அதுடன் உருவாக்கிய இணைப்பு 404 தரும் (v1.237.0-இல் சரி).

rss (RSS / Atom பலகைகள்)

tracked_companies:
  - { name: LaraJobs, enabled: true, provider: rss, rss: https://larajobs.com/feed }
  - { name: WeWorkRemotely, enabled: true, provider: rss, rss: https://weworkremotely.com/remote-jobs.rss }

RSS/Atom feed வெளியிடும் எந்த வேலைப் பலகையையும் (LaraJobs, WeWorkRemotely, RemoteOK, golangprojects, …) ஸ்கேனரைச் சுட்டிக்காட்டுங்கள் — provider: rss கொண்ட உள்ளீடு மற்றும் rss: (அல்லது feed_url:) கீ சேருங்கள் — குறியீட்டு மாற்ரங்கள் இல்லை. RSS அடாப்டர் ஒவ்வொரு <item>-ஐயும் parse செய்யும் (CDATA + HTML entities; தலைப்புகள்/நிறுவனங்கள் tag-stripped), ஒரு வேலையாக இயல்பாக்கி, ATS ஆதாரங்கள் போலவே அதே title_filter / location_filter + dedup + pipeline-append ஓட்டத்தை இயக்கும். RSS பிறகு #/scan வடிப்பான் dropdown-இல் தேர்வு செய்யக்கூடிய ஆதாரமாகத் தோன்றும். (web-ui v1.62.x)

telegram_channels (பொது Telegram வேலை சேனல்கள்)

telegram_channels:
  enabled: true
  max_posts: 100          # default cap per channel (hard cap 300)
  channels:
    - { name: "PHP jobs", channel: rabotaphp }
    - { name: "Salary PM", channel: salary_pm, max_posts: 50 }

எந்த பொது Telegram சேனலையும் இங்கே பட்டியலிட்டு ஸ்கேன் செய்யுங்கள் — bot token இல்லை, API key இல்லை. ஒவ்வொரு சேனலும் அதன் பொது web முன்தோற்றத்திலிருந்து https://t.me/s/<channel> வாசிக்கப்படும்; அது சாதாரண சர்வர்-rendered HTML. channel: எந்த வடிவத்தையும் ஏற்கும் (rabotaphp, @rabotaphp, அல்லது முழு t.me/… இணைப்பு); max_posts: எத்தனை சமீபத்திய பதிவுகள் வாசிக்கப்படும் என்பதைக் கட்டுப்படுத்தும் (இயல்புநிலை 100, கடும் வரம்பு 300). சேனல்கள் tracked_companies-இல் அல்லாமல் தங்கள் சொந்த உச்ச-மட்டத் தொகுதியில் இருக்கும் — ஒரு சேனல் ஒரு முதலாளி அல்ல, கண்டறியக்கூடிய கேரியர்ஸ் URL இல்லை.

ஒரு சேனல் பதிவு உரை, வேலை பதிவு அல்ல — அமைப்புள்ள புலங்கள் இல்லை. ஆதாரம் முதல் உள்ளடக்க வரியிலிருந்து ஒரு தலைப்பை எடுக்கும்; நிறுவனம் / இடம் / சம்பளம் வெளிப்படையான லேபிள்களிலிருந்து மட்டுமே (Компания:, Локация:) வாசிக்கப்படும்; முழு உரை விவரத்தில் எஞ்சும். உண்மையான பதவிகளை விளம்பரங்களிலிருந்தும் சுருக்கங்களிலிருந்தும் பிரிப்பது உங்கள் title_filter-இன் வேலை. தனிப்பட்ட அல்லது இல்லாத சேனல் பிழையாக அறிவிக்கப்படும், “no vacancies” ஆகாது. Telegram பிறகு #/scan வடிப்பான் dropdown-இல் தேர்வு செய்யக்கூடிய ஆதாரமாகத் தோன்றும். (web-ui v1.228.0)

russian_portals

russian_portals:
  sources: ["hh", "habr", "trudvsem", "getmatch", "geekjob"]      # or just one
  area: 113                 # 1=Moscow, 2=SPb, 113=Russia, 1001=remote
  per_page: 50
  only_remote: false
  queries:
    - "Senior PHP"
    - "Senior Go"
    - "Тимлид PHP"

queries என்பவை hh.ru மற்றும் Habr Career-இன் வேலைவாய்ப்புத் தலைப்புகளுக்கு எதிரான எழுத்து-உணராத substring பொருத்தங்கள். Negative பட்டியலுடனான மேலுருட்டலில் எச்சரிக்கை — "Senior PHP" queries-இல் இருந்து "php" title_filter.negative-இல் முடிந்தால், ஸ்கேன் பூஜ்ஜிய முடிவுகளைத் திருப்பும்; console மேலுருட்டலைப் பற்றி எச்சரிக்கும்.

ரஷ்யப் போர்டல்களை அமைத்தல் — விரிவான அமைவு வழிகாட்டி

v1.29.0 ஐந்து ரஷ்ய-மொழி அடாப்டர்களை வழங்குகிறது. இரண்டுக்கு இயல்புநிலை UA-ஐத் தாண்டி எதுவும் தேவையில்லை (habr-career, HTML scrape; trudvsem, அரசு open-data API — கீ இல்லை, IP வாயில் இல்லை). இன்னும் இரண்டு தொழில்நுட்பப் பலகைகளின் HTML scrapes (getmatch, geekjob — கீ இல்லை). ஒன்று அதிகாரப்பூர்வ hh.ru API — ரஷ்ய-அல்லாத IP-களிலிருந்து 403 தரலாம்; App settings → API keys & runtime வழியாக HH_USER_AGENT env var அமைக்கவும் (அல்லது சர்வரை ரஷ்ய IP / VPN exit node-இலிருந்து இயக்கவும்).

ஆதார பட்டியல்

ஆதாரக் கீ காட்சி லேபிள் வகை அங்கீகாரம் Geo கட்டுப்பாடு
hh hh.ru JSON API விருப்ப HH_USER_AGENT non-RU IP 403 தரலாம்
habr Habr Career HTML இல்லை இல்லை
trudvsem Trudvsem JSON API (open-data) இல்லை இல்லை
getmatch GetMatch HTML இல்லை இல்லை
geekjob GeekJob HTML இல்லை இல்லை

படி 1 — portals.yml-ஐத் திறங்கள்

கோப்பு பெற்றோர் career-ops/ root-இல் இருக்கும் (web-ui/ க்குள் அல்ல). இன்னும் இல்லையெனில், பெற்றோர் திட்டம் வழங்கும் உதாரணத்தை நகலெடுக்கவும்:

# from the parent career-ops/ root (NOT web-ui/)
cp templates/portals.example.yml portals.yml
$EDITOR portals.yml

படி 2 — எல்லா 5 ஆதாரங்களையும் இயக்கு

ஸ்கேன் செய்ய விரும்பும் ஒவ்வொரு ஆதாரத்தையும் பட்டியலிட russian_portals தொகுதியைச் சேர்க்கவும் அல்லது புதுப்பிக்கவும். அணியின் வரிசை முக்கியமல்ல; ஸ்கேனர் அவற்றை registry வரிசையில் நடக்கும்.

russian_portals:
  sources: ["hh", "habr", "trudvsem", "getmatch", "geekjob"]
  area: 113                  # 1=Moscow, 2=SPb, 113=Russia, 1001=remote
  per_page: 50               # how many vacancies per query per source
  only_remote: false         # set true to keep only remote postings
  queries:
    - "Senior PHP"
    - "Senior Go"
    - "Backend Senior"
    - "Тимлид PHP"

படி 3 — queries மற்றும் வடிப்பான்களைச் சீரமை

queries என்பவை ஸ்கேனர் ஒவ்வொரு ஆதாரத்தையும் தேடப் பயன்படுத்தும் சரங்கள். ஒவ்வொரு query ஒவ்வொரு ஆதாரத்திலும் ஒரு முறை இயங்கும் — 4 queries × 5 ஆதாரங்கள் = ஒரு ஸ்கேனுக்கு 20 அழைப்புகள். ஸ்கேன் நேரத்தை ஒரு நிமிடத்திற்குள் வைக்க பட்டியலைக் குறுக்கி வையுங்கள் (3–7 queries). area hh.ru பிராந்தியக் குறியீடு (மற்ற ஆதாரங்கள் புறக்கணிக்கும்). per_page ஒவ்வொரு ஆதாரமும் ஒவ்வொரு query-க்கும் திருப்பும் வேலைவாய்ப்புகளைக் கட்டுப்படுத்தும். only_remote: true ஒவ்வொரு முடிவையும் அடாப்டர் மட்டத்தில் remote-மட்டுமாக வடிகட்டும் (முடிவு அட்டவணையில் இன்னும் தனி Remote சிப் உண்டு).

பொதுவான தடுமாறல்கள்

Negative-பட்டியல் மேலுருட்டல். Query-யில் உள்ள ஒரு சொல் ("php", "senior") title_filter.negative-இலும் தோன்றினால், நீங்கள் பார்க்கும் முன்பே ஒவ்வொரு முடிவும் வடிகட்டப்படும். ஸ்கேன் நேரத்தில் stderr மேலுருட்டல் எச்சரிக்கையை வெளியிடும் — ⚠ config: query "Senior PHP" contains "php" which is in the negative list என்ற வரியைத் தேடுங்கள். மேலுருட்டும் சொல்லை negative-இலிருந்து நீக்கி சரிசெய்யவும்:

title_filter:
  positive: [backend, senior, lead, php, go, golang, python]
  negative: [junior, intern, frontend, ios, android]
russian_portals:
  queries:
    - "Senior PHP"     # OK — "php" no longer in negative list
    - "Senior Go"

ஒரு ஆதாரத்தை தற்காலிகமாக முடக்குதல்

தரவை நீக்காமல் ஒரு ஆதாரத்தை முடக்க, sources-இலிருந்து அதன் கீயை நீக்குங்கள்:

russian_portals:
  sources: ["hh", "habr", "trudvsem"]   # only 3 of 5 sources will run

அமைவைச் சரிபார்த்தல்

portals.yml சேமித்த பிறகு:

# 1. Save portals.yml.
# 2. In the SPA, switch to #/scan.
# 3. Click 🌐 Scan now.
# 4. Watch the SSE log for the per-source line per query:
#       "Senior PHP"
#         hh.ru    18
#         habr     21
#         trudvsem  3
#         getmatch  0
#         geekjob   2
#    A value of 0 is normal for some queries — it just means that
#    source had no matches. A "geo-blocked" or "timeout" line means
#    the adapter reached the site but couldn't read results.

CLI bootstrap ஓட்டம் (scan-job-portals)

அதிகாரப்பூர்வ career-ops அமைவு (பெற்றோர் root-இலிருந்து ஒரே முறை):

cp templates/portals.example.yml portals.yml
$EDITOR portals.yml

bootstrap அவ்வளவுதான். மூன்று பிரிவுகளைத் திருத்தி (title_filter, tracked_companies, search_queries, விருப்ப russian_portals), சேமித்தால் ஸ்கேன் செய்யத் தயார்.

SPA bootstrap நடத்தை

முதல் இயக்கத்தில் சர்வர், portals.yml-இல் இல்லாவிட்டால் ஆவணப்படுத்தப்பட்ட russian_portals: தொகுதியைச் சேர்க்கும் — idempotent (இரண்டாவது boot no-op, ஏனெனில் literal russian_portals: வரி ஏற்கனவே இருக்கும்). ஆங்கிலப் பிரிவுகள் தானாக ஊசி போடப்படாது; அவை மேலே உள்ள அதிகாரப்பூர்வ bootstrap படி நீங்கள் நகலெடுத்த templates/portals.example.yml-இலிருந்து வரும்.

Re-apply cooldown (v1.84.0). ஏற்கனவே விண்ணப்பித்த பதவிகளை ஸ்கேன் மீண்டும் மேற்பரப்பாக்காமல் இருக்க config/profile.yml-இல் re_apply_windows: தொகுதியைச் சேருங்கள். ஒவ்வொரு நிறுவனத்திற்கும் last_apply_date (YYYY-MM-DD), same_role_days (cooldown நீளம்), applied_to: (நீங்கள் விண்ணப்பித்த பதவித் தலைப்புகளின் பட்டியல்), விருப்ப cross_role_bucket (underscore முக்கிய சொற்கள், எ.கா. backend_em) அமையுங்கள். today, last_apply_date + same_role_days-க்கு முன் இருக்கும்போது, அந்த நிறுவனத்தில் தலைப்பு applied_to (substring) அல்லது bucket முக்கிய சொற்களுடன் பொருந்தும் எந்த ஸ்கேன் பதவியும் தாண்டப்படும் — ஸ்கேன் பதிவு Cooldown skipped: N காட்டும்; அந்த வரிசைகள் முடிவு அட்டவணையையோ pipeline.md-ஐயோ அடையாது. நிறுவனப் பொருத்தம் நிறுத்தற்குறி-உணராதது மற்றும் சொல்-எல்லை விழிப்பு (Acme Inc என்பது Acme, Inc.-ஐப் பொருத்தும்). re_apply_windows: கீ இல்லை → cooldown இல்லை (இயல்புநிலை).

pipeline.md-இல் சம்பளம் (v1.84.0). ஸ்கேன் செய்யப்பட்ட ஆஃபர் சம்பளத்தைச் சுமந்தால், அது data/pipeline.md-இல் விருப்ப trailing column ஆக — url | salary — URL-உடன் சேர்க்கப்படும். URL தான் dedup key (பைப்லைன் திரும்பப் படிக்கப்படும்போது சம்பள column strip செய்யப்படும்); அணுக்கை சுத்திகரிக்கப்படும் — வரிசையையோ spreadsheet சூத்திரத்தையோ ஊசி போட முடியாது; ஏற்கனவே உள்ள bare-URL பைப்லைன்கள் மாறாமல் வேலை செய்யும்.

ஒரு நிறுவனத்தின் ATS பலகையைக் கண்டறிதல்

#/portals-இன் மேல் ஒரு Discover ATS board பெட்டி உண்டு. ஒரு நிறுவனப் பெயரைத் தட்டச்சு செய்யுங்கள் (எடுத்துக்காட்டாக “Stripe”); பயன்பாடு Greenhouse, Ashby, Lever-இல் அந்தப் பெயரின் கீழ் ஒரு பொது வேலைப் பலகை உள்ளதா என்று சோதிக்கும் — வாசிப்பத்தற்கு மட்டும், AI இல்லை, உலாவி இல்லை. பலகை உள்ள மற்றும் தற்போது குறைந்தது ஒரு திறந்த பதவியைப் பட்டியலிடும் ஒவ்வொரு வழங்குநருக்கும் ஒரு பொருத்தம் கிடைக்கும்: வழங்குநர், கேரியர்ஸ் URL, திறந்த-பதவி எண்ணிக்கை. Add to tracked அழுத்தினால் அந்தப் பலகை உங்கள் portals.yml-இன் tracked_companies:-இல் சேர்க்கப்படும்; அடுத்த ஸ்கேனிலிருந்து ஸ்கேனர் அதைக் கண்காணிக்கத் தொடங்கும். நகல்கள் கண்டறியப்படும் (“Already tracked” காட்டும்); தெரிந்த ATS ஹோஸ்ட்கள் மட்டுமே சேர்க்கப்படலாம் — வேறு எந்த URL-உம் மறுக்கப்படும். Greenhouse, Ashby, Lever மட்டுமே சோதிக்கப்படும்; வேறு போர்டலில் உள்ள நிறுவனம் அல்லது தற்போது வேலைகள் இடாத ஒன்று பொருத்தத்தைக் காட்டாது.


6. Health (#/health)

ஒவ்வொரு அமைவு வாயிலும் OK / OPTIONAL / FAIL பேட்ஜ்களில். எந்த “வேலை செய்யவில்லை” issue-ஐயும் உருவாக்கும் முன் இதைப் படியுங்கள்.

AI பயன்பாடு & செலவு (#/usage). பக்கப்பட்டியில் Health-க்கு அருகில், AI usage பக்கம் நேரடி AI உருவாக்கங்களுக்கு — மதிப்பீடுகள், அறிக்கைகள், உரையாடல்கள் — செலவழித்த டோக்கன்களைக் காட்டும்: கடந்த 24 மணி, 7 நாட்கள், 30 நாட்கள், எல்லா-நேரம் என வழங்குநர் வாரியாக பிரிக்கப்பட்டு, மதிப்பிடப்பட்ட USD செலவுடன். ஒவ்வொரு நேரடி வழங்குநர் அழைப்பும் ஒரு சிறு {provider, in, out} பதிவை data/llm-usage.jsonl-இல் சேர்க்கும்; எதுவும் எங்கும் அனுப்பப்படாது. டாலர் தொகை திருத்தக்கூடிய விலை அட்டவணையிலிருந்தான மதிப்பீடே (server/lib/llm-pricing.mjs) — டோக்கன் எண்ணிக்கைகள் துல்லியமானவை; விலைகள் தோராயமான அறிவிக்கப்பட்ட விலைகள், உங்கள் திட்டத்திற்கேற்ப திருத்தலாம். API key இல்லாத இயக்கங்கள் (கைமுறை முறை) செலவில்லாதவை; பதிவாகாது. ஒவ்வொரு பக்கத்திலும் இடது பக்கப்பட்டியின் கீழ் ஒரு சுருக்கமான USAGE மீட்டர் பொருத்தப்பட்டிருக்கும் — அதே 24h / 7d / 30d டோக்கன் மொத்தங்கள் மற்றும் மதிப்பிடப்பட்ட 24-மணி செலவு, நேரடியாகப் புதுப்பிக்கப்படும்; மெனு அதற்கு மேலே எப்போதும் தெளிவாக இருக்கும்; அதன் தலைப்பைச் சொடுக்கி சுருக்கலாம்.

தேவையான சோதனைகள் (இவை இல்லாமல் அமைப்பு இயங்காது)

  • Node version ≥ 18 — சர்வர் native fetch மற்றும் node:test பயன்படுத்தும்.
  • Project root — CAREER_OPS_ROOT (env அல்லது தானாகக் கண்டறியப்பட்டது) இருக்கிறது.
  • cv.md, config/profile.yml, portals.yml, data/applications.md, data/pipeline.md, modes/oferta.md.

விருப்பச் சோதனைகள் (எச்சரிக்கைகள் மட்டும்)

  • Profile customized — candidate.full_name டெம்ப்ளேட் placeholder அல்ல.
  • GEMINI_API_KEY / ANTHROPIC_API_KEY — .env-இல் அமைக்கப்பட்டது.
  • Playwright (parent node_modules) — PDF உருவாக்கத்திற்கும் check-liveness.mjs-க்கும் தேவை. நிறுவ: cd $CAREER_OPS_ROOT && npm install && npx playwright install chromium.
  • Parent project dependencies — இல்லையெனில் cd $CAREER_OPS_ROOT && npm install.
  • data/, reports/, output/, jds/ அடைவுகள் — முதல் எழுத்தில் தானாக உருவாக்கப்படும்.

சர்வர் loopback-க்கு அப்பால் வெளிப்படுத்தப்பட்டால் (HOST=0.0.0.0) முழுப் பாதைகளும் துல்லியமான Node பதிப்பும் பதிலில் "hidden" ஆக மாற்றப்படும் — ஆர்வமுள்ள அயலவர் உங்கள் நிறுவலை fingerprint செய்ய முடியாது.

இயக்கும் பொத்தான்கள்

  • மருத்துவரை இயக்கு node doctor.mjs இயக்கி வெளியீட்டை ஒரு மோடலில் காட்டும்.
  • ▶ Verify pipeline node verify-pipeline.mjs இயக்கும்.

7. ஸ்கேன் (#/scan)

ஸ்கேனர் இயக்கப்பட்ட ஒவ்வொரு பலகையையும் ஊராடும், உங்கள் வரலாற்றுக்கு எதிராக நகல் நீக்கும், பொருத்தங்களை data/last-scan.json மற்றும் data/pipeline.md-இல் எழுதும்.

ஒரு-சொடுக்கு ஸ்கேன் (SPA)

🌐 ஸ்கேன் இயக்கப்பட்ட ஒவ்வொரு ஆதாரத்தையும் ஒரே ஸ்வீபில் இயக்கும்:

  • Greenhouse / Ashby / Lever / Workable / SmartRecruiters / Workday (ATS ஸ்வீப்) — அடையாளம் காணக்கூடிய ATS URL கொண்ட tracked_companies-இல் உள்ள ஒவ்வொரு நிறுவனத்திற்கும்.
  • v1.75.0 aggregators — ஒரு aggregator-ஐ opt-in செய்யும் ஒவ்வொரு tracked_companies உள்ளீட்டுக்கும்: RemoteOK / Remotive / Working Nomads (பலகை-அளவு remote feeds, provider: <slug>) மற்றும் IBM / Arbeitsagentur / Glints / Jobstreet · SEEK (config-இயக்க, ஒவ்வொரு உள்ளீட்டுக்கும் <provider>: தொகுதி).
  • hh.ru API + Habr Career + Trudvsem + GetMatch + GeekJob — russian_portals-இல் உள்ள ஒவ்வொரு query-க்கும்.

இரு நிலைகள், ஒரே சொடுக்கு (v1.29.2). ஒற்றை 🌐 ஸ்கேன் பொத்தான் ATS ஸ்வீப் மற்றும் பிராந்திய ஸ்வீப் இரண்டையும் ஒரே SSE stream-இல் இயக்கும். பதிவில் இரண்டு நிலை தலைப்புகள் வரிசையாகத் தெரியும்:

  1. ▶ ATS scan (Greenhouse + Ashby + Lever) — EN ATS பலகைகள்.
  2. ▶ Regional scan (hh.ru + Habr Career) — registry-இலிருந்து 5 RU ஆதாரங்கள்.

ஒவ்வொரு நிலையும் ✓ done · NEW=N சுருக்கத்துடன் முடியும். ATS நிலை மட்டுமே தெரிந்தால், உங்கள் நிறுவல் pre-v1.29.2 — upgrade செய்யுங்கள். Pre-v1.29.2 SSE கிளையன்ட் முதல் done நிகழ்வில் மூடிவிடும்; பிராந்திய நிலை அமைதியாக விடப்படும் (tests/scan-stream-multi-phase.test.mjs தான் regression வலை).

ஸ்கேன் இயங்கும்போது நேரடி SSE பதிவு வலது பலகைக்கு ஒளிபரப்பாகும். நிறுத்து சொடுக்கி (அல்லது அப்பாற்பட்டு சென்று) நிறுத்தலாம் — சர்வர் in-flight HTTPS கோரிக்கைகளை AbortController வழியாக ரத்து செய்யும்.

முடிவுகளை வடிகட்டுதல்

பதிவின் கீழ், முடிவு அட்டவணை data/last-scan.json-இலிருந்து வரிசைகளை render செய்யும்.

அட்டவணை ஏற்றப்படும்போதும் (ஒவ்வொரு புதுப்பிப்பிலும்) காலி பலகைக்குப் பதிலாக ஒளிரும் சாம்பல் நிரப்பு வரிசைகள் தெரியும்; பக்கத் தலைப்பு முதல் பிரேமிலிருந்தே இருக்கும் — மெதுவான ஸ்கேன் ஒருபோதும் இறந்த பக்கமாகச் சொல்லாது.

v2 முடிவு chrome கட்டுப்பாடுகளைக் கண்ணுக்குத் தெரியுமாக வைக்கிறது:

  • செயலில் உள்ள வடிகட்டிகள் (scan.v2.activeFilters) — நீங்கள் அமைத்த ஒவ்வொரு வடிப்பானும் அட்டவணைக்கு மேலே அகற்றக்கூடிய சிப்பாகத் தெரியும்; ஒரு சிப்பின் ✕-ஐச் சொடுக்கினால் (வடிகட்டியை அகற்று, scan.v2.removeFilter) அது மட்டும் நீங்கும், அனைத்தையும் மீட்டமை (scan.v2.resetAll) சொடுக்கினால் எல்லாம் நீங்கும்.
  • இதன்படி வரிசைப்படுத்து (scan.v2.sortBy) — ஒரு நெடுவரிசைத் தலைப்பை (நிறுவனம், பதவி, சம்பளம், வயது) சொடுக்கி வரிசைப்படுத்துங்கள்; மீண்டும் சொடுக்கினால் திசை மாறும்.
  • விரைவுப் பார்வை (scan.v2.quickView) — ஒரு வரிசையைச் சொடுக்கினால் அதன் வேலை விளக்கம் அப்பக்கத்தை விட்டுச் செல்லாமல் விரியும் (விளக்கம், scan.v2.description); உடல் சேமிக்கப்படாத பதவிகள் காலி அட்டைக்குப் பதிலாக அதையே சொல்லும் (scan.v2.noDescription).
  • பதிவு (scan.v2.log) — அட்டவணைக்கு முழு அகலம் தர, நேரடி ஸ்கேன் பதிவைச் சுருக்கி/விரிவாக்கலாம்.

ஒவ்வொரு வரிசைக்கும் சொந்தச் செயல்கள் உண்டு: மதிப்பீடு (scan.v2.evaluate) அந்தப் பதவியின் மதிப்பெண்-மதிப்பீட்டுக்கு நேரடியாகக் குதிக்கும், பைப்லைனுக்கு (scan.v2.toPipeline) URL-ஐ வரிசைப்படுத்தும் (ஏற்கனவே வரிசையில் இருந்தால் toast, scan.v2.pipelineDup), வேலையைத் திற ↗ (scan.v2.openPosting) அந்த நிறுவனத்தின் careers பக்கத்தைப் புதிய தாவலில் திறக்கும், ☆ நட்சத்திரம் விருப்பத்தை மாற்றும்.

தேடல் + விலக்கு. Search பெட்டி உங்கள் “கண்டறிய வேண்டிய பதவிகள்” வடிப்பான் — கமாக்களால் பிரிக்கப்பட்ட ஒரு அல்லது பல சொற்களைத் தட்டச்சு செய்யுங்கள்; எதனுடனும் பொருந்தும் வரிசை தெரியும் (OR); தொடக்கத்தில் -சொல் அந்தச் சொல்லை விலக்கும் (scan.v2.moreHint). தனி விலக்கு பெட்டி (scan.lblExclude) முழுச் சொற்களுக்கு அதே வேலையைச் செய்யும்: கமா-பிரிக்கப்பட்ட சொற்கள் நிறுவனம் / பதவி / இடத்தில் அவற்றைக் கொண்ட எந்த வரிசையையும் மறைக்கும் (எ.கா. senior, staff, java விலக்கு). இரண்டும் remote / source / country / posted-within / salary வடிப்பான்களுடன் உங்கள் சேமித்த தேடல்களால் நினைவில் வைக்கப்படும்.

v1.76.0 — முடிவு வரம்பு இல்லை. முந்தைய builds பிராந்தியத்திற்கு அதிகபட்சம் 2000 பொருத்த வரிசைகளைச் சேமித்தன (MAX_STORED_RESULTS); பெரிய ஸ்வீபின் வால் அமைதியாக மறைக்கப்பட்டது. அந்த வரம்பு நீக்கப்பட்டது: ஒவ்வொரு பொருந்த பதவியும் சேமிக்கப்படும்; அட்டவணை அவற்றின் வழியே பக்கங்களாகச் செல்லும் (பக்கத்திற்கு 200 — அட்டவணைக்குக் கீழ் பேஜர் கட்டுப்பாடுகளைப் பயன்படுத்துங்கள்). எதுவும் கைவிடப்படாது; நீங்கள் பக்கங்களை மாற்றுவதே.

v1.78.1 — நேரடி auto-refresh. ஸ்கேன் இயங்கும்போது முடிவு அட்டவணை தானாகப் புதுப்பிக்கப்படும்; முடிந்தவுடன் ஒருமுறை இன்னும் புதுப்பிக்கும் — கைமுறை மறுஏற்றம் அல்லது பக்க மாற்றம் தேவையில்லை. cache ஒவ்வொரு ஸ்கேனின் தொடக்கத்தில் reset செய்து நிரப்பப்படும்.

v1.80.0 — Max per source & source quarantine. Scan பொத்தான் அருகில் உள்ள Max per source புலம் ஒவ்வொரு பலகையும் பங்களிக்கும் வேலைகளைக் கட்டுப்படுத்தும் (காலி/0 = வரம்பில்லை, இயல்புநிலை) — ஒரு பெரிய பலகை எல்லாவற்றையும் ஆக்கிரமிக்காமல் இருக்க பயனுள்ளது. தனித்து, நிரந்தர 404 / 410 திருப்பும் எந்த ஆதாரமும் data/scan-quarantine.json-இல் எழுதப்பட்டு பின்னால் வரும் ஸ்கேன்களில் தாண்டப்படும் (சுய-குணமடைதல்: 14 நாட்கள் கழித்து மீண்டும் முயற்சி) — செத்த ஸ்லக்குகள் பதிவை spam செய்யாது. portals.yml-இல் scan_quarantine: false உடன் முடக்கலாம்.

வடிப்பான்கள் (எப்போதும் தெரியும்: தேடல், விலக்கு, வகை, ஆதாரம், நாடு; மீதியெல்லாம் மேம்பட்ட வடிப்பான்கள், scan.advancedFilters பின்னால் — முழு பலகையும் முடிவு வடிப்பான்கள், scan.filtersGroup கீழ் குழுவாக்கப்பட்டுள்ளது):

  • Free text — தலைப்பு / நிறுவனத்திற்கு எதிரான substring பொருத்தம்.
  • Source dropdown — registry அறிந்த அனைத்து மூலங்களும் (தற்போது 123: 118 EN + 5 RU, இயல்புநிலை எல்லா ஆதாரங்கள்). GET /api/scan/sources இலிருந்து நேரடியாகத் தானாக நிரப்பப்படும் — புதிதாகச் சேர்க்கப்படும் அடாப்டர் எந்த மாற்றமும் இல்லாமல் இங்கே தோன்றும்; பட்டியல் ஒருபோதும் கோடப்படுத்தப்படாது.
  • Remote / Hybrid / Onsite dropdown.
  • Country dropdown — தற்போதைய முடிவுகளில் கண்டறியப்பட்ட நாடுகளிலிருந்து நிரப்பப்படும் புவியியல் வடிப்பான்; ஒவ்வொன்றும் அதன் கொடி emoji மற்றும் எண்ணிக்கையுடன் (எ.கா. 🇩🇪 Germany (12)). ஒன்றைத் தேர்ந்தெடுத்தால் அந்த நாட்டுடன் இணைந்த பதவிகள் மட்டுமே எஞ்சும். கண்டறிதல் ஒரு பதவியின் free-text இடத்தை (நாடு பெயர்கள்/மாற்றுப் பெயர்கள் + ~100 முக்கிய வேலை-சந்தை நகரங்கள்) ஒரு நாட்டுக்கு வரையும்; இது கவனமானது, ஒருபோதும் ஊகிக்காது — இடம் தீர்க்க முடியாத பதவி அல்லது தூய “Remote” பட்டியல் All countries-இன் கீழேயே இருக்கும். பணி-வகை dropdown-உடன் இணைத்து நாட்டு-பிணைப்பு மற்றும் remote பதவிகளைக் கண்டறியலாம்.
  • Posted within dropdown — client-பக்க வயது வடிப்பான் (கடந்த 24 மணி / 7 நாட்கள் / 30 நாட்கள்). pubDate பழைய வரிசைகள் மறைக்கப்படும்; தேதி பட்டியலிடப்படாத வரிசைகள் கடக்கும் (இல்லாத தரவு தண்டிக்கப்படாது).
  • சம்பளம் இருந்து / சம்பளம் வரை (scan.salaryFrom / scan.salaryTo) — வேலை உரையிலிருந்து எடுக்கப்பட்ட தொகைகளுடன் ஒப்பிடப்படும் எளிய எண் வரம்புகள் (நாணயம் புறக்கணிக்கப்படும், scan.v2.salaryHint); எந்த எண்ணையும் குறிக்காத வரிசைகளை சம்பள வடிப்பான் கைவிடாமல் இருக்க சம்பளமில்லாத வேலைகளை சேர்க்கவும் (scan.v2.includeNoSalary) தேர்வு.
  • அளவு dropdown (scan.lblSeniority) — Lead / Staff / Senior / Mid / Junior / Intern, தலைப்பிலிருந்து கண்டறியப்படும்.
  • ★ விருப்பங்கள் — எந்த வரிசையிலும் ☆ சொடுக்கி ஒரு வேலையை நட்சத்திரமிடுங்கள் (URL வாரியாக localStorage-இல் சேமிப்பு); வடிப்பான் பலகையில் ★ விருப்பங்கள் (scan.favOnly) தேர்ந்தெடுத்தால் நட்சத்திரமிட்ட வரிசைகள் மட்டுமே தெரியும். நட்சத்திரங்கள் ஸ்கேன்கள் மற்றும் மறுஏற்றங்கள் தாண்டி எஞ்சும்.
  • சேமித்த தேடல்கள் (scan.savedSearches) — தற்போதைய வடிப்பான் தொகுப்புக்குப் பெயரிட்டு தேடலைச் சேமி (scan.saveSearch); சேமித்தவற்றை ஒரு சொடுக்கில் ஏற்றலாம் (scan.v2.loadSearch), நீக்குவதற்கு முன் கேட்கும் (scan.v2.deleteSearchConfirm). localStorage-இல் சேமிப்பு; சிதைந்த/திருத்தப்பட்ட மதிப்பு சுத்தமாக காலியாக மீட்டமைக்கும்.
  • Stack chips (PHP / Go / Backend / Senior / …) — Skills.detectTech மற்றும் Skills.detectLevel ஆல் ஒவ்வொரு வரிசைக்கும் தானாகக் கண்டறியப்படும். Multi-select intersection — PHP + Senior தேர்ந்தெடுத்தால் இரண்டும் கொண்ட வரிசைகளே தெரியும்.
  • Static stack chips-க்குக் கீழே Dynamic chips — தலைப்புகளிலிருந்து மிக அடிக்கடி வரும் top-25 பேரெழுத்து டோக்கன்கள்; UI நீங்கள் உண்மையில் ஸ்கேன் செய்யும் பதவிகளுக்கு (marketing, design, finance…) தகவமையும் — backend-engineer சொல்லகராதிக்கு மட்டும் பூட்டப்படாது.

Active Companies அட்டை

portals.yml-இல் உள்ள ஒவ்வொரு நிறுவனத்தையும் அதன் ஸ்கேன் நிலையுடன் பட்டியலிடும் சுருங்கக்கூடிய அட்டை:

  • ✓ பச்சை தகடு — நேரடி API ஆதரவு (118 EN அடாப்டர்களில் ஒன்று — Greenhouse / Ashby / Lever / Workable / SmartRecruiters / Workday).
  • ○ சாம்பல் தகடு — web-search பிராம்டுக்கு பின்வாங்கல் (API பொருத்தம் இல்லை).

நிறுவனப் பெயரைச் சொடுக்க → மேலே உள்ள முடிவு வடிப்பானை அந்தப் பெயரால் நிரப்பும். ↗ குறியைச் சொடுக்க → நிறுவனத்தின் careers_url-ஐப் புதிய தாவலில் திறக்கும்.

CLI ஸ்கேன் ஓட்டம் (scan-job-portals)

CLI பக்கத்திலிருந்து ஸ்கேன் செய்ய இரு வழிகள் (இரண்டும் SPA படிக்கும் அதே data/pipeline.md-இல் URL-களை வைக்கும்):

Option A — நேரடி ஸ்கிரிப்ட் (~30 வி, பூஜ்ஜிய AI டோக்கன்):

npm run scan                          # all Greenhouse/Ashby/Lever boards
npm run scan -- --dry-run             # preview without persisting
npm run scan -- --company Anthropic   # narrow to one tracked company

Greenhouse / Ashby / Lever / Workable / SmartRecruiters / Workday (அடையாளம் காணக்கூடிய ATS URL) க்கு மட்டுமே வேலை. AI டோக்கன் எதுவும் பயன்படாது — பொதுப் பலகை API-களை நேரடியாகத் தாக்கும்.

Option B — AI-இயக்க உலாவி ஸ்கேன்:

/career-ops scan

Claude Code / Cursor / Codex / OpenCode / Antigravity CLI / Grok Build CLI / Qwen Code / Kimi / GitHub Copilot CLI (Gemini CLI legacy) க்குள். மாதிரி டோக்கன்களைப் பயன்படுத்தும். ஒவ்வொரு tracked_companies பக்கத்தையும் நேரடியாகப் பார்வையிடும்; API-அல்லாத பலகைகளைக் (கேரியர்ஸ் பக்கங்கள், தனிப்பயன் ATS, பிராந்திய போர்டல்கள்) கண்டறியும். மெதுவானது ஆனால் அகலமானது. நீங்கள் ஆட்சேர்ப்பு செய்வது தெரியும் ஒரு இலக்குக்கு ATS ஸ்வீப் எதுவும் தராதபோது பயனுள்ளது.

வெளியீடு (இரு பாதைகளிலும்) — புதிய JD URL-கள் data/pipeline.md-இல் சேர்க்கப்படும்; பார்வையிடப்பட்ட ஒவ்வொரு URL-உம் data/scan-history.tsv-இல் பதிவாகும் (எல்லா எதிர்கால ஸ்கேன்களிலும் dedup); சுருக்கம் அச்சிடப்படும்: ஸ்கேன் செய்யப்பட்ட நிறுவனங்கள் · கண்டறியப்பட்ட வேலைகள் · தலைப்பால் வடிகட்டப்பட்டவை · தாண்டப்பட்ட நகல்கள் · சேர்க்கப்பட்ட புதிய ஆஃபர்கள்.

மதிப்பெண் வாரியான செயல் வரம்புகள் (/career-ops pipeline புதிய URL-களை பேச்-மதிப்பிட்ட பிறகு பயன்படுத்தவும்):

மதிப்பெண் பரிந்துரைக்கப்பட்ட அடுத்த படி
≥ 4.5 /career-ops apply — உயர் பொருத்தம், உடனடியாக முன்னுக்கு
4.0 – 4.4 விண்ணப்பி, அல்லது பழக்கமான அறிமுகத்திற்கு /career-ops contacto
3.5 – 3.9 /career-ops deep — முதலில் ஆராய்
< 3.5 குறிப்பிட்ட தனிப்பட்ட காரணம் இல்லையெனில் தாண்டு

SPA-இன் #/dashboard மற்றும் #/tracker 4.0 அல்லது அதற்கு மேல் உள்ள ஒவ்வொரு வரிசையையும் முன்னிலைப்படுத்தும் — எதையும் மீண்டும் இயற்றாமல் செயலைத் தேர்ந்தெடுக்கலாம்.

தொடர் தொடர்பு கட்டளைகள்

மதிப்பெண் பெற்ற பிறகு, அதிகாரப்பூர்வ தொடர் தொடர்புகள்:

  • /career-ops apply — வடிவமைக்கப்பட்ட பதில்களுடன் விண்ணப்பத்தை நிரப்பு
  • /career-ops contacto — LinkedIn / மின்னஞ்சல் வெளி தொடர்பு வரைவு
  • /career-ops deep — நிறுவனம் / பதவியை ஆழமாக ஆராய்
  • /career-ops tracker — பைப்லைன் நிலையைப் பார்

hh.ru — இணையதளத்திலிருந்து ஸ்கேன் (ஜூலை 2026 முதல் ரஷ்ய IP தேவை)

hh.ru அதன் பொது தேடல் இணையதளத்தை (hh.ru/search/vacancy) வாசிப்பதன் மூலம் ஸ்கேன் செய்யப்படும் — Habr Career ஸ்கேன் செய்யப்படும் அதே வழி; கீ இல்லை, அமைவு இல்லை. ஆனால் ஜூலை 2026 முதல் hh.ru ரஷ்யாவுக்கு வெளியே உள்ள IP-களுக்கு HTTP 451 (பிராந்திய சட்டத் தடை) வழங்குகிறது, எனவே ஸ்கேன் ரஷ்ய IP-இலிருந்து மட்டுமே வேலை செய்யும் — சர்வரை ரஷ்யாவிலிருந்தோ ரஷ்ய exit node கொண்ட VPN வழியாகவோ இயக்கவும். முதல் 451 (அல்லது anti-bot 403) இல் ஸ்கேனர் அந்த ஓட்டத்தின் மீதிக்கு hh.ru-ஐ முடக்கி பதிவில் சொல்லும்; மற்ற ரஷ்ய ஆதாரங்கள் இன்னும் முடியும். JSON API (api.hh.ru) வேண்டுமென்றே பயன்படுத்தப்படாது: IP அல்லது User-Agent-ஐப் பொருட்படுத்தாமல் ஒவ்வொரு நிரல் வழங்குநருக்கும் 403 forbidden திருப்பும்.

சரியாகத் தெரியும் நெட்வொர்க்கிலிருந்து கூட, hh.ru egress IP-ஐ VPN/ப்ராக்ஸியாக (எந்த datacenter/hosting IP-உம் அப்படியே கணக்கில்) குறித்து ஸ்கேனை ஒரு /vpncheeck interstitial-க்கு (“VPN мешает работе сайта”) 302-redirect செய்யலாம் — அது பூஜ்ஜிய வேலைவாய்ப்புகளுடன் HTTP 200 திருப்பும். ஸ்கேனர் இந்த redirect-ஐக் கண்டறிந்து, ஓட்டத்தின் மீதிக்கு hh.ru-ஐ முடக்கி பதிவில் சொல்லும். தீர்வு நெட்வொர்க் பக்கத்தில்: போக்குவரத்து உண்மையில் ஒரு residential IP வழியாக வெளியேறுகிறது என்பதை உறுதி செய்யுங்கள் — உலாவி டோக்கிள் முடக்கப்பட்டாலும் அமைப்பு-அளவு VPN அல்லது ப்ராக்ஸி பெரும்பாலும் செயலிலேயே இருக்கும் (உங்கள் உண்மை egress IP-ஐச் சரிபார்க்கவும், எ.கா. api.ipify.org).

8. பைப்லைன் (#/pipeline)

மதிப்பிடக் காத்திருக்கும் URL-களின் இன்பாக்ஸ். data/pipeline.md-இல் வாழும்.

Overview பட்டை. பக்கத்தின் மேல் ஒரு சுருக்கப் பட்டை உங்கள் பைப்லைனை ஒரு பார்வையில் காட்டும் — எத்தனை URL இன்பாக்ஸில் (pipe.ovInbox), எத்தனை வரிசை கண்காணிக்கப்பட்டவை (pipe.ovTracked), மற்றும் உங்கள் ட்ரேக்கரிலிருந்து Applied / Responded / Interview / Offer எண்ணிக்கைகள். ஒவ்வொரு சிப்பும் நேரடியாக #/tracker-க்கு இணைக்கும் (நிலை சிப்கள் அதை வடிகட்டி திறக்கும்). ட்ரேக்கரை வாசிக்க முடியாவிட்டால் இன்பாக்ஸ் எண்ணிக்கைக்கு மட்டும் சுருங்கும்.

URL-களைச் சேர்த்தல்

மூன்று வழிகள்:

  • உள்ளீட்டில் ஒரு URL-ஐத் தட்டச்சு/ஒட்டி URL சேர் (pipe.add) சொடுக்கவும்.
  • கட்டளை மெனுவைப் பயன்படுத்தவும்: Cmd/Ctrl+K (அல்லது பக்கப்பட்டியின் கட்டளை மெனு பொத்தான், nav.v2.palette) திறந்து எந்த http(s)://… இணைப்பையும் ஒட்டுங்கள் — மெனு Auto-pipeline: {url} (nav.v2.evalUrl) வாய்ப்பைக் காட்டும்; Enter அழுத்தினால் முழு சங்கிலியும் அந்த URL-இல் இயங்கும். வேறு எந்த உரையையும் தட்டச்சு செய்து Enter அழுத்தினால் அந்தச் சொல் pre-filled ஆக #/scan-க்குக் குதிக்கும்.
  • ஒரு ஸ்கேனை இயக்கவும் (மேலே பார்க்கவும்) — புதிய பொருத்தங்கள் தானாகவே பைப்லைனுக்குப் போகும்.

ஒவ்வொரு URL-உம் சர்வர்-பக்கத்தில் isValidJobUrl() வழியாகச் செல்லும். Loopback (localhost, 127.0.0.1), file://, javascript:, IP literals, மற்றும் template எழுத்துகள் (<, >, ") கொண்ட சரங்கள் எல்லாம் 400.

சர்வர்-பக்க முன்தோற்றப் பலகை

எந்தப் பைப்லைன் வரிசையையும் சொடுக்கி வலது பக்கம் ஒரு முன்தோற்றத்தை ஏற்றுங்கள். பெரும்பாலான ATS பலகைகள் CORS headers அனுப்பாததால் உலாவியால் அவற்றை நேரடியாகப் பெற முடியாது; சர்வர் கோரிக்கையைப் ப்ராக்ஸி செய்து, <script> / <style> / HTML தகடுகளை நீக்கி, 8 KB வரை சாதாரண உரையைத் திருப்பும்.

முன்தோற்றப் ப்ராக்ஸி redirects-ஐ ஒவ்வொரு குதிக்கும் SSRF சரிபார்ப்புடன் கைமுறையாக நடக்கும் — ஒவ்வொரு Location header-உம் மீண்டும் isValidJobUrl() வழியாகச் செல்லும்; எனவே விரோதப் பலகை உங்களை loopback / private IP / file://-க்குத் துடைக்க முடியாது. 3 குதிகள், 15-விநாடி timeout வரம்பு.

வரிசை செயல்கள்

  • ▶ (pipe.evaluateBtn) — URL pre-filled உடன் #/evaluate?url=…-க்குக் குதிக்கும்.
  • ✕ — URL-ஐ data/pipeline.md-இலிருந்து நீக்கும் (முதலில் கேட்கும், pipe.confirmDel).

குழுவாக்கிய பார்வை, மொத்த நீக்கம், இழப்பில்லா செயல்தவிர். ஸ்கேனுக்குப் பிறகு பெரிய இன்பாக்ஸைச் சுத்தம் செய்வதே இந்தப் பக்கத்தின் v2 மையம்:

  • குழுவாக்கு (pipe.viewGrouped) / சுருக்கப் பட்டியல் (pipe.viewFlat) — கருவிப்பட்டி தட்டையான பட்டியலுக்கும் நிறுவன-வாரிக் குழு பலகைக்கும் இடையில் மாற்றுகிறது: அதே முதலாளியின் பதவிகள் ஒரு விரிவகத்தின் கீழ் சுருங்கும் (பெரிய குழு முதலில்), எனவே ஒரு சத்தமான பலகை மற்றவற்றை மூழ்கடிக்காது. தெரியாத நிறுவனங்கள் அவற்றின் host-இன் கீழ் குழுவாகும் — ஆனால் பகிர்ந்த ATS host (சொல்லுங்கள் jobs.lever.co) ஒரு நிறுவனப் பெயரை அந்த host-இல் உள்ள ஒவ்வொரு நிறுவனம்-தாங்கி உள்ளீடும் ஒரே நிறுவனம் என ஒத்துழைக்கும்போது மட்டுமே கடன் வாங்கும்.
  • ஏற்கனவே மதிப்பிடப்பட்டவற்றை மறை (pipe.hideTracked) — இயல்பாக இயக்கத்தில்; அதன் பதவிக்கு ஏற்கனவே ட்ரேக்கர் வரிசை உள்ள உள்ளீடுகள் பார்வையிலிருந்தும் (மொத்தத் தேர்விலிருந்தும்) விலகும் — புதிய வேலை மீதே செயல்படுவீர்கள்.
  • தேர்ந்தெடு (pipe.selectOne) எந்த வரிசைகளையும், அல்லது காட்டப்பட்ட அனைத்தையும் தேர்ந்தெடு (pipe.selectAllShown) — தேர்வு எப்போதும் தற்போதைய வடிப்பான்களைப் பின்பற்றும், காட்டப்படாத வரிசைகளை ஒருபோதும் எடுக்காது. தேர்வுப் பட்டை எண்ணிக்கையைக் காட்டி (pipe.selectedCount) தேர்ந்தெடுத்தவற்றை அகற்று (pipe.bulkRemove) மற்றும் முதல் தேர்வை மதிப்பிடு (pipe.evaluateSelected) வழங்கும் — மொத்த நீக்கம் ஒட்டுமொத்தத் தொகுப்புக்கு ஒருமுறை மட்டுமே உறுதிப்படுத்தும், வரிசைக்கு வரிசையாக அல்ல.

எதுவும் தவறாக இழக்கப்படாது: ஒவ்வொரு நீக்கமும் — தனியானதாகவோ மொத்தமாகவோ — ஒரு மறைந்த restore token திருப்பும்; பக்கத்தின் அடியில் ஒரு பட்டை (நீக்கப்பட்டது: N, pipe.deleted) செயல்தவிர் (pipe.undo) / மூடு (pipe.undoDismiss) வழங்கும். நீக்கங்கள் ஐந்து தொகுதிகள் வரை சேரும் (பழையது கைவிடப்படும்); செயல்தவிர் சமீபத்திய தொகுதியை அதன் tokens-ஐ POST /api/pipeline/restore-க்கு அனுப்பி மீட்டும் — அது அசல் வரிகளை அப்படியே மீண்டும் நுழைக்கும் (checklist metadata உட்பட — எதுவும் மறு-உருவாக்கம் அல்ல) மற்றும் Pipeline-க்கு மீட்டமைக்கப்பட்டது (pipe.undone) என உறுதிப்படுத்தும். அந்தப் பட்டை பக்கத்தின் சொந்த markup-க்கு வெளியே இணைக்கப்பட்டிருப்பதால், ஒரு re-render (வழிசெலுத்தல், விரைவு-சேர் ஓட்டம்) நிலுவையில் உள்ள undo-ஐ விழுங்க முடியாது; சர்வர் ஒரு token-ஐ இனி அறியவில்லை என்றால் (மறுதொடக்கம்) அந்த URL எளிய முறையில் மீண்டும் சேர்க்கப்படும், வீழ்த்தப்படாது.

மேல்-வலது பொத்தான்கள்

  • ⚡ முதலில் மதிப்பிடு (pipe.evaluateAll) — வரிசையில் உள்ள முதல் URL-ஐ மதிப்பீட்டுப் பக்கத்தில் மதிப்பிடத் தயாராகத் திறக்கும் (முதலில் உறுதிப்படுத்தும் — எந்தப் பதவியில் ஒரு இயக்கத்தைச் செலவழிப்பீர்கள் என்பதை இதுவே முடிவு செய்கிறது).
  • வேலைவாய்ப்பு தேடல் — மேலும் URL-கள் வேண்டுமெனில் ஸ்கேனருக்குத் திரும்பும்.

9. மதிப்பீடு (#/evaluate)

ஒரு வேலை விவரத்தை cv.md மற்றும் config/profile.yml-க்கு எதிராக மதிப்பிடும். modes/oferta.md-இன் படி அமைப்புள்ள A–G மதிப்பீடு மற்றும் 0–5 மதிப்பெண் திருப்பும்.

உள்ளீடு

JD-ஐ textarea-வில் ஒட்டவும், அல்லது #/pipeline-இலிருந்து ?url=<href> உடன் இங்கு வாருங்கள் — பக்கம் பைப்லைன் முன்தோற்றங்கள் பயன்படுத்தும் அதே SSRF-பாதுகாப்பான ப்ராக்ஸி வழியாக URL-ஐப் பெற்று textarea-வை pre-fill செய்யும்.

தணிக்கைப் பதிவுக்கு JD-ஐ jds/jd-<date>-<ts>.txt-இல் நிலைநிறுத்த 💾 Save JD சொடுக்கவும் (அல்லது API அழைப்பில் save: true அனுப்பவும் — அதே விளைவு).

பின்வாங்கல் சங்கிலி

  1. Anthropic — ANTHROPIC_API_KEY அமைக்கப்பட்டிருந்தால் விருப்பம். சர்வர் cv.md, config/profile.yml, modes/_shared.md, modes/oferta.md-ஐ பிராம்டுக்கு முன் ஒரு <project_context> தொகுதியாகப் பொதியும் (கோப்பு வகைக்கு ஏற்ற வரம்புகள் — cv 64 KB, mode கோப்புகள் 128 KB, மற்றவை 32 KB — முழு பிராம்ட் 256 KB மென்மையான வரம்பு). அடிப்படையுடைய மார்க்டவுனை நேரடியாகப் பக்கத்திற்குத் திருப்பும்.
  2. Gemini — GEMINI_API_KEY மட்டுமே அமைக்கப்பட்டிருந்தால். சர்வர் gemini-eval.mjs-ஐ JD உடன் தற்காலிகக் கோப்பாகத் தூண்டும். இலவச-அடுக்கு மாதிரி (gemini-3.6-flash) வழக்கமான மதிப்பீட்டிற்குப் போதும்.
  3. Manual — கீ அமைக்கப்படவில்லை. பக்கம் Claude Code, ChatGPT, அல்லது வேறு எந்த LLM-இலும் ஒட்டக்கூடிய முழுமையான பிராம்ட்டைத் தரும்.

வெளியீட்டுப் பிரிவுகள் (அதிகாரப்பூர்வ career-ops.org A-F)

v1.15.0 மறுசீரமைப்பு. தொகுதி எழுத்துகள் இப்போது அதிகாரப்பூர்வ career-ops.org அமைப்பு-உடன் பொருந்தும். Pre-v1.15 அறிக்கைகள் A–G பயன்படுத்தின (C=Risks, F=Verdict, G=Legitimacy); பின்னோக்கு இசைவுக்காக அவற்றை அப்படியே render செய்வோம், ஆனால் புதிய அறிக்கைகள் கீழே உள்ள அதிகாரப்பூர்வ அர்த்தங்களுடன் A–F வெளியிடும். மதிப்பெண் மற்றும் நம்பகத்தன்மை இப்போது அறிக்கை தலைப்பில் வாழும் (score: 4.2/5, legitimacy: High|Medium|Low).

A. Role Summary — 3-கோடு மீள்பார்வை (இடர்கள் உள்ளேயே குறிக்கப்படும்). B. CV Match — top 3 திறன் பொருத்தம் + top 3 இல்லாதவை. C. Strategy — பரிந்துரை: இப்போதே விண்ணப்பி / முதலில் contacto / முதலில் deep / தாண்டு. v1.15-க்கு முன் Risks. D. Compensation — உங்கள் target.comp_total_min_usd (legacy) அல்லது compensation.target_range (அதிகாரப்பூர்வம்) உடன் ஒப்பிட்டு. E. Personalization — முன்னுக்குக் கொண்டுவர வேண்டிய அணுகுமுறை, ஆர்க்கிடைப்பு வாரியாக கட்டமைப்பு, சுட்டுக் கடிதம் / வெளி தொடர்பில் குறிப்பிடத்தக்க கொக்கிகள். v1.15-க்கு முன் Application Strategy. F. STAR stories — பதவிக்கு ஏற்ப வடிவமைக்கப்பட்ட 1–3 ஒட்டத் தயாரான S-T-A-R தொகுதிகள். v1.15-க்கு முன் Verdict (மூல மதிப்பெண்); மதிப்பெண் இப்போது legitimacy-உடன் அறிக்கைத் தலைப்பில் தோன்றும்.

அறிக்கையைச் சேமித்தல்

மார்க்டவுனை reports/<date>-<company>-<role>.md-இல் நிலைநிறுத்த 💾 Save report சொடுக்கவும் (அல்லது API அழைப்பில் save டோக்கிளைப் பயன்படுத்தவும்). அறிக்கையின் parsed தலைப்பு (Score / Legitimacy / URL) Reports பக்கத்திலும் Dashboard-இலும் தோன்றும்.

10+ JD-கள் இருந்தால் பேச்-மதிப்பிடவும்

ஒற்றை JD-க்கு இந்த #/evaluate பக்கமே சரியான கருவி. பைப்லைனில் 10+ URL-கள் வரிசைப்படுத்தப்பட்டிருந்தால் ஒவ்வொரு JD-க்கும் சொடுக்குவது நடைமுறையில் இல்லை — §14-இன் Batch evaluate துணைப்பிரிவுக்குக் (பெற்றோரிலிருந்து ./batch/batch-runner.sh இயக்குதல்) குதித்து, இரவு முழுவதும் இயங்க விட்டு, பிறகு முடிவுகளுக்கு #/reports / #/tracker-க்குத் திரும்புங்கள். முழு ஓட்டம்: batch-evaluate-offers.


10. அறிக்கைகள் (#/reports)

சேமித்த ஒவ்வொரு மதிப்பீட்டையும் உலாவுங்கள். பக்கம் அட்டைகள் பார்வையில் (rep2.viewCards) திறக்கும் — அறிக்கைக்கு ஒரு அட்டை: காட்சித் தலைப்பு, தேதி, நம்பகத்தன்மை பேட்ஜ் மற்றும் வண்ண-குறியிடப்பட்ட மதிப்பெண் மாத்திரை (பச்சை ≥ 4.0, மஞ்சள் ≥ 3.0, கீழ் சிவப்பு; தலைப்பில் parseable மதிப்பெண் இல்லாதபோது அணைந்த “மதிப்பெண் கண்டறியப்படவில்லை” மாத்திரை) — வரிசைகளைப் படிக்க விரும்பினால் அடர்த்தியான அட்டவணை பார்வைக்கு (rep2.viewTable) மாறலாம். ஒவ்வொரு அட்டையும் அட்டவணை வரிசையும் அதன் மதிப்பெண் வரம்புக்கான பரிந்துரைக்கப்பட்ட அடுத்த படியையும் பெயரிடும்: உடனே விண்ணப்பிக்கவும் — சிறந்த பொருத்தம் (rep2.actApply), விண்ணப்பிக்கவும், அல்லது முதலில் தொடர்பைத் தேடுங்கள் (rep2.actContact), முதலில் நிறுவனத்தை ஆராயுங்கள் (rep2.actResearch), அல்லது தனிப்பட்ட காரணம் இருந்தால் மட்டும் முன்னேறுங்கள் (rep2.actLow) — ஒவ்வொன்றும் சரியான பக்கத்துக்கு நேரடி இணைப்பு. மதிப்பெண்ணில்லா அட்டை அணைந்த மதிப்பெண் கண்டறியப்படவில்லை மாத்திரையைக் (rep.scoreUnparsed) காட்டும்; tooltip அறிக்கையையே சுட்டும்.

சரியான அறிக்கையைக் கண்டறிதல். பட்டியலுக்கு மேலே ஒரு வடிப்பான் வரிசை இருக்கும்; எல்லாம் இணைக்கப்படும்:

  • அறிக்கைகளைத் தேடு (rep2.searchLabel) — ஒவ்வொரு அறிக்கையின் நிறுவனம், பதவி, காட்சித் தலைப்பு எதிரான free text.
  • நிறுவனம் (rep2.companyLabel) — dropdown-இலிருந்து ஒரு முதலாளியைத் தேர்வு செய்யுங்கள்.
  • மதிப்பெண் வரம்பு (rep2.bandLabel) — உயர்வு (4.5+) / நல்லது (4.0+) / நடுத்தரம் (3.5+) / 3.5-க்குக் கீழ் (rep2.bandHigh … rep2.bandLow), parseable மதிப்பெண் இல்லாத அறிக்கைகளுக்கு ஒரு கூடையுடன்.
  • தொடக்க நாள் / இறுதி நாள் (rep2.dateFrom / rep2.dateTo) — பட்டியலை ஒரு காலத்திற்குள் அடக்கும்.
  • வரிசைப்படுத்து (rep2.sortLabel) — தேதி / மதிப்பெண் / நிறுவனம் (rep2.sortDate …), ஏறுவரிசை அல்லது இறங்குவரிசை (rep2.sortDirAsc / rep2.sortDirDesc).
  • மதிப்பெண் பரவல் histogram (rep2.histogramLabel) — ஒரு நெடுவரிசையைச் சொடுக்கி அந்த வரம்புக்கு வடிகட்டி, உங்கள் பைப்லைனின் வடிவத்தை ஒரு பார்வையில் காணலாம்.
  • வடிகட்டிகளை மீட்டமை (rep2.reset) எல்லாம் சுத்தம் செய்யும்; எதுவும் பொருந்தவில்லை என்றால் காலி grid-க்குப் பதிலாக பக்கம் அதைச் சொல்லும் (rep2.noMatches).

முழு மார்க்டவுனைப் படிக்க ஒரு அட்டையைச் (அல்லது அட்டவணை வரிசையைச்) சொடுக்கவும். Pagination: பக்கத்திற்கு 20, கட்டுப்பாடுகள் கீழே; ஒவ்வொரு வடிப்பான் மாற்றமும் உங்களைப் பக்கம் 1-க்குத் திரும்பக் கொண்டுவரும்.

ஒற்றை-அறிக்கைக் காட்சியில் இவையும் உண்டு:

  • ← All reports — grid-க்குத் திரும்பு.
  • 🔗 Open JD — அசல் வேலைப் பதவியைப் புதிய தாவலில் திறக்கும்.

அறிக்கையை PDF-ஆக ஏற்றுமதி

சேமித்த அறிக்கையைத் திறந்து 📄 PDF உருவாக்கு சொடுக்கவும். பெற்றோர் திட்டத்தில் generate-pdf.mjs-ஐ ஒளிபரப்பி output/*.pdf-இல் எழுதும் (இதற்கு Playwright தேவை — Health பக்கம் நிறுவப்பட்டுள்ளதா என்பதைக் காட்டும்). எதுவும் எங்கும் அனுப்பப்படாது: விண்ணப்பத்தில் இணைக்கும் முன் PDF-ஐ மதிப்பாய்வு செய்யுங்கள்.


பதவி ஆய்வு — JD ஒருமைப்பாடு சோதனை (v1.262.0)

slug-இல் அறிக்கை எண் தாங்கும் அறிக்கைப் பக்கத்தில், தலைப்பு-செயல் வரிசையில் பதவி ஆய்வு பொத்தான் உள்ளது. அது பெற்றோர் திட்டத்தின் deterministic zero-LLM ஒருமைப்பாடு வாயிலை அறிக்கையின் காப்பகப்படுத்தப்பட்ட JD (அதாவது jds/ capture) மீது இயக்கி, கண்டறிவுகளை இன்லைனாகக் காட்டும் — தீர்ப்பு, சோதனைகள், காரணங்கள். வாயில் உள்ளூரில் இயங்குகிறது: மாதிரி இல்லை, எழுத்து இல்லை. பெற்றோர் checkout posting-guard.mjs script-ஐ இன்னும் வழங்காதவரை, பொத்தான் தவறுக்குப் பதிலாக நேர்மையான “script கிடைக்கவில்லை” குறிப்புடன் பதிலளிக்கும்.

11. ட்ரேக்கர் (#/tracker)

இது CRM. ஒவ்வொரு விண்ணப்பத்திற்கும் ஒரு வரிசை; data/applications.md-இல் GitHub-Flavored Markdown அட்டவணையாக வாழும்.

ஒவ்வொரு வரிசையின் நிலை பேட்ஜும் அதே நேரத்தில் ஒரு select ஆகும் — ஒரு நிலையைத் தேர்ந்தெடுங்கள், அது உடனே சேமிக்கப்படும்: சர்வர் அதிகாரப்பூர்வ set-status.mjs-ஐ அனுப்புகிறது, வரிசை அதே இடத்தில் புதுப்பிக்கப்படும்; தோல்வியுற்ற சேமிப்பு மதிப்பைத் திரும்பப் பெற்று ஒரு toast காட்டும். கையால் திருத்தப்பட்ட அல்லது தெரியாத நிலையுள்ள வரிசைகளும், N/A என எண்ணிடப்பட்ட backfill வரிசைகளும் அதற்குப் பதிலாக வாசிப்பதற்கு மட்டுமென ஒரு பேட்ஜைக் காட்டும்.

நிலை ஓட்டம்

Evaluated → Applied → Responded → Interview → Offer / Hired / Rejected / Discarded / SKIP.

Hired (v1.118.0) இறுதி மகிழ்ச்சி நிலை — ஆஃபர் ஏற்கப்பட்டது. ட்ரேக்கர் அதைக் கொண்டாட்டப் பேட்ஜுடன் குறித்து, வேலை-கிடைத்த பானருடன் வரவேற்கும்.

நிலை-தாவல் பலகை (v1.131.0). அட்டவணைக்கு மேலே ஒரு நிலை-தாவல் பட்டை நீரோட்டத்தை நடக்க உதவும்: All தாவல் மற்றும் ஒவ்வொரு அதிகாரப்பூர்வ நிலைக்கும் ஒரு தாவல், ஒவ்வொன்றும் நேரடி முழு-வரலாற்று எண்ணிக்கையைக் காட்டும் — பூஜ்ஜிய எண்ணிக்கை நிலைகள் உட்பட, எனவே முழு பைப்லைனும் எப்போதும் ஒரு பார்வையில் தெரியும். அட்டவணையை அந்த நிலைக்கு வடிகட்ட ஒரு நிலையைச் சொடுக்கவும்; All-க்குத் திரும்ப மீண்டும் சொடுக்கவும். தாவல்கள் (மற்றும் எண்ணிக்கைகளின் localized/legacy நிலை மாற்றுப் பெயர் சுருக்கம்) GET /api/tracker/stages-இலிருந்து வரும்; அது சர்வர் பயன்படுத்தும் அதே templates/states.yml-ஐப் படிக்கும் — எனவே தாவல் தொகுப்பு பெற்றோரின் நிலை சொல்லகராதியுடன் தானாக ஒத்திசையும்; பக்கத்தில் hardcoded பட்டியல் இல்லை. தேடல், மதிப்பெண் வடிப்பான், வரிசைப்படுத்தக்கூடிய columns, வரிசை-வாரி report/PDF/legitimacy மாறவில்லை; லோகோக்கள் இயக்கப்பட்டிருந்தால் ஒவ்வொரு வரிசையின் நிறுவனமும் பிராண்ட் குறியைக் காட்டும்.

Kanban பார்வை (v2). அதே பலகை drag-and-drop kanban ஆகவும் படிக்கும்: ஒவ்வொரு அதிகாரப்பூர்வ நிலைக்கும் ஒரு நெடுவரிசை (பலகைத் தலைப்பு நிலையின் அடிப்படையில் விண்ணப்பங்கள், track.kanbanBoardAria என அறிவிக்கப்படும்), விண்ணப்பத்திற்கு ஒரு அட்டை. அட்டையை வேறு நெடுவரிசைக்கு இழுக்கவும் — அல்லது அதை focus செய்து நகர்த்து அழுத்தவும் — மாற்றம் எதுவும் எழுதப்படும் முன் முன்னோட்டமாக்கப்படும் (track.kanbanMoveHint); உறுதிப்படுத்தப்பட்ட நகர்வு விளைவு பதிவேட்டில் ஒரு பதிவு சேர்த்து data/applications.md-ஐ மீண்டும் எழுதும் — நிலையைத் திரும்ப மாற்ற வரிசையின் முடிவுறுநிலை பொத்தானைப் பயன்படுத்துங்கள் (track.moveJournal). பைப்லைன் தானே நிர்வகிக்கும் நெடுவரிசைகள் (மற்றும் அர்த்தத்தை நீங்களே மட்டுமே தீர்மானிக்கக்கூடிய Discarded) வாசிப்பதற்கு மட்டுமென render ஆகும் (track.kanbanReadOnly) — drops-ஐ மறுக்கும். பெற்றோரின் outcome பதிவியல் காணவில்லை என்றால் நிலை மாற்றங்கள் நேர்மையான குறிப்புடன் முடக்கப்படும் (track.kanbanMovesOff). பலகை ஏற்றப்படும்போது மற்ற பக்கங்களைப் போலவே ஒளிரும் நிரப்பு வரிசைகளைக் காட்டும்; காலி பலகை விண்ணப்பங்கள் இல்லை (track.kanbanEmpty) எனச் சொல்லி பைப்லைனைச் சுட்டும் (track.emptyBody).

நிலை whitelist சர்வர்-பக்கத்தில் அமல்படுத்தப்படும்; POST /api/tracker-இல் வேறு எதையும் அனுப்பினால் Evaluated ஆக இயல்புநிலையாகும். அதிகாரப்பூர்வ Evaluated → Applied மாற்றம் தானியங்கி — /career-ops apply-இன் இறுதியில் Submitted. உறுதிப்படுத்தும்போது (§14 பார்க்கவும்).

Column அமைப்பு

Column அது என்ன
# தானியங்கி எண், பூஜ்ஜிய-நிரப்பப்பட்டது (001, 002, …).
Date ISO தேதி (YYYY-MM-DD). இயல்புநிலை இன்று.
Company Free text. Pipes () மற்றும் புதிய வரிகள் தானாக escape செய்யப்படும்.
Role அதே.
Score N/5 வடிவம் (எ.கா. 4.2/5).
Status Whitelisted enum.
PDF இந்த வரிசைக்கு generate-pdf.mjs வெற்றி பெற்றால் ✅.
Report பொருந்தும் reports/*.md-க்கான மார்க்டவுன் இணைப்பு.
Notes Free text, 200 எழுத்து வரம்பு.

வடிப்பான்கள்

  • Status dropdown.
  • Score dropdown — ≥ 4.0 (உயர்), ≥ 3.0 (நடுத்தரம்), < 3.0 (குறைவு).
  • Search — நிறுவனம் + பதவி முழுவதும் substring பொருத்தம்.

ஒவ்வொரு வடிப்பானும் paginator-ஐ பக்கம் 1-க்கு மீட்டமைக்கும். பக்கத்திற்கு 25 வரிசைகள்.

பராமரிப்புப் பொத்தான்கள்

  • ▶ Normalize normalize-statuses.mjs இயக்கும் — நிலை எழுத்துக்களை மீண்டும் அதிகாரப்பூர்வமாக்கும் (applied → Applied, interview → Interview).
  • ▶ Dedup dedup-tracker.mjs இயக்கும் — (company, role) வாரியாக எழுத்து-உணராத நகல்களை நீக்கும்.
  • ▶ Merge merge-tracker.mjs இயக்கும் — batch/tracker-additions/*.tsv-இலிருந்து நிலுவை உள்ளீடுகளை இழுக்கும் (Apply உதவியாளர் வழியாக சமர்ப்பிக்கப்பட்ட விண்ணப்பங்கள் பெற்றோரின் batch ஓட்டத்தால் இங்கே விழும்). நகல் நீக்கி, செயலாக்கப்பட்ட கோப்புகளை batch/tracker-additions/merged/-இல் காப்பகப்படுத்தும். upstream batch ஓட்டத்திற்கு batch-evaluate-offers பார்க்கவும்.

வரிசைகளைச் சேர்த்தல்

POST /api/tracker — body { company, role, score?, status?, url?, reportSlug?, notes?, date? }. (company, role) வாரியாக எழுத்து-உணராத dedup. UI-யில், வெற்றியான மதிப்பெண்ணுக்குப் பிறகு Evaluate பக்கம் “Add to tracker” பொத்தானை வழங்கும்.

மற்றொரு ட்ரேக்கரின் CSV-ஐ இறக்குமதி செய் (v1.262.0)

கருவிப்பட்டியின் CSV இறக்குமதி பொத்தான் மற்றொரு ட்ரேக்கரின் CSV ஏற்றுமதியை ஏற்கும் (company/role/status/date/url — நெடுவரிசை மாற்றுப்பெயர்கள் அங்கீகரிக்கப்படும், RFC-4180 quoting ஆதரிக்கப்படும்), ஒவ்வொரு வரிசையையும் அதன் முடிவுடன் முன்னோட்டமாகக் காட்டும் (இறக்குமதி, posting URL வாரியான நகல், தாண்டப்பட்டது), உங்கள் உறுதிப்படுத்தலுக்குப் பிறகே எழுதும். தெரியாத நிலைகள் குறிப்புடன் Evaluated ஆக வரும்; தேதிகள் ISO, day-first மற்றும் month-name வடிவங்களை ஏற்கும்.

“Still live?” — ஒரு ATS பதவி இன்னும் திறந்துள்ளதா எனச் சரிபார்

ATS-ஹோஸ்ட் பதவிக்கு (Greenhouse, Lever, Ashby, Workday, அல்லது SmartRecruiters) இணைக்கப்பட்ட ஒவ்வொரு கண்காணிக்கப்பட்ட வரிசையும் ஒரு சிறு Still live? பொத்தானைப் பெறும். சொடுக்கினால் பயன்பாடு அந்த ATS-இன் சொந்த பொது JSON முனையத்திடம் பதவி இன்னும் உயிருடன் உள்ளதா எனக் கேட்கும் — உலாவி இல்லை, AI டோக்கன் இல்லை, எதுவும் சேமிக்கப்படாது. மூன்று பேட்ஜ்களில் ஒன்று கிடைக்கும்:

  • Live — பதவி இன்னும் பட்டியலிடப்பட்டுள்ளது.
  • Expired — ATS தீர்மானமான “gone” (HTTP 404/410) திருப்பியது; பதவி இழுக்கப்பட்டது.
  • Unknown — சோதனை முடிவுறுதியற்றது (URL அடையாளம் காணப்பட்ட ATS பதவி அல்ல, அல்லது API rate-limit ஆனது / timeout ஆனது / தெளிவற்ற பதில்).

சோதனை வேண்டுமென்றே கவனமானது: கடும் 404/410-இல் மட்டுமே Expired சொல்லும், ஊகத்தில் அல்ல — உண்மையில் இன்னும் திறந்துள்ள ஒரு பதவியிலிருந்து உங்களைப் பயமுறுத்தாது. Lever-இன் பொது API அதிகாரமற்றதாகக் கருதப்படும் (சில இரகசியப் பதவிகளை மறைக்கும்), எனவே அவை Expired அல்ல Unknown ஆகத் தீர்க்கப்படும்.

ஒரு முடிவுறுநிலையைப் பதிவு செய்

ஒரு விண்ணப்பம் அதன் முடிவை அடைந்தால் — ஆஃபர் கிடைத்தது, வேலையை ஏற்றீர்கள், மறுக்கப்பட்டீர்கள், அல்லது எந்தப் பதிலும் வரவில்லை — அந்த ட்ரேக்கர் வரிசையின் Outcome பொத்தானைச் சொடுக்கி பதிவு செய்யுங்கள். சிறு முன்தோற்றம்-பிறகு-உறுதிப்பாடு மோடல் திறக்கும்:

  • என்ன நடந்தது என்று தேர்ந்தெடு — Rejected, Offer received, Hired / accepted, Offer declined, No response / ghosted, அல்லது Advanced to interview.
  • Note (விருப்பத்தேர்வு) — உங்களுக்காக ஒரு சிறு வரி.
  • Preview — பயன்பாடு சரியாக என்ன செய்யும் என்பதைக் காட்டும் (எ.கா. “Will set #12 Acme → Rejected”) மற்றும் இன்னும் எதுவும் எழுதாது.
  • Record outcome — உறுதிப்படுத்தும்.

பதிவு மூன்று செயல்களை ஒரே நேரத்தில் செய்யும்: முடிவை ஒரு சேர்ப்பு-மட்டும் outcome பத்திரிகையில் சேர்க்கும்; சமர்ப்பித்த CV மற்றும் சுட்டுக் கடிதத்தை அந்த விண்ணப்பத்தின் outcome அடைவில் காப்பகப்படுத்தும்; வரிசையின் அதிகாரப்பூர்வ Status-ஐ ஒத்திசைக்கும் — எனவே Hired அல்லது Rejected அட்டவணையை கையால் திருத்தாமல் ட்ரேக்கரிலும் புள்ளிவிவரத்திலும் தோன்றும். மற்ற ட்ரேக்கர் கருவிகள் போலவே Record outcome அழுத்தும் வரை வாசிப்பதற்கு மட்டுமே; பயன்பாட்டின் அருகில் பெற்றோர் career-ops திட்டம் தேவை (அந்தத் திட்டம் இல்லாதபோது பொத்தான் மறைக்கப்படும்).


12. ஆழ் ஆய்வு (#/deep)

அமைப்புள்ள நிறுவனச் சுருக்கத்தை உருவாக்குங்கள்: நிகழ்வுநிலை, பொறியியல் கலாச்சாரம், சமீபத்திய செய்திகள், Glassdoor உணர்வு, நேர்காணல் செயல்முறை, பேச்சுவார்த்தை வலிமைப் புள்ளிகள், ரிக்ரூட்டரிடம் கேட்கத்தக்க மூன்று புத்திசாலி கேள்விகள்.

உள்ளீடு

இரு புலங்கள் — நிறுவனப் பெயர் மற்றும் (விருப்பத்தேர்வு) பதவி. முறை டெம்ப்ளேட் (modes/deep.md) தான் அமைப்பை உருவாக்கும்.

வெளியீட்டுப் பாதைகள்

Evaluate-இன் அதே பின்வாங்கல் சங்கிலி:

  1. Anthropic நேரடி (விருப்பம்) — bundleProjectContext cv + profile + _shared.md + deep.md-ஐ inline செய்யும். வெளியீடு: அடிப்படையுடைய 10–30 KB மார்க்டவுன் interview-prep/<company>-<role>.md-இல் சேமிக்கப்படும்.
  2. Gemini நேரடி — gemini-eval.mjs அழைப்பு. அதே சேமிப்பு இலக்கு.
  3. கைமுறைப் பிராம்ட் — பக்கம் Claude Code-க்கு (WebFetch + WebSearch உள்ளது; உண்மையான ஆராய்ச்சி செய்யும்) தயார் நிலை பிராம்ட்டைத் தரும்.

குறிப்புகள்

  • claude-sonnet-4-6 இல் Anthropic பொதுவாக ஒவ்வொரு அழைப்புக்கும் 1–3 நிமிடங்களில் ~13 KB பயனுள்ள உரையைத் திருப்பும்.
  • Anthropic SDK-க்கு உள்ளார்ந்த web தேடல் இல்லை. புதிய செய்திகள் + Glassdoor உணர்வு தேவைப்படும் பதவிகளுக்கு, கைமுறைப் பிராம்ட்டை Claude Code-இல் ஒட்டி அதன் WebFetch கருவியைப் பயன்படுத்த விடுங்கள்.
  • நேரடி இயக்கங்கள் பில் ஆகும்; ஒரு Sonnet 4.6 ஆழ்-ஆய்வு அழைப்பு ≈ $0.30–0.50.

13. Mode பிராம்ட்கள் (ஏழு /#/<mode> பக்கங்கள்)

Cadence பலகை (v1.117.0). Follow-up பக்கம் இப்போது பெற்றோரின் followup-cadence.mjs-ஆல் ஊட்டப்படும் தீர்மானகரமான cadence பலகையுடன் திறக்கும்: ஒவ்வொரு விண்ணப்பத்திற்குமான அவசரத் தன்மை (🔴 urgent / 🟠 overdue / 🟡 waiting / 🔵 cold) அடுத்ததற்கான நாட்களுடன், மற்றும் ஒவ்வொரு Applied வரிசைக்கும் முதல் தொடர் தொடர்பு தேதியை நிலைநிறுத்தும் Seed follow-up dates பொத்தான் (followup-seed.mjs --backfill). பெற்றோர் ஸ்கிரிப்ட்கள் இல்லாதபோது பலகை நேர்மையான “not available” குறிப்பைக் காட்டும்.

ஏழு பிராம்ட் உருவாக்கிகள்: Project யோசனைகள், Training திட்டங்கள், Follow-up மின்னஞ்சல்கள், Batch மதிப்பீடுகள், ரிக்ரூட்டர்களுக்கான Outreach, Interview prep ஒரு-பக்கங்கள், Patterns மீள்பார்வைகள். ஒவ்வொன்றும் ஒரு குறிப்பிட்ட modes/<slug>.md டெம்ப்ளேட்டைப் பொதியும்:

பக்கம் Slug நோக்கம்
#/project project இலக்குப் பதவிக்காக ஒரு போர்ட்ஃபோலியோ திட்டத்தை வடிவமை.
#/training training திறன்-இடைவெளி பகுப்பாய்வு → பாடத்திட்டம்.
#/followup followup நேர்காணலுக்குப் பின் மின்னஞ்சல் வரைவு.
#/batch batch Multi-JD பேச் மதிப்பீட்டுப் பிராம்ட்.
#/contacto contacto ரிக்ரூட்டர் / பரிந்துரைக்கான வெளி தொடர்புச் செய்தி.
#/interview-prep interview-prep குறிப்பிட்ட நேர்காணல் சுற்றுக்கான ஒரு-பக்கத் தயாரிப்பு.
#/patterns patterns “என்ன போக்குகள் என்னை வெற்றிபெற வைத்தன?” சிந்தனைப் பகுப்பாய்வு.

பகிர்ந்த வடிவம்

ஒவ்வொரு பக்கமும் ஒரு சிறு படிவம் (புலங்கள் முறை-குறிப்பிட்டவை), ஒரு ▶ Generate prompt பொத்தான் (கைமுறை) மற்றும் — Anthropic அல்லது Gemini கீ இருந்தால் — முதன்மையாக உயரும் ⚡ நேரடியாக இயக்கு பொத்தான் கொண்டிருக்கும்.

▶ Generate prompt சொடுக்கினால் படிவ மதிப்புகள் JSON-stringified ஆக User-supplied context: தொகுதியில், அதைத் தொடர்ந்து சொல்லொண்ணா modes/<slug>.md டெம்ப்ளேட்டுடன் இணைக்கப்பட்ட பிராம்ட் திரும்பும். நகலெடுத்து உங்கள் விருப்ப LLM-இல் ஒட்டுங்கள்.

⚡ நேரடியாக இயக்கு சொடுக்கினால் அதே பிராம்ட் Anthropic-க்கு (அல்லது Gemini-க்கு) cv.md + profile.yml + _shared.md bundleProjectContext மூலம் inline செய்யப்பட்டு அனுப்பப்படும். முடிவு பக்கத்தில் render செய்யப்படும்; நகலெடுக்கக்கூடியது; .md ஆகப் பதிவிறக்கக்கூடியது.

ஏழு பக்கங்கள் வெளிப்படையான allowlist — தனி வழி உள்ள modes (oferta → Evaluate, deep → Deep research) மற்றும் பெற்றோர் திட்டம் Claude Code-க்குள் மட்டுமே ஆதரிக்கும் modes (apply, scan, pipeline, tracker, pdf, latex, ofertas, auto-pipeline) வேண்டுமென்றே இந்த UI-க்கு வெளியே இருக்கும்.


14. விண்ணப்பப் பட்டியல் (#/apply)

விண்ணப்பிக்க முடிவெடுத்ததும், இந்த Apply உதவியாளர் பக்கம் உண்மையான விண்ணப்பப் படிக்கான சமர்ப்பிப்புப் பட்டியலை உருவாக்கும். இது படிவங்களை தானாக நிரப்பாது — அந்த ஓட்டம் Claude Code-க்குள் /career-ops apply-இலேயே இருக்கும், அது பெற்றோர் திட்டத்தில் Playwright பயன்படுத்தும்.

SPA பட்டியல் முறை (#/apply)

SPA-இன் பட்டியல், Playwright-ஐ அழைக்காமல் படிவத்தைக் கையால் நிரப்ப விரும்புவோருக்கானது. காலி பக்கம் உங்களை ஊகத்தில் விடாது: விண்ணப்ப செக்லிஸ்டை உருவாக்கவும் என்ற செய்து-காட்டும் உதாரணத்துடன் (v2empty.apply.emptyTitle / v2empty.apply.emptyBody) தோன்றும்; பதவியை ஏற்கனவே மதிப்பிட்டிருந்தால் மதிப்பிடப்பட்ட அறிக்கையைத் தேர்வு செய்யவும் (v2empty.apply.pickReport) என்ற குறுக்குவழியும் உண்டு — பட்டியல் அந்த அறிக்கையின் தரவிலிருந்து தொடங்கும். இது உள்ளடக்கும்:

  1. படிவத்தை Playwright வழியாக வாசிக்க Claude Code-இல் /career-ops apply <url> இயக்கவும் (கையால் நிரப்பினால் இந்தப் படியைத் தாண்டுங்கள்).
  2. பதவி இன்னும் உயிருடன் உள்ளதா எனச் சரிபார்க்கவும் (check-liveness.mjs).
  3. CV சமீபத்தியதா என உறுதிப்படுத்தவும் (cv-sync-check.mjs, பிறகு மதிப்பெண் ≥ 4.0 எனில் PDF).
  4. cv.md-இலிருந்து STAR+R சான்று புள்ளிகளைப் பயன்படுத்தி சுட்டுக் கடிதத்தை / “Why us?” பதிலை வடிவமைக்கவும்.
  5. EEO / sponsorship / தொடக்க-தேதி கேள்விகளுக்கு உண்மையாகப் பதிலளிக்கவும்.
  6. சமர்ப்பிப்பதற்கு முன் நிரப்பிய பதில்களை interview-prep/{company}-{role}.md-இல் சேமிக்கவும்.
  7. ஒருபோதும் தானாகச் சமர்ப்பிக்காது — இறுதி பொத்தானை நீங்களே (மனிதர்) சொடுக்குவீர்கள்.
  8. சமர்ப்பித்த பிறகு: data/applications.md-இல் ஒரு வரிசையைச் சேர்க்கவும் (அல்லது batch/tracker-additions/-இல் TSV எழுதவும்).

கைமுறை நிரப்புதல் vs Playwright-உதவி

உண்மையான சமர்ப்பிப்புக்கு இரு பாதைகள்:

  • கைமுறை — சாதாரண உலாவித் தாவலில் கேரியர்ஸ் பக்கத்தைத் திறந்து, மேலே உள்ள SPA பட்டியலைப் பின்பற்றி பதில்களை நகலெடு/ஒட்டுங்கள். Playwright தேவையில்லை. படிவம் சிறியதாக அல்லது Chromium நிறுவப்படாமல் இருந்தால் பயன்படுத்துங்கள்.
  • Playwright-உதவி — Claude Code-இல் (பெற்றோர் திட்டம்) /career-ops apply <company> இயக்கவும். Playwright அதன் சொந்த உலாவியைத் திறந்து, ஒவ்வொரு படிவப் புலத்தையும் வாசித்து, எண்ணிடப்பட்ட வரைவு பதில்களைத் திருப்பும். Submit-ஐ இன்னும் நீங்களே சொடுக்குவீர்கள். படிவம் நீளமானதாக, dynamic ஆக, அல்லது எந்தக் கேள்விக்கு எந்தப் பதில் என்ற தணிக்கைப் பதிவு வேண்டுமானால் பயன்படுத்துங்கள்.

முழு CLI apply ஓட்டம் (apply-for-a-job)

முன்நிபந்தனைகள்:

  1. முதலில் /career-ops pipeline இயக்கவும் — JD-க்கு reports/-இன் கீழ் ஒரு மதிப்பீட்டு அறிக்கை இருக்க வேண்டும். apply கட்டளை ஏற்கனவே உள்ள மதிப்பீட்டைச் சார்ந்தது; இல்லையெனில் முதலில் pipeline-ஐ இயக்கவும்.
  2. அறிக்கை மற்றும் சுயவிவரம் ஏற்றப்பட்டிருக்க வேண்டும்.
  3. பரிந்துரைக்கப்படுகிறது: Playwright நிறுவப்பட்டிருக்க வேண்டும் (npx playwright install chromium — கீழே Playwright Setup பார்க்கவும்). இல்லையெனில் WebFetch-க்கு (உரை-மட்டும் படிவ முன்தோற்றம், click-fill இல்லை) விழும்.

எண்ணிடப்பட்ட ஓட்டம் (அதிகாரப்பூர்வ 8 படிகள்):

  1. கட்டளையை நிறுவனப் பெயருடன் இயக்கவும்:

    /career-ops apply <company>

    உதாரணம்: /career-ops apply Anthropic. வாதம் இல்லாமல், அடுத்த சுற்றில் படிவத்தின் ஸ்கிரீன்ஷாட், ஒட்டப்பட்ட படிவ உரை, அல்லது விண்ணப்ப URL-ஐத் தாங்கள்.

  2. அறிக்கையைக் கண்டறியவும். அமைப்பு reports/-இல் பொருந்தும் மதிப்பீட்டைக் கண்டறியும் (/career-ops pipeline அல்லது #/evaluate முன்பு உருவாக்கியது).

  3. படிவத்தைத் திறக்கவும். Playwright ஒரு உலாவிச் சாளரத்தை தானாகத் தொடங்கும் — நீங்களே திறக்கத் தேவையில்லை.

  4. புலங்களை வாசிக்கவும். அமைப்பு ஒவ்வொரு படிவப் புலத்தையும் வாசித்து parse செய்யும் (லேபிள், வகை, தேவை, select-களுக்கான விருப்பங்கள்).

  5. பதில்களை உருவாக்கவும். career-ops உங்கள் சுயவிவரம், சான்று புள்ளிகள், பதவியின் அடிப்படையில் ஒவ்வொரு புலத்திற்கும் வடிவமைக்கப்பட்ட பதில்களை உருவாக்கும்.

  6. எண்ணிடப்பட்ட பட்டியலைத் திருப்பவும். படிவ அமைப்புடன் பொருந்தும் வரிசையில் பதில்கள் வரும் — எளிய புலங்கள் (பெயர், மின்னஞ்சல்) முதலில், free-text புலங்கள் (சுட்டுக் கடிதம், “Why us?”) கடைசியில். குறிக்கப்பட்ட உருப்படிகள் மனித கவனம் தேவைப்படும் விஷயங்களைச் சுட்டும் — சம்பள அடைவு, இல்லாத அனுபவ வரைவு விவரங்கள், விருப்பக் கேள்விகள்.

  7. கைமுறை நிரப்புதல். ஒவ்வொரு பதிலையும் அதற்குரிய புலத்தில் நீங்களே நகலெடுத்து ஒட்டுவீர்கள். இந்தப் படி கைமுறை, தானியங்கி அல்ல. ஒவ்வொரு பதிலையும் முதலில் மதிப்பாய்வு செய்வீர்கள்.

  8. பயனர் சமர்ப்பிப்பார். Submit-ஐ நீங்களே சொடுக்குவீர்கள். career-ops ஒருபோதும் Submit-ஐச் சொடுக்காது. அரட்டையில் தட்டச்சு செய்து முடிவை உறுதிப்படுத்தவும்:

    Submitted.

Submitted. இல் தானியங்கிப் புதுப்பிப்புகள்:

  • data/applications.md-இல் நிலை Evaluated → Applied ஆக மாறும்.
  • நிரப்பிய பதில்கள் எதிர்காலக் குறிப்புக்காக அறிக்கையின் G பிரிவில் நிலைநிறுத்தப்படும்.

ட்ரேக்கருக்குக் கைமாற்று:

/career-ops tracker

பதவி மதிப்பெண்ணைப் பொருட்படுத்தாமல் முழு பைப்லைனின் நிலையையும் கண்காணியுங்கள்.

பேச் மதிப்பீடு (batch-evaluate-offers)

ஒரே நேரத்தில் 10+ JD-களை மதிப்பிட வேண்டுமானால் (அந்த அளவுக்கு SPA-இன் ஒரே-நேரத்தில்-ஒன்று #/evaluate நடைமுறையில் இல்லை), CLI-யிலிருந்து batch ரன்னரைப் பயன்படுத்துங்கள். #/batch பக்கமும் அதே நேர்மையுடன் வரும்: அதன் காலி நிலை பணியிட பட்டியலுடன் தொடங்குங்கள் (v2empty.batch.emptyTitle) என்ற தலைப்பும் URL பட்டியலை ஒட்டவும் (v2empty.batch.pasteList) உதவியாளரும் காட்டும் — கிளிப்போர்டில் உள்ள கச்சா http(s) URL-களை நேரடியாக உள்ளீட்டில் தூக்கி விடும் (v2empty.batch.pasteAdded); CLI ரன்னருக்கு இறங்கும் முன் batch-input.tsv-இசைந்த வரிகளை உருவாக்க சில வினாடிகளே ஆகும்.

உள்ளீட்டுக் கோப்பு — batch/batch-input.tsv (டேப்-பிரிக்கப்பட்டது):

Column நோக்கம்
id தனித்த தொடர் எண்
url முழு வேலைப் பதவி இணைப்பு
source தோற்ற தளம் (LinkedIn, Greenhouse, போன்றவை)
notes விருப்ப சூழல் விவரம்

உதாரண வரிசை:

1<TAB>https://jobs.example.com/senior<TAB>LinkedIn<TAB>

./batch/batch-runner.sh கொடிகள்:

  • --dry-run — மதிப்பீட்டின்றி நிலுவை ஆஃபர்களை முன்தோற்றம் காண்பிக்கும். TSV-ஐச் சரிபார்க்க எப்போதும் முதலில் இதை இயக்கவும்.
  • --parallel N — N தொழிலாளர்களை ஒரே நேரத்தில் இயக்கும் (1, 2, அல்லது 3 பரிந்துரைக்கப்படுகிறது).
  • --min-score X.X — வரம்புக்குக் கீழ் மதிப்பெறும் ஆஃபர்களைச் சேமிப்பதைத் தாண்டும். உயர்-பொருத்த பதவிகளுக்கு மட்டுமே அறிக்கைகளை வைக்க பயனுள்ளது.
  • --retry-failed — முந்தைய ஓட்டத்தில் பிழைத்த ஆஃபர்களை மட்டுமே மீண்டும் செயலாக்கும் (நெட்வொர்க் தோல்விகள், rate limits).
  • --max-retries N — தோல்வி ஆஃபர்களை N முறை வரை முயற்சிக்கும் (இயல்புநிலை: 2).
  • --model NAME — claude -p --model-க்கு அனுப்பப்படும் Claude மாடல் (parent career-ops 1.8.0, #504). அமைக்காவிட்டால் = உங்கள் Claude Max subscription இயல்புநிலை. பெரிய பேச்களுக்கு மலிவான மாடலைப் பயன்படுத்துங்கள், எ.கா. claude-sonnet-4-6. #/batch-இல் Model உள்ளீடாக மேற்பரப்பாகும் (web-ui 1.31.0).
  • --start-from N — N-க்குக் கீழ் ஆஃபர் ID-களைத் தாண்டும் (பாதி-செயலாக்கப்பட்ட பேச்சை மீண்டும் தொடங்க). #/batch-இல் Start from # உள்ளீடாக மேற்பரப்பாகும் (web-ui 1.31.0).

நிலையான வரிசை:

  1. batch/batch-input.tsv-ஐ திருத்தவும் — ஒரு JD-க்கு ஒரு வரிசை.

  2. Dry-run (முதலில் பரிந்துரைக்கப்படுகிறது):

    ./batch/batch-runner.sh --dry-run
  3. இயக்கு — தொடர்ச்சியாக அல்லது இணையாக:

    ./batch/batch-runner.sh                       # one at a time
    ./batch/batch-runner.sh --parallel 2          # two concurrent
    ./batch/batch-runner.sh --parallel 3          # three concurrent
    ./batch/batch-runner.sh --parallel 2 --min-score 4.0  # only persist high-fit
  4. தோல்விகளை மீண்டும் முயற்சி (நெட்வொர்க் / rate-limit):

    ./batch/batch-runner.sh --retry-failed --max-retries 3
  5. அறிக்கைகள் reports/-இல் {id}-{company}-{YYYY-MM-DD}.md ஆக விழும். சுருக்க வரிசைகள் batch/tracker-additions/-இல் சேர்க்கப்படும்.

  6. ட்ரேக்கரில் இணை:

    node merge-tracker.mjs                 # apply the batch additions
    node merge-tracker.mjs --dry-run       # preview the merge

    merge கட்டளை உள்ளீடுகளை dedup செய்து, செயலாக்கப்பட்ட கோப்புகளை batch/tracker-additions/merged/-இல் காப்பகப்படுத்தும்.

SPA விளைவான அறிக்கைகளை #/reports-இன் கீழ் (paginated, score-pill வண்ணம்) மற்றும் ட்ரேக்கர் வரிசைகளை #/tracker-இன் கீழ் மேற்பரப்பாக்கும் — ஒவ்வொன்றையும் #/evaluate வழியாகச் சேர்த்தது போலவே. CLI-க்கு இறங்க விரும்பாவிட்டால் #/tracker-இன் ▶ Merge பராமரிப்புப் பொத்தானுடன் இணையுங்கள்.

Playwright அமைவு (set-up-playwright)

இரு career-ops அம்சங்களுக்குத் தேவை:

  • /career-ops apply-இல் படிவம்-நிரப்புதல் (மேலே படி 3 — Playwright உலாவியைத் திறந்து, புல லேபிள்களை வாசித்து, பதில்களைப் பரிந்துரைக்கும்).
  • /career-ops pdf மற்றும் SPA-இன் 📄 PDF உருவாக்கு பொத்தான் (இவற்றில்: #/cv / #/reports/:slug / #/evaluate / #/deep / #/interview-prep) வழியான PDF உருவாக்கம்.

Playwright இல்லாதபோது பின்வாங்கல்: apply ஓட்டம் WebFetch-க்கு (உரை-மட்டும் படிவ முன்தோற்றம், click-fill இல்லை) விழும். PDF உருவாக்கம் வெறும் பிழை தரும்.

முக்கிய அமைவு (career-ops பெற்றோர் root-இலிருந்து இயக்கவும்):

# Install Chromium for Playwright
npm install
npx playwright install chromium

# Register the Playwright MCP so Claude Code can drive forms
claude mcp add playwright npx @playwright/mcp@latest

# Verify all three components (Chromium, Playwright lib, MCP)
npm run doctor

மாற்று MCP பதிவு — .claude/settings.local.json-இல் சேர்:

{
  "mcpServers": {
    "playwright": {
      "command": "npx",
      "args": ["-y", "@playwright/mcp@latest"]
    }
  }
}

நடத்தைக் குறிப்புகள்:

  • இயல்புநிலையில் Headless. Playwright அமைதியாக இயங்கும். உலாவியை செயலில் பார்க்க, Claude-இடம் open up with playwright the browser and fill out the entire form. எனச் சொல்லுங்கள்.
  • ஒரே தொகுப்பில் மூன்று பாத்திரங்கள் — Playwright npm நிறுவல் உலாவி-தானியங்கி நூலகத்தையும், /career-ops pdf-க்கான PDF rendering இயந்திரத்தையும், (MCP வழியாக) Claude Code-க்குள் படிவம்-நிரப்பு பணிப்பாதையையும் தரும்.
  • சார்ந்திருக்கும் முன் சரிபார்க்கவும் — npm run doctor மூன்றும் இயங்குகின்றன என்று உறுதிப்படுத்தும். SPA-இன் Health பக்கம் Playwright (parent node_modules) சோதனையை மேற்பரப்பாக்கும்; இல்லையெனில் விரைவாகத் தோல்வியுறும்.

15. நேர்காணல் தயாரிப்பு

இது ஆராய்ச்சி-பிந்தைய, நேர்காணல்-முந்தைய கட்டம். இந்தப் பயன்பாட்டின் மூன்று செயற்கைப் பொருள்கள் ஒன்று சேர்கின்றன:

  1. interview-prep/ கீழ் சேமித்த ஆழ்-ஆய்வுக் கோப்புகள், நீங்கள் இயக்கிய ஒவ்வொரு நிறுவனம்-பதவி இணைக்கு ஒன்று. Deep research பக்கத்திலிருந்தோ நேரடியாக /api/interview-prep வழியாகவோ உலாவுங்கள்.
  2. Patterns முறை (#/patterns) — சுய-பிரதிபலிப்புப் பிராம்ட்டை உருவாக்கும்: “என் கடந்த N நேர்காணல்கள் / ஆஃபர்கள் / நிராகரிப்புகளில் என்ன போக்குகள் நிலைக்கின்றன?” 5+ ட்ரேக்கர் வரிசைகள் குவிந்தபிறகு பயனுள்ளது.
  3. Interview-prep முறை (#/interview-prep) — குறிப்பிட்ட வராக இருக்கும் சுற்றுக்கு (behavioral, technical, system design) ஒரு-பக்கத்தை pre-fill செய்யும். வெளியீடு அதே interview-prep/ அடைவில் போகும்.

பரிந்துரைக்கப்பட்ட பணிப்பாதை

உங்கள் நாட்குறிப்பில் உள்ள ஒவ்வொரு நேர்காணலுக்கும்:

  1. முந்தைய நாள் Deep-ஐ மீண்டும் இயக்கவும் (அல்லது சேமித்த கோப்பைத் திறக்கவும்).
  2. #/interview-prep — குறிப்பிட்ட சுற்றுக்கான ஒரு-பக்கத்தை உருவாக்கவும். உங்கள் குறிப்புகளில் ஒட்டவும்.
  3. System design / coding சுற்றுகள் — #/training-ஐத் திறந்து JD வலியுறுத்தும் குறிப்பிட்ட துணைஅமைப்பில் 30-நிமிட இலக்கு மீள்பார்வையைக் கேளுங்கள்.
  4. சம்பளச் சுற்றுகள் — ஆழ்-ஆய்வுக் கோப்பைத் திறந்து “Negotiation leverage points”-க்குக் குதிக்கவும். 2–3 குறிப்பிட்ட தரவுப் புள்ளிகளை கொண்டுவாருங்கள் (Glassdoor band, சமீபத்திய நிதி, மற்றொரு நிறுவனத்தின் ஒப்பிடக்கூடிய ஆஃபர்).
  5. Behavioral சுற்றுகள் — அசல் Evaluate அறிக்கையின் B பிரிவில் விழும் உங்கள் cv.md-இன் STAR+R கதைகளை இழுக்கவும்.

நேர்காணலுக்குப் பிறகு உடனடியாக:

  1. ட்ரேக்கர் வரிசையைப் புதுப்பிக்கவும்: நிலை → Responded (பிறகு Interview, Offer, போன்றவை).
  2. நன்றி தெரிவிக்கும் மின்னஞ்சலை வரைய #/followup இயக்கவும்.
  3. புதிய தகவல் கிடைத்தால் (சம்பள வரம்பு, குழு அமைப்பு, tech stack திடீர்), சேமித்த interview-prep/<company>-<role>.md-ஐ ## Post-round notes உடன் திருத்தவும் — எதிர்கால நீங்களுக்குக் கையிருக்கும்.

16. செயல்பாட்டுப் பதிவு + சிக்கல் தீர்த்தல்

செயல்பாட்டுப் பதிவு (#/activity)

சர்வரைத் தாக்கும் ஒவ்வொரு நிலை-மாற்று கோரிக்கையின் தணிக்கைப் பதிவு. பதிவு செய்வது: pipeline சேர்ப்புகள், tracker எழுத்துகள், CV சேமிப்புகள், JD சேமிப்புகள், evaluate இயக்கங்கள், ஆழ்-ஆய்வு இயக்கங்கள், ஸ்கேன் இயக்கங்கள், config மாற்றங்கள், mode இயக்கங்கள்.

ரகசியங்கள் (ANTHROPIC_API_KEY, GEMINI_API_KEY) நுழையும்போதே redact செய்யப்படும்; data/activity.jsonl-இல் உண்மைக் கீ மதிப்பை ஒருபோதும் பார்க்க மாட்டீர்கள்.

செயல் முன்னொட்டால் (pipeline., cv., evaluate, scan., போன்றவை) வடிகட்டவும். பக்கத்திற்கு 25 வரிசைகள்; சர்வர் 500 சமீபத்திய நிகழ்வுகள் வரை திருப்பும்.

சிக்கல் தீர்த்தல்

அறிகுறி சாத்தியக் காரணம் தீர்வு
Health பக்கம் cv.md இல் சிவப்பு முதல் ஓட்டம், கோப்பு இன்னும் இல்லை touch $CAREER_OPS_ROOT/cv.md பிறகு மறுஏற்றம்.
Health Profile customized இல் சிவப்பு candidate.full_name இன்னும் Jane Smith config/profile.yml-ஐத் திருத்தவும்.
ஸ்கேன் பதிவில் hh.ru: HTTP 451 அல்லது 403 Egress IP ரஷ்யாவுக்கு வெளியே, அல்லது hh.ru அதை VPN/datacenter முகவரியாகக் குறித்தது ரஷ்ய residential IP-இலிருந்து இயக்கவும். கீ அல்லது User-Agent அமைப்பு எதுவும் இல்லை — ஸ்கேனர் சர்வர் உலாவி UA-ஐ அனுப்பும்.
gemini-eval.mjs: ERR_MODULE_NOT_FOUND பெற்றோர் திட்ட deps நிறுவப்படவில்லை cd $CAREER_OPS_ROOT && npm install.
Generate PDF பிழைகள் பெற்றோரில் Playwright நிறுவப்படவில்லை cd $CAREER_OPS_ROOT && npx playwright install chromium.
/career-ops apply “no report found” சொல்கிறது Pipeline இந்த JD-ஐ ஒருபோதும் மதிப்பிடவில்லை முதலில் /career-ops pipeline (அல்லது #/evaluate) இயக்கவும்; §14 முன்நிபந்தனைகள் பார்க்கவும்.
batch-runner.sh: no such file தவறான அடைவிலிருந்து இயங்குகிறது ./batch/batch-runner.sh அழைக்கும் முன் cd $CAREER_OPS_ROOT.
சர்வர் EADDRINUSE: 4317 அறிவிக்கிறது பழைய நிகழ்வு இன்னும் இயங்குகிறது pkill -f 'node server/index.mjs' பிறகு மறுதொடக்கம்.
நேரடி LLM அழைப்பு > 2 நிமி தொங்குகிறது பிராம்ட் மிகப் பெரியது அல்லது Anthropic மெது /api/health Anthropic கொடியைச் சரிபார்க்கவும்; சர்வர் பிராம்ட்களை 256 KB இல் soft-cap செய்து 413 திருப்பும்.
பைப்லைன் முன்தோற்றம் (unsafe redirect) காட்டுகிறது பதவி தனியார் IP / loopback-க்கு redirect ஆனது இது ஒரு பாதுகாப்பு அம்சம் (REVIEW-B1). redirect இலக்கு மறுக்கப்படும்; அசல் URL மாறாது.
ட்ரேக்கர் வரிசை உரை அட்டவணையை உடைக்கிறது நிறுவனப் பெயரில் pipe, pre-v1.9.1 v1.9.1+ க்குப் புதுப்பிக்கவும் — pipes முனை-முதல்-முனை escape செய்யப்படும் (BF-1).
புதிய clone-இல் npm test தோல்வி சோதனைகள் பெற்றோர் திட்ட அமைப்பை எதிர்பார்க்கும் CAREER_OPS_ROOT=$(mktemp -d) பயன்படுத்தி fixtures bootstrap செய்யவும்.

ஆழமான கண்டறிதலுக்கு: Health பக்கத்தில் மருத்துவரை இயக்கு இயக்கி, வெளியீட்டை நகலெடுத்து, https://github.com/Fighter90/career-ops-ui/issues இல் issue tracker-ஐத் தேடுங்கள்.


17. புதிய வேலை-போர்டல் ஆதாரத்தைச் சேர்ப்பது எப்படி

career-ops-ui ஒவ்வொரு வேலைப் பலகையையும் ஒரு அடாப்டராகக் கருதும் — server/lib/sources/<slug>.mjs கீழ் ஒரு கோப்பு; அது ஒரு பலகையின் முடிவுகளை எப்படிப் பெற + இயல்பாக்குவது என்று அறியும். தற்போது server/lib/sources/ registry 129 மூலங்களை வழங்குகிறது — 124 English + 5 Russian பலகைகள். ஆங்கிலத் தொகுப்பு முக்கிய ATS-களையும் (Greenhouse / Ashby / Lever / Workable / SmartRecruiters / Workday), வெளிப்படையான provider: ஆல் தேர்ந்தெடுக்கப்பட்ட பலகை-அளவு aggregators-ஐயும் (RemoteOK, Remotive, We Work Remotely, NoDesk, Get on Board, Amazon, …), மற்றும் careers_url ஹோஸ்ட் அல்லது வெளிப்படையான api: URL-இலிருந்து தானாகக் கண்டறியப்படும் per-tenant ATS-களையும் (BambooHR, Personio, Recruitee, Teamtailor, Avature, SAP SuccessFactors, …) உள்ளடக்கும். Deel வேலைவாய்ப்பு தளத்தின் போர்டுகள் (jobs.deel.com/<slug> — Klarna உள்ளிட்டோர் வெளியிடும் மல்டி-டெனன்ட் போர்டு) URL-இலிருந்து தானாகக் கண்டறியப்படும் — சேர்ப்பது portals.yml-இல் இரு வரிகள். முழுப் பட்டியலை இங்கே கையால் எண்ணத் தேவையில்லை — அது server/lib/sources/-இலிருந்து தானாகக் கண்டறியப்பட்டு #/scan Source dropdown-இல் நேரடியாகக் காட்டப்படும். YAML-க்கு §5-ஐயும், copy-paste உள்ளீடுகளுக்கு docs/portals-examples.md-ஐயும் பார்க்கவும்.

v1.69.0 (P-14) — drop-in auto-discovery. 12-ஆவது ஆதாரத்தைச் சேர்ப்பது இப்போது ஒரு தூய கோப்பு-விழுத்தல். registry (server/lib/sources/registry.mjs) கை-பராமரிக்கப்பட்ட பட்டியலை வைத்திருக்காது — boot-இல் இந்த அடைவை ஸ்கேன் செய்து (readdirSync + dynamic import()) ஒவ்வொரு *.mjs-இலிருந்தும் export const meta தொகுதியைச் சேகரிக்கும். அடாப்டரை எழுதி, அதன் meta-வை அறிவித்தால் அது உடனடியாக ஸ்கேனருக்கும், #/scan வடிப்பான் dropdown-க்கும், RU dispatcher-க்கும் தெரியும் — registry.mjs-ஐத் திருத்தத் தேவையில்லை. (RU ஆதாரங்களுக்கு இன்னும் பெற்றோரின் portals.yml-இல் ஒரு வரி தேவை; Step 5 பார்க்கவும்.)

படி 1 — அடாப்டரை எழுது

server/lib/sources/<slug>.mjs உருவாக்கவும். ஆதாரத்திற்கு JSON API உள்ளதா அல்லது HTML மட்டுமா render செய்கிறது என்பதைப் பொறுத்து இரு முறைகள் வேலை செய்யும்:

API-backed ஆதாரம் (மிகச் சுத்தமானது — தளத்திற்கு open data முனையம் இருந்தால் இதையே பயன்படுத்துங்கள்):

// server/lib/sources/example.mjs
const ENDPOINT = 'https://example.com/api/v1/vacancies';
const UA = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) ...';

// v1.69.0 (P-14) — self-describing metadata. The registry auto-discovers
// this block at boot; THIS is what registers the source (see Step 2).
export const meta = {
  value: 'example',          // ← must equal job.source written below
  label: 'Example.com',      // ← shown in the #/scan filter dropdown
  region: 'ru',              // ← 'en' (ATS sweep) | 'ru' (regional dispatcher)
  configKey: 'example',      // ← RU only; the key used in portals.yml
};

export async function searchExample(query, opts = {}) {
  const { onlyRemote = false, fetchImpl = fetch, signal } = opts;
  const res = await fetchImpl(`${ENDPOINT}?text=${encodeURIComponent(query)}`, {
    signal,
    headers: { 'User-Agent': UA, Accept: 'application/json' },
  });
  if (!res.ok) {
    const err = new Error(`Example: HTTP ${res.status}`);
    err.status = res.status;
    throw err;
  }
  const data = await res.json();
  return (data.items || []).map(normalizeExample);
}

function normalizeExample(item) {
  return {
    id: `example-${item.id}`,
    title: item.title || '',
    company: item.company?.name || '',
    url: item.url || '',
    salary: item.salary || '',
    location: item.location || '',
    isRemote: !!item.remote,
    workplaceType: item.remote ? 'Remote' : 'Onsite',
    relocates: false,
    date: item.posted_at || '',
    snippet: (item.description || '').slice(0, 240),
    source: 'example',           // ← must match the registry `value` exactly
  };
}

HTML-scrape ஆதாரம் (API இல்லாதபோது — முழு உதாரணங்களுக்கு getmatch.mjs மற்றும் geekjob.mjs பார்க்கவும்):

const BASE = 'https://example.com';

export async function searchExample(query, opts = {}) {
  const { fetchImpl = fetch, signal } = opts;
  const res = await fetchImpl(`${BASE}/vacancies?q=${encodeURIComponent(query)}`, {
    signal,
    headers: { 'User-Agent': UA, Accept: 'text/html' },
  });
  if (!res.ok) {
    throw Object.assign(new Error(`Example: HTTP ${res.status}`), { status: res.status });
  }
  return parseExampleCards(await res.text());
}

export function parseExampleCards(html) {
  // …regex-based card extraction. Return [] on parse failure (DON'T throw):
  // a healthy 200 with no parseable cards is "no results", not "error",
  // so the multi-source scanner can keep going.
}

ஒவ்வொரு அடாப்டரும் கண்டிப்பாக மதிக்க வேண்டிய மூன்று ஒப்பந்தங்கள்:

  • செல்லுபடியான meta தொகுதியை ஏற்றுமதி செய் (Step 2 பார்க்கவும்). இல்லையெனில் registry கோப்பை அமைதியாகத் தாண்டும் (boot-இல் ஒரு console.warn); ஆதாரம் ஒருபோதும் தோன்றாது.
  • opts-இல் { onlyRemote, fetchImpl, signal }-ஐ ஏற்று. நெட்வொர்க் இல்லாமல் அடாப்டர்களைச் சோதிக்க முடிய fetchImpl உதவும்; client-disconnect பரவலுக்கு signal தேவை (REVIEW-B3).
  • பொது வடிவம் கொண்ட பதிவுகளைத் திருப்பு — { id, title, company, url, salary, location, isRemote, workplaceType, relocates, date, snippet, source }; source, meta.value-உடன் பொருந்த வேண்டும்.

படி 2 — அடாப்டரின் meta-வை அறிவி (auto-registration)

இதுவே முழு பதிவுப் படி. registry.mjs-ஐ நீங்கள் திருத்தத் தேவையில்லை. அடாப்டர் meta தொகுதியை ஏற்றுமதி செய்கிறது என்பதை உறுதி செய்யுங்கள் — registry boot-இல் அதைத் தானாகக் கண்டறியும்:

// at the top of server/lib/sources/example.mjs
export const meta = {
  value: 'example',          // job.source value AND #/scan option.value
  label: 'Example.com',      // display label in the dropdown
  region: 'ru',              // 'en' | 'ru'
  configKey: 'example',      // RU only — key in portals.yml::russian_portals.sources
};

கண்டறிதல் அதை எப்படிச் சரிபார்க்கும் (எந்த விதியிலும் தோல்வியுறும் கோப்பு ஒரு [sources/registry] எச்சரிக்கையுடன் தாண்டப்படும் — பாதி-இடம்பெயர்ந்த branch கண்டறியப்படக்கூடியதாக எஞ்சும்):

  • value — காலியல்லாத சரம். உங்கள் அடாப்டரின் job.source-உடன் கண்டிப்பாகப் பொருந்த வேண்டும்.
  • label — காலியல்லாத சரம்.
  • region — சரியாக 'en' அல்லது 'ru'; வேறு எதுவும் மறுக்கப்படும்.
  • configKey — region: 'ru'-க்கு தேவை; 'en'-இல் புறக்கணிக்கப்படும்.

region: 'en' ATS ஸ்வீப்பில் சேரும் (tracked_companies URL முறைகளிலிருந்து auto-discover); region: 'ru' பிராந்திய dispatcher-இல் சேரும். பொது API (SOURCES, SOURCES_BY_REGION, RU_CONFIG_KEYS, getRegionalSources) கண்டறியப்பட்ட ஒவ்வொரு meta-விலிருந்தும் மீண்டும் கட்டப்படும் — en முதலில் பிறகு ru, ஒவ்வொரு பிராந்தியத்திற்குள் லேபிள் வாரியாக அகரவரிசை — எனவே dropdown வரிசை பயனருக்கு நிலையாக எஞ்சும்.

படி 3 — dispatcher-இல் இணை (RU மட்டும்)

EN ATS ஆதாரங்கள் tracked_companies URL முறைகளிலிருந்து auto-discover — மேலும் இணைப்பு தேவையில்லை. RU ஆதாரங்களுக்கு, server/lib/ru-scanner.mjs-ஐத் திறந்து, RU_DISPATCH அட்டவணையைக் கண்டறிந்து ஒரு வரிசையைச் சேர்க்கவும்:

import { searchExample } from './sources/example.mjs';
// …
const RU_DISPATCH = {
  // …existing…
  example: { label: 'example.com', search: searchExample },
};

dispatcher loop cfg.sources-இல் இருக்கும் ஒவ்வொரு கீக்கும் entry.search(query, opts) அழைக்கும். மேலும் குறியீட்டு மாற்ரம் தேவையில்லை.

படி 4 — சோதனை (mocked, ஒருபோதும் நேரடி அல்ல)

tests/sources-<slug>.test.mjs கீழ் ஒரு கோப்பை விழுத்துங்கள். சோதனைகளில் உண்மையான நெட்வொர்க் தடைசெய்யப்பட்டது (CI-isolation ஒப்பந்தம்):

import test from 'node:test';
import assert from 'node:assert/strict';
import { searchExample } from '../server/lib/sources/example.mjs';

test('searchExample normalizes one record', async () => {
  const fetchImpl = async () =>
    new Response(
      JSON.stringify({ items: [{ id: 1, title: 'Backend Engineer' }] }),
      { status: 200, headers: { 'content-type': 'application/json' } }
    );
  const out = await searchExample('q', { fetchImpl });
  assert.equal(out.length, 1);
  assert.equal(out[0].source, 'example');
});

படி 5 — உங்கள் portals.yml-இல் இயக்கு

பெற்றோர் திட்டத்தின் portals.yml பயனர்-உடைமை config. புதிய ஆதாரத்தின் configKey-ஐ அணியில் சேர்க்கவும்:

russian_portals:
  sources: ["hh", "habr", "trudvsem", "getmatch", "geekjob", "example"]
  area: 113
  per_page: 50
  only_remote: false
  queries:
    - "Senior PHP"
    - "Senior Go"

உலாவியில் #/scan-ஐ மறுஏற்றம் செய்யுங்கள். source-filter dropdown புதிய உள்ளீட்டை தானாகவே எடுக்கும் (ஒற்றை உண்மை ஆதாரம்: GET /api/scan/sources → registry.mjs). 🌐 ஸ்கேன் பொத்தான் இப்போது ஒவ்வொரு பிராந்திய ஸ்வீபிலும் புதிய ஆதாரத்தை உள்ளடக்கும்.

குறிப்பு அடாப்டர்கள் (புதிய ஆதாரங்களுக்கு இவற்றை பிரதிபலிக்கவும்)

அடாப்டர் கோப்பு வகை குறிப்புகள்
hh.mjs JSON API அதிகாரப்பூர்வ RU API அடாப்டர்; geo-aware UA பின்வாங்கல்.
trudvsem.mjs JSON API ரஷ்ய அரசு open-data; IP வாயில் இல்லை.
habr.mjs HTML scrape ரஷ்ய தொழில்நுட்பப் பலகை; regex அடிப்படை கார்டு parser.
getmatch.mjs HTML scrape பாதுகாப்பான parser, parse miss இல் [].
geekjob.mjs HTML scrape GetMatch-இன் அதே பாதுகாப்பான நடை.
greenhouse.mjs JSON API அதிகாரப்பூர்வ EN ATS அடாப்டர்; tracked_companies URL முறையைப் பயன்படுத்தும்.

பொதுவான தடுமாறல்கள்

  • meta ஏற்றுமதியை மறத்தல். v1.69.0 முதல் meta தொகுதி ஒரு ஆதாரத்தைப் பதிவு செய்யும் ஒரே விஷயம். meta இல்லை (அல்லது தவறானது) = boot-இல் கோப்பு அமைதியாகத் தாண்டப்படும்; ஒற்றை [sources/registry] <file> has no valid \export const meta` — skipped` எச்சரிக்கை; ஆதாரம் ஒருபோதும் dropdown-ஐ அடையாது. முற்றிலும் புதிய அடாப்டர் தோன்றவில்லை என்றால் சர்வர் பதிவைச் சரிபார்க்கவும்.
  • source புலப் பொருத்தமின்மை. உங்கள் அடாப்டர் எழுதும் சரம் meta.value-உடன் கண்டிப்பாகப் பொருந்த வேண்டும். விலகினால், #/scan வடிப்பான் dropdown ஆதாரத்தைக் காட்டும் ஆனால் தேர்ந்தெடுத்தால் ஒவ்வொரு வரிசையையும் வடிகட்டி விடும் (ஏனெனில் சமத்துவச் சோதனை r.source === fs).
  • Parse தோல்வியில் throw செய்தல். HTML scrapers ஆரோக்கியமான 200-இல் parse செய்யக்கூடிய கார்டுகள் இல்லாதபோது []-ஐ மட்டுமே திருப்ப வேண்டும். Throw செய்வது multi-source dispatcher loop-ஐ உடைக்கும் — ஒரு கெட்ட HTML அமைப்பு அதே query-க்கான மற்ற எல்லா ஆதாரங்களையும் கொல்லும்.
  • fetchImpl / signal மறத்தல். இவை இல்லாமல், உங்கள் அடாப்டரை நேரடி நெட்வொர்க்கைத் தாக்காமல் unit-test செய்ய முடியாது; client disconnects பரவாது (பயனர் தாவலை மூடிய பிறகும் background fetch உயிருடன் இருக்கும்).
  • RU-க்கு tracked_companies-ஐ நம்புதல். அந்தப் பட்டியல் EN ATS ஆதாரங்களுக்கு மட்டுமே. RU அடாப்டர்கள் russian_portals.queries-இலிருந்து தாமே இயங்கும் — per-company உள்ளீடுகள் இல்லை.

18. அறிவிப்புகள் (மேல் பட்டியில் 🔔)

v1.58.34 — கீழ்-வலது மூலையில் தோன்றும் ஒவ்வொரு டோஸ்டும் ஒரு நினைவக பத்திரிகையிலும் பிடிக்கப்படும் (வரம்பு 50, பழையது நீக்கம்). தவறிய எதையும் மீண்டும் படிக்க மேல் பட்டியில் உள்ள 🔔 மணியைச் சொடுக்கி வலது-பக்க Notifications drawer-ஐத் திறக்கவும். பத்திரிகை per-tab, per-session — தாவலை மூடினால் அழியும்.

Drawer மணியைச் சொடுக்கினால் மட்டுமே திறக்கும் (keyboard கவனத்தில் இருந்தால் Enter / Space). அது தானாக ஒருபோதும் தோன்றாது. மணியின் சிவப்பு badge கடைசி திறப்புக்குப் பிறகு நீங்கள் பார்க்காத உள்ளீடுகளை எண்ணும்; drawer-ஐத் திறந்தால் badge அழியும்.

அறிவிப்பு வகைகள்

வகை எப்போது சுடப்படும் காட்சி குறி
Success Saved, Copied, Refreshed, ஸ்கேன் முடிந்தது, CV இறக்குமதி, apply-checklist செயல்கள் (“Copied unchecked”, “Reset”), சுயவிவரம் சேமிக்கப்பட்டது, பைப்லைன் URL சேர்க்கப்பட்டது drawer-இல் பச்சை இடது எல்லை; பச்சை டோஸ்டு பின்னணி
Error URL சரிபார்ப்புத் தோல்வி (http:// / https:// இல் தொடங்க வேண்டும்; ஸ்கிரிப்ட்/template எழுத்துகள் இல்லை), (METHOD /path · HTTP NNN) பின்னொட்டுடன் API பிழைகள், நெட்வொர்க் தோல்விகள் (சர்வர் இல்லை), pipeline-400 நகல்கள், doctor / verify-pipeline non-zero exit சிவப்பு இடது எல்லை; சிவப்பு டோஸ்டு பின்னணி; தொழில்நுட்பப் பின்னொட்டு Details <details> தொகுதியில் (U-4 / v1.58.24)
Info / progress Running doctor.mjs…, Running verify-pipeline.mjs…, Refreshing…, Loading…, Generating prompt…, ஸ்கேன் முன்னேற்ற வரிகள் சாம்பல் இடது எல்லை; இயல்புநிலை டோஸ்டு பின்னணி

Drawer-இன் ஒவ்வொரு உள்ளீடும் காட்டும்:

  • Timestamp (HH:MM:SS, செயலில் உள்ள SPA மொழிக்கு localized).
  • செய்தி (மனித வாக்கியம்; U-4 படி தொழில்நுட்பப் பின்னொட்டு தலைப்பிலிருந்து நீக்கப்பட்டது).
  • Details (இருந்தால் — API அழைப்பின் (METHOD /path · HTTP NNN) பின்னொட்டு அல்லது வேறு தொழில்நுட்ப குறிப்பு, monospace).

அறிவிப்பாக இல்லாதவை

  • Doctor / verify-pipeline முடிவு மோடல் (முழு stdout / stderr) — அது ஒரு மோடல், டோஸ்டு அல்ல; பத்திரிகையிலும் இல்லை.
  • #/scan மற்றும் #/auto-இன் SSE பதிவு வரிகள் — அவை டோஸ்டு pipeline-க்கு அல்ல, பக்க body-க்கு ஒளிபரப்பாகும்.
  • Spinner-மட்டும் loading நிலைகள் (அவை டோஸ்டின்றி UI.withSpinner பயன்படுத்தும்).

விசைப்பலகை

  • மணியில் சொடுக்கு அல்லது கவனம் + Enter / Space → drawer திறக்கும்.
  • Esc, × மூடு பொத்தான், அல்லது மணியை மீண்டும் சொடுக்கு → drawer மூடும்; கவனம் மணிக்குத் திரும்பும்.
  • Drawer திறந்திருக்கும்போது Tab → மூடு பொத்தான் மற்றும் உள்ளே உள்ள கவனம் பெறக்கூடிய details வழியாக நகரும்; drawer aria-modal="false", எனவே Tab சிக்காது (பக்கத்தின் மீதியை இன்னும் அடையலாம்).

19. பயன்பாட்டை உங்கள் மொழிக்கு localizing செய்தல்

இடைமுகம் 19 மொழிகளில் (English, Español, Français, Português, 한국어, 日本語, Русский, 简体中文, 繁體中文, Polski, Українська, Dansk, العربية, Deutsch, Italiano, Türkçe, हिन்஦ी, தமிழ், Tiếng Việt) வருகிறது. ஒவ்வொரு திரை லேபிளும் ஒரு மொழிபெயர்ப்பு அகராதியிலிருந்து வருகிறது; பயன்பாட்டு லாஜிக்கைத் தொடாமல் ஒரு மொழியைச் சேர்க்கவோ சரிசெய்யவோ முடியும்.

மொழிபெயர்ப்புகள் எங்கே இருக்கும். v1.60.0 முதல் ஒவ்வொரு மொழியும் public/js/lib/locales/ கீழ் அதன் சொந்தக் கோப்பு — i18n-dict.en.js, i18n-dict.es.js, i18n-dict.ru.js, போன்றவை — 'key': 'text' ஜோடிகளின் எளிய பட்டியல். பகிர்ந்த i18n-dict.aliases.js எப்போதும் ஒரே மாதிரி வாசிக்க வேண்டிய கீகளை (ஒரு பக்கப்பட்டி லேபிளும் அதன் பக்கத் தலைப்பும்) ஒரே மொழிபெயர்ப்பைச் சுட்ட வைக்கும். i18n-dict.js பக்க ஏற்றத்தில் எல்லாவற்றையும் இணைக்கும்; அதை நீங்கள் ஒருபோதும் திருத்தத் தேவையில்லை.

ஒரு சொற்றொடரைச் சரி செய் அல்லது சேர். உங்கள் மொழியின் கோப்பைத் திறந்து, கீயைக் (எ.கா. 'nav.scan') கண்டறிந்து உரையைத் திருத்தவும். முற்றிலும் புதிய லேபிளைச் சேர்க்க, அதே கீயை எல்லா 19 மொழிக் கோப்புகளிலும் மொழிபெயர்க்கப்பட்ட மதிப்புடன் சேர்த்து, பக்கத்தில் t('your.key') மூலம் குறிப்பிடவும். npm test இயக்கவும் — எந்த மொழியிலும் கீ இல்லையெனில் தோல்வியுறும்; எதுவும் பாதி-மொழிபெயர்ப்பாக வெளிவராது.

முற்றிலும் புதிய மொழியைச் சேர். i18n-dict.en.js-ஐ i18n-dict.<code>.js ஆக நகலெடுத்து, ஒவ்வொரு மதிப்பையும் மொழிபெயர்த்து, பிறகு i18n.js-இல் (மொழிப் பட்டியல் + உலாவி auto-detect), i18n-dict.js assembler-இல் குறியீட்டைப் பதிவு செய்து, index.html-இல் ஒரு <script> வரியைச் சேர்க்கவும். சோதனை snapshot மற்றும் help / README இணைக் கோப்புகள் உட்பட முழு பட்டியல் docs/LOCALIZATION.md இல் உள்ளது.

தெரிந்து கொள்ள நல்லது. மொழி switcher பக்கப்பட்டியின் அடிக்குறிப்பில் உள்ளது; உங்கள் தேர்வு ஒவ்வொரு உலாவிக்கும் நினைவில் வைக்கப்படும். சர்வர் கண்டறிதல் செய்திகள் வேண்டுமென்றே ஆங்கிலத்திலேயே இருக்கும் (பதிவுகள் சீராக வாசிக்கப்பட) — திரை-மேல் இடைமுகம் மட்டுமே மொழிபெயர்க்கப்படும்.

முழு, படிப்படியான localization வழிகாட்டிக்கு repository-இல் docs/LOCALIZATION.md பார்க்கவும்.

20. இலக்குப் பதவிகள் வாரியான புள்ளிவிவரம் (#/stats)

Analytics → Target-role stats பக்கம் உங்கள் ஸ்கேன்கள் ஏற்கனவே சேகரிக்கும் மெலிந்த தரவை நீங்கள் உண்மையில் இலக்காகக் கொள்ளும் பதவிகளுக்கான ஒரு சந்தைப் படமாக மாற்றும் — நாடு வாரியான வேலைவாய்ப்பு எண்ணிக்கைகள் மற்றும் சம்பள நிலைகள், மேலும் காலப்போக்கில் கண்காணிக்கக்கூடிய ஒரு போக்கு. எதுவும் புனையப்படாது: ஸ்கேனர்கள் கண்டதை மட்டுமே ஒருங்கிணைக்கும்; மாதிரி எவ்வளவு மெலிந்தது என்பதில் நேர்மையாக இருக்கும்.

எண்கள் எங்கிருந்து வருகின்றன

  • இலக்குப் பதவிகள் உங்கள் சுயவிவரத்திலிருந்து (config/profile.yml → target roles) வாசிக்கப்படும் — ஒருபோதும் hard-coded அல்ல. முதலில் #/profile-இல் அவற்றை அமையுங்கள்; பதவிகள் இல்லாதபோது காலி விளக்கப்படங்களுக்குப் பதிலாக “set your target roles” கோரிக்கை காட்டப்படும்.
  • பதவிகள் உங்கள் சமீபத்திய ஸ்கேனிலிருந்து வரும் (முதலில் #/scan-இல் ஒன்றை இயக்குங்கள்). ஒவ்வொரு வேலையின் இடமும் ஒரு நாட்டுக்கு வரையப்படும் (Scan நாடு வடிப்பானின் அதே கண்டறிவான்); அதன் சம்பளச் சரம் parse செய்து தோராயமான FX அட்டவணை வழியாக USD-ஆக இயல்பாக்கப்படும்.
  • எல்லாம் உங்கள் உலாவியிலேயே ஒருங்கிணைக்கப்படும் — தரவு உங்கள் கணினியை விட்டு வெளியேறாது; பக்கம் எழுதுவது நீங்கள் வெளிப்படையாகச் சேமிக்கும் ஒரு snapshot மட்டுமே.

விளக்கப்படங்களை வாசித்தல்

  • நாடு வாரியாக வேலைவாய்ப்புகள் — ஒவ்வொரு நாட்டிலும் எத்தனை பொருந்தும் பதவிகள் உள்ளன. ஒரு இலக்குப் பதவி அல்லது ஒரு நாட்டிற்குக் குறுக்க மேலே உள்ள Role மற்றும் Country வடிப்பான்களைப் பயன்படுத்துங்கள்.
  • நாடு வாரியாக நடுநிலை சம்பளம் (USD) — ஒவ்வொரு நாட்டிற்குமான நடுநிலை parsed சம்பளம். பாகுபடுத்தக்கூடிய சம்பளம் உள்ள பதவிகள் மட்டுமே எண்ணப்படும்; மாதிரி அளவு விளக்கப்படத்தின் அருகில் காட்டப்படும்; தொகைகள் தோராய விகிதங்களில் மாற்றப்படும் — எனவே அதை துல்லியமானதாக அல்ல, தோராயமாகவே வாசியுங்கள். ஒரு bare ¥ (ஜப்பானிய யென்-க்கும் சீன யுவானுக்கும் இடையே தெளிவற்றது) ஊகிக்கப்படாமல் நீக்கப்படும் — பெரிய FX தவற்றைத் தவிர்க்க.
  • தற்போதைய ஸ்கேனில் பாகுபடுத்தக்கூடிய சம்பளங்கள் இல்லாதபோது சம்பள விளக்கப்படம் எண்களைப் புனையாமல் அப்படியே சொல்லும்.

Snapshots சேமித்தல் & போக்கைக் கண்காணித்தல்

  • தற்போதைய ஒருங்கிணைப்பை data/role-stats.jsonl-இல் சேர்க்க Save snapshot சொடுக்கவும். ஒவ்வொரு snapshot-உம் சர்வரில் timestamp செய்யப்படும்; snapshots தான் இந்தப் பக்கம் எழுதும் ஒரே விஷயம் — உங்கள் CV அல்லது சுயவிவரத்தைத் தொடாது.
  • போக்கு விளக்கப்படம் உங்கள் சேமித்த snapshots முழுவதும் வேலைவாய்ப்பு எண்ணிக்கைகளை வரையும் — உங்கள் இலக்குப் பதவிகளின் சந்தை காலப்போக்கில் எப்படி நகர்கிறது என்பதைப் பார்க்க அவ்வப்போது (உதாரணமாக ஒவ்வொரு வாராந்திர ஸ்கேனுக்குப் பிறகு) ஒன்றைச் சேமியுங்கள்.

21. உங்கள் இரு-பக்கம் — வேட்பாளர் சந்தை பொருத்தம் (#/two-pager)

career-ops-ui-இன் பெரும்பகுதி “இந்த வேலை என் CV-உடன் பொருந்துகிறதா?” என்று கேட்கும். இரு-பக்கம் மற்ற பாதியைப் பதிலளிக்கும்: “இந்த வேலை நான் உண்மையில் விரும்புவதுடன் பொருந்துகிறதா?”. இது Never Search Alone புத்தகத்தின் “Mnookin two-pager” மாதிரியில் — உங்களுக்கு சக்தி தருவது, தேவைப்படுவது, ஏற்கமாட்டாதது ஆகியவற்றின் சிறு, முதல்-நபர் கூற்று. Setup → Two-pager 🎯 இலிருந்து திறங்கள்.

நீங்கள் நிரப்புவது

  • Who I am — உங்கள் சாதனைப் பதிவு மற்றும் உங்களுக்குச் சிறப்பாக வேலை செய்யும் பதவியின் வடிவம் பற்றிய சில முதல்-நபர் வாக்கியங்கள்.
  • Target environment — நீங்கள் விரும்பும் நிறுவன அளவு, நிலை, கலாச்சாரம்.
  • ஐந்து சிப்-பட்டியல்கள் — ஒவ்வொரு உருப்படியையும் சேர்க்க தட்டச்சு செய்து Enter (அல்லது கமா) அழுத்தவும், நீக்க × சொடுக்கவும்:
    • What I love — சக்தி தருபவை (remote, ownership, greenfield, mentoring…).
    • Must-haves — கடும் தேவைகள் (சம்பளக் கீழ்-வரம்பு, ஒரு நாடு, ஒரு ஸ்டாக்…).
    • What I hate — சக்தி வற்றச் செய்பவை (on-call, முடிவற்ற கூட்டங்கள், legacy-மட்டும்…).
    • Deal-breakers — முழுமையான மறுப்புகள் (onsite மட்டும், sponsorship இல்லை, ஒரு எண்ணுக்குக் கீழ்…).
    • Non-negotiables — எல்லைகள் (இடம், remote, சம்பளக் கீழ்-வரம்பு…).

நிலைநிறுத்த Save two-pager சொடுக்கவும். இது உங்கள் பெற்றோர் career-ops திட்டத்தின் பயனர் அடுக்கில் config/two-pager.yml ஆக எழுதப்படும்; எனவே — உங்கள் CV மற்றும் சுயவிவரம் போலவே — அமைப்பைப் புதுப்பிக்கும்போது ஒருபோதும் மேலெழுதப்படாது.

AI fill உதவியாளர்

எப்படிச் சொல்வது தெரியவில்லையா? ✨ AI fill assistant சொடுக்கினால் அது முழு இரு-பக்கத்தையும் உங்களுக்காக வரையும். LLM வழங்குநர் அமைக்கப்பட்டிருந்தால் (§3 பார்க்கவும்), நேரடியாக இயங்கும்: உங்கள் சொந்த CV மற்றும் சுயவிவரத்தை மட்டுமே வாசித்து, ஒவ்வொரு புலத்தையும் — நீங்கள் யார், உங்கள் விருப்பங்கள், அவசியங்கள், வெறுப்புகள், deal-breakers, non-negotiables, இலக்குச் சூழல் — வரைந்து படிவத்தை அப்படியே நிரப்பும். எதுவும் தானாகப் பதிவேற்றப்படாது: வேறு எந்தக் கை-தட்டச்சு இரு-பக்கத்தையும் போலவே மதிப்பாய்வு செய்து, திருத்தி, Save சொடுக்குவீர்கள். உங்களைப் பற்றி உண்மைகளை ஒருபோதும் கற்பனை செய்யாது; உங்கள் CV மற்றும் சுயவிவரம் ஏற்கனவே சொல்வதை மட்டுமே மறுவடிவமைக்கும். API key அமைக்கப்படவில்லை என்றால், பழைய நடத்தைக்கு விழும் — எந்த LLM-இலும் இயக்கி YAML-ஐத் திரும்ப ஒட்ட, தயார்-நிலை Mnookin பிராம்ட்டை ஒரு dialog-இல் காட்டும்.

முன்தோற்றம் & ஏற்றுமதி (PDF / DOCX / Markdown). உங்கள் இரு-பக்கத்தைச் சுத்தமான, வடிவமைக்கப்பட்ட ஆவணமாகப் பார்க்க 👁 Preview & export சொடுக்கவும். முன்தோற்றத்திலிருந்து Download .md, Save as PDF, Save as DOCX (உண்மையான Word கோப்பு — ஒரு coach அல்லது ரிக்ரூட்டருடன் பங்கிட பயனுள்ளது), அல்லது clipboard-க்கு Copy செய்யலாம். அதே ஏற்றுமதிப் பட்டை இப்போது market report, career plan, career orientation பக்கங்களிலும் தோன்றும். .docx முழுவதும் உள்ளபயன்பாட்டிலேயே உருவாகும் — உங்கள் இரு-பக்கத்தை எந்த வெளி சேவையும் பார்க்காது.

நீங்கள் விரும்புவதற்கான பொருத்த மதிப்பெண்

ஒரு இரு-பக்கத்தைச் சேமித்தவுடன், #/scan-இன் ஒவ்வொரு பதவியும் ஒரு சிறு ◎ N பேட்ஜை (0–100) பெறும். ஒவ்வொரு வேலையின் பணி-வகை (remote/hybrid/onsite), நாடு, சம்பளக் கீழ்-வரம்பு, இடமாற்றம் ஆகியவற்றை உங்கள் இரு-பக்கத்துடன் ஒப்பிடும் — பச்சை பேட்ஜ் வலுவான பொருத்தம்; சிவப்பு ஒரு deal-breaker சுட்டது என்பதைக் குறிக்கும். விவரங்களுக்கு மேலே நிறுத்தவும் (✓ பொருந்தியது, ✗ எந்த deal-breaker மீறியது).

இது வேண்டுமென்றே நேர்மையானது: ஒரு பதவி பொருத்தக்கூடிய சமிக்ஞை எதையும் தராதபோது (உதாரணமாக உங்கள் விருப்பங்கள் அனைத்தும் ஒரு ஸ்கேன் வரிசை உறுதிப்படுத்த முடியாத free-text), எந்தப் பேட்ஜும் காட்டப்படாது — அமைப்பு ஒருபோதும் எண்ணைப் புனையாது. ஒரு கடும் deal-breaker மீறல் அதே விஷயத்தின் மென்மையான வெறுப்பை விட அதிக எடை பெறும். பேட்ஜுக்கு அப்பால், உங்கள் சேமித்த இரு-பக்கம் ஒவ்வொரு LLM மதிப்பீட்டிலும் inline செய்யப்படும் — உங்கள் கூறிய விருப்பங்கள் எழுதப்பட்ட தீர்ப்பையும் வடிவமைக்கும், CV-vs-JD பொருத்தத்தை மட்டுமல்ல.

22. போலி நேர்காணல் (#/mock-interview)

நேர்காணல் தயாரிப்பைப் படிப்பது ஒன்று; பதில்களை சத்தமாகச் சொல்வது இன்னொன்று. Mock interview பக்கம் (பக்கப்பட்டியில் Interview prep → Mock interview 🎤 இலிருந்து திறக்கவும்) ஒரு குறிப்பிட்ட பதவிக்கு எதிராக சுற்று-சுற்றாகப் பயிற்சி நடத்தும் — உங்கள் சொந்த CV, சுயவிவரம், இரு-பக்கம், கதைக் களஞ்சியத்தில் அடிப்படையானது. இது பதிவு செய்யப்பட்ட கேள்விப் பட்டியல் அல்ல — நேர்காணலாளர் நீங்கள் உண்மையில் சொல்வதற்கு பதிலளிப்பார்.

ஒரு அமர்வைத் தொடங்குதல்

  • ஒரு இலக்குப் பதவியை உள்ளிடவும் (விருப்பமாக ஒரு நிறுவனம்). வேலை விவரத்தையும் கொண்டிருந்தால் ஒட்டுங்கள் — கேள்விகள் வெளிப்படையாகக் கூர்மையாகும்.
  • Start interview சொடுக்கவும். நேர்காணலாளர் பதவி மற்றும் உங்கள் பின்னணிக்கு ஏற்ப ஒரு குவிந்த கேள்வியுடன் தொடங்குவார்.
  • உங்கள் பதிலைத் தட்டச்சு செய்து Send answer சொடுக்கவும். விரும்பும் வரை திரும்பவும் — இது ஒரு உரையாடல், நிலையான தேர்வு அல்ல.

ஒவ்வொரு சுற்றும் தருவது

ஒவ்வொரு பதிலுக்கும் நேர்காணலாளர் மூன்று பகுதிகளுடன் பதிலளிப்பார்:

  • Feedback — எது விழுந்தது (பலங்கள்), எது இல்லை என்பது STAR+R சொற்களில் (Situation, Task, Action, Result, Reflection). நீங்கள் தாண்டிய குறிப்பிட்ட பரிமாணத்தைப் பெயரிடும்.
  • Score — ஒரு வரி நியாயத்துடனான விரைவான N/5; ஒரு அமர்வு முழுவதும் முன்னேற்றத்தை உணரலாம்.
  • அடுத்த கேள்வி — உங்கள் கடைசி பதிலின் பலவீனமான பகுதியை வேண்டுமென்றே ஆராயும் தொடர் கேள்வி.

எல்லாம் உங்கள் உண்மைப் பொருட்களில் அடிப்படையானது: cv.md, config/profile.yml, config/two-pager.yml, மற்றும் உங்கள் STAR+R கதைக் களஞ்சியம் (interview-prep/story-bank.md) அனைத்தும் பிராம்ட்டில் inline செய்யப்படும். நேர்காணலாளர் உண்மையான இடைவெளிகளில் தள்ளுவார், ஆனால் நீங்கள் இல்லாத அனுபவத்தை ஒருபோதும் கற்பனை செய்யார். LLM key அமைக்கப்படவில்லை என்றால் பக்கம் எந்த உதவியாளரிலும் ஒட்டத் தயார்-நிலை பிராம்ட்டைத் தரும் — பயன்பாடு முழுவதும் பயன்படும் அதே நேர்மையான பின்வாங்கல்.

அமர்வுகளைச் சேமித்து மீண்டும் பார்த்தல்

முடிந்த ஒரு பயிற்சியை வைத்திருக்க Save transcript சொடுக்கவும். இது உங்கள் பெற்றோர் திட்டத்தின் பயனர் அடுக்கில் interview-prep/mock-{company}-{role}-{date}.md ஆக எழுதப்படும்; உங்கள் மற்ற நேர்காணல்-தயாரிப்புக் குறிப்புகளுக்கு அருகில் வாழும், அமைப்புப் புதுப்பிப்புகளால் ஒருபோதும் மேலெழுதப்படாது. பக்கத்தின் கீழ் உள்ள Saved sessions பட்டியல் எந்த தட்டச்சுப் பதிவையும் மீண்டும் திறக்கவோ நீக்கவோ உதவும். வேறு பதவியுடன் மீண்டும் தொடங்க New interview பயன்படுத்துங்கள்.

23. வலைப்பின்னல் & ஆழ் நிறுவன ஆராய்ச்சி (#/networking)

முன்-கதவு வழியாக விண்ணப்பிப்பது ஆட்டத்தின் பாதி மட்டுமே — மற்ற பாதி யாரோ ஒருவரை அறிவது, அல்லது குறைந்தபட்சம் யாரை அணுக வேண்டும், என்ன சொல்ல வேண்டும் என்று அறிவது. Networking பக்கம் (பக்கப்பட்டியில் Deep research → Networking 🤝 இலிருந்து திறக்கவும்) ஒரு நிறுவனத்தை ஒரு நேர்காணலைப் பெறுவதற்கான குறிப்பிட்ட திட்டமாக மாற்றும் — உங்கள் சொந்த CV, சுயவிவரம், இரு-பக்கத்தில் அடிப்படையானது.

ஒரு திட்டத்தை உருவாக்குதல்

  • ஒரு நிறுவனத்தை (தேவை) மற்றும் விருப்பமாக ஒரு பதவியை, வேலை விவரத்தையும் உள்ளிடவும். JD “why I fit” கொக்கிகளைக் கூர்மைப்படுத்தும்.
  • Build plan சொடுக்கவும். LLM key இருந்தால் நேரடியாக இயங்கி திட்டத்தை inline render செய்யும்; கீ இல்லையெனில் எந்த உதவியாளரிலும் ஒட்டத் தயார்-நிலை பிராம்ட்டைத் தரும் (பயன்பாடு முழுவதும் பயன்படும் அதே நேர்மையான பின்வாங்கல் — எதுவும் புனையப்படாது).

திட்டத்தில் என்ன இருக்கும்

திட்டம் நான்கு பிரிவுகளில் திரும்பும்:

  • Company dossier — நிறுவனம் என்ன செய்கிறது, மேற்கோள் காட்டத்தக்க சமீபத்திய அறிகுறிகள், உங்கள் உண்மைப் பின்னணியிலிருந்து இழுக்கப்பட்ட இரண்டு-மூன்று “why I fit” கொக்கிகள் பற்றிய இறுக்கமான சுருக்கம்.
  • Who to contact — மூன்று-ஐந்து இலக்கு நபர்கள் (குழுவின் hiring manager, உள்ளூர் ரிக்ரூட்டர், குழுவில் ஒரு மூத்த பொறியாளர், ஒரு பழக்கமான அல்லது alumni தொடர்பு) ஒவ்வொருவரையும் கண்டறிய ஒரு குறிப்பிட்ட LinkedIn தேடல் சரத்துடன். உண்மைப் பெயர்களை ஒருபோதும் புனையாது — சரியான மனிதர்களைக் கண்டறியும் வழியைச் சொல்லும்.
  • Warmest intro path — உங்கள் பின்னணிக்கு மிக நடைமுறையான ஒரே வெதுவெதுப்பான பாதை: ஒரு பகிர்ந்த முதலாளி, பள்ளி, சமூகம்; ஒரு இரண்டாம்-நிலை தொடர்பு; அல்லது அது உண்மையில் சிறந்த விருப்பமாக இருந்தால் உயர்-சமிக்ஞை குளிர் செய்தி.
  • Outreach drafts — உங்கள் முக்கிய நபர்களுக்கான சிறு, குறிப்பிட்ட செய்திகள் (மூன்று-ஐந்து வாக்கியங்கள், நிரப்பு இல்லை), உங்கள் உண்மைச் சான்று புள்ளிகளில் அடிப்படையானவை — பொதுவானவையாகச் சொல்லாது.

திட்டங்களைச் சேமித்து மீண்டும் பார்த்தல்

ஒன்றை வைத்திருக்க Save plan சொடுக்கவும். உங்கள் பெற்றோர் திட்டத்தின் பயனர் அடுக்கில் networking/net-{company}-{role}-{date}.md ஆக எழுதப்படும் — உங்கள் சொந்தக் கோப்பு, அமைப்புப் புதுப்பிப்புகளால் ஒருபோதும் மேலெழுதப்படாது. பக்கத்தின் கீழ் உள்ள Saved plans பட்டியல் எந்தத் திட்டத்தையும் மீண்டும் திறக்கவோ நீக்கவோ உதவும். வரைவுகளும் நபர்களும் உங்கள் உண்மைப் பொருட்களில் மட்டுமே அடிப்படையானவை என்பதால், அவற்றைத் தனிப்பயனாக்க ஒரு வலுவான முதல் வரைவாகவே கருதுங்கள் — குருடாக அனுப்ப ஒரு ஸ்கிரிப்ட் அல்ல.

24. CV ஸ்டூடியோ (#/cv-studio)

Add to CV (v1.117.0). ஒரு புதிய அட்டை ஒரு திட்டம், வெளியீடு அல்லது போர்ட்ஃபோலியோ பக்கத்தை (URL அல்லது ஒட்டப்பட்ட உரை) அந்த ஆதாரத்தில் மட்டுமே அடிப்படையான ATS-தயார் கோடு புள்ளிகளாக மாற்றும் — ஆதாரத்தில் இல்லாத அளவீடுகள், முதலாளிகள், தேதிகள் விடப்படும், ஒருபோதும் கற்பனை செய்யப்படாது. பரிந்துரைகளை மதிப்பாய்வு செய்து, ஏற்பவற்றை நீங்களே CV எடிட்டரில் ஒட்டுவீர்கள்; எதுவும் தானாக எழுதப்படாது; URL ஆதாரங்கள் பைப்லைனைப் போலவே அதே SSRF-பாதுகாப்பான validator வழியாகப் பெறப்படும்.

#/cv பக்கம் நீங்கள் உங்கள் CV-ஐ எழுதும் இடம்; CV Studio (பக்கப்பட்டியில் Setup → CV Studio 🎨 இலிருந்து திறக்கவும்) அதை கூர்மைப்படுத்தும் இடம். இது உங்கள் cv.md-க்கு மூன்று நேர்மையான கருவிகளைத் தருகிறது; அவற்றில் இரண்டு உங்கள் உலாவியை ஒருபோதும் விட்டு வெளியேறாது.

அனுபவ வரைவு கண்டறிதல்

பக்கத்தைத் திறந்த அதே நேரத்தில் அது உங்கள் CV-க்கு 100-இல் மதிப்பெண் தந்து ஒவ்வொரு சோதனைக்குமான கண்டறிதல்களைப் பட்டியலிடும்; ஒவ்வொன்றுக்கும் ஒரு சிறு விளக்கம் — என்ன மாற்றுவது என்று நீங்களே முடிவெடுப்பீர்கள் (அமைதியாக மறுஎழுதாது):

  • Length — CV ஆரோக்கியமான ஒன்று-முதல்-இரு பக்க வரம்பில் உள்ளதா?
  • Quantified impact — உங்கள் கோடுகளில் எத்தனை பங்கு ஒரு உண்மை எண் அல்லது அளவீட்டை உள்ளடக்குகின்றன? ரிக்ரூட்டர்கள் இவற்றுக்காக விரைந்து படிப்பார்கள்.
  • Strong action verbs — “responsible for” அல்லது “helped” போன்ற பலவீனமான சொற்றொடர்களைக் குறிக்கும்.
  • Buzzwords — காலியான முன்மாதிரிகளை (“results-driven”, “team player”) குறிக்கும்.
  • Core sections — Summary, Experience, Education, Skills இருக்கின்றனவா எனச் சரிபார்க்கும்.
  • Contact info — ஒரு மின்னஞ்சல் இருப்பதை உறுதி செய்யும்.

இது முழுவதும் உங்கள் உலாவியிலேயே LLM இல்லாமல் இயங்கும் — எண்கள் தீர்மானகரமானவை; எதுவும் புனையப்படாது.

தனியுரிம மறைப்பு

உங்கள் CV-ஐ எழுத்து மாதிரியாக அல்லது ஸ்கிரீன்ஷாட்டாகப் பங்கிடும் முன், Privacy mask தனிநபர் அடையாளத் தரவை redact செய்யும்: மின்னஞ்சல், தொலைபேசி, இணைப்புகள்/கைப்பிடிகள், தெரு முகவரி; நீங்கள் opt-in செய்து உள்ளிட்டால் உங்கள் பெயர் → முதலெழுத்துகள். ஒவ்வொரு வகையையும் டோக்கிள் செய்து, மறைக்கப்பட்ட பதிப்பை நகலெடுத்து, பாதுகாப்பாகப் பங்கிடுங்கள். இது முழுவதும் உலாவியிலேயே நடக்கும்; எத்தனை உருப்படிகள் redact செய்யப்பட்டன என்று துல்லியமாக அறிவிக்கும்; அசலை ஒருபோதும் சேமிக்காது அல்லது அனுப்பாது.

இதை மனிதமாக்கு (குரல் பொருத்தம்)

ஒரு விறைத்த வரி அல்லது பத்தியை ஒட்டுங்கள் — boilerplate போல வாசிக்கும் பொதுவான AI சொற்றொடர் — Make it human அதை உங்கள் குரலில் மறுஎழுதும். மறுஎழுதல் சர்வர்-பக்கத்தில் உங்கள் voice-dna.md (உங்கள் எழுத்து எப்படி வாசிக்கப்படுகிறது) மற்றும் உங்கள் writing-samples/ (உங்கள் உண்மை உரை) இல் அடிப்படையானது. கடும் விதி: மறுவரிசைப்படுத்தலாம், இறுக்கலாம், குரலை மாற்றலாம்; ஆனால் நீங்கள் ஒட்டிய உரையில் ஏற்கனவே இல்லாத ஒரு உண்மை, அளவீடு, சாதனையை ஒருபோதும் சேர்க்காது. LLM key இருந்தால் நேரடியாக மறுஎழுதும்; கீ இல்லையெனில் எந்த உதவியாளரிலும் ஒட்டத் தயார்-நிலை பிராம்ட்டைத் தரும். பிறகு வழக்கம் போல் #/cv பக்கத்தில் உங்கள் CV-ஐத் திருத்துங்கள் — CV ஸ்டூடியோ பரிந்துரைக்கும், நீங்கள் முடிவெடுப்பீர்கள்.

ஒரு வேலைக்கு ஏற்ப வடிவமை. Tailor to a job அட்டையில் ஒரு வேலை விவரத்தை ஒட்டினால் CV ஸ்டூடியோ அந்தப் பதவிக்கு ஏற்ப வடிவமைக்கப்பட்ட அனுபவ வரைவு + பொருந்தும் சுட்டுக் கடிதத்தை உருவாக்கி, இரண்டையும் கையளிப்பதற்கு முன் ஒரு ரிக்ரூட்டர்-தர பட்டியல் வாயில் வழியாக இயக்கும். இந்த இயக்கம் தொழில்-coaching நடைமுறையிலிருந்து பொது விதிகளாகச் சுருக்கப்பட்டது — ஒரு ரிக்ரூட்டர் வினாடிகளில் வாசிப்பார்; எனவே தொடர்புடைய அனுபவம் மேலே, தலைப்பு வேலைவாய்ப்பின் பதவியுடன், முடிவுகள் குறிப்பிட்ட எண்களைத் தாங்கும்; சுட்டுக் கடிதம் “தேவை ↔ உங்கள் பொருந்தும் உண்மை” ஒரே பாலத்துடன் ஒரு சிறு teaser ஆக எஞ்சும். பட்டியல் ஒவ்வொரு உருப்படியையும் PASS/FAIL ஆக அறிவிக்கும்: பிழைகள் தடுக்கும் (முடிவைப் பார்ப்பதற்கு முன் சரி செய்யப்படும்), எச்சரிக்கைகள் ஆலோசிக்கும். எல்லாம் உங்கள் சொந்த CV, சுயவிவரம், இரு-பக்கத்தில் மட்டுமே அடிப்படையானது — நீங்கள் ஏற்கனவே கொண்டிருப்பதை மறுவரிசைப்படுத்தும், மறுவடிவமைக்கும்; ஆனால் ஒரு முதலாளி, அளவீடு, கூற்றை ஒருபோதும் புனையாது. LLM key இருந்தால் நேரடியாக இயங்கும்; கீ இல்லையெனில் தயார்-நிலை பிராம்ட் கிடைக்கும். விருப்பமாக அதை இயக்க இலக்குப் பதவி/தலைப்பைத் தட்டச்சு செய்யலாம். முடிவு அட்டையின் பொத்தான்கள் மூலம் முடிவை Markdown, PDF, DOCX ஆக ஏற்றுமதி செய்யுங்கள்.

வழக்கமான சொற்றொடர்களைச் சோதி (v1.262.0)

வழக்கமான சொற்றொடர்களைச் சோதி அட்டை ஒட்டப்பட்ட உரையை 27 வழக்கமான அனுபவ வரைவு சொற்றொடர்களுடன் (“passionate about”, “proven track record”, “leveraged”, “spearheaded”, …) ஒப்பிட்டு, சரியான பொருத்தங்களை முன்னிலைப்படுத்தும் — 2022–2024 போன்ற ஆண்டு-வரம்பு ஒரு தேதி, சுட்டுக்குறி அல்ல; 20–30% ஒரு சுட்டுக்குறி. படிக்க-மட்டும்: எங்கும் எதுவும் எழுதப்படாது. Tailor சோதனைப் பட்டியல் வழக்கமான சொற்றொடர்களை ஆறாவது மாறாநிலையாகக் கருதும்.

“பழைய CV-ஐ மீண்டும் பயன்படுத்தவா?” குறிப்பு

CV ஸ்டூடியோவில் ஒரு சேமித்த வேலை விவரத்தைத் தேர்ந்தெடுக்கும்போது, ஒரு மங்கலான ஒரு-வரி குறிப்பு ஒத்த பதவிக்காக ஏற்கனவே ஒரு CV-ஐ வடிவமைத்துள்ளீர்களா என்பதைச் சொல்லும். பயன்பாடு தேர்ந்தெடுக்கப்பட்ட JD-ஐ உங்கள் மற்ற சேமித்த JD-களுடன் ஒப்பிடும் (ஒரு தீர்மானகரமான சொல்-மேலுருட்டல் மதிப்பெண் + ஒரு அளவு காவல் — AI இல்லை, எதுவும் சேமிக்கப்படாது) மற்றும் சிறந்த ஒற்றை பொருத்தத்தை மூன்று தீர்ப்புகளில் ஒன்றாக மேற்பரப்பாக்கும்:

  • reuse — ஒரு சேமித்த JD-உடன் மிகவும் ஒத்தது; அந்த CV-ஐ அப்படியே மீண்டும் பயன்படுத்தலாம்.
  • reuse with edits — ஒத்தது; அந்த CV-ஐ மீண்டும் பயன்படுத்தி திருத்துங்கள்.
  • regenerate — நெருக்கமாக ஒத்த சேமித்த JD இல்லை; புதிய CV-ஐ வடிவமையுங்கள்.

குறிப்பு குறைந்தது இரண்டு சேமித்த JD-கள் இருந்ததும் தானாகத் தோன்றும்; தேர்ந்தெடுக்கப்பட்ட JD-ஐ மாற்றும்போது புதுப்பிக்கும். இது ஒரு நினைவூட்டல் மட்டுமே — உங்கள் CV-ஐயோ JD-களையோ ஒருபோதும் மாற்றாது.

25. நினைவு (#/memory)

மற்ற ஒவ்வொரு பக்கமும் ஒவ்வொரு முறையும் புதிதாகத் தொடங்கும். Memory (பக்கப்பட்டியில் Setup → Memory 🧠 இலிருந்து திறக்கவும்) உதவியாளரிடம் ஒரு விஷயத்தை ஒரே முறை சொல்லி அது நிலைக்க வைக்கும் ஒரே இடம். ஒவ்வொரு AI கோரிக்கையிலும் ஊட்டப்படும் ஒரு சிறு, திருத்தக்கூடிய “என்னைப் பற்றி இதை நினைவில் கொள்” குறிப்பை வைக்கும்.

இது எதற்காக

நிலையான விருப்பங்கள் மற்றும் வேலை நடைக்காகப் பயன்படுத்துங்கள், உதாரணமாக:

  • நீங்கள் இலக்காகக் கொள்ளும் பதவிகள் மற்றும் நிறுவனங்களின் வகைகள் (மற்றும் ஒருபோதும் பார்க்க விரும்பாதவை).
  • பதில்களை எப்படி எழுத விரும்புகிறீர்கள் — சுருக்கமா விரிவாகவா, மூத்த தொனி, நிரப்பு இல்லை.
  • திரும்பச் சொல்லத்தக்க கடும் கட்டுப்பாடுகள் — remote மட்டும், சம்பளக் கீழ்-வரம்பு, on-call வேண்டாம்.

விருப்பங்கள் மற்றும் இயக்கத்திற்கு மட்டுமே வையுங்கள். உங்கள் அனுபவம் பற்றிய உண்மைகளுக்கு இது இடம் அல்ல — உங்கள் திறன்கள், முதலாளிகள், சாதனைகள் உங்கள் CV, சுயவிவரம், இரு-பக்கத்தில் வாழும்; அவை தான் உங்கள் CV-களிலும் சுட்டுக் கடிதங்களிலும் தோன்றும் எதற்குமான ஒரே மூலங்கள். நினைவுக் குறிப்பு உதவியாளர் உங்களுடன் எப்படி வேலை செய்கிறார் என்பதை வடிவமைக்கும்; உங்களைப் பற்றி என்ன கூறுகிறார் என்று அல்ல.

இது எல்லாவற்றையும் அடைவது எப்படி

Save memory சொடுக்கினால் குறிப்பு உங்கள் பெற்றோர் திட்டத்தின் பயனர் அடுக்கில் config/memory.md ஆக எழுதப்பட்டு பகிர்ந்த திட்டச் சூழலில் inline செய்யப்படும். அதாவது அது ஒவ்வொரு AI கோரிக்கையுடனும் — மதிப்பீடுகள், போலி நேர்காணல்கள், வலைப்பின்னல் திட்டங்கள், CV ஸ்டூடியோ மறுஎழுதல்கள் — மற்றும் நீங்கள் அமைத்த ஒவ்வொரு வழங்குநரிடமும் தானாகப் பயணிக்கும். ஒரே முறை எழுதுங்கள்; ஒவ்வொரு பக்கத்திலும் திரும்பச் சொல்லத் தேவையில்லை. உங்கள் மற்ற பயனர்-அடுக்குக் கோப்புகள் போலவே அமைப்பைப் புதுப்பிக்கும்போது ஒருபோதும் மேலெழுதப்படாது; நீங்கள் தேர்வு செய்யும் LLM பிராம்ட்களுக்குள் மட்டுமே கணினியை விட்டு வெளியேறும்.

உங்கள் தரவிலிருந்து பரிந்துரை

என்ன எழுவது என்று தெரியவில்லையா? ✨ Suggest from my data உங்கள் விண்ணப்ப ட்ரேக்கரை வாசித்து நடத்தை கோடுகளின் ஒரு தொகுப்பை வரையும் — நீங்கள் பின்தொடரும், ஏற்கும், மறுக்கும் போக்குகள். அது தரும் பிராம்ட்டை எந்த LLM-இலும் இயக்கி, பரிந்துரைகளை மதிப்பாய்வு செய்து, திருத்திய பதிப்பைக் குறிப்பில் ஒட்டுங்கள். உங்கள் சொந்த ட்ரேக்கரை மட்டுமே சுரண்டும்; உண்மைகளை ஒருபோதும் புனையாது; எது சேமிக்கப்படும் முன்பும் நீங்களே மதிப்பாய்வு செய்வீர்கள்.

26. புள்ளிவிவரம் (#/stats)

Rejection patterns தாவல் (v1.117.0). நான்காவது தாவல் பெற்றோரின் analyze-patterns.mjs-ஐ (வாசிப்பத்தற்கு மட்டும்) இயக்கி உங்கள் முடிவு கலவையையும், செயல்படத்தக்க பரிந்துரைகளையும், ATS வழங்குநர் வாரி முன்னேற்ற விகிதத்தையும் காட்டும் (“algorithmic monoculture” சமிக்ஞை — Bommasani et al., FAccT 2026). குறைந்தபட்ச மாதிரிக்குக் கீழ் வழங்குநர்கள் நட்சத்திரத்துடன் குறிக்கப்படுவார்கள்; பெற்றோர் திட்டம் இல்லாதபோது தாவல் நேர்மையான குறிப்பைக் காட்டும்.

Statistics பக்கம் ஒரே பிரிவின் கீழ் மூன்று காட்சிகளைக் கொண்டுவரும்: AI-உருவாக்கிய ஒரு சந்தை அறிக்கை, உங்கள் சொந்த பைப்லைனின் பகுப்பாய்வு, உங்கள் ஸ்கேன்களிலிருந்தான இலக்குப் பதவி வேலைவாய்ப்பு போக்கு. மேலே உள்ள தாவல்களுடன் மாறுங்கள்.

சந்தை அறிக்கை

Market report தாவல் உங்கள் இலக்குப் பதவிகளின் சம்பள மற்றும் தொழிலாள-சந்தை பகுப்பாய்வை மாதிரியிடம் கேட்கும் — எந்தப் பதவிகளையும் அளவுகளையும் உள்ளடக்க வேண்டும் என்பதை அறிய அது உங்கள் CV மற்றும் சுயவிவரத்தை வாசிக்கும். ஒரு Region / market தட்டச்சு செய்யுங்கள் (உதாரணமாக Russia, EU-remote, US, அல்லது Germany), ஒரு Currency தேர்ந்தெடுத்து, Generate market report சொடுக்கவும். சுருக்கம், நிலை வாரியான சம்பளம் (நடுநிலை + P10/P25/P75/P92), முன்னணி முதலாளிகள், கேள்விக்குரிய திறன்கள் அட்டவணை, நலன்கள் அதிர்வெண், office/hybrid/remote பிரிவு, AI தாக்கம் உட்பட 12–24 மாதப் போக்குகள், பேச்சுவார்த்தை வழிகாட்டி — இவற்றைக் கொண்ட அமைப்புள்ள அறிக்கை கிடைக்கும். ஒவ்வொரு எண்ணும் மாதிரியின் பயிற்சி அறிவிலிருந்தான தோராயமான மதிப்பீடு — சுரண்டப்பட்ட அல்லது நேரடித் தரவு அல்ல — அறிக்கையே அப்படியே சொல்லும்; எண்களை மேற்கோள்களாக அல்ல, வரம்புகளாகக் கருதுங்கள். API key அமைக்கப்படவில்லை என்றால் புனையப்பட்ட அறிக்கைக்குப் பதிலாக ஒரு copy-paste பிராம்ட் கிடைக்கும். அறிக்கையைப் பயன்பாட்டிலிருந்து எடுக்க Download .md, Save as PDF, அல்லது Copy பயன்படுத்துங்கள்.

என் பைப்லைன்

My pipeline தாவல் உங்கள் சொந்த விண்ணப்ப ட்ரேக்கரை வரையும் — வெளி எதுவும் இல்லை. எத்தனை பதவிகளைக் கண்காணித்தீர்கள், உங்கள் மதிப்பெண் பரவல், நிலை நீரோட்டம், முன்னணி நிறுவனங்கள் மற்றும் பதவிகள், காலப்போக்கில் விண்ணப்பங்கள், மாற்று விகிதங்கள் (எத்தனை விண்ணப்பங்கள் Applied, Responded, Interview, Offer-ஐ அடைகின்றன) காட்டும். உங்கள் தேடலின் நேர்மையான கண்ணாடி: data/applications.md-இல் ஏற்கனவே உள்ளதை மட்டுமே பிரதிபலிக்கும்.

இலக்குப் பதவிப் போக்கு

Target-role trend தாவல் அசல் காட்சி: உங்கள் இலக்குப் பதவிகளுக்கான நாடு வாரியான வேலைவாய்ப்பு எண்ணிக்கைகள் மற்றும் நடுநிலை சம்பளம், உங்கள் சமீபத்திய ஸ்கேனிலிருந்து ஒருங்கிணைக்கப்பட்டது; நாணயத் தேர்வான் மற்றும் Postings by target role மேலோட்டம் உண்டு. Save snapshot தற்போதைய ஒருங்கிணைப்பைப் பதிவு செய்யும் — வேலைவாய்ப்பு எண்ணிக்கைகள் காலப்போக்கில் எப்படி நகர்கின்றன என்பதைப் பார்க்கலாம்; போக்கு வரி அந்த snapshots-களைத் திரும்ப வாசிக்கும். மெலிந்த தரவு எதிர்பார்க்கப்படுகிறது மற்றும் தோராயமாக லேபிளிடப்படுகிறது — புனையப்பட்ட எண்களால் ஒருபோதும் நிரப்பப்படாது.

எல்லா-நேரம் & சம்பளம்

Lifetime தாவல் (v1.118.0) இரு பூஜ்ஜிய-டோக்கன் பெற்றோர் ஸ்கிரிப்ட்களை வாசிப்பதற்கு மட்டுமாக முன்னிலைப்படுத்தும்: stats.mjs — உங்கள் எல்லா-நேர ட்ரேக்கர் சுருக்கம், குவிந்த நீரோட்ட விகிதங்கள் (response / interview / offer), ஸ்கேனர் மொத்தங்கள், போர்டல் உள்ளடக்கம் — மற்றும் salary-gap.mjs — ஒவ்வொரு விண்ணப்பத்திற்கும் விருப்பம் vs அறிவிக்கப்பட்டது vs உண்மை சம்பளம், அறிக்கை Machine Summaries மற்றும் data/salary-observations.tsv-இலிருந்து மடிக்கப்பட்டது. சிறிய மாதிரிகள் தோராயமாக லேபிளிடப்படும்; பெற்றோர் திட்டம் இல்லாதபோது தாவல் நேர்மையான குறிப்பைக் காட்டும்.

திறன் சுய-மதிப்பீட்டுப் பதிவு (#/assessments)

#/assessments நீங்கள் எடுக்கும் திறன் தேர்வுகளுக்கான எளிய பதிவு — ஒரு நிறுவனத்தின் தளத்தில் coding test, ஒரு take-home, ஒரு சான்றிதழ் quiz. ஒரு நிகழ்வைப் பதிவு செய்யுங்கள் — நிறுவனம், தளம், திறன், விருப்ப pass threshold % மற்றும் உங்கள் score %, ஒரு free-text குறிப்பு — பெற்றோர் திட்டத்தின் data/assessments.tsv-இல் ஒவ்வொரு நிகழ்வுக்கும் ஒரு வரிசையாகச் சேர்க்கப்படும். பக்கம் பதிவு செய்த எல்லாவற்றையும் பட்டியலிட்டு தளம் வாரியாகச் சுருக்கும் — காலப்போக்கில் நீங்கள் எப்படி செய்கிறீர்கள் என்பதைப் பார்க்கலாம். நீங்கள் தூண்டும் வெளிப்படையான எழுத்து; பெற்றோர் திட்டம் இல்லாதபோது பக்கம் மங்கலான “not available” வரியைக் காட்டும்.

27. தொழில் திட்டம் (#/career-plan)

Career plan பக்கம் உங்கள் CV மற்றும் சுயவிவரத்தை ஒரு குறிப்பிட்ட, தனிப்பயனாக்கப்பட்ட மேம்பாட்டுத் திட்டமாக மாற்றும் — ஒரு தொழில் coach-உடன் உருவாக்குவது போன்றது; ஆனால் உங்கள் சொந்தப் பொருட்களிலிருந்து உருவாக்கப்பட்டு, உங்களுக்கே உரியதாகத் திருத்தக்கூடியது.

ஒரு திட்டத்தை உருவாக்குதல்

ஒரு Horizon (6, 12, அல்லது 24 மாதம்) தேர்ந்தெடுங்கள், விருப்பமாக ஒரு Focus தட்டச்சு செய்யுங்கள் (உதாரணமாக “move into management”, “go remote”, அல்லது “switch to Go”), மற்றும் Generate plan சொடுக்கவும். மாதிரி உங்கள் CV, சுயவிவரம், இரு-பக்கம், நினைவுக் குறிப்பை (பகிர்ந்த திட்டச் சூழல் வழியாக) வாசித்து அமைப்புள்ள திட்டத்தை எழுதும்: நேர்மையான தொடக்கப் புள்ளி நிகழ்வுநிலை, பலங்கள்-மற்றும்-வளர்ச்சி SWOT, SMART / OKR / WOOP ஆக வெளிப்படுத்தப்பட்ட இலக்குகள், சமரசங்களுடனான மாற்றுத் தொழில் பாதைகள், கடும்/மென்மை திறன் திட்டம், நீங்கள் தேர்ந்தெடுத்த horizon-க்கான மாதம்-வாரியான வழிச்சாலை, முன்னேற்றத்தைக் கண்காணிப்பது எப்படி, சாத்தியமான தடுமாறல்கள், ஆதரவு நடவடிக்கைகள். ஒவ்வொரு பரிந்துரையும் உங்கள் பொருட்கள் உண்மையில் காட்டுவதில் அடிப்படையானது — முன்னோக்கித் திட்டமிடும்; உங்கள் வரலாறு பற்றிய உண்மைகளை ஒருபோதும் கற்பனை செய்யாது. API key அமைக்கப்படவில்லை என்றால் அதற்குப் பதிலாக ஒரு copy-paste பிராம்ட் கிடைக்கும்.

திருத்துதல் மற்றும் சேமிப்பு

திட்டம் திருத்தக்கூடிய உரைப் பகுதியில் விழும் — எதையும் சீரமைத்து Save plan சொடுக்கவும். உங்கள் பெற்றோர் திட்டத்தின் பயனர் அடுக்கில் config/career-plan.md ஆக எழுதப்படும்; அமைப்புப் புதுப்பிப்புகளைத் தாண்டி எஞ்சும்; நீங்கள் தேர்வு செய்யும் LLM பிராம்ட்களுக்குள் மட்டுமே அனுப்பப்படும். Preview உங்கள் Markdown-ஐ render செய்யும் — சேமிப்பதற்கு முன் வடிவமைக்கப்பட்டதாக வாசிக்கலாம்.

ஏற்றுமதி

திட்டத்தைப் பயன்பாட்டிலிருந்து எடுக்க Download .md, Save as PDF, அல்லது Copy பயன்படுத்துங்கள் — பயன்பாட்டின் AI அறிக்கைகள் முழுவதும் பயன்படும் அதே ஏற்றுமதிக் கட்டுப்பாடுகள். PDF ஏற்கனவே உள்ள inline-PDF generator வழியாகச் செல்லும்; Markdown நேரடிப் பதிவிறக்கம்.

28. தொழில் அமைப்பு (#/orientation)

Career orientation பக்கம் “எந்தத் திசைகள் உண்மையில் எனக்குப் பொருந்தும்?” என்று பதிலளிக்கும் — ஒரு தொழில் தேர்வு தரும் வகையினது; ஆனால் ஒரு questionnaire-இலிருந்தல்லாமல் உங்கள் சொந்த CV மற்றும் சுயவிவரத்திலிருந்து ஊகிக்கப்படும்.

இது என்ன உருவாக்கும்

Generate profile சொடுக்கினால் மாதிரி உங்கள் CV, சுயவிவரம், இரு-பக்கம், நினைவுக் குறிப்பை வாசித்து ஒரு தொழில்-அமைப்பு சுயவிவரத்தை எழுதும்: உங்கள் சிறந்த-பொருத்த தொழில் திசைவெக்டர்கள் (எட்டு ஆர்க்கிடைப்புகளில் — Functionalist, Administrator, Communicator, Specialist, Analyst, Innovator, Manager, Entrepreneur — எது சிறந்தது, உங்கள் CV-யிலிருந்தான சான்றுடன்), ஒரு தொழில்-வகை சாய்வு, ஒரு பரிந்துரைக்கப்பட்ட பதவிகளின் தொகுப்பு, CV காட்டுவதுடன் இணைக்கப்பட்ட தொழில்முறை பலங்கள், வேலை-நடை போக்குகள் (சில அச்சுகளில் “உங்கள் CV எப்படி வாசிக்கப்படுகிறது”), மற்றும் உங்கள் பொருத்தத்தை விரிவாக்க மேம்பாட்டுப் பரிந்துரைகள்.

இது எப்படி உருவாக்கப்படுகிறது

இது உங்கள் CV எப்படி வாசிக்கப்படுகிறது என்பதன் AI பிரதிபலிப்பு — ஒரு உளவியல் தேர்வு அல்ல. பிராம்ட் முழுவதும் உங்கள் சொந்தப் பொருட்களில் அடிப்படையானது: சாதனைகளைப் புனையாது; அளந்த மதிப்பெண்களாக எண்ணிடப்பட்ட தேர்வு மதிப்பெண்களை ஒருபோதும் அறிவிக்காது. API key அமைக்கப்படவில்லை என்றால் நேரடி சுயவிவரத்திற்குப் பதிலாக எந்த LLM-இலும் இயக்கக்கூடிய ஒரு copy-paste பிராம்ட் கிடைக்கும். வட்டில் எதுவும் எழுதப்படாது — சுயவிவரம் ஒவ்வொரு முறையும் புதிதாக உருவாக்கப்படும்.

ஏற்றுமதி

சுயவிவரத்தை வைத்திருக்க Download .md, Save as PDF, அல்லது Copy பயன்படுத்துங்கள் — பயன்பாட்டின் AI அறிக்கைகள் முழுவதும் பயன்படும் அதே ஏற்றுமதிக் கட்டுப்பாடுகள். PDF ஏற்கனவே உள்ள inline-PDF generator வழியாகச் செல்லும்; Markdown நேரடிப் பதிவிறக்கம்.

29. The CareerOps Manifesto

career-ops — இந்தப் பயன்பாடு முன்வைக்கும் பெற்றோர் திட்டம் — the CareerOps Manifesto-இன் (parent v1.20.0) முதல் குறிப்பு செயல்படுத்தல். manifesto இந்த முழு கருவித் தொகுப்பு இருக்கும் நடைமுறையைப் பெயரிடுகிறது: ஒரு வேலை தேடலை பொறியாளர்கள் production-ஐ நடத்தும் விதத்தில் நடத்துவது — சான்றுடன், ஒழுக்கத்துடன், மேசையின் வேட்பாளர் பக்கத்தில் கருவிகளுடன்.

இதில் என்ன உள்ளது

ஆறு கொள்கைகள் — “குறைவானவற்றிற்கு சிறப்பாக விண்ணப்பி”, “அளவுக்கு மேல் சமிக்ஞை”, “முக்கிய சொற்களுக்கு மேல் சான்று”, “ஒரு மனிதர் முடிவு செய்கிறார்”, “உள்ளூர்-முதன்மை”, “மேசையின் இரு பக்கமும் கண்ணியம்” — மற்றும் AI-இடைத்தரணியாக்கப்பட்ட ஆட்சேர்ப்பு காலத்திற்கான வேட்பாளர் உரிமைகள் பட்டியல்: நீங்கள் இயல்புநிலையில் காணப்படாதவர்; உங்கள் ஆம் இல்லாமல் யாரும் உங்களை முன்மொழிய மாட்டார்கள்; உங்கள் ஆம் மனிதனுடையது, ஒரு ஏஜென்டுக்கு ஒப்படைக்க முடியாது; நீங்கள் ஒருபோதும் கட்ட மாட்டீர்கள்; உங்கள் தரவு உங்களுடையது. பயன்பாடு இந்த விதிகளை வடிவமைப்பால் பின்பற்றுகிறது: எதுவும் ஒருபோதும் தானாகச் சமர்ப்பிக்கப்படாது; எல்லாம் உள்ளூரில் இயங்குகிறது; உருவாக்கப்பட்ட CV-இன் ஒவ்வொரு கூற்றும் உங்கள் சொந்தப் பொருட்களுக்குத் திரும்பச் செல்லும்.

படித்தல் மற்றும் கையொப்பமிடுதல்

பக்கப்பட்டியின் அடிக்குறிப்பில் உள்ள இணைப்பு manifesto பக்கத்தைத் திறக்கும். பெற்றோர் திட்டத்தில் MANIFESTO.md-ஐயும் வாசிக்கலாம், அல்லது கையொப்பப் பக்கத்தைத் திறக்க அங்கே npm run manifesto இயக்கலாம். கையொப்பமிடுவது விருப்பத்தேர்வு; பத்து விநாடிகள் எடுக்கும் — உங்கள் கையொப்பம் பெற்றோர் repository-இன் SIGNATURES.md ledger-இல் ஒரு பொது commit ஆகும். பயன்பாட்டில் எதுவும் உங்கள் கையொப்பத்தைப் பொறுத்ததல்ல.

இந்தப் பயன்பாடே எப்படி கட்டப்படுகிறது. manifesto ஒரு வேலை தேடலை எப்படி நடத்துவது என்பது பற்றியது; அதை முன்வைக்கும் மென்பொருள் coding agents உடன் கட்டப்படுகிறது; அந்த நடைமுறைக்கு அதன் சொந்த பட்டியல் உண்டு: Agentic Coding Design Patterns — Kirill Mokevnin (ரஷ்யப் பதிப்பு). career-ops-ui இதை வேண்டுமென்றே பின்பற்றுகிறது — committed pre-commit hook-இல் இயங்கக்கூடிய காவலர்கள், skills ஆகப் பொதியப்பட்ட பணிப்பாதைகள், தனித்த இணை fan-outs, ஒரு டொமைன் அகராதி, ADRs, ஒரு முன்னேற்றப் பதிவு, workflow மதிப்பீடுகள். உண்மையில் என்ன செயல்படுத்தப்பட்டது, எது இல்லை என்பது திட்ட wiki-இன் Agentic Practices பக்கத்தில் தணிக்கை செய்யப்படுகிறது.

30. Hermes & Telegram

Nous Research-இன் Hermes ஒரு திறந்த தன்னியக்க ஏஜென்ட் — tool-calling, skills, 20+ செய்தி சேனல்கள்; Telegram அவற்றில் ஒன்று. v1.151.0 முதல் Hermes ஒரு இணைக்கப்பட்ட LLM வழங்குநர்: அதன் OpenAI-இசைவு API சர்வரை (hermes gateway) இயக்கி, App settings-இல் HERMES_API_KEY அமைத்தால் career-ops-ui அதன் நேரடி மதிப்பீடுகளை உங்கள் உள்ளூர் Hermes வழியாக இயக்கும். இந்தப் பிரிவு பயன்பாட்டை ஒரு கிளவுட் சர்வரில் இயக்குவதையும் அதன் நிகழ்வுகளை Hermes வழியாக Telegram-க்கு பாலமிடுவதையும் உள்ளடக்குகிறது — இரண்டும் operator how-to, பயன்பாட்டு அம்சங்கள் அல்ல. முழு வழிகாட்டி docs/integrations/HERMES.md; hermes-bridge skill படிகளை நடத்தும்.

Hermes என்றால் என்ன

Hermes உங்கள் சொந்த LLM வழங்குநர்களுடன் இணையும் ஒரு ஏஜென்ட் runtime — மேலும் அது ஒரு OpenAI-இசைவு API சர்வரையும் வெளிப்படுத்தும்: hermes gateway http://127.0.0.1:8642/v1 இல் Bearer key உடன் (அதன் API_SERVER_KEY) POST /v1/chat/completions வழங்கும். அதனால்தான் career-ops-ui அதை வேறு ஒரு வழங்குநராகவே கருதுகிறது (வழிகாட்டியில் “Shape A” பாதை): பயன்பாடு OpenAI அல்லது Qwen-க்குச் செய்வது போலவே அந்த உள்ளூர் முனையத்திற்கு POST செய்யும்; Hermes கோரிக்கையை உள்ளே நீங்கள் அமைத்த மாதிரிக்கு வழிநடத்தும். அது auto வழங்குநர் வரிசையில் ஒரு பகுதி, எனவே ஏற்கனவே உள்ள Anthropic/Gemini/OpenAI/Qwen அமைவை ஒருபோதும் மேலெழுதாது.

ஒரு கிளவுட் சர்வரில் இயக்குதல்

career-ops-ui இயல்புநிலையாக 127.0.0.1-உடன் பிணைகிறது. ஒரு சர்வரில் வாழும் Hermes ஏஜென்டை அடைய loopback-ஐ விட்டு நகர வேண்டும் — கவனமாக. பயன்பாட்டை loopback-உடன் பிணைத்து, HTTPS-ஐ முடிக்கும் ஒரு reverse proxy-ஐ (nginx அல்லது Caddy) முன் வையுங்கள்; systemd அல்லது pm2 கீழ் non-root பயனராக இயக்கவும்; headless box-இல் வாசிப்பத்தற்கு மட்டுமான பெற்றோர் career-ops ஒப்பந்தத்தை அப்படியே வையுங்கள். பாதுகாப்பு உறை இடம்பெயர்வை எஞ்ச வேண்டும்: inline ஸ்கிரிப்ட்கள் இல்லாத Content-Security-Policy, ஒவ்வொரு பயனர்-வழங்கிய URL பெறுதலிலும் SSRF காவல், markdown/XSS எல்லை, மற்றும் பதிவுகளில் ரகசியங்கள் இல்லை. வழிகாட்டியில் முழு பட்டியல் உண்டு — 0.0.0.0-ஐ பொது இணையத்திற்கு நேரடியாக ஒருபோதும் வெளிப்படுத்த வேண்டாம்.

Hermes வழியாக Telegram

பாலம் பயன்பாட்டு நிகழ்வுகளை — முடிந்த ஒரு ஸ்கேன், புதிய அறிக்கை, சற்றுமுன் அவசரமான ஒரு தொடர் தொடர்பு — Hermes வழியாக ஒரு Telegram அரட்டையை அடைய வைக்கும். Telegram bot token Hermes-இன் சொந்த config-இல் இருக்கும்; career-ops-ui-இல் ஒருபோதும் இல்லை. பயனுள்ள குறைந்தபட்சத்தை மட்டுமே அனுப்புங்கள்: “Scan finished — 12 new matches” மற்றும் நீங்களே திறக்கும் ஒரு இணைப்பு. ஒருபோதும் அனுப்ப வேண்டாம்: CV உரை, சம்பள எண்கள், மூல அறிக்கை bodies, API keys, உள் URL-கள் — வழிகாட்டியின் threat-model “எதை வெளிப்படுத்தக்கூடாது” பட்டியலே விதி. இந்தப் பக்கம் #/help-இலிருந்து அடையக்கூடியது; உள்ளபயன்பாட்டு ஆவண உதவியாளர் இதில் அடிப்படையான கேள்விகளுக்குப் பதிலளிக்கும்.

31. முழு ஸ்டாக்கையும் கிளவுட்டில் இயக்குதல்

பெரும்பாலானோர் career-ops-ஐ தங்கள் சொந்த மடிக்கணினியில் இயக்குகிறார்கள். ஆனால் பைப்லைன் எப்போதும் இயக்கத்தில் இருக்கும்போதுதான் சிறந்தது — நீங்கள் தூங்கும்போது பலகைகளை ஸ்கேன் செய்து, ட்ரேக்கரை புதியதாக வைத்து, எந்தச் சாதனத்திலிருந்தும் உலாவியில் தயாராக இருக்கும். இந்தப் பிரிவு முழு ஸ்டாக்கையும் ஒரு சிறு கிளவுட் சர்வரில் வைப்பதற்கான முனை-முதல்-முனை செய்முறை: பெற்றோர் career-ops பைப்லைன், இந்த career-ops-ui viewer, மற்றும் AI-ஐ இயக்கும் இயந்திரம் — உங்கள் Claude subscription (Claude Code CLI வழியாக) அல்லது உள்ளூர் Hermes gateway. §30-இன் Hermes கிளவுட் குறிப்புகளின் மீது கட்டப்பட்டது; முழு operator பட்டியல் docs/integrations/HERMES.md.

மூன்று நகரும் பாகங்கள்

ஸ்டாக் மூன்று ஒத்துழைக்கும் துண்டுகள்; அவற்றை நேராக வைத்திருப்பது உதவும். career-ops (பெற்றோர்) AI வேலை-தேடல் பைப்லைன் — உங்கள் cv.md, config/, reports/, portals.yml-ஐ உடைமையாகக் கொண்டு, ஒரு agent CLI ஆல் இயக்கப்படும். career-ops-ui (இந்தப் பயன்பாடு) web-ui/ ஆக career-ops-க்கு உள்ளே அமர்ந்திருக்கும் பெரும்பாலும்-வாசிப்பு web viewer; அதே கோப்புகளை உலாவியில் மேற்பரப்பாக்கும்; வெளிப்படையான செயல்களில் மட்டுமே திரும்ப எழுதும். இயந்திரம் AI பிராம்ட்களுக்கு உண்மையில் பதிலளிப்பது. மூன்றில் இரண்டு சர்வரிலும் மடிக்கணினியிலும் ஒரே மாதிரி — இயந்திரத் தேர்வும் நெட்வொர்க் வெளிப்பாடும் மட்டுமே மாறும்.

வழங்கல் மற்றும் நிறுவல்

தற்போதைய Linux இயங்கும் ஒரு சிறு VPS-ஐ (viewer-க்கு 1 vCPU / 1 GB RAM போதும்) வாடகைக்கு எடுத்து Node ≥ 18 நிறுவவும் (22.5+ பரிந்துரைக்கப்படுகிறது — பெற்றோரின் SQLite ட்ரேக்கர் index-ஐ இயக்கும்). git நிறுவவும். பிறகு ஒரு உள்ளூர் நிறுவல் செய்வதையே சரியாகச் செய்யுங்கள்: பெற்றோர் career-ops-ஐ clone செய்யவும், இந்த repo-வை அதன் உள்ளே career-ops/web-ui/ ஆக clone செய்யவும். வழங்குநர் keys-ஐ பெற்றோரின் .env-இல் வையுங்கள் (ஒருபோதும் commit செய்யாதீர்கள் — .env / .env.* gitignored; .env.example-இலிருந்து தொடங்கவும்). Viewer-ஐ npm start உடன் இயக்கவும் — ஆனால் அதை 127.0.0.1-உடன் பிணைத்தே வையுங்கள்; நீங்கள் அதை proxy வழியாக வெளிப்படுத்துவீர்கள், நேரடியாக அல்ல (கீழே பார்க்கவும்).

உங்கள் இயந்திரத்தைத் தேர்வு செய்

career-ops CLI-சார்ந்ததல்ல; AI-க்கு மூன்று நேர்மையான விருப்பங்கள் உண்டு. உங்கள் Claude subscription — box-இல் Claude Code CLI-ஐ நிறுவி Pro/Max plan உடன் claude login செய்யுங்கள்; பெற்றோரின் agent இயக்கங்கள் உங்கள் subscription-ஐப் பயன்படுத்தும்; per-token API பில் இல்லை. Hermes — அதே box-இல் hermes gateway இயக்கவும் (http://127.0.0.1:8642/v1 இல் OpenAI-இசைவு API வெளிப்படுத்தும்), App settings-இல் HERMES_API_KEY அமைக்கவும்; career-ops-ui-இன் நேரடி மதிபீடுகள் அதன் வழியாகப் பயணிக்கும் (auto வழங்குநர் வரிசையின் ஒரு உறுப்பு). API keys — பெற்றோர் .env-இல் ANTHROPIC_API_KEY (அல்லது எந்த வழங்குநரையும்: Anthropic → Gemini → OpenAI → Qwen → OpenRouter → GitHub Models → Hermes → DeepSeek → GLM (Z.ai) → Kimi (Moonshot) → MiniMax → Mistral → Grok (xAI) → Together → Fireworks → Ollama → BytePlus Ark → Volcengine Ark) அமைத்தால் ⚡ நேரடி செயல்கள் headless ஆக வேலை செய்யும். கலக்கலாம்: பெற்றோரின் கனமான agent வேலைக்கு Claude subscription; viewer-இன் விரைவு மதிபீடுகளுக்கு மலிவான அல்லது உள்ளூர் வழங்குநர்.

பாதுகாப்பாக வெளிப்படுத்துதல்

127.0.0.1-ஐ விட்டு நகர்வது loopback இலவசமாகத் தந்த பாதுகாப்பு இப்போது வெளிப்படையாகக் கட்டப்பட வேண்டும் என்பதைக் குறிக்கும் — குறியீடு ஒரே மாதிரி; மாறுவது வெளிப்பாடு மட்டுமே. பயன்பாட்டை loopback-உடன் பிணைத்து, HTTPS-ஐ முடிக்கும் (Let’s Encrypt / automatic TLS) மற்றும் 127.0.0.1:4317-க்கு முன்னேற்றும் ஒரு reverse proxy-ஐ (nginx அல்லது Caddy) முன் வையுங்கள்; systemd அல்லது pm2 கீழ் Restart=on-failure உடன் ஒரு தனிப்பட்ட non-root பயனராக இயக்கவும். அங்கீகாரத்தை முன் வையுங்கள் — பயன்பாட்டிற்கு அதன் சொந்த login இல்லை; proxy (basic-auth, ஒரு SSO forward-auth, அல்லது தனியார் நெட்வொர்க் / VPN) தான் அந்நியர்களை வெளியே வைக்கும். proxy அடைய HOST=0.0.0.0 அமைக்கும்போது, loopback-இல் no-op ஆக இருந்த built-in hardening இயங்கி சுமைதாங்கியாகும்: LLM rate-limit, safeGet DNS-rebind பாதுகாப்பு, path-name சுத்திகரிப்பு. நான்கு மாறாநிலைகள் இடம்பெயர்வை எஞ்ச வேண்டும்; அவற்றைத் தளர்த்த வேண்டாம்: CSP (inline ஸ்கிரிப்ட்கள் இல்லை, frame-ancestors 'none' — proxy இந்த headers-ஐ ஒருபோதும் strip செய்யக்கூடாது), ஒவ்வொரு பயனர்-வழங்கிய URL பெறுதலிலும் SSRF காவல், markdown/XSS எல்லை (stripDangerousMarkdown() சர்வர்-பக்க + escape-முதன்மை UI.md() client-பக்க), பதிவுகளில் ரகசியங்கள் இல்லை. பெற்றோரின் வாசிப்பத்தற்கு மட்டுமான ஒப்பந்தம் headless box-இலும் நிலைக்கும் — சர்வர் உங்கள் cv.md / config/ / reports/-ஐ மட்டுமே வாசிக்கும்; வெளிப்படையான செயல்களில் மட்டுமே எழுதும்.

32. OpenWorker-இலிருந்து இயக்கு (AI சக ஊழியர்)

உலாவிக்குப் பதிலாக ஒரு desktop AI சக ஊழியரை விரும்புகிறீர்களா? career-ops-coworker என்பது இந்த முழு பைப்லைனையும் உங்களுக்காக இயக்கும் ஒரு OpenWorker சக ஊழியர் (Andrew Ng-இன் திறந்த மூல, உள்ளூர்-முதன்மை AI சக ஊழியர் பயன்பாடு) — பலகைகளை ஸ்கேன் செய்து, உங்கள் CV-க்கு எதிராக பொருத்தங்களை மதிப்பிட்டு, அடிப்படையுடைய CV + சுட்டுக் கடிதத்தை வடிவமைத்து, விண்ணப்பங்களைக் கண்காணித்து, தொடர் தொடர்புகளை வரையும் — மேலும் கோரிக்கையின் பேரில் இந்த டாஷ்போர்டைத் தொடங்கும். இது ஒற்றை, குறியீடற்ற Markdown “persona”; OpenWorker அதில் எதையும் நிரலாக இயக்காது — வழிமுறைகள் ஏஜென்டை மட்டுமே இயக்கும். அதன் வழிகாட்டி எல்லா 19 மொழிகளிலும் வருகிறது.

சக ஊழியர் என்ன செய்யும்

உங்கள் career-ops திட்ட அடைவுக்குள் வேலை செய்யும்போது, சக ஊழியர் பைப்லைன் செய்யும் அதே படிகளை இயக்கும்: உங்கள் portals.yml-இல் உள்ள பலகைகளை ஸ்கேன் செய்யும் (பூஜ்ஜிய-டோக்கன்), ஒவ்வொரு பதவியையும் உங்கள் cv.md + config/profile.yml-க்கு எதிராக 0–5 மதிப்பிடும், மற்றும் — கோரிக்கையின் பேரில் — உங்கள் CV-இல் ஏற்கனவே உள்ள உண்மைகளில் மட்டுமே அடிப்படையான பதவி-குறிப்பிட்ட CV + சுட்டுக் கடிதத்தை வடிவமைக்கும் (முதலாளி, தேதி, அளவீட்டை ஒருபோதும் கற்பனை செய்யாது). data/applications.md-ஐப் புதுப்பிக்கும், தொடர் தொடர்பு மின்னஞ்சல்களை வரையும், நேர்காணல் நேரங்களை வைக்கும் — ஒவ்வொரு அனுப்பலும் எழுத்தும் ஒப்புதல்-வாயில், career-ops-இன் சொந்தக் கொள்கை போலவே. இந்த viewer-ஐத் திறக்க அது bash web-ui/bin/start.sh (அல்லது npm start) இயக்கி http://127.0.0.1:4317-ஐத் தரும்.

நிறுவல் மற்றும் தொடக்கம்

OpenWorker-ஐ நிறுவி ஒரு மாடல் key சேர்க்கவும் (Anthropic / OpenAI / Google, அல்லது உள்ளூர் Ollama). வேகமானது ஒரே கட்டளை — சக ஊழியர் இயக்கும் career-ops பைப்லைனை அமைக்கும்; idempotent — உங்கள் தரவை மேலெழுதாமல் ஏற்கனவே உள்ள career-ops / web-ui-ஐ மீண்டும் பயன்படுத்தும்:

curl -fsSL https://raw.githubusercontent.com/Fighter90/career-ops-coworker/main/install.sh | bash

பிறகு OpenWorker-இன் Install a coworker panel-இல் சக ஊழியரைச் சேர்க்கவும் — GitHub URL மூலம் (https://github.com/Fighter90/career-ops-coworker), .zip மூலம் (Releases-இலிருந்து), அல்லது career-ops.md-ஐ import செய்து. ஒரு Job-Search Coworker அமர்வைத் திறந்து, உங்கள் career-ops அடைவைத் தேர்ந்தெடுத்து, “scan my boards and give me the top 5 fits this week” அல்லது “open the dashboard” எனக் கேளுங்கள். Connectors (Gmail, Google Calendar, GitHub) மற்றும் முழு வழிகாட்டி சக ஊழியர் repo-இன் help guide இல் உள்ளது. OpenWorker-இன் சொந்த loader மற்றும் repo installer-க்கு எதிராக நிறுவக்கூடியதாக சரிபார்க்கப்பட்டது.

33. வேலை வரைபடம் (#/map)

வரைபடம் ஸ்கேன் முடிவுகள், நிலுவை பைப்லைன், உங்கள் ட்ரேக்கர் ஆகியவற்றை ஒரு OpenStreetMap வரைபடத்தில் காட்டும். நிரப்பப்பட்ட புள்ளி ஒரு மதிப்பீட்டு மதிப்பெண் (ட்ரேக்கர்); வளையம் நீங்கள் இன்னும் மதிப்பிடாத ஒரு பதவிக்கான தலைப்பு-பொருத்த குறிப்பு (பைப்லைன், ஸ்கேன்). எண் அருகிலுள்ள பதவிகளைக் குழுவாக்கும்; பிரிக்க பெரிதாக்கவும். 📍 OpenStreetMap-இல் கண்டறியப்பட்ட ஒரு முதலாளி முகவரியைக் குறிக்கும்; இல்லையெனில் புள்ளி இடத்தின் மையத்தில் அமரும். அடுக்கு switch ஸ்கேன், பைப்லைன், ட்ரேக்கரை மாற்றும்.

வரைபடத்தைப் பயன்படுத்துவது எப்படி

Job map: scan results, pipeline and tracker postings on an OpenStreetMap map

  1. முதலில் ஒரு ஸ்கேனை இயக்கவும் (#/scan) — வரைபடம் கடைசி ஸ்கேன், பைப்லைன், ட்ரேக்கர் வைத்திருப்பதை வரையும்; காலி திட்டம் காலி வரைபடத்தைக் காட்டும்.
  2. #/map-ஐத் திறங்கள். தலைப்பின் கீழ் உள்ள வரி முன்னேற்றத்தை எண்ணும்: Places located: N/M இடங்கள் தேடப்படும்போது நிரப்பப்படும் (cached இடங்கள் உடனே தோன்றும்); Without a location இடம் பெயரிடாத பதவிகளை எண்ணும் (remote-மட்டும், “Anywhere”).
  3. வண்ணங்களை வாசியுங்கள். நிரப்பப்பட்டது = உங்கள் மதிப்பீட்டு மதிப்பெண் (பச்சை நன்று · மஞ்சள் சரியானது · நீலம் நடுத்தரம் · சிவப்பு பலவீனம்). வளையம் = மதிப்பீட்டுக்கு முன் தலைப்புப் பொருத்தம் (அதே வண்ணங்கள்; சாம்பல் = பொருத்த சமிக்ஞை இல்லை).
  4. பெரிதாக்கவும் ஒரு எண்ணில் குழுவைப் பிரிக்க; தெரு மட்டத்தில் அதே இடத்தில் உள்ள பதவிகள் விரிந்து ஒவ்வொன்றையும் சொடுக்கக்கூடியதாகும்.
  5. ஒரு புள்ளியைச் சொடுக்கவும் பதவியைத் திறக்க, அல்லது ட்ரேக்கர் உள்ளீட்டிற்கான மதிப்பீட்டு அறிக்கையைத் திறக்க.
  6. அடுக்குகளை மாற்றவும் (மேல் வலது) — உதாரணமாக புதிய ஸ்கேன் முடிவுகளுக்கு எதிராக ட்ரேக்கர் மட்டும் ஒப்பிட.

பல இடங்களைப் பட்டியலிடும் ஒரு பதவி (“Berlin Office · Berlin · Germany · Bosnia · …”, “Berlin; Munich”, “Remote U.S. · Toronto”) அதன் முதல் உண்மை இடத்தில் வைக்கப்படும்; “Remote …” segments, “(HQ)”, தொடரும் “Office” தாண்டப்படும். வரைபடம் பெரும்பாலான பதவிகள் உள்ள இடத்தை frame செய்யும் — சில தொலைவானவை காட்சியைச் சுருக்காது; அவற்றைப் பார்க்க சுருக்கவும்.

தரவு மற்றும் தனியுரிமம்

வரைபடம் வெளி சேவைகளுடன் பேசும் ஒரே காட்சி; அதுவும் நீங்கள் அதைத் திறந்திருக்கும்போது மட்டுமே: உலாவி tile server-இலிருந்து வரைபடத் துண்டுகளை ஏற்றும்; சர்வர் ஒவ்வொரு பதவியின் இடத்தையும் நிறுவனப் பெயரையும் (உங்கள் CV அல்லது சுயவிவரத்தை ஒருபோதும் அல்ல) Nominatim geocoder-க்கு அனுப்பும். பதில்கள் web-ui/.cache/geocode.json-இல் cached ஆகும்; ஒவ்வொரு இடமும் ஒரே முறை தேடப்படும். இந்தக் கோரிக்கைகளை உங்கள் சொந்த உட்கட்டமைப்பில் வைக்க, கீழே உள்ள மாறிகளை self-hosted சர்வர்களைச் சுட்டிக்காட்டுங்கள்.

கட்டமைப்பு

மாறி இயல்புநிலை நோக்கம்
NOMINATIM_URL https://nominatim.openstreetmap.org Geocoder base URL (self-hosted Nominatim)
NOMINATIM_EMAIL — பொது Nominatim-க்கு அனுப்பப்படும் தொடர்பு முகவரி, அதன் பயன்பாட்டுக் கொள்கை கேட்பது போல
NOMINATIM_GAP_MS 1100 பொது host-இல் தேடல்களுக்கு இடையிலான குறைந்தபட்ச இடைவெளி (பல நிகழ்வுகள் ஒரே IP-ஐப் பகிரும்போது அதிகரிக்கவும்)
MAP_TILE_URL https://tile.openstreetmap.org/{z}/{x}/{y}.png Leaflet tile template; அதன் host CSP img-src-இல் சேர்க்கப்படும்
MAP_TILE_ATTRIBUTION OpenStreetMap தனிப்பயன் tiles-க்காகக் காட்டப்படும் attribution