Slack guide

Silky in Slack

Describe a role. Review the pipeline. Send offers. Ask anything about your hiring. All from the channel your team already reads.

Last updated 12 June 2026

Everything Silky can do, in Slack

Silky has one set of hiring actions. The same set whether you invoke them from the dashboard, from a Claude Code session, from the API, or from Slack. You can do everything in Slack that you can do in Silky.

Install

Go to Settings > Integrations in the Silky dashboard and press Install Silky for Slack. Slack walks you through the standard OAuth flow. Pick the workspace, pick the default channel you want activity in, and approve the scopes.

Silky needs: channels:read, chat:write, commands, im:write, users:read, and files:read. That is the minimum needed to post cards, read your roster, run slash commands, and accept CV uploads. We do not request history access.

After OAuth completes you are redirected back to Silky with a confirmation. The default channel starts receiving activity immediately.

OAuth scopes
channels:read, chat:write, commands, im:write, users:read

Talking to Silky

Mention @silky in a channel where it is invited, or send it a direct message (DM). Ask in plain English. Silky reasons over your data, takes the action, and confirms anything destructive or bulk before it happens.

Search
find candidates with SaaS experience in Sydney who are still in review
Returns a list card with one row per candidate. Each row has a kebab menu (View / Move / Reject / Email / Add to talent pool) and the card has a Refine button that opens a stage / job / score / source / time-window filter modal so you can drill in without retyping the query.
Ask
how many applicants did we get this month, split by job
Replies with a per-job count for the current month, plus week-on-week change.
Create
create a candidate Bill Jones, email bill@jones.com, current title Head of Sales at Acme
Shows a confirmation card with the parsed fields. One click creates the record.
Upload
DM a CV to @silky (PDF or DOCX attachment)
Silky reads the file, pre-fills name, email, phone, and LinkedIn, and posts a review card. One click creates the candidate.
Update
reschedule Alice Smith's interview to Monday 2pm and move her to the hiring manager stage
Confirms both changes on one card, runs them together, and posts the new timeline entry.
Reject
reject Jamie Lee with reason 'moving ahead with a closer fit on infra experience'
Shows the rejection card with the reason and the email that will be sent. You confirm, Silky sends it.
Offer
draft an offer for Marcus at GBP 115k starting 1 May
Opens a salary + currency + start + expiry card with a letter preview underneath, rendered from your offer letter template. One click creates the offer, moves the stage to Offered, and stores the letter on the hires row.
Phone screen
just screened Alice, she was great, advance her
Opens a 2-click phone-screen card: outcome pre-filled to Advance, your notes pre-filled, one click logs a timeline entry AND moves the stage.

Silky always asks for confirmation before anything destructive or a bulk action. Everything else happens immediately and posts the result in the thread.

How to read the tier badges

Not every action has the same Slack UX yet. Actions marked "Rich Slack flow" have a dedicated Block Kit modal with gap detection and multi-step confirm, at dashboard parity. Actions marked "Conversational" are reachable by asking @silky; you get a one-click confirmation card with fields Silky inferred from your prompt, which is fast for simple payloads but not a replacement for the dashboard modal when the fields really matter. Actions marked "Not in Slack" are dashboard-only today.

Rich Slack flowDedicated Block Kit modal. Dashboard-parity UX.
ConversationalAsk @silky. Silky shows a confirmation card with inferred fields.
Not in SlackDashboard or API today.

Everything you can do in Slack

If it is in the Silky action registry, it works in Slack. Here is the full list, grouped by what you are trying to do. Phrase it however you like. Silky understands plain English.

Jobs and advertising

