$npx -y skills add getnao/sylph --skill hr-screeningScreen inbound applications against role requirements. Filter, summarize, and route to the CAO.
| 1 | # HR Screening |
| 2 | |
| 3 | Screen inbound applications against role requirements. Filter, summarize, and route to the CAO. |
| 4 | |
| 5 | ## MCP connectors |
| 6 | |
| 7 | | Connector | Purpose | |
| 8 | |-----------|---------| |
| 9 | | Gmail | Read applications, send screening responses | |
| 10 | | Notion | Update candidate tracking board | |
| 11 | |
| 12 | ## Hard filters checklist |
| 13 | |
| 14 | Before summarizing, check each application against these filters. If any are NOT met, mark as "filtered out" with the reason. |
| 15 | |
| 16 | | Filter | Check | |
| 17 | |--------|-------| |
| 18 | | **Location** | Within required timezone range or willing to relocate (if specified) | |
| 19 | | **Experience level** | Meets minimum years / seniority for the role | |
| 20 | | **Core skills** | Has the must-have technical skills listed in the job description | |
| 21 | | **Language** | Meets language requirements (English fluency for all roles) | |
| 22 | | **Availability** | Can start within the required timeframe | |
| 23 | | **Work authorization** | Has or can obtain work authorization (if applicable) | |
| 24 | |
| 25 | ## Process |
| 26 | |
| 27 | 1. **Read the job description** - load the role requirements from `hr/roles/` |
| 28 | 2. **Read all new applications** - process the full batch |
| 29 | 3. **Apply hard filters** - check each application against the checklist above |
| 30 | 4. **Summarize passing candidates** - for each: |
| 31 | - Name, current role, company |
| 32 | - Years of relevant experience |
| 33 | - Key matching skills (mapped to job requirements) |
| 34 | - Notable strengths or concerns |
| 35 | - Recommendation: strong yes / yes / maybe / no |
| 36 | 5. **Route to the CAO** - save the screening summary to `hr/_drafts/YYYY-MM-DD_screening-[role].md` |
| 37 | |
| 38 | ## Summary format |
| 39 | |
| 40 | ```markdown |
| 41 | ## [Candidate Name] |
| 42 | - **Current**: [role] at [company] |
| 43 | - **Experience**: [X years relevant] |
| 44 | - **Key skills**: [skill 1, skill 2, skill 3] |
| 45 | - **Strengths**: [brief] |
| 46 | - **Concerns**: [brief or "none"] |
| 47 | - **Recommendation**: [strong yes / yes / maybe / no] |
| 48 | ``` |
| 49 | |
| 50 | ## Guardrails |
| 51 | |
| 52 | - **No name-based inference of nationality, ethnicity, or gender** - evaluate skills and experience only |
| 53 | - **No age inference** from graduation dates |
| 54 | - **Never reject automatically** - flag as "filtered out" with reason; the CAO makes final calls |
| 55 | - **No outreach to candidates** - screening only, no communication |
| 56 | - **Keep all candidate data in** `hr/` folder only - never copy to other locations |
| 57 | - **PII handling** - do not include candidate emails or phone numbers in the summary |
| 58 | |
| 59 | ## Self-improvement |
| 60 | |
| 61 | After the CAO reviews a screening batch: |
| 62 | |
| 63 | 1. If the CAO overrides a recommendation (promotes a "maybe" to "yes" or rejects a "yes"), note why in `hr/_insights.md` |
| 64 | 2. If her overrides reveal a pattern (e.g. "values startup experience over years of experience", "cares more about portfolio than pedigree"), add it to the Hard filters checklist or create a new soft-signal section |
| 65 | 3. If the summary format wasn't useful - too long, missing context, wrong emphasis - update the Summary format section |
| 66 | 4. If a screening summary was particularly well-calibrated, save it to `hr/_examples/` as a reference (with PII removed) |