[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6F7KXGYTNXJ8NRCVRVR01FQ":3,"skill-same:01M6F7KXGYTNXJ8NRCVRVR01FQ":83},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":28,"publishedAt":49,"linkOnly":50,"markdownContent":51,"markdownBody":52,"frontMatter":53,"refName":60,"commitSha":61,"skillDirectory":62,"forksCount":63,"repositoryHtmlUrl":64,"repositoryHomepageUrl":65,"ownerHtmlUrl":66,"ownerBlogUrl":6,"ownerDescription":67,"updatedAt":68,"install":69,"resources":82},"01M6F7KXGYTNXJ8NRCVRVR01FQ","bamboohr-common-errors",null,"Diagnose and fix BambooHR API errors and exceptions.\nUse when encountering BambooHR errors, debugging failed requests,\nor troubleshooting HTTP 400\u002F401\u002F403\u002F404\u002F429\u002F500\u002F503 responses.\nTrigger with phrases like \"bamboohr error\", \"fix bamboohr\",\n\"bamboohr not working\", \"debug bamboohr\", \"bamboohr 401\", \"bamboohr 429\".","ComeOnOliver\u002Fskillshub","ComeOnOliver","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F43215937?v=4","01M6E5JNFECJAAVFE0W7SMWWD2","Haoran Shu","01M6E5JNNDQS7AJZDYFQ8TPZCK",67,"MIT","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fjeremylongshore\u002Fclaude-code-plugins-plus-skills\u002Fbamboohr-common-errors\u002FSKILL.md",[18,23],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000010","后端与接口","SCENARIO","使用场景",{"categoryNo":24,"categoryName":25,"taxonomyType":26,"taxonomyTypeDesc":27},"01JBSEEDCAT000000000000030","开发工程师","PROFESSION","适用职业",[29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48],"bamboohr common errors","bamboohr","common","fix","429","with","error","hr","trigger","io","use","debug","read","Bash","api","saas","code","debugging","http","diagnose","2026-11-10 10:12:30",false,"---\nname: bamboohr-common-errors\ndescription: |\n  Diagnose and fix BambooHR API errors and exceptions.\n  Use when encountering BambooHR errors, debugging failed requests,\n  or troubleshooting HTTP 400\u002F401\u002F403\u002F404\u002F429\u002F500\u002F503 responses.\n  Trigger with phrases like \"bamboohr error\", \"fix bamboohr\",\n  \"bamboohr not working\", \"debug bamboohr\", \"bamboohr 401\", \"bamboohr 429\".\nallowed-tools: Read, Grep, Bash(curl:*)\nversion: 1.0.0\nlicense: MIT\nauthor: Jeremy Longshore \u003Cjeremy@intentsolutions.io>\ntags: [saas, hr, bamboohr, debugging]\ncompatible-with: claude-code\n---\n\n# BambooHR Common Errors\n\n## Overview\n\nDiagnostic reference for BambooHR REST API errors. BambooHR returns error details in the `X-BambooHR-Error-Message` response header for most 400-level and some 500-level errors.\n\n## Prerequisites\n\n- BambooHR API access configured\n- Access to application logs or HTTP response headers\n\n## Instructions\n\n### Step 1: Read the Error Header\n\nAlways check `X-BambooHR-Error-Message` first — it contains BambooHR's specific error detail, which is more useful than generic HTTP status text.\n\n```typescript\nconst res = await fetch(`${BASE}\u002Femployees\u002F999\u002F`, {\n  headers: { Authorization: AUTH, Accept: 'application\u002Fjson' },\n});\n\nif (!res.ok) {\n  const errorDetail = res.headers.get('X-BambooHR-Error-Message');\n  console.error(`HTTP ${res.status}: ${errorDetail || res.statusText}`);\n}\n```\n\n### Step 2: Match Error to Solution\n\n---\n\n#### 401 Unauthorized — Invalid API Key\n\n```\nX-BambooHR-Error-Message: Invalid API key\n```\n\n**Cause:** API key is missing, expired, revoked, or malformed in the Basic Auth header.\n\n**Solution:**\n\n```bash\n# Verify key is set\necho \"Key length: ${#BAMBOOHR_API_KEY}\"\n\n# Test auth directly\ncurl -s -o \u002Fdev\u002Fnull -w \"%{http_code}\" \\\n  -u \"${BAMBOOHR_API_KEY}:x\" \\\n  \"https:\u002F\u002Fapi.bamboohr.com\u002Fapi\u002Fgateway.php\u002F${BAMBOOHR_COMPANY_DOMAIN}\u002Fv1\u002Femployees\u002Fdirectory\"\n```\n\n**Common mistakes:**\n- Using Bearer token instead of Basic Auth\n- Putting the API key as the password instead of the username\n- Missing the `:x` password part in Basic Auth encoding\n\n---\n\n#### 403 Forbidden — Insufficient Permissions\n\n```\nX-BambooHR-Error-Message: You do not have access to this resource\n```\n\n**Cause:** The API key's user account lacks permissions for the requested endpoint or employee.\n\n**Solution:**\n- Verify the user's access level in BambooHR (Account > Access Levels)\n- Time-off management endpoints require manager or admin permissions\n- Compensation table access requires admin permissions\n- Some fields are restricted to specific access levels\n\n---\n\n#### 400 Bad Request — Invalid Fields or Payload\n\n```\nX-BambooHR-Error-Message: Invalid field: \"jobTitl\"\n```\n\n**Cause:** Misspelled field name, invalid date format, or malformed JSON body.\n\n**Solution:**\n\n```bash\n# Verify field names against BambooHR's field list\ncurl -s -u \"${BAMBOOHR_API_KEY}:x\" \\\n  \"https:\u002F\u002Fapi.bamboohr.com\u002Fapi\u002Fgateway.php\u002F${BAMBOOHR_COMPANY_DOMAIN}\u002Fv1\u002Femployees\u002F0\u002F?fields=firstName,lastName\" \\\n  -H \"Accept: application\u002Fjson\"\n```\n\n**Common field name mistakes:**\n- `title` (wrong) vs `jobTitle` (correct)\n- `email` (wrong) vs `workEmail` (correct)\n- `name` (wrong) vs `firstName` + `lastName` (correct)\n- Date format must be `YYYY-MM-DD`, not `MM\u002FDD\u002FYYYY`\n\n---\n\n#### 404 Not Found — Wrong Endpoint or ID\n\n```\nX-BambooHR-Error-Message: Employee not found\n```\n\n**Cause:** Employee ID does not exist, wrong company domain, or malformed URL path.\n\n**Solution:**\n\n```bash\n# Verify company domain\necho \"Domain: $BAMBOOHR_COMPANY_DOMAIN\"\n\n# Verify the base URL structure\n# Correct:  \u002Fapi\u002Fgateway.php\u002F{domain}\u002Fv1\u002Femployees\u002F{id}\u002F\n# Wrong:    \u002Fapi\u002Fv1\u002Femployees\u002F{id}\u002F\n# Wrong:    \u002Fapi\u002Fgateway.php\u002F{domain}\u002Femployees\u002F{id}\u002F  (missing \u002Fv1\u002F)\n```\n\n---\n\n#### 429 \u002F 503 — Rate Limited\n\n```\nHTTP 503 with Retry-After: 30\n```\n\n**Cause:** Too many requests in a short period. BambooHR does not publish exact rate limits but returns 503 with a `Retry-After` header.\n\n**Solution:**\n\n```typescript\nasync function handleRateLimit(res: Response): Promise\u003Cvoid> {\n  if (res.status === 503 || res.status === 429) {\n    const retryAfter = parseInt(res.headers.get('Retry-After') || '30', 10);\n    console.warn(`Rate limited. Waiting ${retryAfter}s...`);\n    await new Promise(r => setTimeout(r, retryAfter * 1000));\n  }\n}\n```\n\n**Prevention:**\n- Batch reads using custom reports instead of individual employee GETs\n- Cache directory results (they change infrequently)\n- Use `\u002Femployees\u002Fchanged\u002F?since=...` for incremental sync instead of full pulls\n\n---\n\n#### 500 \u002F 502 — Server Errors\n\n**Cause:** BambooHR internal error. Usually transient.\n\n**Solution:**\n1. Check [BambooHR Status Page](https:\u002F\u002Fstatus.bamboohr.com) for outages\n2. Retry with exponential backoff (see `bamboohr-rate-limits`)\n3. If persistent, collect request details for BambooHR support\n\n---\n\n#### Content-Type Mismatch\n\n**Cause:** Missing `Accept: application\u002Fjson` header — BambooHR defaults to XML.\n\n```bash\n# Wrong — returns XML\ncurl -u \"${BAMBOOHR_API_KEY}:x\" \\\n  \"${BASE}\u002Femployees\u002Fdirectory\"\n\n# Correct — returns JSON\ncurl -u \"${BAMBOOHR_API_KEY}:x\" \\\n  -H \"Accept: application\u002Fjson\" \\\n  \"${BASE}\u002Femployees\u002Fdirectory\"\n```\n\n### Step 3: Quick Diagnostic Script\n\n```bash\n#!\u002Fbin\u002Fbash\necho \"=== BambooHR Diagnostic ===\"\necho \"Company: ${BAMBOOHR_COMPANY_DOMAIN}\"\necho \"Key set: ${BAMBOOHR_API_KEY:+YES}\"\necho \"Key length: ${#BAMBOOHR_API_KEY}\"\n\nBASE=\"https:\u002F\u002Fapi.bamboohr.com\u002Fapi\u002Fgateway.php\u002F${BAMBOOHR_COMPANY_DOMAIN}\u002Fv1\"\n\necho -n \"Auth test: \"\nSTATUS=$(curl -s -o \u002Fdev\u002Fnull -w \"%{http_code}\" -u \"${BAMBOOHR_API_KEY}:x\" \\\n  -H \"Accept: application\u002Fjson\" \"${BASE}\u002Femployees\u002Fdirectory\")\necho \"$STATUS\"\n\necho -n \"Status page: \"\ncurl -s https:\u002F\u002Fstatus.bamboohr.com | head -c 100\necho \"\"\n\nif [ \"$STATUS\" -eq 200 ]; then\n  echo \"Connection OK\"\nelif [ \"$STATUS\" -eq 401 ]; then\n  echo \"FIX: Regenerate API key in BambooHR dashboard\"\nelif [ \"$STATUS\" -eq 403 ]; then\n  echo \"FIX: Upgrade API key user's access level\"\nelif [ \"$STATUS\" -eq 404 ]; then\n  echo \"FIX: Check BAMBOOHR_COMPANY_DOMAIN value\"\nelse\n  echo \"FIX: Check status page and retry\"\nfi\n```\n\n## Output\n\n- Identified error from HTTP status + `X-BambooHR-Error-Message` header\n- Applied fix based on error category\n- Verified resolution with diagnostic script\n\n## Error Summary Table\n\n| Status | Header | Root Cause | Fix |\n|--------|--------|-----------|-----|\n| 400 | Invalid field | Typo in field name | Check field list docs |\n| 401 | Invalid API key | Bad credentials | Regenerate API key |\n| 403 | No access | Insufficient permissions | Upgrade user access level |\n| 404 | Not found | Wrong ID or domain | Verify URL components |\n| 429\u002F503 | `Retry-After` | Rate limited | Backoff and retry |\n| 500\u002F502 | — | Server error | Retry; check status page |\n\n## Resources\n\n- [BambooHR API Details](https:\u002F\u002Fdocumentation.bamboohr.com\u002Fdocs\u002Fapi-details)\n- [BambooHR Status Page](https:\u002F\u002Fstatus.bamboohr.com)\n- [BambooHR Field Names](https:\u002F\u002Fdocumentation.bamboohr.com\u002Fdocs\u002Flist-of-field-names)\n\n## Next Steps\n\nFor comprehensive debugging, see `bamboohr-debug-bundle`.\n\n","# BambooHR Common Errors\n\n## Overview\n\nDiagnostic reference for BambooHR REST API errors. BambooHR returns error details in the `X-BambooHR-Error-Message` response header for most 400-level and some 500-level errors.\n\n## Prerequisites\n\n- BambooHR API access configured\n- Access to application logs or HTTP response headers\n\n## Instructions\n\n### Step 1: Read the Error Header\n\nAlways check `X-BambooHR-Error-Message` first — it contains BambooHR's specific error detail, which is more useful than generic HTTP status text.\n\n```typescript\nconst res = await fetch(`${BASE}\u002Femployees\u002F999\u002F`, {\n  headers: { Authorization: AUTH, Accept: 'application\u002Fjson' },\n});\n\nif (!res.ok) {\n  const errorDetail = res.headers.get('X-BambooHR-Error-Message');\n  console.error(`HTTP ${res.status}: ${errorDetail || res.statusText}`);\n}\n```\n\n### Step 2: Match Error to Solution\n\n---\n\n#### 401 Unauthorized — Invalid API Key\n\n```\nX-BambooHR-Error-Message: Invalid API key\n```\n\n**Cause:** API key is missing, expired, revoked, or malformed in the Basic Auth header.\n\n**Solution:**\n\n```bash\n# Verify key is set\necho \"Key length: ${#BAMBOOHR_API_KEY}\"\n\n# Test auth directly\ncurl -s -o \u002Fdev\u002Fnull -w \"%{http_code}\" \\\n  -u \"${BAMBOOHR_API_KEY}:x\" \\\n  \"https:\u002F\u002Fapi.bamboohr.com\u002Fapi\u002Fgateway.php\u002F${BAMBOOHR_COMPANY_DOMAIN}\u002Fv1\u002Femployees\u002Fdirectory\"\n```\n\n**Common mistakes:**\n- Using Bearer token instead of Basic Auth\n- Putting the API key as the password instead of the username\n- Missing the `:x` password part in Basic Auth encoding\n\n---\n\n#### 403 Forbidden — Insufficient Permissions\n\n```\nX-BambooHR-Error-Message: You do not have access to this resource\n```\n\n**Cause:** The API key's user account lacks permissions for the requested endpoint or employee.\n\n**Solution:**\n- Verify the user's access level in BambooHR (Account > Access Levels)\n- Time-off management endpoints require manager or admin permissions\n- Compensation table access requires admin permissions\n- Some fields are restricted to specific access levels\n\n---\n\n#### 400 Bad Request — Invalid Fields or Payload\n\n```\nX-BambooHR-Error-Message: Invalid field: \"jobTitl\"\n```\n\n**Cause:** Misspelled field name, invalid date format, or malformed JSON body.\n\n**Solution:**\n\n```bash\n# Verify field names against BambooHR's field list\ncurl -s -u \"${BAMBOOHR_API_KEY}:x\" \\\n  \"https:\u002F\u002Fapi.bamboohr.com\u002Fapi\u002Fgateway.php\u002F${BAMBOOHR_COMPANY_DOMAIN}\u002Fv1\u002Femployees\u002F0\u002F?fields=firstName,lastName\" \\\n  -H \"Accept: application\u002Fjson\"\n```\n\n**Common field name mistakes:**\n- `title` (wrong) vs `jobTitle` (correct)\n- `email` (wrong) vs `workEmail` (correct)\n- `name` (wrong) vs `firstName` + `lastName` (correct)\n- Date format must be `YYYY-MM-DD`, not `MM\u002FDD\u002FYYYY`\n\n---\n\n#### 404 Not Found — Wrong Endpoint or ID\n\n```\nX-BambooHR-Error-Message: Employee not found\n```\n\n**Cause:** Employee ID does not exist, wrong company domain, or malformed URL path.\n\n**Solution:**\n\n```bash\n# Verify company domain\necho \"Domain: $BAMBOOHR_COMPANY_DOMAIN\"\n\n# Verify the base URL structure\n# Correct:  \u002Fapi\u002Fgateway.php\u002F{domain}\u002Fv1\u002Femployees\u002F{id}\u002F\n# Wrong:    \u002Fapi\u002Fv1\u002Femployees\u002F{id}\u002F\n# Wrong:    \u002Fapi\u002Fgateway.php\u002F{domain}\u002Femployees\u002F{id}\u002F  (missing \u002Fv1\u002F)\n```\n\n---\n\n#### 429 \u002F 503 — Rate Limited\n\n```\nHTTP 503 with Retry-After: 30\n```\n\n**Cause:** Too many requests in a short period. BambooHR does not publish exact rate limits but returns 503 with a `Retry-After` header.\n\n**Solution:**\n\n```typescript\nasync function handleRateLimit(res: Response): Promise\u003Cvoid> {\n  if (res.status === 503 || res.status === 429) {\n    const retryAfter = parseInt(res.headers.get('Retry-After') || '30', 10);\n    console.warn(`Rate limited. Waiting ${retryAfter}s...`);\n    await new Promise(r => setTimeout(r, retryAfter * 1000));\n  }\n}\n```\n\n**Prevention:**\n- Batch reads using custom reports instead of individual employee GETs\n- Cache directory results (they change infrequently)\n- Use `\u002Femployees\u002Fchanged\u002F?since=...` for incremental sync instead of full pulls\n\n---\n\n#### 500 \u002F 502 — Server Errors\n\n**Cause:** BambooHR internal error. Usually transient.\n\n**Solution:**\n1. Check [BambooHR Status Page](https:\u002F\u002Fstatus.bamboohr.com) for outages\n2. Retry with exponential backoff (see `bamboohr-rate-limits`)\n3. If persistent, collect request details for BambooHR support\n\n---\n\n#### Content-Type Mismatch\n\n**Cause:** Missing `Accept: application\u002Fjson` header — BambooHR defaults to XML.\n\n```bash\n# Wrong — returns XML\ncurl -u \"${BAMBOOHR_API_KEY}:x\" \\\n  \"${BASE}\u002Femployees\u002Fdirectory\"\n\n# Correct — returns JSON\ncurl -u \"${BAMBOOHR_API_KEY}:x\" \\\n  -H \"Accept: application\u002Fjson\" \\\n  \"${BASE}\u002Femployees\u002Fdirectory\"\n```\n\n### Step 3: Quick Diagnostic Script\n\n```bash\n#!\u002Fbin\u002Fbash\necho \"=== BambooHR Diagnostic ===\"\necho \"Company: ${BAMBOOHR_COMPANY_DOMAIN}\"\necho \"Key set: ${BAMBOOHR_API_KEY:+YES}\"\necho \"Key length: ${#BAMBOOHR_API_KEY}\"\n\nBASE=\"https:\u002F\u002Fapi.bamboohr.com\u002Fapi\u002Fgateway.php\u002F${BAMBOOHR_COMPANY_DOMAIN}\u002Fv1\"\n\necho -n \"Auth test: \"\nSTATUS=$(curl -s -o \u002Fdev\u002Fnull -w \"%{http_code}\" -u \"${BAMBOOHR_API_KEY}:x\" \\\n  -H \"Accept: application\u002Fjson\" \"${BASE}\u002Femployees\u002Fdirectory\")\necho \"$STATUS\"\n\necho -n \"Status page: \"\ncurl -s https:\u002F\u002Fstatus.bamboohr.com | head -c 100\necho \"\"\n\nif [ \"$STATUS\" -eq 200 ]; then\n  echo \"Connection OK\"\nelif [ \"$STATUS\" -eq 401 ]; then\n  echo \"FIX: Regenerate API key in BambooHR dashboard\"\nelif [ \"$STATUS\" -eq 403 ]; then\n  echo \"FIX: Upgrade API key user's access level\"\nelif [ \"$STATUS\" -eq 404 ]; then\n  echo \"FIX: Check BAMBOOHR_COMPANY_DOMAIN value\"\nelse\n  echo \"FIX: Check status page and retry\"\nfi\n```\n\n## Output\n\n- Identified error from HTTP status + `X-BambooHR-Error-Message` header\n- Applied fix based on error category\n- Verified resolution with diagnostic script\n\n## Error Summary Table\n\n| Status | Header | Root Cause | Fix |\n|--------|--------|-----------|-----|\n| 400 | Invalid field | Typo in field name | Check field list docs |\n| 401 | Invalid API key | Bad credentials | Regenerate API key |\n| 403 | No access | Insufficient permissions | Upgrade user access level |\n| 404 | Not found | Wrong ID or domain | Verify URL components |\n| 429\u002F503 | `Retry-After` | Rate limited | Backoff and retry |\n| 500\u002F502 | — | Server error | Retry; check status page |\n\n## Resources\n\n- [BambooHR API Details](https:\u002F\u002Fdocumentation.bamboohr.com\u002Fdocs\u002Fapi-details)\n- [BambooHR Status Page](https:\u002F\u002Fstatus.bamboohr.com)\n- [BambooHR Field Names](https:\u002F\u002Fdocumentation.bamboohr.com\u002Fdocs\u002Flist-of-field-names)\n\n## Next Steps\n\nFor comprehensive debugging, see `bamboohr-debug-bundle`.\n\n",{"name":5,"tags":54,"author":55,"license":15,"version":56,"description":57,"allowed-tools":58,"compatible-with":59},[44,36,30,46],"Jeremy Longshore \u003Cjeremy@intentsolutions.io>","1.0.0","Diagnose and fix BambooHR API errors and exceptions.\nUse when encountering BambooHR errors, debugging failed requests,\nor troubleshooting HTTP 400\u002F401\u002F403\u002F404\u002F429\u002F500\u002F503 responses.\nTrigger with phrases like \"bamboohr error\", \"fix bamboohr\",\n\"bamboohr not working\", \"debug bamboohr\", \"bamboohr 401\", \"bamboohr 429\".\n","Read, Grep, Bash(curl:*)","claude-code","main","def8531e65114c0fca8fb8551c1871ee0eed705c","skills\u002Fjeremylongshore\u002Fclaude-code-plugins-plus-skills\u002Fbamboohr-common-errors",24,"https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub","https:\u002F\u002Fskillshub.wtf","https:\u002F\u002Fgithub.com\u002FComeOnOliver","AI & Blockchain Engineer\r\n","2026-06-24 22:07:19",{"source":8,"skillName":5,"commands":70,"prompt":80,"zipAvailable":81},[71,74,77],{"tool":72,"command":73},"npx","npx skills add ComeOnOliver\u002Fskillshub --skill bamboohr-common-errors",{"tool":75,"command":76},"bunx","bunx skills add ComeOnOliver\u002Fskillshub --skill bamboohr-common-errors",{"tool":78,"command":79},"pnpm","pnpm dlx skills add ComeOnOliver\u002Fskillshub --skill bamboohr-common-errors","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fjeremylongshore\u002Fclaude-code-plugins-plus-skills\u002Fbamboohr-common-errors\u002FSKILL.md",true,[],[84,96,106,115,121,128],{"skillNo":85,"name":86,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":87,"categories":88,"keywords":92,"publishedAt":49},"01M6FKJN13GMG4KY57J3QD8GY5","model-hierarchy-skill","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzscole\u002Fmodel-hierarchy-skill\u002Fmodel-hierarchy-skill\u002FSKILL.md",[89],{"categoryNo":90,"categoryName":91,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000023","Skill与智能体开发",[93,94,95],"model","model hierarchy","model hierarchy skill",{"skillNo":97,"name":98,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":99,"categories":100,"keywords":102,"publishedAt":49},"01M6FKJJJ6GCAMR4PPPRD12M5X","zoom-mcp","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fzoom-mcp\u002FSKILL.md",[101],{"categoryNo":90,"categoryName":91,"taxonomyType":21,"taxonomyTypeDesc":22},[103,104,105],"MCP","zoom","zoom mcp",{"skillNo":107,"name":108,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":109,"categories":110,"keywords":111,"publishedAt":49},"01M6FKJE3KYT3KPEZMEEHYKA6K","zoom-apps-sdk","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fzoom-apps-sdk\u002FSKILL.md",[],[112,113,114,104],"sdk","zoom apps sdk","apps",{"skillNo":116,"name":117,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":118,"categories":119,"keywords":120,"publishedAt":49},"01M6FKJ9EDH9Q5VWDF8HAJRSP0","windows","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fwindows\u002FSKILL.md",[],[117],{"skillNo":122,"name":123,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":124,"categories":125,"keywords":127,"publishedAt":49},"01M6FKJ666BEEFC3AE9GJ72Q93","whiteboard","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fwhiteboard\u002FSKILL.md",[126],{"categoryNo":90,"categoryName":91,"taxonomyType":21,"taxonomyTypeDesc":22},[123],{"skillNo":129,"name":130,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":131,"categories":132,"keywords":133,"publishedAt":49},"01M6FKJ21WFCDGTJQ2Q91T9DVW","websockets","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fwebsockets\u002FSKILL.md",[],[130]]