What you askExample phrasingSlack tier
Create a new rolenew senior backend engineer in London, remote, around GBP 120k
describe_a_job
Rich
Fill in missing detailsset the team to Payments and the hiring manager to Sarah Patel
update_job_draft
Rich
Tweak a draftmake it punchier and bump salary to GBP 140k
revise_job_draft
Rich
Skip a detailskip the salary for now
skip_job_draft_gap
Rich
Create the joblooks good, create it
confirm_job_draft
Rich
Peek at a draftshow me what the draft looks like so far
get_job_draft
Rich
Check creation progresshow's that job coming along?
get_job_creation_status
Rich
Update a rolechange the title on the backend job to staff backend engineer
update_job
Conversational
Close a roleclose the senior backend role, we hired internally
close_job
Conversational
Reopen a rolereopen the senior backend engineer role
reopen_job
Conversational
Delete a roledelete the old data engineer draft
delete_job
Conversational
Publish a public adpublish the careers page ad for the senior backend role
create_job_ad
Conversational
Edit the admake the ad shorter and emphasise remote flexibility
update_job_ad
Rich
Rewrite the ad with AImake the ad more energetic
rewrite_job_ad
Rich
Create from scratch (structured)create a bare job record titled Head of Sales
create_job
Conversational
Polish the social postsshorten the LinkedIn post and add a hashtag
update_social_draft
Rich

Candidates

Drag a CV (PDF or DOCX) into a Silky DM and Silky parses it, pre-fills name / email / phone / LinkedIn, and posts a review card with a Create candidate button. Mandatory fields (name, email) block the button until filled; everything else is optional.

What you askExample phrasingSlack tier
Add a candidatecreate a candidate Bill Jones, email bill@jones.com, Head of Sales at Acme
create_candidate
Rich
Create from a CV uploaddrag a PDF or DOCX into the DM
prepare_candidate_from_cv
Rich
Peek at a candidate draftshow me the draft from the CV I just uploaded
get_candidate_draft
Rich
Fix a parsed fieldchange the email on the draft to alice@example.com
update_candidate_draft
Rich
Create the candidatelooks right, create it
confirm_candidate_draft
Rich
Update a candidateupdate Bill Jones, his new phone is +44 7700 900000
update_candidate
Conversational
Merge duplicatesmerge the two Bill Jones records into one
merge_candidates
Conversational
Remove a candidatedelete that duplicate Bill Jones record
delete_candidate
Conversational

Applications and pipeline

Reject and bulk reject open a Slack modal for a structured reason (wrong skills, wrong seniority, wrong location, wrong compensation, moved faster with another candidate, or other), an optional note, and a checkbox to send the templated rejection email. The same reason shape as the dashboard modal. Reviewing a candidate from @silky renders the full scorecard with Reject / Add to talent pool buttons on the card. Logging a phone screen ("just screened Alice, she was great, advance her") opens a 2-click outcome + notes card that atomically writes a timeline note AND moves the stage - advance lands on Shortlisted, reject fires the rejection email, hold / no show leave the stage alone.

What you askExample phrasingSlack tier
Attach a candidate to a jobattach Sarah Chen to the Senior PM role
create_application
Conversational
Move to a new stagemove Alice Smith to shortlisted
move_stage
Conversational
Reject a candidatereject Jamie Lee with reason 'moving ahead with a closer fit'
reject_candidate
Rich
Record a withdrawalmark Alice as withdrawn, she took another offer
withdraw_application
Conversational
Reassign owner or sourceassign Alice's application to Sam
update_application
Conversational
Add a notenote on Alice: strong reference from her old manager
add_note
Conversational
Log a phone screenjust screened Alice, she was great, advance her
prepare_phone_screen
Rich
Peek at the phone screen draftshow me the phone screen draft for Alice
get_phone_screen_draft
Rich
Update a phone screen draftchange the phone screen outcome to hold
update_phone_screen_draft
Rich
Confirm a phone screen logconfirm the phone screen log for Alice
confirm_phone_screen_draft
Rich

Interviews

Scorecards open a rich Slack card with one input per criterion (grouped by Essential / Role-Specific / Company Fit / Communication), an overall recommendation radio, and a feedback textarea. Pre-filling scores in the prompt ("scorecard on Alice: strong hire, 4 out of 5 on system design") lands the card at a confirm-ready state with those values applied. The confirm button dispatches to the existing submit_scorecard + update_interview_outcome handlers so the timeline and interview outcome stay consistent. The Submit scorecard CTA on the 24-hour interview_feedback_nudge card also uses this flow.

