Creating a Job Posting
How to create, configure, publish, and manage job postings — from draft to close and everything in between.
Why It Matters
Creating a job posting is the first step in your hiring pipeline. A well-configured posting attracts the right candidates and feeds them into a structured review process. Getting this right saves your team hours of manual screening later.
Creating a New Job
Navigate to Hiring > Job Postings and click New Job Posting. Fill in the following fields:
| Field | Required | Description |
|---|---|---|
| Title | Yes | The job title candidates will see (e.g. “Senior Rails Developer”) |
| Description | No | Rich text description — supports formatting, links, and lists |
| Location | No | Where the role is based (e.g. “San Francisco, CA”) |
| Department | No | Organizational department (e.g. “Engineering”) |
| Employment Type | No | Full-time, part-time, contract, etc. |
| Remote | No | Toggle on if the role is fully remote |
| Salary Min | No | Minimum salary amount |
| Salary Max | No | Maximum salary amount |
| Salary Currency | No | Currency code (defaults to USD) |
| Salary Period | No | Pay period — year, month, hour, etc. (defaults to YEAR) |
Salary fields are optional but recommended. Transparent compensation attracts more applicants and reduces mismatched expectations.
Choosing a Process Template
After creating the job, you’ll configure its hiring stages. You have three options:
- Starter templates — Built-in templates that cover common hiring patterns. Great for getting started quickly.
- Account templates — Custom templates your team has created. Use these to standardize your hiring process across jobs.
- Manual configuration — Build stages from scratch directly on the job posting.
Select a template to pre-populate stages, or skip this step to add stages manually. See Process Template Configuration for details on writing custom templates.
Configuring Stages
Each job posting has an ordered list of stages that candidates move through sequentially. You can add, reorder, and edit stages on the job’s Stages tab.
Kit supports 10 stage types:
| Stage Type | Purpose |
|---|---|
| Application Form | Collect candidate info via custom form fields |
| Code Assignment | Timed coding challenge with GitHub integration |
| Portfolio Upload | Candidates upload work samples |
| Questionnaire | Written questions for async responses |
| Video | Present a video to candidates |
| Video Recording | Candidates record video responses |
| Team Review | Internal team evaluation with blind voting |
| Live Interview | Synchronous interview with calendar integration |
| Reference Check | Collect and verify candidate references |
| Offer | Extend a formal offer |
Most pipelines start with Application Form and end with Offer. The stages in between depend on the role. A typical engineering pipeline might be: Application Form, Code Assignment, Team Review, Live Interview, Offer.
Stage Description vs Brief
A stage has two candidate-facing text fields, and they differ in who can read them.
Stage description (the Candidate Description field) is public. It renders on the public job page under the hiring process timeline, on the template gallery, and inside the stage notification email. Anyone browsing your career portal reads it, including people who never applied.
Brief is private. Only a candidate who has reached that stage and pressed Start task can read it. It is never published on the job page, never shown on a template page, and never mailed.
Warning
A take-home task — and any link that comes with it, such as a Drive folder, a Figma file, or a dataset — belongs in the brief. Paste that link into the stage description and you have published it to every visitor of your career page.
The brief sits directly under the stage description on the stage’s edit page. It is not a stage type of its own — it turns a Portfolio Upload stage into a take-home task, which is where the Start button, the clock and the upload area live.
| Field | Default | What it does |
|---|---|---|
| Brief | — | Plain text. URLs you paste become links when the candidate reads them |
| Estimated effort | — | Hours of work, shown before the candidate starts. Leave blank to omit |
| Days to complete | 5 | Counted from the moment the candidate starts the task, not from when you advance them |
| Grace period | 24 hours | Extra hours uploads stay open after the deadline. Work arriving in the grace period is accepted and flagged late |
| Allow one self-serve extension | Off | The candidate may push the deadline once, by the configured hours (72 by default), while it has not passed yet |
The brief belongs to Portfolio Upload stages: that is where the candidate gets Start, the countdown, the upload area and the receipt, and where reviewers see the brief next to what was submitted. On other stage types the field is ignored, so nothing promises the candidate a task they would have no way to start.
See Managing Your Pipeline for how the deadline behaves, and The Candidate Experience for what the candidate sees.
Publishing Your Job
New jobs start in draft status. When you’re ready to accept applications:
- Click Publish on the job posting page
- The job appears on your public career page immediately
- Copy the public URL to share the listing directly
Only published jobs accept candidate applications. You can find your career page URL in the job posting header after publishing.
Managing Job Status
A job posting moves through four statuses:
| Status | Accepting Applications | Visible on Career Page | When to Use |
|---|---|---|---|
| Draft | No | No | Still setting up stages and details |
| Published | Yes | Yes | Actively hiring for this role |
| Paused | No | No | Temporarily stop accepting applications |
| Closed | No | No | Role has been filled or cancelled |
Pausing is useful when you’ve received enough applications and want to focus on reviewing them before accepting more. You can unpublish a paused job to return it to draft.
Closing a job signals that hiring is complete. Closed jobs can be reopened if the role needs to be filled again — all existing applications and pipeline data are preserved.
Restricting Access
By default, all team members can view a job posting and its candidates. Toggle Restricted on to limit access to specific hiring team members.
When restricted:
- Only assigned team members see the job and its applications
- Other team members won’t see the job in their dashboard
- Useful for confidential or executive-level searches
Add team members to a restricted job from the job’s settings page.
Slack Notifications on Restricted Postings
Restricting a posting also narrows its Slack notifications. New applications — and every other hiring update for that job — stop posting to your shared team channel, because a channel’s audience includes guests and people you never added to the job.
Instead, Kit sends new applications as a direct message to the people on the job’s hiring team. No other update for a restricted job reaches Slack. Kit cannot send DMs at all from a Notifications only connection, and warns you at the toggle.
Warning
A restricted posting with nobody on its hiring team notifies nobody. There is no channel post, and nobody to DM. Assign the hiring team at the same time you restrict the job.
Quick Checklist
- Create a new job posting with title and description
- Set location, department, and salary range
- Choose a process template or configure stages manually
- Review stage order and configuration
- Keep task instructions and any task links in the stage Brief — the stage description is public
- Publish the job when ready to accept applications
- Share the public career page URL with candidates
- Toggle restricted access if the role is confidential
- Assign the hiring team before restricting — a restricted job with no team sends no Slack notifications at all