Lovelio in Slack
Describe a role. Review the pipeline. Submit candidates to clients. Ask anything about your hiring. All from the channel your team already reads.
Everything Lovelio can do, in Slack
Lovelio has one set of hiring actions. The same set whether you invoke them from the dashboard, from an AI agent over MCP, from the API, or from Slack. You can do everything in Slack that you can do in Lovelio.
Install
Go to Settings > Integrations in the Lovelio dashboard and press Install Lovelio 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.
Lovelio 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 Lovelio with a confirmation. The default channel starts receiving activity immediately.
channels:read, chat:write, commands, im:write, users:readTalking to Lovelio
Mention @lovelio in a channel where it is invited, or send it a direct message (DM). Ask in plain English. Lovelio reasons over your data, takes the action, and confirms anything destructive or bulk before it happens.
Lovelio 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 @lovelio; you get a one-click confirmation card with fields Lovelio 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.
Everything you can do in Slack
If it is in the Lovelio action registry, it works in Slack. Here is the full list, grouped by what you are trying to do. Phrase it however you like. Lovelio understands plain English.
Jobs and advertising
| What you ask | Example phrasing | Slack tier |
|---|---|---|
| Create a new role | “new senior backend engineer in London, remote, around GBP 120k”describe_a_job | Rich |
| Fill in missing details | “set the team to Payments and the hiring manager to Sarah Patel”update_job_draft | Rich |
| Tweak a draft | “make it punchier and bump salary to GBP 140k”revise_job_draft | Rich |
| Skip a detail | “skip the salary for now”skip_job_draft_gap | Rich |
| Create the job | “looks good, create it”confirm_job_draft | Rich |
| Peek at a draft | “show me what the draft looks like so far”get_job_draft | Rich |
| Check creation progress | “how's that job coming along?”get_job_creation_status | Rich |
| Update a role | “change the title on the backend job to staff backend engineer”update_job | Conversational |
| Close a role | “close the senior backend role, the client filled it internally”close_job | Not in Slack |
| Reopen a role | “reopen the senior backend engineer role”reopen_job | Not in Slack |
| Delete a role | “delete the old data engineer draft”delete_job | Not in Slack |
| Publish a public ad | “publish the careers page ad for the senior backend role”create_job_ad | Conversational |
| Edit the ad | “make the ad shorter and emphasise remote flexibility”update_job_ad | Rich |
| Rewrite the ad with AI | “make 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 posts | “shorten the LinkedIn post and add a hashtag”update_social_draft | Rich |
Candidates
Drag a CV (PDF or DOCX) into a Lovelio DM and Lovelio 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 ask | Example phrasing | Slack tier |
|---|---|---|
| Add a candidate | “create a candidate Bill Jones, email bill@jones.com, Head of Sales at Acme”create_candidate | Rich |
| Create from a CV upload | “drag a PDF or DOCX into the DM”prepare_candidate_from_cv | Rich |
| Peek at a candidate draft | “show me the draft from the CV I just uploaded”get_candidate_draft | Rich |
| Fix a parsed field | “change the email on the draft to alice@example.com”update_candidate_draft | Rich |
| Create the candidate | “looks right, create it”confirm_candidate_draft | Rich |
| Update a candidate | “update Bill Jones, his new phone is +44 7700 900000”update_candidate | Conversational |
| Capture what they want | “Bill Jones is open to contract work and wants to move to Sydney”update_candidate_preferences | Conversational |
| Pull preferences from the notes | “read the notes on Bill Jones and update his preferences”extract_candidate_preferences | Conversational |
| Tag a candidate | “tag Bill Jones as ex-McKinsey”update_candidate_tags | Conversational |
| Record that someone agreed to WhatsApp | “Priya Shah said yes to WhatsApp messages”record_whatsapp_consent | Conversational |
| Merge duplicates | “merge the two Bill Jones records into one”merge_candidates | Not in Slack |
| Find matches in your database | “who in our database fits the pre-sales role?”match_candidates_to_job | Not in Slack |
| Remove a candidate | “delete that duplicate Bill Jones record”delete_candidate | Not in Slack |
Candidate evidence
Check a named candidate group against a job or explicit requirements. Lovelio returns a saved link for progress and the full evidence matrix in the dashboard. Checks continue in the background. Supported, contradicted, not established and uncertain stay distinct. Packs keep gaps and conflicting source quotes; preparing one does not send a submission or email, reject anyone, or change a stage.
| What you ask | Example phrasing | Slack tier |
|---|---|---|
| Check a group against requirements | “check the Property Management talent pool against Acme's Senior Property Manager job and give me the saved review link”evaluate_candidate_evidence | Conversational |
| Prepare reusable evidence | “prepare submission evidence for Sarah against Acme's Senior Property Manager job, without sending it”prepare_evidence_pack | Conversational |
Clients
Clients are the companies you recruit for. Create one with just a website and Lovelio fills in the logo, industry, and Client DNA from their public footprint.
| What you ask | Example phrasing | Slack tier |
|---|---|---|
| Add a client | “add acme.com as a client”create_client | Conversational |
| Update a client | “update Acme's industry to fintech”update_client | Not in Slack |
| Set client fee terms | “set Acme to 12 percent across the board - they run a panel”set_client_fee_terms | Not in Slack |
| Remove a client | “delete the Acme client record”delete_client | Not in Slack |
| Add a contact | “add Sarah Patel, Head of People, sarah@acme.com as a contact on Acme”add_client_contact | Not in Slack |
| Update a contact | “change Sarah Patel's phone on the Acme record”update_client_contact | Not in Slack |
| Make a works-here person a contact | “make Leon Wood a contact at The Drug Detection Agency”promote_client_contact | Not in Slack |
| Remove a contact | “remove Sarah Patel from the Acme contacts”delete_client_contact | Not in Slack |
| Email a contact | “email Sarah Patel at Acme - subject and body required, you approve the copy”email_client_contact | Not in Slack |
| Refine a client DNA | “note on Acme: they now weight team leadership over solo shipping”add_client_dna_note | Not in Slack |
| Add a recruiter to a client | “add Tom to the recruiters on Acme”add_client_recruiter | Not in Slack |
| Remove a recruiter from a client | “take Tom off the Acme recruiter list”remove_client_recruiter | Not in Slack |
| Add a site to a client | “add 12 George St, Sydney NSW 2000 as a site on Acme”create_client_site | Not in Slack |
| Remove a site from a client | “remove the Parramatta site from Acme”remove_client_site | Not in Slack |
| Ask about a client | “how long does Acme take to reply to submissions?”ask_client | Not in Slack |
| Ask about a candidate | “what is our history with Jane Doe?”ask_candidate | Not in Slack |
| Ask about a job | “how is the Data Engineer role tracking?”ask_job | Not in Slack |
| Ask a data question | “show me my top ten clients by billing”ask_analytics | Not in Slack |
| Run a BD report | “run the quiet clients report”run_report | Conversational |
| Handle a BD opportunity | “mark that Acme funding signal as handled”update_bd_opportunity | Conversational |
| Dismiss a BD lead | “dismiss the Acme Robotics lead - not our patch”dismiss_bd_lead | Not in Slack |
| Add a BD lead as a client | “we won the Acme conversation - add the lead as a client”convert_bd_lead | Not in Slack |
| Describe your patch | “our patch is commercial property, Canberra, mid to senior - no government”update_bd_patch | Not in Slack |
| Watch a company's careers page | “watch the careers pages of Acme and careers.birch.com.au”watch_companies | Not in Slack |
| Stop watching companies | “stop watching Acme and Birch - not our patch any more”stop_watching_companies | Not in Slack |
| Create a job from a new ad | “create the job from Acme's Senior Property Manager ad”create_job_from_careers_ad | Not in Slack |
| Make someone at a watched company a contact | “make Priya Shah at Acme a contact”add_watched_company_contact | Not in Slack |
| Give Lovelio a careers page it could not find | “the careers page for Acme is acme.workable.com”set_careers_link | Not in Slack |
Submissions
Send a submission of candidates on a job to the client contact. The client gets a link that opens straight from the email, where they request interviews, pass with a reason, or ask questions. Client responses update the application and notify the consultant. AI drafts the per-candidate summary for any candidate you did not write one for, and sending moves triage candidates to Submitted automatically.
| What you ask | Example phrasing | Slack tier |
|---|---|---|
| Submit candidates to a client | “submit Alice and Bob on the Senior PM role to Acme”create_submission | Not in Slack |
| Answer a client question | “answer Sarah's question on Alice: yes, she is open to hybrid”answer_submission_question | Not in Slack |
| Follow up with a quiet client | “nudge Sarah about the Senior PM submission - subject and body required, you approve the copy”chase_submission | Not in Slack |
| Record the client's verdict | “Sarah passed on Alice over the phone - location, she needs someone closer to the office”record_client_verdict | Not in Slack |
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 @lovelio 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 moves the candidate to Screen, reject sends the rejection email, hold / no show leave the stage alone.
| What you ask | Example phrasing | Slack tier |
|---|---|---|
| Attach a candidate to a job | “attach Sarah Chen to the Senior PM role”create_application | Conversational |
| Move to a new stage | “move Alice Smith to Yes”move_stage | Conversational |
| Reject a candidate | “reject Jamie Lee with reason 'moving ahead with a closer fit'”reject_candidate | Rich |
| Record a withdrawal | “mark Alice as withdrawn, she took another offer”withdraw_application | Not in Slack |
| Reassign owner or source | “assign Alice's application to Sam”update_application | Not in Slack |
| Add a note | “note on Alice: strong reference from her old manager”add_note | Conversational |
| Log a call | “log a call with Alice - connected, keen to move for the right role”log_call | Not in Slack |
| Log a phone screen | “just screened Alice, she was great, advance her”prepare_phone_screen | Rich |
| Peek at the phone screen draft | “show me the phone screen draft for Alice”get_phone_screen_draft | Rich |
| Update a phone screen draft | “change the phone screen outcome to hold”update_phone_screen_draft | Rich |
| Confirm a phone screen log | “confirm the phone screen log for Alice”confirm_phone_screen_draft | Rich |
| Send an AI voice screen | “send Alice the AI screen for the sales role”send_ai_voice_screen | Not in Slack |
| Turn AI screening on for a job | “screen every applicant on the pre-sales role automatically”set_ai_screening | Not in Slack |
Interviews
Scorecards open a rich Slack card with one input per section from your interview form, an overall recommendation radio, and a feedback textarea. Pre-fill scores in the prompt ("scorecard on Alice: strong hire, 4 out of 5 on system design") and the card opens with those values filled in and ready to confirm. The confirm button submits your own interviewer form, so another interviewer cannot overwrite it, and updates the interview outcome once. The Submit scorecard CTA on the 24-hour interview_feedback_nudge card also uses this flow.
| What you ask | Example phrasing | Slack tier |
|---|---|---|
| Schedule an interview | “schedule an interview with Alice on Monday 2pm”schedule_interview | Rich |
| Start a video call | “start a video call for Alice's interview”start_video_call | Not in Slack |
| See free interview times | “find interview times for Alice with me and Sam, 1 hour”propose_interview_slots | Not in Slack |
| Request an interview (Yes applicants only) | “request an interview with Alice, offer her three times next week”request_interview | Not in Slack |
| Draft an interview with Lovelio | “book a video interview with Alice, 30 min, Monday 3pm”prepare_schedule_interview | Rich |
| Read the current interview draft | “show me the Alice interview draft”get_interview_draft | Rich |
| Edit an interview draft | “change the Alice interview to Tuesday at 10am, 45 min”update_interview_draft | Rich |
| Book the drafted interview | “confirm the Alice interview”confirm_interview_draft | Rich |
| Reschedule | “move Alice's interview to Tuesday at 10am”reschedule_interview | Rich |
| Draft a reschedule with Lovelio | “prepare to move Alice's interview, her manager is away”prepare_reschedule_interview | Rich |
| Cancel | “cancel Alice's Monday interview, the interviewer is sick”cancel_interview | Rich |
| Draft a cancel with Lovelio | “prepare to cancel Alice's interview, the role paused”prepare_cancel_interview | Rich |
| Read a reschedule / cancel draft | “show me the Alice reschedule draft”get_interview_action_draft | Rich |
| Edit a reschedule / cancel draft | “set the Alice reschedule to Wednesday 3pm”update_interview_action_draft | Rich |
| Confirm a reschedule / cancel | “confirm Alice's reschedule”confirm_interview_action_draft | Rich |
| Record the outcome | “Alice passed her hiring manager interview”update_interview_outcome | Conversational |
| Send the post-interview follow-up | “send Alice the follow-up on her client interview - you approve the copy, nothing sends itself”send_interview_followup | Not in Slack |
| 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 draft | “show me the scorecard draft for Alice”get_scorecard_draft | Rich |
| Fix a score inline | “change the communication score on that draft to 5”update_scorecard_draft | Rich |
| Submit the drafted scorecard | “submit the scorecard for Alice”confirm_scorecard_draft | Rich |
| Submit one-shot scorecard | “submit scorecard for interview ivw_abc123 with recommendation hire, notes "strong SQL"”submit_scorecard | Rich |
| Open the AI interview form | “prepare the interview form for Alice's tech round”prepare_interview_form | Not in Slack |
| Read an interview form draft | “show me the interview form for Alice's tech round”get_interview_form_draft | Not in Slack |
| Score an interview section | “score the technical depth section 4 out of 5 with notes "clear ownership signal"”update_interview_form_draft | Not in Slack |
| Submit the interview form | “submit Alice's interview form with recommendation hire”confirm_interview_form_draft | Not in Slack |
Forms and references
| What you ask | Example phrasing | Slack tier |
|---|---|---|
| Send a screening form | “send Alice the general screening form”send_screening_form | Conversational |
| Send a reference request | “ask Alice's referee Jane Doe for a reference”send_reference_request | Conversational |
| Request references | “ask Alice for 2 referees”request_referee_details | Not in Slack |
| Add a referee | “add John Smith (john@acme.com, former manager) as Alice's referee”add_referee | Conversational |
| Email the reference form to every referee | “email the reference form to all of Alice's referees”send_referee_questionnaires | Conversational |
| Send finished references to the client | “send Alice's references to the client”send_references_to_client | Conversational |
| Send a form | “send Alice the onboarding form”send_form | Not in Slack |
Offers and placements
In agency perm the client makes the offer, so Lovelio keeps this light: log the offer when it goes out (moves the candidate to Offer), then log the placement when they accept (moves them to Placed and records salary, fee, start date, and guarantee). Fee percent and guarantee default off the client's standard terms.
| What you ask | Example phrasing | Slack tier |
|---|---|---|
| Log an offer | “the client made Marcus an offer at 115k”log_offer | Conversational |
| Record the offer outcome | “Marcus accepted the offer, starting 1 October”record_offer_outcome | Not in Slack |
| Log the placement | “Marcus accepted, 115k AUD starting 1 May”create_placement | Conversational |
| Update a placement | “change the fee on the Marcus placement to 22 percent”update_placement | Not in Slack |
| Track the guarantee | “mark the Marcus placement as started”mark_placement_status | Conversational |
| Split the credit | “split the Marcus placement 60/40 between Sallie and Bruce”set_placement_credits | Not in Slack |
| Say what happens when a contract ends | “the Marcus contract is going perm”update_placement | Not in Slack |
| Set who approves timesheets | “Sarah Patel approves timesheets on the Marcus contract”set_placement_timesheet_approvers | Not in Slack |
| Check a contractor's documents | “what does Marcus still need for the Acme contract?”get_placement_papers | Conversational |
| Save a document you have checked | “Marcus has a police check dated 3 March 2026”save_paper | Conversational |
| Mark a document not needed | “the Acme contract does not need a white card”waive_paper | Conversational |
| Record how a contractor is paid | “Marcus invoices under ABN 51 824 753 556”set_candidate_contracting_profile | Not in Slack |
| Set a quota target | “set the perm desk target to 300k for this quarter”set_quota_target | Conversational |
| Adjust a quota figure | “credit Sallie 10k this quarter, the Meridian deal carried over”add_quota_adjustment | Conversational |
| Send a placement check-in | “send Marcus his start-day note - you write or approve the copy, nothing sends itself”send_placement_email | Not in Slack |
| Ask a contractor when they are free | “draft an email asking Marcus if he is free after his contract ends - you send it from the placement”draft_availability_check | Conversational |
| See who is free for a contract job | “who fits the Acme payroll contract and is free by 16 Nov?”find_free_for_job | Conversational |
| Ask everyone on the free list | “draft asks for everyone on the Acme contract list not confirmed this week”draft_job_availability_asks | Conversational |
| Send the availability asks | “send those asks - you read every one first, nothing sends itself”send_availability_asks | Not in Slack |
| See who to check in with | “which contractors should I check in with this week?”list_contractor_check_ins | Conversational |
| Draft the weekly check-ins | “draft check-ins for my contractors - you read and send them from the Contractors page”draft_contractor_check_ins | Conversational |
| See the contract forecast | “what GP do our contractors make over the next 13 weeks, by team?”get_contractor_report | Conversational |
| See contracts ending with no plan | “which contracts end in the next 8 weeks with no plan?”list_extension_asks | Conversational |
| Ask the client and the contractor | “draft extension asks for my contracts ending with no plan - you read and send them from the Contractors page”draft_extension_asks | Conversational |
| Get a contractor's page link | “give me Priya's page link so I can text it to her”get_contractor_page_link | Conversational |
| Send the extension asks | “send those extension asks - you read every one first, nothing sends itself”send_extension_asks | Not in Slack |
| Spec a candidate to a client | “spec Marcus to Acme - an anonymous profile, your terms attached, and you approve every word before it sends”send_spec | Not in Slack |
| Nudge about a quiet spec | “nudge Acme about the spec I sent last week - you approve the copy, nothing sends itself”chase_spec | Not in Slack |
| Convert an interested spec | “Acme wants to meet the specced QS - create the job and put them straight at submitted”convert_spec | Not in Slack |
| Answer a spec question | “answer Acme's question on the specced QS: yes, they can start in four weeks”answer_spec_question | Not in Slack |
Marketplace splits
Share hard-to-fill jobs and unplaceable great candidates with other Lovelio agencies and split the fee. Listings are anonymous - the client and the candidate are never named; your agency is. The split you declare (50/50 up to 80/20) is locked into the deal when you accept an intro. Lovelio takes no share of the fee.
| What you ask | Example phrasing | Slack tier |
|---|---|---|
| Share a job to the marketplace | “share the senior QS role to the marketplace on a 50/50 split - the client is never named”share_job_to_marketplace | Not in Slack |
| Share a candidate to the marketplace | “share Marcus to the marketplace - anonymous until you accept an intro, and he has to know first”share_candidate_to_marketplace | Not in Slack |
| Manage a marketplace listing | “pause, renew, withdraw, or mark a listing filled - expired listings never linger”update_marketplace_listing | Not in Slack |
| Put a candidate forward for a marketplace job | “put your best QS forward on another agency's listing - anonymous until they accept, and you attest the candidate agreed”submit_to_marketplace_job | Not in Slack |
| Request a marketplace candidate | “ask the agency behind a listed candidate for an intro, with the role you have in mind”request_marketplace_candidate | Not in Slack |
| Respond to a marketplace intro | “accept to form the deal and reveal identity, decline with a reason, or withdraw your own pending intro - the prior-knowledge check runs before any reveal”respond_to_marketplace_intro | Not in Slack |
| Update a marketplace deal | “add the revealed candidate to one of your jobs, record the share paid/received on a placed deal, or close an unplaced deal with a reason the other agency reads - facts both sides see; Lovelio never moves the money”update_marketplace_deal | Not in Slack |
| Send a listing to an outside agency | “a tokenised link for a split partner who is not on Lovelio - they see the anonymous listing and answer with one click”send_marketplace_listing | Not in Slack |
Email and comms
| What you ask | Example phrasing | Slack tier |
|---|---|---|
| Email a candidate | “email Alice to ask about her notice period”send_email | Rich |
| Schedule an email | “schedule a follow-up to Alice for Friday 9am”schedule_email | Rich |
| Cancel a scheduled email | “cancel the Friday follow-up to Alice”cancel_scheduled_email | Rich |
| Draft a candidate email with Lovelio | “draft a warm reject for Ben, mention our design cafe”prepare_compose_email | Rich |
| Read the current email draft | “show me the draft email for Alice”get_email_draft | Rich |
| Edit an email draft | “change the subject on the Alice draft to "Catch up Friday"”update_email_draft | Rich |
| Rewrite an email draft | “make the Alice draft warmer and a paragraph shorter”revise_email_draft | Rich |
| Send or schedule the drafted email | “send 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 ask | Example phrasing | Slack tier |
|---|---|---|
| Create a talent pool | “set up a talent pool for product design”create_talent_pool | Conversational |
| Delete a talent pool | “delete the product design talent pool”delete_talent_pool | Conversational |
| Add to a talent pool | “add Alice to the product design talent pool, great candidate but wrong role”add_to_talent_pool | Conversational |
| Remove from a talent pool | “take Alice out of the product design pool”remove_from_talent_pool | Conversational |
| Ask if still looking | “ask Alice if she is still looking, from the product design pool”ask_pool_member_if_looking | Conversational |
| Record if still looking | “Alice told me on the phone she is not looking any more”set_pool_member_interest | Conversational |
| Approve a join request | “approve Bill's request to join the product talent pool”approve_join_request | Conversational |
| Decline a join request | “decline Bill's request to join the product talent pool”decline_join_request | 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 ask | Example phrasing | Slack tier |
|---|---|---|
| Reject many at once | “reject everyone below 3 stars on the backend role”bulk_reject | Rich |
| Email many at once | “email all 18 phone-screen candidates about the delayed timeline”bulk_send_email | Rich |
| Add many to a talent pool | “add all the rejected product designers to the design talent pool”bulk_add_to_talent_pool | Rich |
Scheduling and reminders
| What you ask | Example phrasing | Slack tier |
|---|---|---|
| Set a reminder | “remind me to follow up on Alice's references on Thursday”create_reminder | Conversational |
| Schedule a call | “book a 30 minute call with Alice tomorrow at 11”schedule_call | Conversational |
| Schedule a meeting | “schedule a hiring sync with Sam and Jo next Monday”schedule_meeting | Conversational |
| Reschedule a meeting | “move Derren's meeting tomorrow to Thursday at 2pm”reschedule_meeting | Not in Slack |
| Cancel a meeting | “cancel Derren's meeting tomorrow - no longer needed”cancel_meeting | Not in Slack |
Team and admin
| What you ask | Example phrasing | Slack tier |
|---|---|---|
| Invite a teammate | “invite sam@acme.com as a hiring manager”invite_team_member | Conversational |
| Create a job distribution rule | “post all UK property jobs to propertyroles and referio”create_distribution_rule | Not in Slack |
| Update a distribution rule | “add indeed to the UK property posting rule”update_distribution_rule | Not in Slack |
| Create a webhook | “add a webhook to https://acme.com/hooks/lovelio for interview events”create_webhook | Not in Slack |
| Delete a webhook | “remove the old Slack webhook”delete_webhook | Not in Slack |
| Update the brand voice | “update the brand voice to say we write short and direct”update_brand_voice | Not in Slack |
Views, review queue, and account
| What you ask | Example phrasing | Slack tier |
|---|---|---|
| Save a search as a view | “save this search as 'senior engineers in review'”save_current_view | Not in Slack |
| Resolve a review queue item | “mark that review item resolved”resolve_review_item | Conversational |
| Decide a company or person match Lovelio was not sure about | “accept the Fonterra review”resolve_identity_review | Conversational |
| Settle what a job title means | “in Lovelio, Director has no single function”resolve_occupation_review | Not in Slack |
| Reassign records to another consultant | “move all of Jordan's jobs and clients to Sam”reassign_record | Conversational |
| Change a workflow rule in plain English | “raise the auto-advance threshold to 80 - Lovelio previews the exact change before it saves”update_workflow_rules | Not in Slack |
| Show plan upgrade options | “show me the upgrade options”upgrade_plan | Not in Slack |
| Change your plan | “move us to the 6 to 10 AI Ultra plan - Lovelio confirms the price before anything changes in Stripe”change_plan | Not in Slack |
Expect the list here to grow. If you are not sure whether something is possible, ask Lovelio. It will either do it or tell you it cannot.
Slash commands (optional shortcuts)
If you prefer typing /lovelio 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 |
|---|---|
| /lovelio new job <description> | Describe a role in a sentence or three. Lovelio drafts the spec and asks you to confirm before publishing. /lovelio new job Senior backend engineer, Go or Rust, Sydney or remote AU, ship payments infra |
| /lovelio review <job> | Show the review queue for a job. Candidates with their scores and current stage. /lovelio review Senior backend engineer |
| /lovelio schedule <candidate> | Kick off interview scheduling. Lovelio uses the default interview format for that role. /lovelio schedule Alice Smith |
| /lovelio reject <candidate> [reason] | Reject a candidate. If you do not provide a reason, Lovelio asks for one before it emails them. /lovelio reject Jamie Lee "moving ahead with a closer fit on infra experience" |
| /lovelio note <candidate> <text> | Add a timeline note. Shows up on their profile and in the next digest. /lovelio note Alice Smith strong reference from ex-manager at Canva |
| /lovelio status [job] | Current digest. Funnel, Yes, Submitted, Client Interview, Offer, and Placed. /lovelio status |
| /lovelio share <job> | Post the share-bundle for a role so anyone in the channel can copy the tweet, LinkedIn post, or referral blurb. /lovelio share Senior backend engineer |
| /lovelio help | List every command. /lovelio help |
Event cards
Every event Lovelio thinks you care about posts as a Block Kit card. Each card links to the record and includes the available actions - review a candidate, accept an AI suggestion, reschedule an interview, submit a scorecard - so you can act without leaving Slack. Related updates stay in one Slack thread.
application_received- Candidate
- Alice Smith
- Source
- Careers page
- Quick score
- 8.2 (top band)
talent_pool_join_requestapplication_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.
placement_createdinterview_feedback_nudge- Interview
- Technical screen, 24 hours ago
- Interviewer
- Brett Iredale
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 and placement updates. 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 #lovelio-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
}
}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
Use Slack for quick actions and the dashboard for tables, timelines and comparisons. Both use the same Lovelio actions. 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 @lovelio in the channel and ask 'how many applicants did we see this month?'
- Ask Lovelio to draft a new role: @lovelio new job senior backend engineer Sydney around AUD 180k.
- Open your Slack preferences at /settings/slack and choose which events you want DM'd.