What you askExample phrasingSlack tier
Schedule an interviewschedule an interview with Alice on Monday 2pm
schedule_interview
Rich
See free interview timesfind interview times for Alice with me and Sam, 1 hour
propose_interview_slots
Conversational
Request an interview (Yes applicants only)request an interview with Alice, offer her three times next week
request_interview
Conversational
Draft an interview with Silkybook a video interview with Alice, 30 min, Monday 3pm
prepare_schedule_interview
Rich
Read the current interview draftshow me the Alice interview draft
get_interview_draft
Rich
Edit an interview draftchange the Alice interview to Tuesday at 10am, 45 min
update_interview_draft
Rich
Book the drafted interviewconfirm the Alice interview
confirm_interview_draft
Rich
Reschedulemove Alice's interview to Tuesday at 10am
reschedule_interview
Rich
Draft a reschedule with Silkyprepare to move Alice's interview, her manager is away
prepare_reschedule_interview
Rich
Cancelcancel Alice's Monday interview, the interviewer is sick
cancel_interview
Rich
Draft a cancel with Silkyprepare to cancel Alice's interview, the role paused
prepare_cancel_interview
Rich
Read a reschedule / cancel draftshow me the Alice reschedule draft
get_interview_action_draft
Rich
Edit a reschedule / cancel draftset the Alice reschedule to Wednesday 3pm
update_interview_action_draft
Rich
Confirm a reschedule / cancelconfirm Alice's reschedule
confirm_interview_action_draft
Rich
Record the outcomeAlice passed her hiring manager interview
update_interview_outcome
Conversational
Submit a scorecard (rich flow)scorecard on Alice: strong hire, 4 out of 5 on system design, notes: strong on distributed systems
prepare_submit_scorecard
Rich
Peek at a scorecard draftshow me the scorecard draft for Alice
get_scorecard_draft
Rich
Fix a score inlinechange the communication score on that draft to 5
update_scorecard_draft
Rich
Submit the drafted scorecardsubmit the scorecard for Alice
confirm_scorecard_draft
Rich
Submit one-shot scorecardsubmit scorecard for interview ivw_abc123 with recommendation hire, notes "strong SQL"
submit_scorecard
Rich
Open the AI interview formprepare the interview form for Alice's tech round
prepare_interview_form
Conversational
Read an interview form draftshow me the interview form for Alice's tech round
get_interview_form_draft
Conversational
Score an interview sectionscore the technical depth section 4 out of 5 with notes "clear ownership signal"
update_interview_form_draft
Conversational
Submit the interview formsubmit Alice's interview form with recommendation hire
confirm_interview_form_draft
Conversational

Forms and references

What you askExample phrasingSlack tier
Send a screening formsend Alice the general screening form
send_screening_form
Conversational
Send a reference requestask Alice's referee Jane Doe for a reference
send_reference_request
Conversational
Request referencesask Alice for 2 referees
request_referee_details
Conversational

Offers

Draft an offer in Slack and Silky opens a salary + currency + start date + optional expiry card with a letter preview underneath, rendered from your offer letter template. Mandatory fields (salary, currency, start date) block the Confirm button until filled; the confirm dispatches to the same create_offer handler the dashboard uses, so the hires row, stage transition to Offered, activity log, webhooks, and automation triggers are identical regardless of surface.

What you askExample phrasingSlack tier
Draft an offerdraft an offer for Marcus at GBP 115k starting 1 May
prepare_create_offer
Rich
Peek at an offer draftshow me the offer draft for Marcus
get_offer_draft
Rich
Edit an offer draftbump the offer to USD 130k and move the start to June 1
update_offer_draft
Rich
Create the offerlooks good, create Marcus's offer
confirm_offer_draft
Rich
Create from scratch (structured)create a bare offer on Marcus's application, 115000 AUD, start 2026-05-01
create_offer
Rich
Mark accepted or declinedMarcus accepted his offer
update_offer_status
Conversational
Rescindrescind Marcus's offer, budget was pulled
rescind_offer
Conversational
Send for e-signaturesend Marcus's offer for signature
send_offer_for_signature
Conversational

