[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6E7CXHCCAXBFE9RKCQWRKJ3":3,"skill-same:01M6E7CXHCCAXBFE9RKCQWRKJ3":67},{"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":23,"publishedAt":36,"linkOnly":37,"markdownContent":38,"markdownBody":39,"frontMatter":40,"refName":44,"commitSha":45,"skillDirectory":46,"forksCount":47,"repositoryHtmlUrl":48,"repositoryHomepageUrl":49,"ownerHtmlUrl":50,"ownerBlogUrl":6,"ownerDescription":51,"updatedAt":52,"install":53,"resources":66},"01M6E7CXHCCAXBFE9RKCQWRKJ3","Ashby Automation",null,"Automate recruiting and hiring workflows in Ashby -- manage candidates, jobs, applications, interviews, and notes through natural language commands.","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\u002FComposioHQ\u002Fawesome-claude-skills\u002Fashby-automation\u002FSKILL.md",[18],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[24,5,25,26,27,28,29,30,31,32,33,34,35],"automation","workflows","notes","Hiring","Recruiting","applications","automate","manage","jobs","language","natural language","commands","2026-11-10 10:12:30",false,"---\nname: Ashby Automation\ndescription: \"Automate recruiting and hiring workflows in Ashby -- manage candidates, jobs, applications, interviews, and notes through natural language commands.\"\nrequires:\n  mcp:\n    - rube\n---\n\n# Ashby Automation\n\nAutomate your Ashby ATS recruiting operations directly from Claude Code. Create candidates, post jobs, manage applications, view interview schedules, and search your talent pipeline -- all without leaving your terminal.\n\n**Toolkit docs:** [composio.dev\u002Ftoolkits\u002Fashby](https:\u002F\u002Fcomposio.dev\u002Ftoolkits\u002Fashby)\n\n---\n\n## Setup\n\n1. Add the Rube MCP server to your Claude Code config with URL: `https:\u002F\u002Frube.app\u002Fmcp`\n2. When prompted, authenticate your Ashby account through the connection link provided\n3. Start automating your recruiting workflows with natural language\n\n---\n\n## Core Workflows\n\n### 1. Manage Candidates\n\nCreate, list, search, update, and retrieve detailed candidate information.\n\n**Tools:** `ASHBY_CREATE_CANDIDATE`, `ASHBY_LIST_CANDIDATES`, `ASHBY_SEARCH_CANDIDATES`, `ASHBY_GET_CANDIDATE_INFO`, `ASHBY_UPDATE_CANDIDATE`\n\n```\nCreate a candidate named \"Jane Smith\" with email jane@example.com and LinkedIn profile https:\u002F\u002Flinkedin.com\u002Fin\u002Fjanesmith\n```\n\nKey parameters for `ASHBY_CREATE_CANDIDATE`:\n- `name` (required) -- full name of the candidate\n- `email` -- primary email address\n- `phoneNumber`, `linkedInUrl`, `githubUrl`, `websiteUrl` -- contact\u002Fsocial profiles\n\nKey parameters for `ASHBY_SEARCH_CANDIDATES`:\n- `email` -- exact email match\n- `name` -- partial name match\n\nKey parameters for `ASHBY_LIST_CANDIDATES`:\n- `perPage` (max 100) \u002F `cursor` -- pagination\n- `syncToken` -- for incremental updates since last sync\n\n### 2. Create and List Jobs\n\nPost new job openings and browse existing positions.\n\n**Tools:** `ASHBY_CREATE_JOB`, `ASHBY_LIST_JOBS`, `ASHBY_GET_JOB_INFO`\n\n```\nCreate a new \"Senior Software Engineer\" job in team dept-123 at location loc-456 with brand brand-789\n```\n\nKey parameters for `ASHBY_CREATE_JOB`:\n- `title` (required) -- job title\n- `teamId` (required) -- department\u002Fteam ID (from list departments)\n- `locationId` (required) -- office location ID (from list locations)\n- `brandId` (required) -- employer brand ID (from list brands)\n- `defaultInterviewPlanId` -- required to open the job for applications\n- `jobTemplateId` -- pre-populate from a template\n\nKey parameters for `ASHBY_LIST_JOBS`:\n- `perPage` (max 100) \u002F `cursor` \u002F `syncToken` -- pagination and incremental sync\n\n**Note:** Newly created jobs start in \"Draft\" status. You must set a `defaultInterviewPlanId` to open\u002Fpublish the job.\n\n### 3. Manage Applications\n\nCreate applications to connect candidates to jobs and track their progress.\n\n**Tools:** `ASHBY_CREATE_APPLICATION`, `ASHBY_LIST_APPLICATIONS`\n\n```\nApply candidate cand-abc123 to job job-xyz789 with source src-referral\n```\n\nKey parameters for `ASHBY_CREATE_APPLICATION`:\n- `candidateId` (required) -- UUID of an existing candidate\n- `jobId` (required) -- UUID of an existing job\n- `sourceId` -- UUID of the application source (LinkedIn, Referral, etc.)\n- `creditedToUserId` -- UUID of recruiter\u002Freferrer to credit\n- `interviewStageId` -- place directly into a specific stage (defaults to first stage)\n\nKey parameters for `ASHBY_LIST_APPLICATIONS`:\n- `perPage` (max 100) \u002F `cursor` \u002F `syncToken` -- pagination and incremental sync\n\n### 4. View Interview Schedules\n\nList scheduled interviews with timing, interviewer, and candidate details.\n\n**Tool:** `ASHBY_LIST_INTERVIEW_SCHEDULES`\n\n```\nShow me all upcoming interview schedules\n```\n\nKey parameters:\n- `perPage` (max 100) \u002F `cursor` -- pagination\n- `syncToken` -- incremental sync for changed schedules\n\n### 5. Candidate Notes\n\nView internal notes, observations, and recruiter comments on candidates.\n\n**Tool:** `ASHBY_LIST_CANDIDATE_NOTES`\n\n```\nShow me all notes for candidate cand-abc123\n```\n\n- Retrieves all notes added by recruiters and hiring team members\n- Useful for reviewing interview feedback and internal assessments\n\n### 6. Pipeline Reporting\n\nCombine listing tools to build hiring pipeline reports.\n\n**Tools:** `ASHBY_LIST_CANDIDATES`, `ASHBY_LIST_APPLICATIONS`, `ASHBY_LIST_JOBS`\n\n```\nList all applications to see the current state of our hiring pipeline\n```\n\n- Use `syncToken` for incremental data fetches (efficient for recurring reports)\n- Combine candidate, application, and job data for full pipeline visibility\n- Paginate through all results with `cursor` for complete datasets\n\n---\n\n## Known Pitfalls\n\n- **Jobs start in Draft:** Newly created jobs via `ASHBY_CREATE_JOB` start in \"Draft\" status and cannot accept applications until a `defaultInterviewPlanId` is set and the job is opened.\n- **Four required fields for jobs:** `ASHBY_CREATE_JOB` requires `title`, `teamId`, `locationId`, and `brandId`. Use list departments, locations, and brands endpoints to discover valid IDs.\n- **Candidate before application:** A candidate must exist before creating an application. Always create or find the candidate first, then create the application.\n- **Cursor-based pagination:** All list endpoints use cursor-based pagination with `perPage` (max 100) and `cursor`. You cannot jump to arbitrary pages -- you must iterate sequentially.\n- **`syncToken` for efficiency:** Use `syncToken` from previous responses to fetch only changed records. This dramatically reduces API calls for recurring workflows.\n- **UUID format everywhere:** All IDs (candidates, jobs, applications, stages) are UUIDs. Passing malformed IDs returns 400 errors.\n- **Search limitations:** `ASHBY_SEARCH_CANDIDATES` supports exact email match or partial name match, but not combined queries or other fields. For broader searches, use `ASHBY_LIST_CANDIDATES` with pagination.\n\n---\n\n## Quick Reference\n\n| Tool Slug | Description |\n|---|---|\n| `ASHBY_CREATE_CANDIDATE` | Create a new candidate (requires `name`) |\n| `ASHBY_LIST_CANDIDATES` | List all candidates with pagination and sync |\n| `ASHBY_SEARCH_CANDIDATES` | Search candidates by email or name |\n| `ASHBY_GET_CANDIDATE_INFO` | Get full candidate details (requires `candidateId`) |\n| `ASHBY_UPDATE_CANDIDATE` | Update candidate profile information |\n| `ASHBY_LIST_CANDIDATE_NOTES` | List internal notes for a candidate |\n| `ASHBY_CREATE_JOB` | Create a job opening (requires `title`, `teamId`, `locationId`, `brandId`) |\n| `ASHBY_LIST_JOBS` | List all jobs with pagination and sync |\n| `ASHBY_GET_JOB_INFO` | Get full job details by ID |\n| `ASHBY_CREATE_APPLICATION` | Apply a candidate to a job (requires `candidateId`, `jobId`) |\n| `ASHBY_LIST_APPLICATIONS` | List all applications with pagination and sync |\n| `ASHBY_LIST_INTERVIEW_SCHEDULES` | List scheduled interviews with pagination |\n\n---\n\n*Powered by [Composio](https:\u002F\u002Fcomposio.dev)*\n\n","# Ashby Automation\n\nAutomate your Ashby ATS recruiting operations directly from Claude Code. Create candidates, post jobs, manage applications, view interview schedules, and search your talent pipeline -- all without leaving your terminal.\n\n**Toolkit docs:** [composio.dev\u002Ftoolkits\u002Fashby](https:\u002F\u002Fcomposio.dev\u002Ftoolkits\u002Fashby)\n\n---\n\n## Setup\n\n1. Add the Rube MCP server to your Claude Code config with URL: `https:\u002F\u002Frube.app\u002Fmcp`\n2. When prompted, authenticate your Ashby account through the connection link provided\n3. Start automating your recruiting workflows with natural language\n\n---\n\n## Core Workflows\n\n### 1. Manage Candidates\n\nCreate, list, search, update, and retrieve detailed candidate information.\n\n**Tools:** `ASHBY_CREATE_CANDIDATE`, `ASHBY_LIST_CANDIDATES`, `ASHBY_SEARCH_CANDIDATES`, `ASHBY_GET_CANDIDATE_INFO`, `ASHBY_UPDATE_CANDIDATE`\n\n```\nCreate a candidate named \"Jane Smith\" with email jane@example.com and LinkedIn profile https:\u002F\u002Flinkedin.com\u002Fin\u002Fjanesmith\n```\n\nKey parameters for `ASHBY_CREATE_CANDIDATE`:\n- `name` (required) -- full name of the candidate\n- `email` -- primary email address\n- `phoneNumber`, `linkedInUrl`, `githubUrl`, `websiteUrl` -- contact\u002Fsocial profiles\n\nKey parameters for `ASHBY_SEARCH_CANDIDATES`:\n- `email` -- exact email match\n- `name` -- partial name match\n\nKey parameters for `ASHBY_LIST_CANDIDATES`:\n- `perPage` (max 100) \u002F `cursor` -- pagination\n- `syncToken` -- for incremental updates since last sync\n\n### 2. Create and List Jobs\n\nPost new job openings and browse existing positions.\n\n**Tools:** `ASHBY_CREATE_JOB`, `ASHBY_LIST_JOBS`, `ASHBY_GET_JOB_INFO`\n\n```\nCreate a new \"Senior Software Engineer\" job in team dept-123 at location loc-456 with brand brand-789\n```\n\nKey parameters for `ASHBY_CREATE_JOB`:\n- `title` (required) -- job title\n- `teamId` (required) -- department\u002Fteam ID (from list departments)\n- `locationId` (required) -- office location ID (from list locations)\n- `brandId` (required) -- employer brand ID (from list brands)\n- `defaultInterviewPlanId` -- required to open the job for applications\n- `jobTemplateId` -- pre-populate from a template\n\nKey parameters for `ASHBY_LIST_JOBS`:\n- `perPage` (max 100) \u002F `cursor` \u002F `syncToken` -- pagination and incremental sync\n\n**Note:** Newly created jobs start in \"Draft\" status. You must set a `defaultInterviewPlanId` to open\u002Fpublish the job.\n\n### 3. Manage Applications\n\nCreate applications to connect candidates to jobs and track their progress.\n\n**Tools:** `ASHBY_CREATE_APPLICATION`, `ASHBY_LIST_APPLICATIONS`\n\n```\nApply candidate cand-abc123 to job job-xyz789 with source src-referral\n```\n\nKey parameters for `ASHBY_CREATE_APPLICATION`:\n- `candidateId` (required) -- UUID of an existing candidate\n- `jobId` (required) -- UUID of an existing job\n- `sourceId` -- UUID of the application source (LinkedIn, Referral, etc.)\n- `creditedToUserId` -- UUID of recruiter\u002Freferrer to credit\n- `interviewStageId` -- place directly into a specific stage (defaults to first stage)\n\nKey parameters for `ASHBY_LIST_APPLICATIONS`:\n- `perPage` (max 100) \u002F `cursor` \u002F `syncToken` -- pagination and incremental sync\n\n### 4. View Interview Schedules\n\nList scheduled interviews with timing, interviewer, and candidate details.\n\n**Tool:** `ASHBY_LIST_INTERVIEW_SCHEDULES`\n\n```\nShow me all upcoming interview schedules\n```\n\nKey parameters:\n- `perPage` (max 100) \u002F `cursor` -- pagination\n- `syncToken` -- incremental sync for changed schedules\n\n### 5. Candidate Notes\n\nView internal notes, observations, and recruiter comments on candidates.\n\n**Tool:** `ASHBY_LIST_CANDIDATE_NOTES`\n\n```\nShow me all notes for candidate cand-abc123\n```\n\n- Retrieves all notes added by recruiters and hiring team members\n- Useful for reviewing interview feedback and internal assessments\n\n### 6. Pipeline Reporting\n\nCombine listing tools to build hiring pipeline reports.\n\n**Tools:** `ASHBY_LIST_CANDIDATES`, `ASHBY_LIST_APPLICATIONS`, `ASHBY_LIST_JOBS`\n\n```\nList all applications to see the current state of our hiring pipeline\n```\n\n- Use `syncToken` for incremental data fetches (efficient for recurring reports)\n- Combine candidate, application, and job data for full pipeline visibility\n- Paginate through all results with `cursor` for complete datasets\n\n---\n\n## Known Pitfalls\n\n- **Jobs start in Draft:** Newly created jobs via `ASHBY_CREATE_JOB` start in \"Draft\" status and cannot accept applications until a `defaultInterviewPlanId` is set and the job is opened.\n- **Four required fields for jobs:** `ASHBY_CREATE_JOB` requires `title`, `teamId`, `locationId`, and `brandId`. Use list departments, locations, and brands endpoints to discover valid IDs.\n- **Candidate before application:** A candidate must exist before creating an application. Always create or find the candidate first, then create the application.\n- **Cursor-based pagination:** All list endpoints use cursor-based pagination with `perPage` (max 100) and `cursor`. You cannot jump to arbitrary pages -- you must iterate sequentially.\n- **`syncToken` for efficiency:** Use `syncToken` from previous responses to fetch only changed records. This dramatically reduces API calls for recurring workflows.\n- **UUID format everywhere:** All IDs (candidates, jobs, applications, stages) are UUIDs. Passing malformed IDs returns 400 errors.\n- **Search limitations:** `ASHBY_SEARCH_CANDIDATES` supports exact email match or partial name match, but not combined queries or other fields. For broader searches, use `ASHBY_LIST_CANDIDATES` with pagination.\n\n---\n\n## Quick Reference\n\n| Tool Slug | Description |\n|---|---|\n| `ASHBY_CREATE_CANDIDATE` | Create a new candidate (requires `name`) |\n| `ASHBY_LIST_CANDIDATES` | List all candidates with pagination and sync |\n| `ASHBY_SEARCH_CANDIDATES` | Search candidates by email or name |\n| `ASHBY_GET_CANDIDATE_INFO` | Get full candidate details (requires `candidateId`) |\n| `ASHBY_UPDATE_CANDIDATE` | Update candidate profile information |\n| `ASHBY_LIST_CANDIDATE_NOTES` | List internal notes for a candidate |\n| `ASHBY_CREATE_JOB` | Create a job opening (requires `title`, `teamId`, `locationId`, `brandId`) |\n| `ASHBY_LIST_JOBS` | List all jobs with pagination and sync |\n| `ASHBY_GET_JOB_INFO` | Get full job details by ID |\n| `ASHBY_CREATE_APPLICATION` | Apply a candidate to a job (requires `candidateId`, `jobId`) |\n| `ASHBY_LIST_APPLICATIONS` | List all applications with pagination and sync |\n| `ASHBY_LIST_INTERVIEW_SCHEDULES` | List scheduled interviews with pagination |\n\n---\n\n*Powered by [Composio](https:\u002F\u002Fcomposio.dev)*\n\n",{"name":5,"requires":41,"description":7},{"mcp":42},[43],"rube","main","def8531e65114c0fca8fb8551c1871ee0eed705c","skills\u002FComposioHQ\u002Fawesome-claude-skills\u002Fashby-automation",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":54,"prompt":64,"zipAvailable":65},[55,58,61],{"tool":56,"command":57},"npx","npx skills add ComeOnOliver\u002Fskillshub --skill \"Ashby Automation\"",{"tool":59,"command":60},"bunx","bunx skills add ComeOnOliver\u002Fskillshub --skill \"Ashby Automation\"",{"tool":62,"command":63},"pnpm","pnpm dlx skills add ComeOnOliver\u002Fskillshub --skill \"Ashby Automation\"","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002FComposioHQ\u002Fawesome-claude-skills\u002Fashby-automation\u002FSKILL.md",true,[],[68,78,88,97,103,110],{"skillNo":69,"name":70,"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":71,"categories":72,"keywords":74,"publishedAt":36},"01M6FKJN13GMG4KY57J3QD8GY5","model-hierarchy-skill","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzscole\u002Fmodel-hierarchy-skill\u002Fmodel-hierarchy-skill\u002FSKILL.md",[73],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[75,76,77],"model","model hierarchy","model hierarchy skill",{"skillNo":79,"name":80,"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":81,"categories":82,"keywords":84,"publishedAt":36},"01M6FKJJJ6GCAMR4PPPRD12M5X","zoom-mcp","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fzoom-mcp\u002FSKILL.md",[83],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[85,86,87],"MCP","zoom","zoom mcp",{"skillNo":89,"name":90,"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":91,"categories":92,"keywords":93,"publishedAt":36},"01M6FKJE3KYT3KPEZMEEHYKA6K","zoom-apps-sdk","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fzoom-apps-sdk\u002FSKILL.md",[],[94,95,96,86],"sdk","zoom apps sdk","apps",{"skillNo":98,"name":99,"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":100,"categories":101,"keywords":102,"publishedAt":36},"01M6FKJ9EDH9Q5VWDF8HAJRSP0","windows","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fwindows\u002FSKILL.md",[],[99],{"skillNo":104,"name":105,"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":106,"categories":107,"keywords":109,"publishedAt":36},"01M6FKJ666BEEFC3AE9GJ72Q93","whiteboard","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fwhiteboard\u002FSKILL.md",[108],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[105],{"skillNo":111,"name":112,"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":113,"categories":114,"keywords":115,"publishedAt":36},"01M6FKJ21WFCDGTJQ2Q91T9DVW","websockets","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fwebsockets\u002FSKILL.md",[],[112]]