A job description is the input everything else reads: question generation, résumé screening and candidate scoring all work from it. Time spent here is repaid.
Three ways to get one
Write it in the editor, with formatting, sections and your own structure.
Generate it — give the role title, level and the skills that matter, and the platform drafts one. A draft is a starting point; read it and cut what is not true of your role.
Upload it — a PDF or DOCX you already have is parsed into the editor. See JD parsing.
What matters most
Skills, named precisely. These become the axes a candidate is scored on. "Strong engineering skills" scores nothing useful; "React, TypeScript, and designing REST APIs" scores well.
Required vs preferred. Mark them. The distinction drives both screening and how a missing skill is weighted in a report.
Experience level. Used to pitch question difficulty. A senior role with no level set gets mid-level questions.
Language
A JD has its own language, separate from your interface language. Set it to the language you want the description published in; the questions generated from it follow the interview's language rather than the JD's.
Publishing
Publishing puts it on the public job board at /jobs, where anyone can read and apply without an account. An unpublished position still works for candidates you invite directly.