Email and comms

What you askExample phrasingSlack tier
Email a candidateemail Alice to ask about her notice period
send_email
Rich
Schedule an emailschedule a follow-up to Alice for Friday 9am
schedule_email
Rich
Cancel a scheduled emailcancel the Friday follow-up to Alice
cancel_scheduled_email
Rich
Draft a candidate email with Silkydraft a warm reject for Ben, mention our design cafe
prepare_compose_email
Rich
Read the current email draftshow me the draft email for Alice
get_email_draft
Rich
Edit an email draftchange the subject on the Alice draft to "Catch up Friday"
update_email_draft
Rich
Rewrite an email draftmake the Alice draft warmer and a paragraph shorter
revise_email_draft
Rich
Send or schedule the drafted emailsend the Alice draft now
confirm_email_draft
Rich

Talent pools

Reads are conversational too: "who is in the engineering talent pool?" lists the members, "who is waiting to join our talent pools?" lists pending join requests with names so you can approve or decline in the same thread.

What you askExample phrasingSlack tier
Create a talent poolset up a talent pool for product design
create_talent_pool
Conversational
Add to a talent pooladd Alice to the product design talent pool, great candidate but wrong role
add_to_talent_pool
Conversational
Remove from a talent pooltake Alice out of the product design pool
remove_from_talent_pool
Conversational
Approve a join requestapprove Bill's request to join the product talent pool
approve_join_request
Conversational
Decline a join requestdecline Bill's request to join the product talent pool
decline_join_request
Conversational

People (HR)

Available when your workspace has the People module. Reads are conversational: "who is off next week?" lists approved leave, "what is my annual leave balance?" answers from the live ledger. Balances only - salary never appears in chat.

What you askExample phrasingSlack tier
Request leavebook annual leave from 2 Oct to 6 Oct
request_leave
Conversational
Approve leaveapprove Morgan's leave request
approve_leave
Conversational
Decline leavedecline Morgan's leave request
decline_leave
Conversational
Add an employeeadd our co-founder Sam Park to People
create_employee
Conversational

Bulk actions

Bulk asks open a preview card in Slack before anything commits: one row per candidate (name, current stage, job), a count, and Confirm / Cancel. You can scan the list, cancel if the set looks wrong, or confirm. Bulk reject adds a second step - a structured reason modal (wrong skills, wrong seniority, wrong location, wrong compensation, moved faster with another candidate, or other) with an optional note and a checkbox to send the templated rejection email.

What you askExample phrasingSlack tier
Reject many at oncereject everyone below 3 stars on the backend role
bulk_reject
Rich
Email many at onceemail all 18 phone-screen candidates about the delayed timeline
bulk_send_email
Rich
Add many to a talent pooladd all the rejected product designers to the design talent pool
bulk_add_to_talent_pool
Rich

Scheduling and reminders

What you askExample phrasingSlack tier
Set a reminderremind me to follow up on Alice's references on Thursday
create_reminder
Conversational
Schedule a callbook a 30 minute call with Alice tomorrow at 11
schedule_call
Conversational
Schedule a meetingschedule a hiring sync with Sam and Jo next Monday
schedule_meeting
Conversational
Reschedule a meetingmove Derren's meeting tomorrow to Thursday at 2pm
reschedule_meeting
Conversational
Cancel a meetingcancel Derren's meeting tomorrow - no longer needed
cancel_meeting
Conversational

Team, automations, and admin

What you askExample phrasingSlack tier
Invite a teammateinvite sam@acme.com as a hiring manager
invite_team_member
Conversational
Create an automationauto-reject applications with no resume attached
create_automation
Conversational
Update an automationupdate the auto-reject rule to skip cafe members
update_automation
Conversational
Turn an automation on or offdisable the auto-reject rule for now
toggle_automation
Conversational
Delete an automationdelete the old auto-move rule
delete_automation
Conversational
Create a webhookadd a webhook to https://acme.com/hooks/silky for interview events
create_webhook
Conversational
Delete a webhookremove the old Slack webhook
delete_webhook
Conversational
Update the brand voiceupdate the brand voice to say we write short and direct
update_brand_voice
Conversational

