Application System¶
PulseRoster's Application System lets you accept public recruitment applications, review them with your team, and onboard accepted applicants — all without manual Discord ticket triage or shared spreadsheets.
Included on every plan, capped by plan
The Application system is available on every plan. You can run 1 application form on Free, 5 on Standard, and unlimited on Professional. Invite links remain available on every plan and are unlimited.
What you get¶
| Surface | What it does |
|---|---|
| Public application form | Hosted at /apply/[community-slug]/[app-slug] — no PulseRoster account required to submit |
| Custom form builder | Field types: short text, long text, number, date, datetime, single-select, multi-select, checkbox, section header, file upload |
| Kanban review board | Submissions grouped by status (Pending, Interview, Accepted, Declined, Withdrawn) with drag-to-move |
| Voting panel | Each reviewer can vote Approve / Reject with a rationale; tallies surface on the submission detail |
| Label taxonomy | Tag submissions with custom labels (e.g., "interview-scheduled", "background-check-pending") |
| Discord ticket integration | Optional: every new submission spawns a Discord thread in your configured channel |
| Response templates | Pre-written messages for Accept / Decline / Interview / Pending so replies are fast and on-brand |
| Roster Plan | On accept, propose a department / rank assignment before the applicant claims membership |
| Claim token | Accepted applicants receive a one-time URL to claim their PulseRoster account |
| Analytics | Per-application stats: submissions, conversion rate, time-to-decision |
Setup¶
- Go to Settings > Applications (community staff only).
- Click New Application.
- Configure the basics:
- Title — what applicants see
- Slug — the URL component (e.g.,
lspd-officer) - Scope — Community-wide, Department-specific, or Subdivision-specific
- Status — Draft (not public) or Published (live)
- Add fields via the form builder. Mark each as Required or Optional. Order them by drag-and-drop.
- Configure Discord ticket integration (optional):
- Channel ID where threads are created
- Whether new submissions, status changes, and comments echo back to the thread
- Add labels for your review workflow (optional).
- Add response templates (optional) for Accept / Decline / Interview replies.
- Save and Publish.
Your application is now live at:
Receiving and reviewing¶
Staff with applications.view permission see incoming submissions in two views:
/c/[slug]/applications— classic list with filters/c/[slug]/applications/board— kanban grouped by status
Click any submission to open the detail page:
- Submitted Answers — everything the applicant entered
- Discussion — staff comments (threaded)
- Votes — reviewer approvals/rejections with rationale
- Labels — tag the submission
- Status — move through PENDING → INTERVIEW → ACCEPTED / DECLINED / WITHDRAWN
- Roster Plan — on Accept, propose a department + rank for the new member
Onboarding accepted applicants¶
When you mark a submission Accepted:
- The applicant gets an email (or Discord DM if linked) with a one-time claim token URL like
/claim/[token]. - They click it, finish setting up their PulseRoster account, and land in your community.
- If a Roster Plan was configured, they're auto-assigned to the proposed department + rank.
- If they're already a PulseRoster user, the token links the application to their existing account — no duplicate accounts.
- If Discord role automation is configured, their roles are updated and the bot sends them a direct message confirming their new access. Many people have bot DMs disabled, so this does not always arrive — the submission records whether it was delivered.
Discord role automation¶
An application can grant and remove Discord roles by itself as a submission moves between outcomes, so nobody has to remember to hand out an "Officer" role or clear a "Pending Review" one.
Applicants must sign in with Discord
Role automation identifies the applicant by their Discord account, so the application needs Require Discord sign-in turned on. Without it there is no account to act on and nothing will happen.
Setting it up¶
Open the application in Settings → Applications, and find Discord role automation.
| Setting | What it does |
|---|---|
| Applicant role | Given the moment someone applies, removed once their application is accepted, declined, or withdrawn. Ideal for a "Pending Review" role |
| Accepted | Roles to grant and remove when someone is accepted |
| Declined | Roles to grant and remove when an application is turned down |
| Interview | Roles to grant and remove when someone is moved to interview |
Each outcome has its own grant and remove lists, and an outcome you leave empty changes nothing. The most common setup is a single rule: on Accepted, grant your member role and remove the applicant role.
The applicant role only applies to new submissions. Anyone already waiting when you configure it keeps whatever roles they have.
Warnings while you configure¶
The role list flags two things before they can bite you:
- "bot can't manage": the role sits at or above the PulseRoster bot's own role in your server, so Discord will refuse every attempt. Move the bot's role above it in Server Settings → Roles.
- "privileged": the role carries permissions like Administrator, Manage Roles, or Ban Members. Automating it is allowed, but worth a second look.
Neither blocks you from saving. A role cannot be both granted and removed for the same outcome; that is rejected, because the result would depend on ordering.
Seeing what happened¶
Each submission shows a Discord roles panel listing what was granted, what was removed, and anything that failed along with the reason. Common messages:
| Message | What it means |
|---|---|
| "This applicant did not sign in with Discord" | The application does not require Discord sign-in, or they applied before it did |
| "This applicant is not in your Discord server" | They have a Discord account linked but have not joined your server |
| "The bot's role must be above this role" | The hierarchy problem above; fix it in Discord, then use Re-apply |
Re-apply re-runs the role changes for the submission's current status. It is there for exactly the case where you fix your bot's permissions and want to apply the roles without touching the applicant's status.
Turning it off¶
Settings → Applications → Discord role automation is a master switch for the whole community. Turning it off stops roles being granted and removed across every application, whatever those applications have configured.
Discord ticket integration¶
When enabled, the bot creates a thread in your configured channel for each new submission. The thread contains:
- A button row: Approve / Decline / Open in PulseRoster
- The applicant's name and key answers
- A subscribe option for reviewers
Reviewer actions in the thread (button clicks) update the submission status in PulseRoster. Reviewer actions in PulseRoster (status change, comments, votes) echo back to the thread.
This lets your team do the discussion in Discord while keeping the structured workflow in PulseRoster.
Permissions¶
| Action | Required Permission |
|---|---|
| View applications | applications.view |
| Comment, vote, label, change status, schedule interviews | applications.review |
| Create / edit / publish / delete application forms | applications.manage_forms |
| Configure Discord integration | applications.manage_forms + community.settings |
Assign these via Settings > Staff Roles.
You don't need to assign yourself anything
The community owner always has every permission in the table above, including on applications, without holding a staff role. The same is true of the built-in Admin role.
Two roles also get review access automatically, scoped to what they are
responsible for, without an applications.review grant:
- Department command staff and supervisors — applications scoped to their department, and to any subdivision under it.
- Subdivision leads — applications scoped to their subdivision.
Community-scoped applications are the exception: reviewing those is staff-only by default. To let a specific rank or unit review one, add their community role under the form's Additional reviewers setting.
Tips¶
- Use templates for response copy. Saves reviewers from writing the same Accept/Decline message every time.
- Use labels for stage gates. E.g., "background-check-pending" until verified, then "background-check-clear".
- Cap the submission window with a Draft status during recruiting freezes.
- Scope by subdivision for specialized roles (SWAT, K9) so the right command staff sees them.
- Check analytics weekly to spot bottlenecks (a column piling up means a missing reviewer).
See also: Permissions & Staff Roles, Discord Integration, Member Management.