Silky in Slack
Describe a role. Review the pipeline. Send offers. Ask anything about your hiring. All from the channel your team already reads.
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, and users:read. That is the minimum needed to post cards, read your roster, and run slash commands. 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.
channels:read, chat:write, commands, im:write, users:readTalking 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.
Silky always asks for confirmation before anything destructive or a bulk action. Everything else happens immediately and posts the result in the thread.
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 ask | Example phrasing |
|---|---|
| Create a new role | “new senior backend engineer in London, remote, around GBP 120k”create_job |
| Update a role | “change the title on the backend job to staff backend engineer”update_job |
| Close a role | “close the senior backend role, we hired internally”close_job |
| Reopen a role | “reopen the senior backend engineer role”reopen_job |
| Delete a role | “delete the old data engineer draft”delete_job |
| Publish a public ad | “publish the careers page ad for the senior backend role”create_job_ad |
Candidates
| What you ask | Example phrasing |
|---|---|
| Add a candidate | “create a candidate Bill Jones, email bill@jones.com, Head of Sales at Acme”create_candidate |
| Update a candidate | “update Bill Jones, his new phone is +44 7700 900000”update_candidate |
| Merge duplicates | “merge the two Bill Jones records into one”merge_candidates |
| Remove a candidate | “delete that duplicate Bill Jones record”delete_candidate |
Applications and pipeline
| What you ask | Example phrasing |
|---|---|
| Move to a new stage | “move Alice Smith to shortlisted”move_stage |
| Reject a candidate | “reject Jamie Lee with reason 'moving ahead with a closer fit'”reject_candidate |
| Record a withdrawal | “mark Alice as withdrawn, she took another offer”withdraw_application |
| Reassign owner or source | “assign Alice's application to Sam”update_application |
| Add a note | “note on Alice: strong reference from her old manager”add_note |
Interviews
| What you ask | Example phrasing |
|---|---|
| Schedule an interview | “schedule an interview with Alice on Monday 2pm”schedule_interview |
| Reschedule | “move Alice's interview to Tuesday at 10am”reschedule_interview |
| Cancel | “cancel Alice's Monday interview, the interviewer is sick”cancel_interview |
| Record the outcome | “Alice passed her hiring manager interview”update_interview_outcome |
| Submit a scorecard | “scorecard on Alice: strong hire, 4 out of 5 on system design”submit_scorecard |
Forms and references
| What you ask | Example phrasing |
|---|---|
| Send a screening form | “send Alice the general screening form”send_screening_form |
| Send a reference request | “ask Alice's referee Jane Doe for a reference”send_reference_request |
Offers
| What you ask | Example phrasing |
|---|---|
| Draft an offer | “draft an offer for Marcus at GBP 115k starting 1 May”create_offer |
| Mark accepted or declined | “Marcus accepted his offer”update_offer_status |
| Rescind | “rescind Marcus's offer, budget was pulled”rescind_offer |
| Send for e-signature | “send Marcus's offer for signature”send_offer_for_signature |
Email and comms
| What you ask | Example phrasing |
|---|---|
| Email a candidate | “email Alice to ask about her notice period”send_email |
| Schedule an email | “schedule a follow-up to Alice for Friday 9am”schedule_email |
| Cancel a scheduled email | “cancel the Friday follow-up to Alice”cancel_scheduled_email |
Career Cafes
| What you ask | Example phrasing |
|---|---|
| Add to a cafe | “add Alice to the product design cafe, great candidate but wrong role”add_to_cafe |
| Post to a cafe | “post to the engineering cafe: we're hiring three roles next month”create_cafe_post |
| Approve or decline a cafe applicant | “approve Bill's application to the product cafe”review_cafe_application |
Bulk actions
| What you ask | Example phrasing |
|---|---|
| Move many at once | “move the 12 longlisted designers to phone screen”bulk_move_stage |
| Reject many at once | “reject everyone below 3 stars on the backend role”bulk_reject |
| Email many at once | “email all 18 phone-screen candidates about the delayed timeline”bulk_send_email |
| Add many to a cafe | “add all the rejected product designers to the design cafe”bulk_add_to_cafe |
Scheduling and reminders
| What you ask | Example phrasing |
|---|---|
| Set a reminder | “remind me to follow up on Alice's references on Thursday”create_reminder |
| Schedule a call | “book a 30 minute call with Alice tomorrow at 11”schedule_call |
| Schedule a meeting | “schedule a hiring sync with Sam and Jo next Monday”schedule_meeting |
Team, automations, and admin
| What you ask | Example phrasing |
|---|---|
| Invite a teammate | “invite sam@acme.com as a hiring manager”invite_team_member |
| Create an automation | “auto-reject applications with no resume attached”create_automation |
| Update an automation | “update the auto-reject rule to skip cafe members”update_automation |
| Turn an automation on or off | “disable the auto-reject rule for now”toggle_automation |
| Delete an automation | “delete the old auto-move rule”delete_automation |
| Create a webhook | “add a webhook to https://acme.com/hooks/silky for interview events”create_webhook |
| Delete a webhook | “remove the old Slack webhook”delete_webhook |
| Update the brand voice | “update the brand voice to say we write short and direct”update_brand_voice |
Views, review queue, and account
| What you ask | Example phrasing |
|---|---|
| Save a search as a view | “save this search as 'senior engineers in review'”save_current_view |
| Resolve a review queue item | “mark that review item resolved”resolve_review_item |
| Show plan upgrade options | “show me the upgrade options”upgrade_plan |
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.
| Command | What 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 and most include one-click buttons so you can act from Slack.
application_received- Candidate
- Alice Smith
- Source
- Careers page
- Quick score
- 8.2 (top band)
application_scored- Role
- Senior backend engineer
- Band
- Top
- Why
- Strong Go background, shipped payments infra at previous role.
interview_scheduled- Role
- Senior backend engineer
- When
- Thu 23 Apr, 10:00 AEST
- Interviewer
- Brett Iredale
- Format
- Technical screen (45 min)
scorecard_submitted- Interviewer
- Brett Iredale
- Score
- 4 / 5
- Recommendation
- Advance to HM interview
reference_red_flag- Referee
- Priya (ex-manager)
- Flag
- Would not rehire. Concerns raised about reliability under deadline pressure.
offer_sent- Role
- Senior backend engineer
- Start date
- 12 May
- Hiring manager
- @brett
weekly_digest- 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
interview_feedback_nudge- Interview
- Technical screen, 24 hours ago
- Interviewer
- Brett Iredale
Conversational threading
When a card is posted for Alice Smith, everything else about Alice lands in that thread. Scorecards, offer updates, notes. 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.
DM preferences
Each user controls what they get DM'd about from their own settings page at app.silky.so/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. The UI for this ships shortly; until then you can set it 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 app.silky.so/settings/slack and choose which events you want DM'd.