gapguide-api / seed_data /manual_skill_augmentation.yaml
arifRB's picture
Deploy GapGuide backend (Docker)
ffd36e0 verified
Raw
History Blame Contribute Delete
23.9 kB
# Per-role framework-level skill augmentation.
# Sourced from research/06-dataset-sourcing.md §3 — based on a scan of current LinkedIn / Rozee.pk
# job postings on 2026-04-19. These are skills O*NET v30.2 doesn't list at this granularity but
# every modern job posting requires.
#
# Each entry adds a new RoleSkill. If the named skill_name already exists in the Skill table
# (added via O*NET pull), parse_onet_dump.py upgrades the existing RoleSkill rather than
# creating a duplicate. is_mandatory and required_level here override O*NET defaults.
#
# Keep this list TIGHT — only add skills O*NET genuinely missed. Do not duplicate Hot+InDemand
# entries that the O*NET pull already produces (Python, SQL, Docker, etc. all come from O*NET).
augmentation:
"Data Scientist":
- { skill: "Pandas", category: "Data", required_level: "INTERMEDIATE", is_mandatory: true, weight: 1.0 }
- { skill: "NumPy", category: "Data", required_level: "INTERMEDIATE", is_mandatory: true, weight: 1.0 }
- { skill: "Scikit-learn", category: "ML", required_level: "INTERMEDIATE", is_mandatory: true, weight: 1.0 }
- { skill: "Jupyter Notebook", category: "Tools", required_level: "BEGINNER", is_mandatory: false, weight: 0.7 }
- { skill: "Matplotlib", category: "Data", required_level: "BEGINNER", is_mandatory: false, weight: 0.6 }
- { skill: "Seaborn", category: "Data", required_level: "BEGINNER", is_mandatory: false, weight: 0.5 }
# Added 2026-04-19 after reviewer audit (concept-level skills missing — frameworks alone don't measure understanding)
- { skill: "Statistical Hypothesis Testing", category: "Stats", required_level: "INTERMEDIATE", is_mandatory: true, weight: 0.9 }
- { skill: "Feature Engineering", category: "Concept", required_level: "INTERMEDIATE", is_mandatory: false, weight: 0.7 }
# Round 3 (reviewer 2): DSA optional for DS — interviews increasingly include LeetCode-style rounds even for DS
- { skill: "Data Structures & Algorithms", category: "Concept", required_level: "BEGINNER", is_mandatory: false, weight: 0.5 }
# Round 4: Docker for MLOps overlap (real PK DS postings)
- { skill: "Docker", category: "Infra", required_level: "INTERMEDIATE", is_mandatory: false, weight: 0.6 }
"Data Analyst":
# Round 3: dropped "Microsoft Excel Advanced" — reviewer 2 flagged it as double-count with Microsoft Excel.
# The gap-analysis engine's required_level field already handles this (set Excel level=ADVANCED in curation override).
- { skill: "Tableau", category: "BI", required_level: "INTERMEDIATE", is_mandatory: false, weight: 0.9 }
- { skill: "Microsoft Power BI", category: "BI", required_level: "INTERMEDIATE", is_mandatory: false, weight: 0.9 }
- { skill: "Pandas", category: "Data", required_level: "INTERMEDIATE", is_mandatory: true, weight: 1.0 }
- { skill: "Statistical Hypothesis Testing", category: "Stats", required_level: "INTERMEDIATE", is_mandatory: false, weight: 0.7 }
# Round 3 additions (reviewer 2): Data Visualization concept missing
- { skill: "Data Visualization", category: "Concept", required_level: "BEGINNER", is_mandatory: false, weight: 0.6 }
# Round 4: DAX + Power Query for DA users on Power BI (mirrored from BI Analyst)
- { skill: "DAX", category: "Language", required_level: "BEGINNER", is_mandatory: false, weight: 0.7 }
- { skill: "Power Query / M Language", category: "Tools", required_level: "BEGINNER", is_mandatory: false, weight: 0.6 }
"Machine Learning Engineer":
- { skill: "PyTorch", category: "ML", required_level: "INTERMEDIATE", is_mandatory: true, weight: 1.0 }
- { skill: "TensorFlow", category: "ML", required_level: "INTERMEDIATE", is_mandatory: false, weight: 0.9 }
- { skill: "Scikit-learn", category: "ML", required_level: "INTERMEDIATE", is_mandatory: true, weight: 1.0 }
- { skill: "MLflow", category: "MLOps", required_level: "INTERMEDIATE", is_mandatory: false, weight: 0.8 }
- { skill: "Docker", category: "Infra", required_level: "INTERMEDIATE", is_mandatory: true, weight: 1.0 }
- { skill: "Kubernetes", category: "Infra", required_level: "INTERMEDIATE", is_mandatory: false, weight: 0.8 }
- { skill: "ONNX", category: "MLOps", required_level: "BEGINNER", is_mandatory: false, weight: 0.5 }
- { skill: "FastAPI", category: "Framework", required_level: "BEGINNER", is_mandatory: false, weight: 0.7 }
# Added 2026-04-19 during curation pass — needed for ML Engineer baseline
- { skill: "Pandas", category: "Data", required_level: "INTERMEDIATE", is_mandatory: true, weight: 1.0 }
- { skill: "NumPy", category: "Data", required_level: "INTERMEDIATE", is_mandatory: true, weight: 1.0 }
# Round 3 additions (reviewer 2): DSA mandatory for ML Eng (interview-critical), OOP, Agile
- { skill: "Data Structures & Algorithms", category: "Concept", required_level: "INTERMEDIATE", is_mandatory: true, weight: 1.0 }
- { skill: "Object-Oriented Programming", category: "Concept", required_level: "INTERMEDIATE", is_mandatory: false, weight: 0.6 }
- { skill: "Agile / Scrum", category: "Concept", required_level: "BEGINNER", is_mandatory: false, weight: 0.5 }
"Backend Developer":
- { skill: "Django", category: "Framework", required_level: "INTERMEDIATE", is_mandatory: true, weight: 1.0 }
- { skill: "FastAPI", category: "Framework", required_level: "INTERMEDIATE", is_mandatory: false, weight: 0.8 }
- { skill: "Flask", category: "Framework", required_level: "BEGINNER", is_mandatory: false, weight: 0.3 } # demoted by reviewer (in decline)
- { skill: "PostgreSQL", category: "Database", required_level: "INTERMEDIATE", is_mandatory: true, weight: 1.0 }
- { skill: "Redis", category: "Database", required_level: "BEGINNER", is_mandatory: false, weight: 0.7 }
- { skill: "REST API Design", category: "Concept", required_level: "INTERMEDIATE", is_mandatory: true, weight: 1.0 }
- { skill: "JWT / OAuth", category: "Concept", required_level: "BEGINNER", is_mandatory: false, weight: 0.7 }
# Added 2026-04-19 after reviewer audit (testing was missing entirely; Pakistani Java enterprise market is real)
- { skill: "pytest", category: "Tools", required_level: "BEGINNER", is_mandatory: false, weight: 0.7 }
- { skill: "Celery", category: "Framework", required_level: "BEGINNER", is_mandatory: false, weight: 0.5 }
- { skill: "nginx", category: "Infra", required_level: "BEGINNER", is_mandatory: false, weight: 0.5 }
- { skill: "Pydantic", category: "Framework", required_level: "BEGINNER", is_mandatory: false, weight: 0.5 }
# Java kept as low-priority optional for Pakistani enterprise (Systems Limited, NetSol)
- { skill: "Java", category: "Language", required_level: "BEGINNER", is_mandatory: false, weight: 0.4 }
# Round 3 additions (reviewer 2): DSA, OOP, Agile, CI/CD, .NET for Pakistani enterprise, Unit Testing concept
- { skill: "Data Structures & Algorithms", category: "Concept", required_level: "INTERMEDIATE", is_mandatory: true, weight: 1.0 }
- { skill: "Object-Oriented Programming", category: "Concept", required_level: "INTERMEDIATE", is_mandatory: false, weight: 0.6 }
- { skill: "Agile / Scrum", category: "Concept", required_level: "BEGINNER", is_mandatory: false, weight: 0.5 }
- { skill: "CI/CD Pipelines", category: "Concept", required_level: "BEGINNER", is_mandatory: false, weight: 0.6 }
- { skill: "GitHub Actions", category: "CI/CD", required_level: "BEGINNER", is_mandatory: false, weight: 0.5 }
- { skill: ".NET / C#", category: "Language", required_level: "BEGINNER", is_mandatory: false, weight: 0.4 }
- { skill: "Unit Testing", category: "Concept", required_level: "BEGINNER", is_mandatory: false, weight: 0.6 }
# Round 4: Laravel/PHP for Pakistani SME backend market (Glassdoor PK Backend listings)
- { skill: "Laravel", category: "Framework", required_level: "BEGINNER", is_mandatory: false, weight: 0.4 }
- { skill: "PHP", category: "Language", required_level: "BEGINNER", is_mandatory: false, weight: 0.4 }
"Frontend Developer":
- { skill: "React", category: "Framework", required_level: "INTERMEDIATE", is_mandatory: true, weight: 1.0 }
- { skill: "Vue.js", category: "Framework", required_level: "BEGINNER", is_mandatory: false, weight: 0.6 }
- { skill: "TypeScript", category: "Language", required_level: "INTERMEDIATE", is_mandatory: true, weight: 1.0 }
- { skill: "Tailwind CSS", category: "Framework", required_level: "BEGINNER", is_mandatory: false, weight: 0.7 }
- { skill: "Vite", category: "Tools", required_level: "BEGINNER", is_mandatory: false, weight: 0.6 }
- { skill: "TanStack Query", category: "Framework", required_level: "BEGINNER", is_mandatory: false, weight: 0.4 }
- { skill: "Next.js", category: "Framework", required_level: "INTERMEDIATE", is_mandatory: true, weight: 0.9 }
# Added 2026-04-19 during curation — frontend devs consume APIs daily
- { skill: "REST API Design", category: "Concept", required_level: "INTERMEDIATE", is_mandatory: true, weight: 1.0 }
# Round 4 (job-board evidence): Redux explicitly cited in MERN postings
- { skill: "Redux", category: "Framework", required_level: "BEGINNER", is_mandatory: false, weight: 0.7 }
# Added 2026-04-19 after reviewer audit (testing entirely missing; Docker for local dev; a11y now baseline)
- { skill: "Vitest", category: "Tools", required_level: "BEGINNER", is_mandatory: false, weight: 0.7 } # State of JS 2024: top satisfaction
- { skill: "Playwright", category: "Tools", required_level: "BEGINNER", is_mandatory: false, weight: 0.6 } # E2E baseline
- { skill: "Docker", category: "Infra", required_level: "BEGINNER", is_mandatory: false, weight: 0.5 } # for docker-compose backend deps in local dev
- { skill: "Web Accessibility (a11y)", category: "Concept", required_level: "BEGINNER", is_mandatory: false, weight: 0.5 }
- { skill: "Responsive Design", category: "Concept", required_level: "BEGINNER", is_mandatory: false, weight: 0.6 }
# Round 3 additions (reviewer 2): DSA (lower weight for FE than BE), Agile
- { skill: "Data Structures & Algorithms", category: "Concept", required_level: "BEGINNER", is_mandatory: false, weight: 0.7 }
- { skill: "Agile / Scrum", category: "Concept", required_level: "BEGINNER", is_mandatory: false, weight: 0.5 }
"Full Stack Developer":
# Inherits union of Backend + Frontend via SOC composite. Add extras that are full-stack-specific.
# Note: reviewer correctly flagged Docker Compose as redundant with Docker — folded into Docker (single mandatory).
- { skill: "REST API Design", category: "Concept", required_level: "INTERMEDIATE", is_mandatory: true, weight: 1.0 }
- { skill: "TypeScript", category: "Language", required_level: "INTERMEDIATE", is_mandatory: true, weight: 1.0 }
- { skill: "Next.js", category: "Framework", required_level: "INTERMEDIATE", is_mandatory: false, weight: 0.8 }
# Added 2026-04-19 during curation — frontend essentials missing from composite
- { skill: "Tailwind CSS", category: "Framework", required_level: "BEGINNER", is_mandatory: false, weight: 0.7 }
- { skill: "Vite", category: "Tools", required_level: "BEGINNER", is_mandatory: false, weight: 0.6 }
# Added 2026-04-19 after reviewer audit
- { skill: "Vitest", category: "Tools", required_level: "BEGINNER", is_mandatory: false, weight: 0.6 }
- { skill: "JWT / OAuth", category: "Concept", required_level: "BEGINNER", is_mandatory: false, weight: 0.7 }
- { skill: "Linux", category: "Infra", required_level: "INTERMEDIATE", is_mandatory: false, weight: 0.6 } # aligned to ML Eng per reviewer 2
# Round 3: Prisma dropped — Python client archived 2025-04, community-only, not appropriate for Python/Django stack
# Round 3 additions (reviewer 2): DSA, OOP, Agile, CI/CD, GitHub Actions, Laravel/PHP
- { skill: "Data Structures & Algorithms", category: "Concept", required_level: "INTERMEDIATE", is_mandatory: true, weight: 1.0 }
- { skill: "Object-Oriented Programming", category: "Concept", required_level: "INTERMEDIATE", is_mandatory: false, weight: 0.6 }
- { skill: "Agile / Scrum", category: "Concept", required_level: "BEGINNER", is_mandatory: false, weight: 0.5 }
- { skill: "CI/CD Pipelines", category: "Concept", required_level: "BEGINNER", is_mandatory: false, weight: 0.6 }
- { skill: "GitHub Actions", category: "CI/CD", required_level: "BEGINNER", is_mandatory: false, weight: 0.5 }
- { skill: "Laravel", category: "Framework", required_level: "BEGINNER", is_mandatory: false, weight: 0.3 }
# Round 4: Django for Python+React Full Stack stack
- { skill: "Django", category: "Framework", required_level: "INTERMEDIATE", is_mandatory: false, weight: 0.8 }
- { skill: "PHP", category: "Language", required_level: "BEGINNER", is_mandatory: false, weight: 0.3 }
"Data Engineer":
- { skill: "Apache Airflow", category: "Data", required_level: "INTERMEDIATE", is_mandatory: true, weight: 1.0 }
- { skill: "dbt", category: "Data", required_level: "INTERMEDIATE", is_mandatory: true, weight: 1.0 }
- { skill: "Apache Spark", category: "Data", required_level: "INTERMEDIATE", is_mandatory: true, weight: 1.0 }
- { skill: "Apache Kafka", category: "Data", required_level: "BEGINNER", is_mandatory: false, weight: 0.7 }
- { skill: "Snowflake", category: "Cloud", required_level: "INTERMEDIATE", is_mandatory: false, weight: 0.9 }
- { skill: "Google BigQuery", category: "Cloud", required_level: "INTERMEDIATE", is_mandatory: false, weight: 0.9 }
- { skill: "Docker", category: "Infra", required_level: "INTERMEDIATE", is_mandatory: true, weight: 1.0 }
# Added 2026-04-19 after reviewer audit (lakehouse formats baseline; Databricks platform skill; data modeling concept)
- { skill: "Delta Lake", category: "Data", required_level: "BEGINNER", is_mandatory: false, weight: 0.7 }
# Round 3: Apache Iceberg demoted (picking both lakehouse formats overkill for entry-level; Delta Lake primary)
- { skill: "Apache Iceberg", category: "Data", required_level: "BEGINNER", is_mandatory: false, weight: 0.3 }
- { skill: "Databricks", category: "Cloud", required_level: "BEGINNER", is_mandatory: false, weight: 0.6 }
- { skill: "Data Modeling", category: "Concept", required_level: "INTERMEDIATE", is_mandatory: false, weight: 0.7 } # renamed — dropped Kimball parenthetical
- { skill: "Parquet", category: "Data", required_level: "BEGINNER", is_mandatory: false, weight: 0.5 }
# Round 3 additions (reviewer 2): ETL/ELT concept, DSA for technical pipeline work
- { skill: "ETL / ELT", category: "Concept", required_level: "INTERMEDIATE", is_mandatory: true, weight: 1.0 }
- { skill: "Data Structures & Algorithms", category: "Concept", required_level: "BEGINNER", is_mandatory: false, weight: 0.7 }
# Round 4: Git for DE (not in primary SOC 15-1243.01 Hot+InDemand list)
- { skill: "Git", category: "Tools", required_level: "INTERMEDIATE", is_mandatory: true, weight: 1.0 }
"DevOps Engineer":
- { skill: "Docker", category: "Infra", required_level: "INTERMEDIATE", is_mandatory: true, weight: 1.0 }
- { skill: "Kubernetes", category: "Infra", required_level: "INTERMEDIATE", is_mandatory: true, weight: 1.0 }
- { skill: "Terraform", category: "IaC", required_level: "INTERMEDIATE", is_mandatory: true, weight: 1.0 }
- { skill: "Ansible", category: "IaC", required_level: "BEGINNER", is_mandatory: false, weight: 0.7 }
- { skill: "Jenkins", category: "CI/CD", required_level: "INTERMEDIATE", is_mandatory: false, weight: 0.8 }
- { skill: "GitHub Actions", category: "CI/CD", required_level: "INTERMEDIATE", is_mandatory: false, weight: 0.9 }
- { skill: "AWS", category: "Cloud", required_level: "INTERMEDIATE", is_mandatory: true, weight: 1.0 }
- { skill: "Microsoft Azure", category: "Cloud", required_level: "BEGINNER", is_mandatory: false, weight: 0.7 }
- { skill: "Google Cloud Platform", category: "Cloud", required_level: "BEGINNER", is_mandatory: false, weight: 0.7 }
- { skill: "Linux Administration", category: "Infra", required_level: "INTERMEDIATE", is_mandatory: true, weight: 1.0 }
- { skill: "Bash Scripting", category: "Language", required_level: "INTERMEDIATE", is_mandatory: true, weight: 1.0 }
- { skill: "Prometheus", category: "Monitoring", required_level: "BEGINNER", is_mandatory: false, weight: 0.6 }
- { skill: "Grafana", category: "Monitoring", required_level: "BEGINNER", is_mandatory: false, weight: 0.6 }
# Added 2026-04-19 after reviewer audit (GitOps + Helm now baseline per KodeKloud 2025)
- { skill: "ArgoCD", category: "CI/CD", required_level: "BEGINNER", is_mandatory: false, weight: 0.6 }
- { skill: "Helm", category: "Infra", required_level: "BEGINNER", is_mandatory: false, weight: 0.6 }
# Round 3 additions (reviewer 2): CI/CD concept distinct from tools; networking fundamentals
- { skill: "CI/CD Pipelines", category: "Concept", required_level: "INTERMEDIATE", is_mandatory: true, weight: 1.0 }
- { skill: "Computer Networking Fundamentals", category: "Concept", required_level: "INTERMEDIATE", is_mandatory: false, weight: 0.7 }
"AI Engineer (GenAI / LLM)":
- { skill: "HuggingFace Transformers", category: "ML", required_level: "INTERMEDIATE", is_mandatory: true, weight: 1.0 }
- { skill: "LangChain", category: "Framework", required_level: "INTERMEDIATE", is_mandatory: true, weight: 1.0 }
- { skill: "LlamaIndex", category: "Framework", required_level: "BEGINNER", is_mandatory: false, weight: 0.4 } # demoted by reviewer (overlaps LangChain)
- { skill: "OpenAI API", category: "API", required_level: "INTERMEDIATE", is_mandatory: true, weight: 1.0 }
- { skill: "Anthropic Claude API", category: "API", required_level: "BEGINNER", is_mandatory: false, weight: 0.7 }
- { skill: "pgvector", category: "Database", required_level: "BEGINNER", is_mandatory: false, weight: 0.7 }
- { skill: "Pinecone", category: "Database", required_level: "BEGINNER", is_mandatory: false, weight: 0.4 } # demoted by reviewer (open-source alternatives winning)
# Round 4: renamed to canonical "RAG" (job-posting term)
- { skill: "RAG", category: "Concept", required_level: "INTERMEDIATE", is_mandatory: true, weight: 1.0 }
- { skill: "Prompt Engineering", category: "Concept", required_level: "INTERMEDIATE", is_mandatory: true, weight: 1.0 }
- { skill: "Sentence Transformers", category: "ML", required_level: "BEGINNER", is_mandatory: false, weight: 0.7 }
- { skill: "FastAPI", category: "Framework", required_level: "BEGINNER", is_mandatory: false, weight: 0.7 }
# Added 2026-04-19 after independent reviewer + verification (LangGraph v1.1.8 released 2 days ago, 29.6k stars)
# Round 3: LangGraph demoted to optional 0.7 — Indeed search shows ~1 posting mentioning it, only at senior level as "preferred"
- { skill: "LangGraph", category: "Framework", required_level: "BEGINNER", is_mandatory: false, weight: 0.7 }
- { skill: "LLM Evaluations", category: "Concept", required_level: "INTERMEDIATE", is_mandatory: false, weight: 0.7 }
- { skill: "LLM Observability", category: "Concept", required_level: "BEGINNER", is_mandatory: false, weight: 0.6 }
# Round 3: renamed from "Fine-tuning (LoRA/PEFT)" — cleaner canonical name for resume parser
- { skill: "LLM Fine-tuning", category: "Concept", required_level: "BEGINNER", is_mandatory: false, weight: 0.5 }
# Round 3 additions (reviewer 2): OOP, DSA (AI eng also hits Leetcode interviews)
- { skill: "Object-Oriented Programming", category: "Concept", required_level: "INTERMEDIATE", is_mandatory: false, weight: 0.6 }
- { skill: "Data Structures & Algorithms", category: "Concept", required_level: "BEGINNER", is_mandatory: false, weight: 0.5 }
"Business Intelligence Analyst":
- { skill: "Microsoft Power BI", category: "BI", required_level: "INTERMEDIATE", is_mandatory: true, weight: 1.0 }
- { skill: "Tableau", category: "BI", required_level: "INTERMEDIATE", is_mandatory: false, weight: 0.9 }
- { skill: "Looker", category: "BI", required_level: "BEGINNER", is_mandatory: false, weight: 0.6 }
- { skill: "dbt", category: "Data", required_level: "BEGINNER", is_mandatory: false, weight: 0.7 }
# Round 3: dropped "Microsoft Excel Advanced" — double-count with Microsoft Excel; use required_level=ADVANCED via curation override instead
- { skill: "Star Schema Modeling", category: "Concept", required_level: "BEGINNER", is_mandatory: false, weight: 0.6 }
# Added 2026-04-19 after reviewer audit + verification (DataCamp/Coursera/iMocha all cite DAX as core)
- { skill: "DAX", category: "Language", required_level: "INTERMEDIATE", is_mandatory: true, weight: 1.0 }
- { skill: "Power Query / M Language", category: "Tools", required_level: "BEGINNER", is_mandatory: false, weight: 0.6 }
- { skill: "Data Storytelling", category: "Concept", required_level: "BEGINNER", is_mandatory: false, weight: 0.5 }
# Round 3 additions (reviewer 2): Snowflake as DWH to query (not operate); BI consumes DWHs
- { skill: "Snowflake", category: "Cloud", required_level: "BEGINNER", is_mandatory: false, weight: 0.6 }