# 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 }