This recipe produces a complete library of stage-appropriate job description templates across engineering, sales, marketing, operations, and customer success functions — with inclusive language verified, salary transparency compliant, and optimized for applicant conversion on LinkedIn, Indeed, and startup job boards. The output is ready-to-customize JD documents, a bias-detection review checklist, and a multi-channel publishing workflow. [src1]
Which path?
├── Founder writing first 1-3 JDs, no budget
│ └── PATH A: Manual — Google Docs + free bias checker + manual posting
├── Founder writing first 1-3 JDs, some budget
│ └── PATH B: Assisted — Google Docs + Textio/Datapeople + LinkedIn Jobs
├── Recruiter building JD library for 5-10 roles
│ └── PATH C: Systematic — ATS templates + bias tool + multi-channel
└── HR team scaling hiring across departments
└── PATH D: Enterprise — Full ATS + Textio + programmatic distribution
| Path | Tools | Cost | Speed | Output Quality |
|---|---|---|---|---|
| A: Manual Free | Google Docs + Gender Decoder + Wellfound | $0 | 2-3 hrs/role | Adequate |
| B: Assisted | Google Docs + Textio trial + LinkedIn Jobs | $0-300/post | 1-2 hrs/role | Good |
| C: Systematic | Ashby/Greenhouse + Ongig + multi-channel | $300-600/mo | 45-60 min/role | High |
| D: Enterprise | Full ATS + Textio + programmatic | $1,000+/mo | 30 min/role | Excellent |
Duration: 1-2 hours · Tool: Spreadsheet + hiring manager input
Complete the role audit worksheet for each open position: standard title, function, seniority, stage context, reporting line, and six core questions (problem solved, 30/60/90-day success, must-have vs nice-to-have skills, compensation, location policy, differentiation from BigTech). Prioritize revenue-generating roles first, then product-building, then scaling roles.
Verify: Each role has all 6 questions answered with specific, measurable responses. · If failed: If hiring manager cannot articulate success criteria, the role is not ready to hire for.
Duration: 1-2 hours per role · Tool: Template library + text editor
Apply universal JD structure: hook (2-3 sentences), outcomes-based responsibilities (5-7 bullets), split requirements (3-5 must-haves + 2-3 nice-to-haves), compensation with equity, and company context. Add function-specific sections: tech stack for engineering, OTE breakdown for sales, channel ownership for marketing, operational scope for ops, portfolio metrics for CS. [src2] [src5]
Verify: Each JD follows the universal structure and includes function-specific details. · If failed: If JD reads like a generic job board post, add concrete numbers, tools, and outcomes.
Duration: 30-60 minutes per role · Tool: Text editor
Stage adaptation: Pre-seed/seed JDs use first-person founder voice, emphasize equity and mission, reduce requirements to 2-3 must-haves. Series A JDs add team context and career path. Series B+ JDs use structured competency frameworks with metrics. Ashby recommends including a self-selection section for early-stage roles. [src4]
Verify: JD tone matches actual startup stage. · If failed: If too corporate for seed stage, strip formality. If too casual for Series B+, add structure.
Duration: 30-45 minutes per role · Tool: Textio, Gender Decoder, or Ongig
Run every JD through bias detection. Remove gendered language, unnecessary degree requirements, and age-biased terms. Add inclusive signals (accommodations statement, visa sponsorship status). Optimize titles for search: standard title + seniority + key technology + location/remote. Target 8th-grade reading level. [src3]
Verify: Bias tool score is 80+ (Textio scale). Title matches top search terms on LinkedIn/Indeed. · If failed: Replace each flagged phrase and re-run until score passes.
Duration: 30 minutes (one-time setup) · Tool: Document management
Establish review process: hiring manager drafts from template, recruiting reviews compliance and compensation, bias tool scan runs, final sign-off (founder at seed/Series A, hiring manager + HR at Series B+). Target turnaround: 2-3 business days for new roles, same-day for reposts. [src6]
Verify: Workflow documented, stakeholders identified, turnaround expectation set. · If failed: If approval takes 5+ days, reduce approvers to 2 maximum.
Duration: 1-2 hours per role · Tool: ATS or manual posting
Distribute across three tiers: Tier 1 free (careers page, Wellfound, LinkedIn organic, HN Who's Hiring, referral blast), Tier 2 paid (LinkedIn Jobs, Indeed sponsored, industry boards), Tier 3 community (Slack groups, Twitter/X, Reddit). Adapt format per platform: LinkedIn under 300 words with salary up front, Indeed 700-2,000 words with full details, Wellfound emphasize equity and mission, HN plain text with tech stack. [src1]
Verify: JD live on 3+ channels, formatted per platform. · If failed: Check formatting requirements per channel and reformat.
{
"output_type": "jd_template_library",
"format": "document collection + checklist + workflow",
"columns": [
{"name": "role_title", "type": "string", "description": "Standard job title", "required": true},
{"name": "function", "type": "string", "description": "Engineering, Sales, Marketing, Ops, or CS", "required": true},
{"name": "stage_variant", "type": "string", "description": "Pre-seed, Seed, Series A, Series B+", "required": true},
{"name": "word_count", "type": "number", "description": "JD word count (target 300-700)", "required": true},
{"name": "bias_score", "type": "number", "description": "Inclusion score 0-100", "required": true},
{"name": "salary_included", "type": "boolean", "description": "Compensation range included", "required": true},
{"name": "channels_posted", "type": "number", "description": "Distribution channels", "required": true},
{"name": "applicants_7d", "type": "number", "description": "Applications in first 7 days", "required": false}
],
"expected_row_count": "5-10",
"sort_order": "function ascending",
"deduplication_key": "role_title + stage_variant"
}
| Quality Metric | Minimum Acceptable | Good | Excellent |
|---|---|---|---|
| Bias/inclusion score | > 70 | > 85 | > 95 |
| Word count (LinkedIn) | 200-400 | 250-350 | ~300 |
| Word count (Indeed) | 500-2000 | 700-1500 | 900-1200 |
| Applications per week | > 10 | > 25 | > 50 |
| Qualified applicant rate | > 15% | > 30% | > 50% |
| Time to first qualified applicant | < 14 days | < 7 days | < 3 days |
| Diversity of applicant pool | Reflects market | Above average | Exceeds benchmarks |
If below minimum: If applications < 10/week, audit title searchability, hook quality, and salary competitiveness. If qualified rate < 15%, requirements are too vague or too restrictive.
| Error | Likely Cause | Recovery Action |
|---|---|---|
| Zero applications after 7 days | Title not searchable, salary missing, or buried on job board | Promote posting, rewrite title for search terms, add salary range |
| High volume but low quality | Requirements too vague, title too broad | Add specific must-haves, narrow title with seniority and tech |
| Candidates drop off after reading | JD too long, excessive requirements, off-putting tone | Shorten to 300-500 words, reduce to 3-5 must-haves, adjust tone |
| Bias tool flags multiple issues | Unconscious gendered or exclusionary language | Replace flagged terms, re-run scan, second reviewer check |
| Legal compliance risk | Missing salary in transparency-required jurisdiction | Add compensation range immediately; check all posting jurisdictions |
| No diverse applicants | Homogeneous channels or coded exclusionary language | Expand to diverse boards (Jopwell, Techqueria), audit JD language |
| Component | Free Tier | Starter Tier | Growth Tier |
|---|---|---|---|
| JD writing/templates | Google Docs + this recipe | Google Docs + this recipe | ATS templates ($300/mo) |
| Bias detection | Gender Decoder (free) | Ongig trial (free) | Textio ($5K+/yr) |
| LinkedIn Jobs | 1 free post | Promoted: $200-500/post | Recruiter: $800+/mo |
| Indeed | Free basic listing | Sponsored: $5-15/day | Premium: $250+/mo |
| Wellfound | Free (startups) | Free (startups) | Free (startups) |
| ATS | Spreadsheet tracking | Breezy HR (free tier) | Ashby/Greenhouse ($400+/mo) |
| Total for 5 roles | $0 | $500-1,500 | $2,000-5,000/mo |
Listing 15-20 requirements filters out qualified diverse candidates. Research shows women apply at 100% match while men apply at 60% — long lists disproportionately exclude. [src3]
Must-haves are truly non-negotiable. Everything else is nice-to-have. Be explicit about which is which to increase applications from qualified candidates.
Non-standard titles reduce discoverability 50%+ on LinkedIn and Indeed. Candidates cannot find roles they cannot search for. [src2]
Use searchable, clear titles like “Senior Growth Marketing Manager” instead of creative alternatives. Add context in the description, not the title.
LinkedIn rewards short posts, Indeed rewards detailed ones. The same JD underperforms on at least one platform. [src1]
Write the full 700-word version, then create a 300-word LinkedIn summary and longer Indeed version. Same content, optimized format per channel.
Use this recipe when a startup founder or hiring manager needs to write job descriptions that attract qualified candidates — not just fill an ATS field. Requires defined role needs, approved compensation, and company context. Produces JD templates, inclusion-verified content, and a publishing workflow — not a hiring strategy, interview process, or compensation philosophy.