{"id":"2442fde3-490c-48ba-bcfd-1b8e6f42e955","shortId":"ZEv8mr","kind":"skill","title":"writing-job-descriptions","tagline":"Write outcome-based job descriptions and role scorecards.","description":"# Writing Job Descriptions (Outcome-Based)\n\n## Scope\n\n**Covers**\n- Turning a vague “we should hire X” into a clear **role outcome + success scorecard**\n- Defining **competency spikes** (major/minor) instead of a generic laundry list\n- Writing a **high-signal job description** that is honest about context (pace, constraints, trade-offs)\n- Building a lightweight **iteration loop** to improve the JD after real candidate conversations\n\n**When to use**\n- “Write a job description / job posting for …”\n- “Create a role scorecard / success profile for a new hire.”\n- “Make this JD more high-signal (it’s generic and attracting everyone).”\n- “Rewrite our JD around outcomes instead of responsibilities.”\n\n**When NOT to use**\n- You haven’t decided whether to hire vs restructure/contract/automation (do org planning first)\n- You need a full interview loop, question maps, or structured interview design (use `conducting-interviews`)\n- You need to evaluate candidates, design work samples, or make a hiring decision (use `evaluating-candidates`)\n- You need to build a sales team hiring pipeline or GTM recruiting strategy (use `building-sales-team`)\n- You need to design the new hire’s onboarding experience (use `onboarding-new-hires`)\n- You need legal/HR review for compliance wording (this skill is not legal advice)\n\n## Inputs\n\n**Minimum required**\n- Role title + level + function (e.g., “Senior Product Designer”, “Staff Backend Engineer”)\n- Team/context (what you build; who the role reports to; key partners)\n- Why hire now + the “progress” this role must create\n- Success definition: 3–6 outcomes for **12 months after start**\n- Working model + constraints (remote/hybrid, time zones, travel, on-call, pace)\n\n**Missing-info strategy**\n- Ask up to 5 questions from [references/INTAKE.md](references/INTAKE.md).\n- If answers aren’t available, proceed with explicit assumptions and offer 2 versions: **conservative/inclusive** and **high-intensity/polarizing** (if appropriate).\n\n## Outputs (deliverables)\n\nProduce a **Job Description Pack** in Markdown (in-chat; or as files if requested):\n\n1) **Context snapshot**\n2) **Role scorecard:** success at 12 months (+ optional 30/60/90)\n3) **Competency spike map:** majors/minors + “evidence of strength”\n4) **Job description draft (public):** outcome-based, high-signal\n5) **Filters:** who will thrive / who should not apply (honest, non-discriminatory)\n6) **Iteration plan + version log:** what to test and how to update after candidate conversations\n7) **Risks / Open questions / Next steps** (always included)\n\nTemplates: [references/TEMPLATES.md](references/TEMPLATES.md)  \nExpanded guidance: [references/WORKFLOW.md](references/WORKFLOW.md)\n\n## Workflow (7 steps)\n\n### 1) Intake + constraints (don’t start writing yet)\n- **Inputs:** user request; [references/INTAKE.md](references/INTAKE.md).\n- **Actions:** Clarify role, level, “why now”, constraints (location, pace, comp bands if available), and what “good” looks like. Identify what you can/can’t say publicly.\n- **Outputs:** Context snapshot + assumptions/unknowns list.\n- **Checks:** You can state in one sentence: “We are hiring X to achieve Y by Z.”\n\n### 2) Define “success 12 months later” (scorecard)\n- **Inputs:** business goals, current pains, manager expectations.\n- **Actions:** Write 3–6 outcomes that would make you “clink champagne” in 12 months. Add measurable indicators where possible.\n- **Outputs:** Role scorecard (12-month success).\n- **Checks:** Outcomes describe business impact and shipped/owned artifacts, not just activities.\n\n### 3) Decide the competency spikes (major/minor)\n- **Inputs:** role scorecard.\n- **Actions:** Choose 1 **major** spike and 1–2 **minor** spikes. Define what “strong” looks like and how to recognize it (work samples, narratives, portfolio, shipped systems).\n- **Outputs:** Competency spike map.\n- **Checks:** Spikes explain why a generalist won’t work; each spike ties to at least one 12-month outcome.\n\n### 4) Translate outcomes into responsibilities (progress over laundry lists)\n- **Inputs:** scorecard + spikes.\n- **Actions:** Convert outcomes into 6–10 responsibilities phrased as progress (“Own X end-to-end”, “Reduce Y from A→B”) rather than “attend meetings”. Remove arbitrary requirements.\n- **Outputs:** Responsibilities section draft.\n- **Checks:** Every responsibility maps to at least one outcome; anything that doesn’t map is cut or re-justified.\n\n### 5) Add the “truth” section (high-signal + filtering)\n- **Inputs:** team reality: pace, constraints, trade-offs.\n- **Actions:** Write a candid “How we work / What’s hard here” section and a “Who will thrive / Who won’t” filter. Use polarizing clarity without illegal/discriminatory language.\n- **Outputs:** Context truth + filters.\n- **Checks:** A candidate can self-select in/out; claims are honest and specific (not hype).\n\n### 6) Draft the public job description (clean, inclusive, skimmable)\n- **Inputs:** templates; company/role basics.\n- **Actions:** Assemble a complete JD using [references/TEMPLATES.md](references/TEMPLATES.md). Keep requirements minimal; separate must-haves vs nice-to-haves; avoid jargon and bias.\n- **Outputs:** JD draft (public).\n- **Checks:** In 90 seconds, a qualified candidate can answer: “What will I accomplish? Why here? What do I need to be great at?”\n\n### 7) Iterate + quality gate + finalize pack\n- **Inputs:** JD draft; any candidate feedback; hiring manager review.\n- **Actions:** Propose what to test (which section is failing: attract vs filter). Create an iteration log. Run [references/CHECKLISTS.md](references/CHECKLISTS.md) and score with [references/RUBRIC.md](references/RUBRIC.md). Add Risks/Open questions/Next steps.\n- **Outputs:** Final Job Description Pack.\n- **Checks:** The pack is internally aligned and externally high-signal; unknowns are explicit; iteration triggers are defined.\n\n## Quality gate (required)\n- Use [references/CHECKLISTS.md](references/CHECKLISTS.md) and [references/RUBRIC.md](references/RUBRIC.md).\n- Always include: **Risks**, **Open questions**, **Next steps**.\n\n## Examples\n\n**Example 1 (Startup, high-pace):** “Write a job description for a founding Product Designer for a seed-stage B2B AI tool. We need someone who can ship end-to-end in ambiguity. Include success at 12 months and a candid ‘what’s hard here’ section.”  \nExpected: clear 12-month outcomes, a design-major spike, honest pace/constraints, and filters that self-select the wrong candidates out.\n\n**Example 2 (Scale-up, specialized spike):** “Create a role scorecard + job posting for a Staff Backend Engineer owning reliability for a high-traffic API. Emphasize systems thinking and incident ownership.”  \nExpected: outcome-based responsibilities tied to reliability outcomes, plus a clear major spike (operational excellence) and measurable success criteria.\n\n**Boundary example (no outcomes):** “Write a JD for a ‘rockstar generalist’ to ‘do whatever is needed’ (no outcomes).”\nResponse: refuse to invent a laundry list; run intake, define 12-month outcomes and spikes first, then draft.\n\n**Boundary example (redirect to interviews):** “I have the JD. Now help me design the interview loop and behavioral questions.”\nResponse: redirect to `conducting-interviews` — this skill produces the job description and role scorecard, not the interview process.\n\n**Boundary example (redirect to evaluation):** “We posted the JD and have 5 applicants. Help me decide who to interview and how to score them.”\nResponse: redirect to `evaluating-candidates` — this skill defines the role, not the evaluation process.\n\n## Anti-patterns (common failure modes)\n\n1. **Laundry-list responsibilities** — Writing 15+ bullet-point responsibilities that describe activities (“attend meetings”, “manage stakeholders”) instead of outcomes. Every responsibility should map to a 12-month outcome.\n2. **Unicorn requirements** — Requiring 10+ years experience AND a specific degree AND 5 tools AND 3 industries. This filters out strong candidates and signals org confusion about what matters. Identify 1 major spike and 1-2 minors.\n3. **Copy-paste from competitors** — Reusing another company’s JD with your logo. This attracts generic applicants and fails to differentiate your opportunity. The “why here / why now” must be specific to your context.\n4. **Hiding the hard parts** — Omitting pace, constraints, or dysfunction to maximize applicant volume. This wastes everyone’s time. Candid “what’s hard here” sections improve conversion of the right candidates.\n5. **One-and-done publishing** — Treating the JD as final after one draft. JDs should iterate based on candidate conversations and pipeline signal (who’s applying, who’s dropping off, and why).","tags":["writing","job","descriptions","lenny","skills","plus","liqiongyu","agent-skills","ai-agents","automation","claude","codex"],"capabilities":["skill","source-liqiongyu","skill-writing-job-descriptions","topic-agent-skills","topic-ai-agents","topic-automation","topic-claude","topic-codex","topic-prompt-engineering","topic-refoundai","topic-skillpack"],"categories":["lenny_skills_plus"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/liqiongyu/lenny_skills_plus/writing-job-descriptions","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add liqiongyu/lenny_skills_plus","source_repo":"https://github.com/liqiongyu/lenny_skills_plus","install_from":"skills.sh"}},"qualityScore":"0.474","qualityRationale":"deterministic score 0.47 from registry signals: · indexed on github topic:agent-skills · 49 github stars · SKILL.md body (8,698 chars)","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill-github:v1","enrichmentVersion":1,"enrichedAt":"2026-04-22T00:56:26.424Z","embedding":null,"createdAt":"2026-04-18T22:17:15.300Z","updatedAt":"2026-04-22T00:56:26.424Z","lastSeenAt":"2026-04-22T00:56:26.424Z","tsv":"'-2':1142 '/polarizing':298 '1':318,395,515,519,837,1077,1137,1141 '10':579,1111 '12':253,326,457,480,490,559,874,886,986,1104 '15':1083 '2':291,321,454,520,907,1107 '3':249,330,470,504,1122,1144 '30/60/90':329 '4':338,562,1179 '5':275,349,626,1043,1119,1210 '6':250,362,471,578,689 '7':377,393,753 '90':732 'accomplish':742 'achiev':450 'action':408,468,513,574,643,702,768 'activ':503,1090 'add':482,627,792 'advic':212 'ai':857 'align':806 'alway':383,828 'ambigu':870 'anoth':1151 'answer':281,738 'anti':1072 'anti-pattern':1071 'anyth':615 'api':931 'appli':357,1236 'applic':1044,1161,1191 'appropri':300 'arbitrari':600 'aren':282 'around':112 'artifact':500 'ask':272 'assembl':703 'assumpt':288 'assumptions/unknowns':436 'attend':597,1091 'attract':107,777,1159 'avail':284,420 'avoid':722 'b':594 'b2b':856 'backend':225,922 'band':418 'base':8,19,345,941,1227 'basic':701 'behavior':1011 'bias':725 'boundari':958,994,1032 'build':63,170,182,230 'building-sales-team':181 'bullet':1085 'bullet-point':1084 'busi':462,496 'call':266 'can/can':429 'candid':74,154,166,375,646,676,736,763,878,904,1061,1128,1198,1209,1229 'champagn':478 'chat':312 'check':438,493,543,606,674,730,801 'choos':514 'claim':682 'clarifi':409 'clariti':666 'clean':695 'clear':31,885,949 'clink':477 'common':1074 'comp':417 'compani':1152 'company/role':700 'compet':37,331,507,540 'competitor':1149 'complet':705 'complianc':205 'conduct':148,1017 'conducting-interview':147,1016 'confus':1132 'conservative/inclusive':293 'constraint':59,259,397,414,639,1186 'context':57,319,434,671,1178 'convers':75,376,1205,1230 'convert':575 'copi':1146 'copy-past':1145 'cover':21 'creat':86,246,780,913 'criteria':957 'current':464 'cut':621 'decid':124,505,1047 'decis':162 'defin':36,455,523,818,985,1064 'definit':248 'degre':1117 'deliver':302 'describ':495,1089 'descript':4,10,16,52,82,306,340,694,799,845,1024 'design':145,155,188,223,850,891,1006 'design-major':890 'differenti':1165 'discriminatori':361 'doesn':617 'done':1214 'draft':341,605,690,728,761,993,1223 'drop':1239 'dysfunct':1188 'e.g':220 'emphas':932 'end':587,589,866,868 'end-to-end':586,865 'engin':226,923 'evalu':153,165,1036,1060,1069 'evaluating-candid':164,1059 'everi':607,1098 'everyon':108,1195 'evid':335 'exampl':835,836,906,959,995,1033 'excel':953 'expand':388 'expect':467,884,938 'experi':194,1113 'explain':545 'explicit':287,814 'extern':808 'fail':776,1163 'failur':1075 'feedback':764 'file':315 'filter':350,634,663,673,779,897,1125 'final':757,797,1220 'first':133,991 'found':848 'full':137 'function':219 'gate':756,820 'generalist':548,968 'generic':43,105,1160 'goal':463 'good':423 'great':751 'gtm':177 'guidanc':389 'hard':652,881,1182,1201 'have':716,721 'haven':122 'help':1004,1045 'hide':1180 'high':49,101,296,347,632,810,840,929 'high-intens':295 'high-pac':839 'high-sign':48,100,346,631,809 'high-traff':928 'hire':27,95,127,161,174,191,199,239,447,765 'honest':55,358,684,894 'hype':688 'identifi':426,1136 'illegal/discriminatory':668 'impact':497 'improv':69,1204 'in-chat':310 'in/out':681 'incid':936 'includ':384,829,871 'inclus':696 'indic':484 'industri':1123 'info':270 'input':213,403,461,510,571,635,698,759 'instead':40,114,1095 'intak':396,984 'intens':297 'intern':805 'interview':138,144,149,998,1008,1018,1030,1050 'invent':979 'iter':66,363,754,782,815,1226 'jargon':723 'jd':71,98,111,706,727,760,964,1002,1040,1154,1218 'jds':1224 'job':3,9,15,51,81,83,305,339,693,798,844,917,1023 'justifi':625 'keep':710 'key':236 'languag':669 'later':459 'laundri':44,569,981,1079 'laundry-list':1078 'least':557,612 'legal':211 'legal/hr':202 'level':218,411 'lightweight':65 'like':425,527 'list':45,437,570,982,1080 'locat':415 'log':366,783 'logo':1157 'look':424,526 'loop':67,139,1009 'major':516,892,950,1138 'major/minor':39,509 'majors/minors':334 'make':96,159,475 'manag':466,766,1093 'map':141,333,542,609,619,1101 'markdown':309 'matter':1135 'maxim':1190 'measur':483,955 'meet':598,1092 'minim':712 'minimum':214 'minor':521,1143 'miss':269 'missing-info':268 'mode':1076 'model':258 'month':254,327,458,481,491,560,875,887,987,1105 'must':245,715,1173 'must-hav':714 'narrat':535 'need':135,151,168,186,201,748,860,973 'new':94,190,198 'next':381,833 'nice':719 'nice-to-hav':718 'non':360 'non-discriminatori':359 'off':62,642 'offer':290 'omit':1184 'on-cal':264 'onboard':193,197 'onboarding-new-hir':196 'one':443,558,613,1212,1222 'one-and-don':1211 'open':379,831 'oper':952 'opportun':1167 'option':328 'org':131,1131 'outcom':7,18,33,113,251,344,472,494,561,564,576,614,888,940,946,961,975,988,1097,1106 'outcome-bas':6,17,343,939 'output':301,433,487,539,602,670,726,796 'own':924 'ownership':937 'pace':58,267,416,638,841,1185 'pace/constraints':895 'pack':307,758,800,803 'pain':465 'part':1183 'partner':237 'past':1147 'pattern':1073 'phrase':581 'pipelin':175,1232 'plan':132,364 'plus':947 'point':1086 'polar':665 'portfolio':536 'possibl':486 'post':84,918,1038 'proceed':285 'process':1031,1070 'produc':303,1021 'product':222,849 'profil':91 'progress':242,567,583 'propos':769 'public':342,432,692,729 'publish':1215 'qualifi':735 'qualiti':755,819 'question':140,276,380,832,1012 'questions/next':794 'rather':595 're':624 're-justifi':623 'real':73 'realiti':637 'recogn':531 'recruit':178 'redirect':996,1014,1034,1057 'reduc':590 'references/checklists.md':785,786,823,824 'references/intake.md':278,279,406,407 'references/rubric.md':790,791,826,827 'references/templates.md':386,387,708,709 'references/workflow.md':390,391 'refus':977 'reliabl':925,945 'remote/hybrid':260 'remov':599 'report':234 'request':317,405 'requir':215,601,711,821,1109,1110 'respons':116,566,580,603,608,942,976,1013,1056,1081,1087,1099 'restructure/contract/automation':129 'reus':1150 'review':203,767 'rewrit':109 'right':1208 'risk':378,830 'risks/open':793 'rockstar':967 'role':12,32,88,216,233,244,322,410,488,511,915,1026,1066 'run':784,983 'sale':172,183 'sampl':157,534 'say':431 'scale':909 'scale-up':908 'scope':20 'score':788,1054 'scorecard':13,35,89,323,460,489,512,572,916,1027 'second':733 'section':604,630,654,774,883,1203 'seed':854 'seed-stag':853 'select':680,901 'self':679,900 'self-select':678,899 'senior':221 'sentenc':444 'separ':713 'ship':537,864 'shipped/owned':499 'signal':50,102,348,633,811,1130,1233 'skill':208,1020,1063 'skill-writing-job-descriptions' 'skimmabl':697 'snapshot':320,435 'someon':861 'source-liqiongyu' 'special':911 'specif':686,1116,1175 'spike':38,332,508,517,522,541,544,553,573,893,912,951,990,1139 'staff':224,921 'stage':855 'stakehold':1094 'start':256,400 'startup':838 'state':441 'step':382,394,795,834 'strategi':179,271 'strength':337 'strong':525,1127 'structur':143 'success':34,90,247,324,456,492,872,956 'system':538,933 'team':173,184,636 'team/context':227 'templat':385,699 'test':369,772 'think':934 'thrive':353,659 'tie':554,943 'time':261,1197 'titl':217 'tool':858,1120 'topic-agent-skills' 'topic-ai-agents' 'topic-automation' 'topic-claude' 'topic-codex' 'topic-prompt-engineering' 'topic-refoundai' 'topic-skillpack' 'trade':61,641 'trade-off':60,640 'traffic':930 'translat':563 'travel':263 'treat':1216 'trigger':816 'truth':629,672 'turn':22 'unicorn':1108 'unknown':812 'updat':373 'use':78,120,146,163,180,195,664,707,822 'user':404 'vagu':24 'version':292,365 'volum':1192 'vs':128,717,778 'wast':1194 'whatev':971 'whether':125 'without':667 'won':549,661 'word':206 'work':156,257,533,551,649 'workflow':392 'would':474 'write':2,5,14,46,79,401,469,644,842,962,1082 'writing-job-descript':1 'wrong':903 'x':28,448,585 'y':451,591 'year':1112 'yet':402 'z':453 'zone':262","prices":[{"id":"17c33c6c-7482-4c1e-bbd6-b1dee84e250d","listingId":"2442fde3-490c-48ba-bcfd-1b8e6f42e955","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"liqiongyu","category":"lenny_skills_plus","install_from":"skills.sh"},"createdAt":"2026-04-18T22:17:15.300Z"}],"sources":[{"listingId":"2442fde3-490c-48ba-bcfd-1b8e6f42e955","source":"github","sourceId":"liqiongyu/lenny_skills_plus/writing-job-descriptions","sourceUrl":"https://github.com/liqiongyu/lenny_skills_plus/tree/main/skills/writing-job-descriptions","isPrimary":false,"firstSeenAt":"2026-04-18T22:17:15.300Z","lastSeenAt":"2026-04-22T00:56:26.424Z"}],"details":{"listingId":"2442fde3-490c-48ba-bcfd-1b8e6f42e955","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"liqiongyu","slug":"writing-job-descriptions","github":{"repo":"liqiongyu/lenny_skills_plus","stars":49,"topics":["agent-skills","ai-agents","automation","claude","codex","prompt-engineering","refoundai","skillpack"],"license":"apache-2.0","html_url":"https://github.com/liqiongyu/lenny_skills_plus","pushed_at":"2026-04-04T06:30:11Z","description":"86 agent-executable skill packs converted from RefoundAI’s Lenny skills (unofficial). Works with Codex + Claude Code.","skill_md_sha":"eeb84976efebf60a53a5dd5351a007874c780c64","skill_md_path":"skills/writing-job-descriptions/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/liqiongyu/lenny_skills_plus/tree/main/skills/writing-job-descriptions"},"layout":"multi","source":"github","category":"lenny_skills_plus","frontmatter":{"name":"writing-job-descriptions","description":"Write outcome-based job descriptions and role scorecards."},"skills_sh_url":"https://skills.sh/liqiongyu/lenny_skills_plus/writing-job-descriptions"},"updatedAt":"2026-04-22T00:56:26.424Z"}}