Views, review queue, and account

What you askExample phrasingSlack tier
Save a search as a viewsave this search as 'senior engineers in review'
save_current_view
Conversational
Resolve a review queue itemmark that review item resolved
resolve_review_item
Conversational
Show plan upgrade optionsshow me the upgrade options
upgrade_plan
Conversational
Search and analytics are always free-text. Ask anything about your pipeline. "How many offers did we send last quarter?" "Which source has the highest offer-accept rate?" Silky reads your data and answers in the thread.

Expect the list here to grow. If you are not sure whether something is possible, ask Silky. It will either do it or tell you it cannot.

Slash commands (optional shortcuts)

If you prefer typing /silky reject Alice over asking in natural language, slash commands always work. They sit alongside the natural-language surface as a quick shortcut.

CommandWhat it does
/silky new job <description>
Describe a role in a sentence or three. Silky drafts the spec and asks you to confirm before publishing.
/silky new job Senior backend engineer, Go or Rust, Sydney or remote AU, ship payments infra
/silky review <job>
Show the review queue for a job. Candidates with their scores and current stage.
/silky review Senior backend engineer
/silky schedule <candidate>
Kick off interview scheduling. Silky uses the default interview format for that role.
/silky schedule Alice Smith
/silky reject <candidate> [reason]
Reject a candidate. If you do not provide a reason, Silky asks for one before it emails them.
/silky reject Jamie Lee "moving ahead with a closer fit on infra experience"
/silky note <candidate> <text>
Add a timeline note. Shows up on their profile and in the next digest.
/silky note Alice Smith strong reference from ex-manager at Canva
/silky status [job]
Current digest. Applications, longlisted, interviewed, offered, hired.
/silky status
/silky share <job>
Post the share-bundle for a role so anyone in the channel can copy the tweet, LinkedIn post, or referral blurb.
/silky share Senior backend engineer
/silky help
List every command.
/silky help

Event cards

Every event Silky thinks you care about posts as a Block Kit card. Cards link back to the full record in the dashboard, and subsequent events for the same candidate on the same role thread under the first card so the channel stays tidy. Cards carry one-click buttons that open the same rich flows as the dashboard - review a candidate, accept an AI suggestion, rescind an offer, submit a scorecard - so you can act without leaving Slack.

