Docs
/
engines/adapters/domain/jd-writer

jd-writer

Job-description authoring microservice for recruiters, hiring managers and HR: generate a complete JD (summary, responsibilities, requirements, benefits, equal-opportunity statement) from {role...

jd-writer (engines/adapters/domain/jd-writer)

Intelligent job-description authoring microservice. Turns {role, level, company} into a complete, inclusive job post — and audits existing ones. Hybrid: every tool has a deterministic heuristic/template core that runs fully offline; generative tools optionally enrich via a reachable LLM and tag results mode: 'heuristic' | 'llm' (never require a model, never throw on a down model).

Tools

toolinputwhat it does
write{ role, level?, company?, remote?, industry? }Full JD: title, summary, experience range, responsibilities, requirements, nice-to-haves, benefits, EEO statement.
optimize{ text }Readability (Flesch + grade level), bias flag count, concrete fix list, 0–100 score.
inclusivityCheck{ text }Flags gendered / ageist / ableist / exclusionary / hype wording with neutral rewrites + an auto-rewritten draft and inclusivity score.
seniorityCalibrate{ role, level }Recommends title, years range, scope, autonomy, leadership expectation for the level.
requirements{ role, level }Must-have vs nice-to-have + a competency matrix with expected proficiency.
benefitsList{ remote?, count? }Competitive, categorized benefits/perks list (health/time/money/growth/flexibility/culture/perks).

Levels: intern, junior, mid, senior, lead, staff, principal, manager, director, vp (aliases: entry→junior, sr→senior, jr→junior, mgr→manager…).

Usage

import jd from './index.js';
await jd.adapters.write({ role: 'Backend Engineer', level: 'senior', company: 'Acme', remote: true });
jd.adapters.inclusivityCheck({ text: 'We want a young rockstar ninja who is a great culture fit.' });
jd.adapters.seniorityCalibrate({ role: 'Product Manager', level: 'lead' });

DRY boundaries

  • Bias/inclusivity here is JD-domain (biased job wording + rewrites) — not the generic text stats

of a-text / nlp.

  • jd-writer is the write side (author the posting); resume-scorer is the read side (score

candidates against a JD) and interview-kit is the assess side.

  • Self-contained: no cross-pack imports except ../_shared/llm.js for the optional AI mode.
Source shared/engines/adapters/domain/jd-writer/README.md (no-git)markdownjson
Generated from the Leumas repository. Every page cites the file it came from.leumas.techllms.txt