{"passport":{"unfragile":{"@version":"1.0","version":"2026-05","artifact":{"id":"github-santifer--career-ops","slug":"santifer--career-ops","name":"career-ops","type":"agent","url":"https://career-ops.org","page_url":"https://unfragile.ai/santifer--career-ops","categories":["ai-agents"],"tags":["ai-agent","anthropic","automation","career","claude","claude-code","cli","golang","interview-prep","job-search","open-source","resume"],"pricing":{"model":"open_source","free":true,"starting_price":null},"status":"active","verified":false},"capabilities":[{"id":"github-santifer--career-ops__cap_0","uri":"capability://planning.reasoning.multi.dimensional.job.description.evaluation.with.weighted.scoring","name":"multi-dimensional job description evaluation with weighted scoring","description":"Analyzes job descriptions across 10 weighted dimensions (skill match, compensation, growth, location, company stability, role fit, market demand, interview difficulty, timeline, and cultural alignment) to produce a normalized 1.0-5.0 score. Uses Claude Code with a shared scoring archetype system (_shared.md) that defines evaluation rubrics, enabling consistent A-F grade mapping across 740+ evaluations. The evaluation engine in oferta.md handles single JD analysis while ofertas.md performs comparative ranking across multiple opportunities.","intents":["Automatically score job opportunities to identify best-fit roles without manual review","Rank multiple job descriptions against each other to prioritize applications","Understand why a specific role scored high or low across different dimensions","Maintain consistent evaluation criteria across a large-scale job search (100+ applications)"],"best_for":["Job seekers managing high-volume searches (50+ opportunities)","Career coaches evaluating candidate-role fit at scale","Recruitment automation systems needing objective role ranking"],"limitations":["Scoring relies on JD text quality — poorly written or incomplete job descriptions may produce unreliable scores","10-dimensional evaluation adds ~2-3 seconds per JD analysis due to Claude API latency","Weighted dimensions are fixed in _shared.md — customizing weights requires code modification, not configuration","No built-in handling for non-English job descriptions without explicit i18n mode invocation"],"requires":["Anthropic API key with Claude 3.5+ access","Node.js 18+","Job description text (URL or raw text input)","_shared.md skill file containing scoring archetypes"],"input_types":["job description text (raw markdown or HTML-stripped)","job posting URL (parsed via Claude Code's web capabilities)","structured job data (title, company, requirements, compensation)"],"output_types":["numeric score (1.0-5.0 float)","letter grade (A-F mapping)","dimension-by-dimension breakdown with reasoning","comparative ranking (when using ofertas.md)"],"categories":["planning-reasoning","data-processing-analysis"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"github-santifer--career-ops__cap_1","uri":"capability://code.generation.editing.ats.optimized.pdf.generation.with.keyword.injection","name":"ats-optimized pdf generation with keyword injection","description":"Generates tailored resume PDFs for each target job description using a keyword-injection engine that maps JD requirements to candidate skills. The generate-pdf.mjs script processes CV HTML templates with embedded font assets, injects keywords extracted from the target JD, and outputs ATS-compliant PDFs. Uses a CV HTML template system with configurable fonts and styling, ensuring each PDF is customized for the specific role while maintaining ATS readability (no complex graphics, semantic HTML structure). The system produced 100+ tailored CVs during the original 740-evaluation search.","intents":["Generate role-specific resumes that match ATS parsing requirements and JD keywords","Batch-produce 50+ customized CVs without manual editing","Ensure resume keywords align with job description requirements for better ATS ranking","Maintain consistent branding and formatting across all generated PDFs"],"best_for":["Job seekers applying to 50+ roles who need tailored resumes for each application","Recruitment agencies generating candidate-specific resumes at scale","Career coaches automating resume customization workflows"],"limitations":["Keyword injection is rule-based — may over-weight irrelevant keywords if JD contains misleading terms","PDF generation adds ~1-2 seconds per resume due to HTML-to-PDF rendering","CV HTML template must be manually created and maintained — no auto-generation from LinkedIn or other sources","Font embedding increases PDF file size (typically 500KB-2MB per resume)","No support for multi-page resume optimization — all content must fit within template constraints"],"requires":["Node.js 18+ with mjs module support","CV HTML template file (custom or provided example)","Embedded font files (TTF/OTF) referenced in template","Target job description text or structured JD data","generate-pdf.mjs script and supporting utilities"],"input_types":["CV HTML template (with placeholder variables for keyword injection)","candidate profile data (skills, experience, education)","target job description (text or parsed JD object)","font asset files (TTF/OTF)"],"output_types":["ATS-optimized PDF file (binary)","metadata JSON (resume version, target JD, keywords injected)","HTML intermediate (for debugging or manual review)"],"categories":["code-generation-editing","data-processing-analysis"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"github-santifer--career-ops__cap_10","uri":"capability://automation.workflow.system.configuration.and.profile.management","name":"system configuration and profile management","description":"Manages candidate profile, job search preferences, and system configuration through YAML-based configuration files (config/profile.example.yml) and environment variables (.envrc). The profile system stores candidate skills, experience, education, and preferences (target roles, salary range, location constraints), which are referenced by all downstream skills (evaluation, resume generation, outreach). The configuration system enables users to customize evaluation weights, job board sources (portals.yml), and language preferences without modifying code. Profile templates (modes/_profile.template.md) enable quick setup for new users.","intents":["Configure candidate profile (skills, experience, preferences) once and reuse across all job search modes","Customize evaluation criteria and weights for specific job markets or career goals","Manage job board sources and search parameters centrally","Set up environment variables (API keys, preferences) securely"],"best_for":["Job seekers setting up career-ops for the first time","Teams managing multiple candidate profiles with shared configuration","Users wanting to customize evaluation criteria for specific markets"],"limitations":["Configuration is YAML-based — requires manual editing, no UI for configuration management","Profile changes require restarting running processes — no hot-reload support","Environment variables are stored in .envrc — requires direnv or manual sourcing","No validation of configuration syntax — invalid YAML may cause silent failures","Profile templates are examples — users must manually customize for their specific situation"],"requires":["YAML editor or text editor","config/profile.example.yml template","portals.yml for job board configuration",".envrc file for environment variables","Optional: direnv for automatic environment loading"],"input_types":["YAML configuration files (profile.yml, portals.yml)","environment variables (.envrc)","profile template (modes/_profile.template.md)"],"output_types":["validated configuration (used by all downstream skills)","profile metadata (skills, experience, preferences)","job board sources (portals.yml parsed)"],"categories":["automation-workflow","tool-use-integration"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"github-santifer--career-ops__cap_11","uri":"capability://safety.moderation.system.health.monitoring.and.data.validation","name":"system health monitoring and data validation","description":"Provides system health checks and data validation through utility scripts (doctor.mjs, verify-pipeline.mjs, cv-sync-check.mjs) that validate configuration, check API connectivity, verify data integrity, and ensure consistency between CV templates and application tracker. The doctor.mjs script performs comprehensive health checks (API keys, file permissions, required dependencies), while verify-pipeline.mjs validates the application tracker for missing data, inconsistent statuses, and orphaned records. cv-sync-check.mjs ensures that generated CVs match the current candidate profile.","intents":["Verify system setup is correct before running large batch jobs","Identify data integrity issues in the application tracker","Ensure API keys and dependencies are configured correctly","Validate that generated CVs match the current candidate profile"],"best_for":["Users setting up career-ops for the first time","Teams running automated job search pipelines who need reliability","Developers debugging configuration or data issues"],"limitations":["Health checks are point-in-time — don't catch intermittent issues or API rate limiting","Data validation is rule-based — may miss semantic errors (e.g., unrealistic salary expectations)","CV sync check requires manual CV regeneration if out of sync — no auto-update","Validation scripts must be run manually — no continuous monitoring"],"requires":["Node.js 18+ with mjs module support","doctor.mjs, verify-pipeline.mjs, cv-sync-check.mjs scripts","configuration files (profile.yml, portals.yml, .envrc)","data/applications.md file","generated CV files (for sync check)"],"input_types":["configuration files (YAML, environment variables)","application tracker (data/applications.md)","generated CV files"],"output_types":["health check report (API connectivity, dependencies, permissions)","data validation report (missing data, inconsistencies, orphaned records)","CV sync report (differences between profile and generated CVs)","remediation suggestions"],"categories":["safety-moderation","automation-workflow"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"github-santifer--career-ops__cap_12","uri":"capability://automation.workflow.version.management.and.system.updates","name":"version management and system updates","description":"Manages system versioning and updates through update-system.mjs script and VERSION file, enabling users to track system versions and apply updates safely. The update system checks for new releases, validates compatibility, and applies incremental updates to configuration files and scripts. Version tracking enables reproducibility (users can specify which version of career-ops was used for a job search) and enables rollback if updates introduce issues.","intents":["Track which version of career-ops was used for a specific job search","Apply system updates safely without breaking existing configurations","Rollback to previous versions if updates introduce issues","Maintain compatibility between system version and configuration files"],"best_for":["Teams running career-ops across multiple machines who need version consistency","Users wanting to reproduce job search results with the same system version","Developers contributing to career-ops who need to test version compatibility"],"limitations":["Version management is manual — requires running update-system.mjs to apply updates","No automatic rollback — users must manually revert to previous version if needed","Compatibility validation is limited — may not catch all breaking changes","Version history is stored in VERSION file — no detailed changelog or migration guides"],"requires":["Node.js 18+ with mjs module support","update-system.mjs script","VERSION file","Git repository (for version history)"],"input_types":["target version (specified by user or auto-detected)","current configuration files"],"output_types":["updated system files","updated configuration files (with migration)","version update log","compatibility report"],"categories":["automation-workflow","tool-use-integration"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"github-santifer--career-ops__cap_2","uri":"capability://data.processing.analysis.flat.file.application.tracker.with.deduplication.and.status.normalization","name":"flat-file application tracker with deduplication and status normalization","description":"Maintains a single source of truth for all job applications using a flat-file markdown database (data/applications.md) instead of a traditional database. The system includes three Node.js scripts: merge-tracker.mjs consolidates application data from multiple sources, dedup-tracker.mjs removes duplicate entries using fuzzy matching on company/role/date, and normalize-statuses.mjs standardizes status values (applied, interviewing, rejected, offer, etc.) across inconsistent user input. This architecture enables version control (Git history), human-readable data, and easy auditing without external dependencies.","intents":["Track 100+ job applications in a single, version-controlled file","Automatically deduplicate applications from multiple job boards or manual entries","Normalize inconsistent status values (e.g., 'rejected', 'no response', 'not interested') into standard categories","Audit application history and pipeline progression via Git commit history"],"best_for":["Job seekers managing 50+ concurrent applications across multiple job boards","Teams coordinating group job searches with shared application tracking","Developers building job search automation who need version-controlled data"],"limitations":["Flat-file architecture has no built-in locking — concurrent writes from multiple processes may cause merge conflicts","Deduplication uses fuzzy matching (Levenshtein distance or similar) — may incorrectly merge similar but distinct roles at the same company","No real-time querying — all operations require loading the entire applications.md file into memory","Status normalization is rule-based — edge cases (e.g., 'ghosted by recruiter') require manual categorization","Markdown format limits structured data — no native support for nested objects or complex relationships"],"requires":["Node.js 18+ with mjs module support","Git repository (for version control and history)","merge-tracker.mjs, dedup-tracker.mjs, normalize-statuses.mjs scripts","data/applications.md file (created on first run)","Optional: verify-pipeline.mjs for validation"],"input_types":["application data from job boards (CSV, JSON, or manual entries)","status updates (text or structured)","application metadata (company, role, date applied, contact info)"],"output_types":["normalized applications.md file (markdown table or structured format)","deduplication report (removed entries, merge decisions)","status normalization log (original → normalized mappings)","pipeline verification report (missing data, inconsistencies)"],"categories":["data-processing-analysis","automation-workflow"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"github-santifer--career-ops__cap_3","uri":"capability://automation.workflow.batch.job.discovery.and.evaluation.pipeline","name":"batch job discovery and evaluation pipeline","description":"Orchestrates large-scale job discovery and evaluation through a bash-based batch runner (batch-runner.sh) that processes multiple job sources in parallel. The system uses scan.md (Claude Code skill) to discover new roles from configured job portals (portals.yml), and batch-prompt.md as a worker template that applies evaluation logic to each discovered JD. The batch runner manages job queuing, parallel execution limits, and result aggregation, enabling processing of 100+ job postings in a single run. Results feed into the application tracker for downstream pipeline stages (apply, outreach, interview prep).","intents":["Discover 50+ new job opportunities from multiple job boards in a single automated run","Evaluate all discovered jobs against the same scoring criteria without manual intervention","Process large job discovery batches (100+) in parallel while respecting API rate limits","Integrate discovered jobs into the application tracker for downstream actions (apply, outreach)"],"best_for":["Job seekers running daily/weekly automated job discovery and evaluation","Recruitment automation systems processing bulk job postings","Teams coordinating large-scale job searches across multiple portals"],"limitations":["Batch runner relies on bash scripting — limited to Unix-like systems (Linux, macOS); Windows requires WSL or Git Bash","Parallel execution is bounded by Claude API rate limits — typical throughput is 10-20 JDs per minute depending on API tier","Job portal discovery depends on portal.yml configuration — unsupported job boards require manual configuration","No built-in error recovery — failed evaluations are logged but require manual re-processing","Batch processing adds latency — results are not available in real-time, typically 5-30 minutes for 100+ JDs"],"requires":["bash shell (Linux, macOS, or Windows WSL)","Node.js 18+ (for batch-runner.sh orchestration)","Anthropic API key with Claude 3.5+ access","portals.yml configuration file with job board URLs/APIs","batch-prompt.md worker template","scan.md Claude Code skill for job discovery"],"input_types":["portals.yml configuration (job board URLs, search parameters)","job discovery queries (keywords, location, salary range)","batch-prompt.md template (evaluation logic for each JD)"],"output_types":["discovered job listings (JSON or markdown format)","evaluation scores and grades for each JD","batch processing log (success/failure counts, timing)","results merged into data/applications.md"],"categories":["automation-workflow","search-retrieval"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"github-santifer--career-ops__cap_4","uri":"capability://planning.reasoning.interview.preparation.with.story.bank.and.pattern.analysis","name":"interview preparation with story bank and pattern analysis","description":"Provides interview readiness through two mechanisms: (1) a story bank system that stores and retrieves candidate anecdotes indexed by skill/competency, enabling Claude to generate interview responses using relevant personal examples, and (2) pattern analysis scripts that extract recurring themes from past interviews and applications to identify weak areas. The interview-prep.md skill file orchestrates story retrieval, question generation, and response coaching. Pattern analysis scripts examine application tracker data to identify which skills/experiences correlate with positive outcomes, informing interview preparation focus areas.","intents":["Generate interview responses using personal stories and examples relevant to the target role","Identify weak interview areas by analyzing patterns from past applications and outcomes","Practice behavioral interview questions with AI coaching and feedback","Maintain a searchable story bank indexed by skill/competency for rapid retrieval during interviews"],"best_for":["Job seekers preparing for 10+ interviews across different roles","Career coaches analyzing interview performance patterns at scale","Candidates building confidence through structured interview practice"],"limitations":["Story bank requires manual curation — no auto-extraction from LinkedIn or resume","Pattern analysis depends on sufficient historical data — unreliable with <20 applications","Interview coaching is generic — no role-specific or company-specific preparation without additional context","Story retrieval is keyword-based — may miss relevant stories if indexed with different terminology","No real-time interview simulation — practice is asynchronous, not live mock interviews"],"requires":["Anthropic API key with Claude 3.5+ access","interview-prep.md Claude Code skill","story bank data (manually created or imported)","application tracker data (data/applications.md) for pattern analysis","pattern analysis scripts (included in modes/ directory)"],"input_types":["interview questions (text or structured)","target job description (for context)","story bank entries (anecdotes indexed by skill)","historical application and interview data"],"output_types":["interview response suggestions with personal examples","coaching feedback and improvement areas","pattern analysis report (skills with high success rates)","story bank search results (relevant anecdotes)"],"categories":["planning-reasoning","memory-knowledge"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"github-santifer--career-ops__cap_5","uri":"capability://text.generation.language.linkedin.outreach.and.contact.management","name":"linkedin outreach and contact management","description":"Automates LinkedIn outreach through the contacto.md Claude Code skill, which generates personalized connection requests and messages based on the target role, company, and candidate profile. The system maintains contact history in the application tracker, enabling follow-up cadence management and relationship tracking. Messages are generated with role-specific context (e.g., mentioning shared skills or company interests) rather than generic templates. The outreach system integrates with the application pipeline, allowing users to send targeted messages to recruiters or hiring managers after initial application.","intents":["Generate personalized LinkedIn messages for recruiters and hiring managers","Automate connection requests with context-aware messaging","Track outreach history and follow-up cadence for each contact","Identify high-value contacts (recruiters, hiring managers) for proactive outreach"],"best_for":["Job seekers supplementing applications with direct recruiter outreach","Recruiters managing candidate relationship workflows","Career coaches automating outreach campaigns for clients"],"limitations":["LinkedIn API access is restricted — system requires manual message copying/pasting or browser automation (not built-in)","Message generation is template-based — may produce generic-sounding messages if target role context is insufficient","No built-in LinkedIn profile scraping — contact information must be manually entered or imported","Follow-up cadence is rule-based — no machine learning to optimize timing based on response rates","Contact history is stored in flat-file tracker — no real-time sync with LinkedIn"],"requires":["Anthropic API key with Claude 3.5+ access","contacto.md Claude Code skill","target contact information (name, role, company, LinkedIn URL)","candidate profile data (skills, experience, interests)","application tracker (data/applications.md) for history"],"input_types":["target contact profile (name, role, company, LinkedIn URL)","target job description or company context","candidate profile (skills, experience, interests)","outreach history (previous messages, responses)"],"output_types":["personalized LinkedIn message (text)","connection request message (text)","outreach metadata (timestamp, contact info, message version)","follow-up cadence recommendations"],"categories":["text-generation-language","automation-workflow"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"github-santifer--career-ops__cap_6","uri":"capability://automation.workflow.go.based.terminal.dashboard.for.pipeline.visualization","name":"go-based terminal dashboard for pipeline visualization","description":"Provides a real-time terminal user interface (TUI) dashboard built in Go that visualizes the job application pipeline, showing application status distribution, timeline progression, and key metrics. The dashboard reads from the flat-file application tracker (data/applications.md) and renders interactive screens for pipeline overview, individual application details, and follow-up scheduling. The Go implementation enables fast rendering and low resource usage compared to web-based dashboards, making it suitable for local development environments.","intents":["Visualize application pipeline status at a glance (applied, interviewing, rejected, offer)","Track timeline progression and identify bottlenecks in the hiring process","Review individual application details and follow-up history","Schedule follow-ups and manage outreach cadence from the dashboard"],"best_for":["Job seekers managing 50+ concurrent applications who need visual pipeline overview","Teams coordinating group job searches with shared dashboard","Developers preferring terminal-based tools over web UIs"],"limitations":["Dashboard is read-only for most operations — editing applications requires external scripts or manual file edits","Go implementation is platform-specific — requires compilation for each OS (Linux, macOS, Windows)","Real-time updates require polling the applications.md file — no event-driven updates","Terminal rendering is limited to text and basic colors — no rich graphics or charts","Dashboard data is stale if applications.md is modified externally without reloading"],"requires":["Go 1.18+ (for compilation)","Terminal with 80+ column width and 24+ row height","data/applications.md file (application tracker)","Compiled Go binary (provided or self-compiled)"],"input_types":["data/applications.md (application tracker file)","keyboard input (navigation, filtering, scheduling)"],"output_types":["terminal UI rendering (pipeline overview, application details, metrics)","follow-up scheduling output (written to tracker)","filtered views (by status, company, date)"],"categories":["automation-workflow","data-processing-analysis"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"github-santifer--career-ops__cap_7","uri":"capability://text.generation.language.multi.language.job.search.support.with.i18n.modes","name":"multi-language job search support with i18n modes","description":"Provides internationalization (i18n) support through dedicated Claude Code skill files for non-English job markets. The system includes language-specific modes (e.g., Spanish, Portuguese, French) that adapt evaluation criteria, resume generation, and outreach messaging to regional hiring practices and terminology. For example, the Spanish mode (README.es.md) handles regional salary expectations, required certifications, and cultural communication norms. Each language mode maintains its own scoring archetypes and message templates, enabling consistent quality across markets.","intents":["Search for jobs in non-English markets (Spain, Latin America, France, etc.) with culturally-appropriate evaluation","Generate resumes and outreach messages in target language with regional terminology","Adapt interview preparation to regional behavioral norms and common questions","Manage multi-market job searches with language-specific pipelines"],"best_for":["Bilingual job seekers targeting multiple language markets","Expats searching for jobs in non-English-speaking countries","Recruitment agencies managing multi-language candidate pipelines"],"limitations":["i18n modes are manually maintained — adding a new language requires creating new skill files and scoring archetypes","Language-specific evaluation criteria may not align with candidate's actual preferences — requires manual customization","Resume generation in non-English languages may produce formatting issues due to character encoding or font support","Outreach messaging is translated but may lose cultural nuance — requires human review before sending","Limited to languages with dedicated skill files — unsupported languages require custom configuration"],"requires":["Anthropic API key with Claude 3.5+ access","language-specific Claude Code skill files (e.g., modes/oferta-es.md for Spanish)","language-specific scoring archetypes in _shared.md or language-specific variants","target job descriptions in the target language"],"input_types":["job descriptions in target language","candidate profile (skills, experience, education)","language code (e.g., 'es' for Spanish, 'pt' for Portuguese)"],"output_types":["evaluation scores adapted to regional market conditions","resumes generated in target language with regional terminology","outreach messages in target language with cultural context","interview preparation with region-specific common questions"],"categories":["text-generation-language","automation-workflow"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"github-santifer--career-ops__cap_8","uri":"capability://text.generation.language.application.form.filling.assistance.with.claude.code","name":"application form filling assistance with claude code","description":"Provides intelligent form-filling assistance through the apply.md Claude Code skill, which analyzes job application forms and generates context-appropriate responses for common fields (cover letter, motivation, technical questions). The system uses the candidate profile, target job description, and story bank to generate personalized answers that align with the role requirements. Claude Code's ability to analyze form structure and generate field-specific content enables semi-automated application completion without requiring pre-built templates for each company.","intents":["Generate cover letters and motivation statements tailored to specific job postings","Answer technical screening questions with relevant examples from story bank","Fill out application forms with consistent, high-quality responses","Reduce time spent on repetitive application fields across multiple companies"],"best_for":["Job seekers applying to 50+ roles with custom application forms","Candidates with strong story banks who want to leverage personal examples","Teams automating application workflows for multiple candidates"],"limitations":["Form analysis is manual — requires copying/pasting form content or providing form structure","Generated responses may be too generic if target job description is vague or incomplete","No built-in form submission — generated responses must be manually copied into application forms","Story bank retrieval is keyword-based — may miss relevant examples if indexed differently","Technical question answering is limited to text — no support for code submission or file uploads"],"requires":["Anthropic API key with Claude 3.5+ access","apply.md Claude Code skill","candidate profile data (skills, experience, education)","target job description","story bank (optional, for example-based responses)","application form content or structure"],"input_types":["application form fields (cover letter, motivation, technical questions)","target job description","candidate profile","story bank entries (optional)"],"output_types":["generated cover letter (text)","motivation statement (text)","technical question responses (text with examples)","form field suggestions (field-by-field)"],"categories":["text-generation-language","automation-workflow"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"github-santifer--career-ops__cap_9","uri":"capability://planning.reasoning.skill.based.career.development.and.training.recommendations","name":"skill-based career development and training recommendations","description":"Analyzes job market trends and candidate skill gaps to recommend targeted training and development activities. The deep.md and training.md Claude Code skills examine the candidate's current skills against high-demand skills in target roles, identifying gaps and recommending specific courses, projects, or certifications. The system integrates with the application tracker to identify which skills correlate with successful applications, informing development priorities. Project recommendations are generated based on portfolio gaps identified through job description analysis.","intents":["Identify skill gaps between current profile and target roles","Recommend specific training courses, certifications, or projects to close gaps","Prioritize skill development based on market demand and success correlation","Build portfolio projects that address identified skill gaps"],"best_for":["Career changers needing structured upskilling plans","Job seekers with 6+ months before target job search","Developers wanting to stay current with market demands"],"limitations":["Recommendations are based on job description analysis — may not reflect actual market demand if JD sample is biased","Training recommendations are generic (course names, certifications) — no integration with course platforms for enrollment","Project recommendations lack detailed specifications — require additional research to implement","Skill correlation analysis depends on sufficient historical data — unreliable with <20 applications","No tracking of completed training — requires manual updates to candidate profile"],"requires":["Anthropic API key with Claude 3.5+ access","deep.md and training.md Claude Code skills","candidate profile (current skills, experience, education)","target job descriptions (for gap analysis)","application tracker data (for correlation analysis)"],"input_types":["candidate profile (current skills, experience)","target job descriptions","historical application data (for correlation)"],"output_types":["skill gap analysis (current vs. required skills)","training recommendations (courses, certifications, projects)","priority ranking (skills by market demand and success correlation)","project specifications (portfolio projects to build)"],"categories":["planning-reasoning","memory-knowledge"],"confidence":0.5,"matches":0,"success_rate":0}],"trust":{"score":55,"verified":false,"data_access_risk":"high","permissions":["Anthropic API key with Claude 3.5+ access","Node.js 18+","Job description text (URL or raw text input)","_shared.md skill file containing scoring archetypes","Node.js 18+ with mjs module support","CV HTML template file (custom or provided example)","Embedded font files (TTF/OTF) referenced in template","Target job description text or structured JD data","generate-pdf.mjs script and supporting utilities","YAML editor or text editor"],"failure_modes":["Scoring relies on JD text quality — poorly written or incomplete job descriptions may produce unreliable scores","10-dimensional evaluation adds ~2-3 seconds per JD analysis due to Claude API latency","Weighted dimensions are fixed in _shared.md — customizing weights requires code modification, not configuration","No built-in handling for non-English job descriptions without explicit i18n mode invocation","Keyword injection is rule-based — may over-weight irrelevant keywords if JD contains misleading terms","PDF generation adds ~1-2 seconds per resume due to HTML-to-PDF rendering","CV HTML template must be manually created and maintained — no auto-generation from LinkedIn or other sources","Font embedding increases PDF file size (typically 500KB-2MB per resume)","No support for multi-page resume optimization — all content must fit within template constraints","Configuration is YAML-based — requires manual editing, no UI for configuration management","builder identity is not verified yet","no observed match outcomes yet"],"rank_breakdown":{"adoption":0.8329835847325693,"quality":0.5,"ecosystem":0.6000000000000001,"match_graph":0.25,"freshness":0.75,"weights":{"adoption":0.25,"quality":0.25,"ecosystem":0.1,"match_graph":0.28,"freshness":0.12}},"observed_outcomes":{"matches":0,"success_rate":0,"avg_confidence":0,"top_intents":[],"last_matched_at":null},"maintenance":{"status":"active","updated_at":"2026-05-24T12:16:22.063Z","last_scraped_at":"2026-05-03T13:57:04.027Z","last_commit":"2026-04-30T18:21:46Z"},"community":{"stars":42059,"forks":8741,"weekly_downloads":null,"model_downloads":null,"model_likes":null}},"distribution":{"claim_url":"https://unfragile.ai/submit?claim=santifer--career-ops","compare_url":"https://unfragile.ai/compare?artifact=santifer--career-ops"}},"signature":"swuwuq2WnmhOcuJVLqbZ+AqdVN8sk8RF1mHcgLrvOnAj8MnZOBA92K9TNm8AZ98fzLYwtsuxrj2YaP6cLNxnBg==","signedAt":"2026-06-20T11:06:11.893Z","signedBy":"unfragile.ai","version":1},"_links":{"self":"https://unfragile.ai/api/v1/passport/santifer--career-ops","artifact":"https://unfragile.ai/santifer--career-ops","verify":"https://unfragile.ai/api/v1/verify?slug=santifer--career-ops","publicKey":"https://unfragile.ai/api/v1/trust-passport-public-key","spec":"https://unfragile.ai/trust","schema":"https://unfragile.ai/schema.json","docs":"https://unfragile.ai/docs"}}