New application received
Posted when an application arrives. Shows the candidate name, the role, where they came from, and a quick score if auto-assessment is on. Buttons: Review candidate (opens the rich review card) and Add to talent pool.
application_received
S
Silky APP
New application for Senior backend engineer
Candidate
Alice Smith
Source
Careers page
Quick score
8.2 (top band)
Open profileLonglistReject
Talent pool join request
Posted when someone asks to join a talent pool from your careers page. Shows the applicant, their email and LinkedIn, and the pool. Buttons: Approve (creates or matches the candidate and adds them to the pool) and Decline (silent, the applicant is not emailed).
talent_pool_join_request
Application scored
Posted when auto-assessment finishes. Shows the band (top, middle, reject) and why. Buttons: Accept suggestion (advances top-band candidates to Shortlisted, opens the reject-reason modal for reject-band), Override (opens a stage picker), and Review candidate.
application_scored
S
Silky APP
Scored: Alice Smith
Role
Senior backend engineer
Band
Top
Why
Strong Go background, shipped payments infra at previous role.
Accept suggestionOpen profile
Interview scheduled
Posted when an interview is booked, whether you scheduled it, the candidate self-scheduled, or a hiring manager booked it. Includes the time, the interviewer, and the interview format. Buttons: Reschedule and Cancel (open the rich reschedule or cancel draft inline) and Open dashboard.
interview_scheduled
S
Silky APP
Interview booked: Alice Smith
Role
Senior backend engineer
When
Thu 23 Apr, 10:00 AEST
Interviewer
Brett Iredale
Format
Technical screen (45 min)
Add to calendarReschedule
Scorecard submitted
Posted when an interviewer submits a scorecard. Shows their score and recommendation. Stacks into a thread so you can see every interviewer for a candidate in one place. Button: View candidate (opens the rich review card).
scorecard_submitted
S
Silky APP
Scorecard: Alice Smith
Interviewer
Brett Iredale
Score
4 / 5
Recommendation
Advance to HM interview
Open scorecard
Reference red flag
Posted when a referee flags a concern. Silky DMs the recruiter and posts to the channel so nothing slips. Card includes the red-flag excerpt. Buttons: Open reference and View candidate.
reference_red_flag
S
Silky APP
Red flag on reference: Alice Smith
Referee
Priya (ex-manager)
Flag
Would not rehire. Concerns raised about reliability under deadline pressure.
Open reference
Offer sent / signed
Two cards: one when the offer goes out, one when the candidate signs. Sent cards carry Open offer + Rescind. Signed cards carry Open offer + View candidate, and tag the hiring manager automatically.
offer_sent
S
Silky APP
Offer signed: Alice Smith
Role
Senior backend engineer
Start date
12 May
Hiring manager
@brett
Open offer
Weekly digest
Monday morning. One post per active job with counts, top candidates, and anything stuck. Button: Open dashboard.
weekly_digest
S
Silky APP
Weekly digest: 3 active roles
Senior backend engineer
28 applied, 6 longlisted, 2 offered
Designer
14 applied, 3 longlisted, 0 offered
Founding AE
9 applied, 2 longlisted, stuck at HM interview
Open dashboard
Interview feedback nudge
Posted 24 hours after an interview if a scorecard is still missing. Buttons: Submit scorecard (opens the rich scorecard flow inline) and Open dashboard. Gentle, not spammy. Fires once per interview.
interview_feedback_nudge
S
Silky APP
Scorecard still missing for Alice Smith
Interview
Technical screen, 24 hours ago
Interviewer
Brett Iredale
Submit scorecard

Conversational threading

When a card is posted for Alice Smith on a role, everything else about Alice on that role threads under it. Scorecards, offer updates, replies, feedback nudges. The channel stays tidy and the context stays tight. If Alice applies to a second role, she gets a fresh thread scoped to that role. Candidate-level events without a specific role share a single candidate thread.

DM preferences

Each user controls what they get DM'd about from their own settings page at /settings/slack. Most recruiters turn on reference red flags, offers signed, and the weekly digest. Interviewers usually only want interview reminders and feedback nudges. Admins can set defaults for the workspace, but users can override on their own account.

Channel overrides

The default channel picks up everything. If you want interviews in #hiring but red flags in #silky-alerts, set a per-event override from Settings > Slack. If you prefer scripting, the same overrides are available via the API.

{
  "channel_overrides": {
    "interview_scheduled": "C07ABCD1234",
    "interview_feedback_nudge": "C07ABCD1234",
    "reference_red_flag": "C08XYZ9876",
    "application_received": null,
    "weekly_digest": "C09DIGEST42"
  }
}

Keys are Slack notification type names. Values are Slack channel IDs (the ones that start with C). A null value falls back to the default channel. Missing keys also fall back to the default. Every notification type listed on this page is a valid key.

Slack and the dashboard, side by side

Slack and the dashboard share the same action set. Slack is fast for conversational work: ask a question, reject a candidate, draft an offer, all in the flow of your existing channels. The dashboard is built for visual work: stack-rank views, rich candidate timelines, side-by-side comparisons. Use whichever fits the moment. Nothing is Slack-only and nothing is dashboard-only.

First hour checklist

Five things to try.

  • Install from Settings > Integrations.
  • Pick a default channel.
  • Mention @silky in the channel and ask 'how many applicants did we see this month?'
  • Ask Silky to draft a new role: @silky new job senior backend engineer Sydney around AUD 180k.
  • Open your Slack preferences at /settings/slack and choose which events you want DM'd.