Skip to content

Workflows

Workflows automate the repetitive parts of your hiring process so your team can focus on decisions rather than tasks. Every workflow starts from a trigger, an event that just happened inside Skima AI, and runs a chain of steps in response. Once published, it runs automatically every time the trigger condition is met with no manual input required.

Your Flows Dashboard

  1. Navigate to 'Workflows' from the left sidebar to open the flows dashboard. The header shows how many flows are currently live and the total workflow count.

  2. Three status tabs filter the list: 'All', 'Live', and 'Draft'. A search bar lets you find a specific flow by name.

  3. Each flow card shows the flow name and status badge, the trigger it runs on, the run limit, when it was last updated, and the current version. Below that, four metrics track execution health.

  • Entered is the total number of times the trigger fired and a run began.
  • Advanced is how many runs progressed through at least one step successfully.
  • In Progress is how many runs are currently executing.
  • Need Attention is how many runs hit a system error and require manual review.
  1. A flow set to no limit can run on the same entity multiple times. For example, if an application is re-scored after a rubric change, the workflow fires again for the same application.

Three icons appear on live flow cards. 'Pause' stops new executions immediately, lets in-progress runs finish, and unlocks the flow for direct editing. 'Runs' opens the execution history and analytics view. 'Clone' creates a copy as a new draft. 'Delete' permanently removes the flow.

Flow Detail View

Clicking a flow card opens the flow detail view, which shows how executions have moved through the workflow over the selected time window.

  1. The header shows four summary metrics: Entered Funnel, Completed (as a percentage of entrants), In Progress, and Needs Attention.

  2. Use the version dropdown to switch between historical versions of the flow. A new version is created every time the flow is edited. The number in brackets beside the version label shows the run count for that version. For example, v4 (4) means version 4 ran 4 times.

  3. Use the time window dropdown to filter metrics to the last 7, 30, or 90 days. Click 'Export' to download the run data.

  4. The canvas shows the flow as a visual funnel. Each step shows how many runs entered it and how many continued. A color legend identifies four run states:

  • Moved on means the run passed through this step and continued.
  • Branch outcome means the run took a specific branch from this step.
  • Waiting means the run is paused at this step.
  • System error (action needed) means the run failed at this step.
  1. Click 'View candidates' on any step to open the step detail page. This lists every candidate who reached that step, their document, error message, uploader, notification sent, and status. Candidates are filtered into four tabs: 'Waiting', 'Couldn't run', 'Cleared', and 'All'.
Info

Errors at most steps do not block candidates from continuing. The step detail page confirms when this applies.

Building a Flow

Click '+ New flow' from the dashboard.

Build with AI

Type a plain-English description of what you want the flow to do and click 'Build my flow'. Skima AI reads your description and builds a first draft with the trigger and steps already configured. You can change anything after.

The prompt field accepts up to 10,000 characters. Mention checks, scores, thresholds, must-haves, and actions and Skima maps each one to a step. Example prompts are available in the builder to help you get started. See Common Workflows below.

Start from a Template

Click 'Start from a template' to pick from 5 pre-built recruitment workflows. Each template is a proven flow you can adjust to match your setup. This is the fastest way to get something working without building from scratch.

Start from Scratch

Click 'Start from scratch' to open the trigger selection screen. This shows every available trigger as a card with a description of when it fires and what it is best used for. Click the trigger that starts your flow to open the builder canvas. A TRIGGER card is already placed at the top. Click each '+ Unfinished, add a step' placeholder to open the 'Add a step' panel and build the flow step by step.

Click 'Save Draft' at any point to save progress without publishing.

Publish a Flow

When the flow is ready, click 'Publish' in the top right of the builder. A Flow published confirmation modal shows a health summary including the step count and a warning if no failure alert step has been added. Click 'Done' to close the modal. The flow is now live.

Edit a Live Flow

Live flows cannot be edited directly. To make changes:

  • Click 'Pause' on the flow card to stop new executions and make the flow editable directly. Runs already in progress complete normally.
  • Or click 'Clone' to copy the flow as a new draft, edit the clone, and publish it as a separate flow.
Note

Pausing is the better option when you need to update an existing flow and keep its run history intact. Cloning is better when you want to test a different version without affecting the live one.

Common Workflows

Each example below includes a prompt you can paste directly into the AI builder, or a condensed set of steps for the flow-specific configuration if you prefer to build manually. Generic steps like opening the builder and clicking 'Publish' are covered above and not repeated here.


Auto-Shortlist on Score

High-scoring candidates sit unreviewed while recruiters are busy elsewhere. By the time someone opens the pipeline, strong candidates have already moved on.

Paste this into the AI builder:

"When a candidate is scored, check if their match score is 75 or above. If yes, change their status to Shortlisted and send them a shortlisting confirmation email. If no, do nothing."

Or configure manually:

  • Trigger: Candidate Scored
  • Step 1: Check a Condition — Match score is greater than or equal to 75
  • Met branch: Change Candidate Status to Shortlisted, then Send Email with a shortlisting confirmation template
  • Not Met branch: leave terminal or connect to Reject Low Scorers
Tip

Start your threshold at 75 and adjust after a few weeks of runs once you see how your pipeline distributes.


Reject Low Scorers Automatically

Low-scoring candidates wait weeks for a rejection that never comes, which damages your employer brand and clutters the pipeline.

Paste this into the AI builder:

"When a candidate is scored, check if their match score is below 40. If yes, change their status to Rejected and send them a rejection email."

Or configure manually:

  • Trigger: Candidate Scored
  • Step 1: Check a Condition — Match score is less than 40
  • Met branch: Change Candidate Status to Rejected, then Send Email with a rejection template
  • Not Met branch: leave terminal or connect to Auto-Shortlist on Score
Note

If you run both Auto-Shortlist and Reject Low Scorers, consider combining them into a single flow using one condition step with three bands: above shortlist threshold, below rejection threshold, and the band in between for manual review.


Parse Failure Alert

When a resume fails to parse, no candidate is created in the system and no one knows it happened unless they happen to notice. Failures accumulate silently.

Paste this into the AI builder:

"When a resume fails to parse, send a notification email to the ops lead so the file can be re-uploaded or the candidate added manually."

Or configure manually:

  • Trigger: Resume Parsing Failed
  • Step 1: Notify Members of Parsing Failure — select the team members who should be alerted
  • Emails Sent branch: optionally add a Slack Notification as a backup alert
Tip

Keep this flow live at all times. Parse failures are unpredictable and the sooner someone knows, the sooner the candidate can be recovered.


AI Interview on Apply: End to End

Most of the early recruitment funnel is handled manually and sequentially. This workflow automates every stage except the final hiring decision so human attention is only needed when it actually matters.

When a candidate is scored against the job rubric, the workflow checks whether they clear a minimum threshold. Those who do not are rejected automatically. Those who do receive an AI interview link. Once they complete the interview, the result is evaluated and the candidate is either shortlisted for hiring manager review or rejected. The hiring manager makes the final call.

Paste this into the AI builder:

"When a candidate is scored, check if their match score is 50 or above. If below, reject them and send a rejection email. If above, send them an AI interview link. Wait for the interview to be completed. Then check if their interview score is 80 or above. If below, reject them and send a post-interview rejection email. If above, change their status to Shortlisted, send their application to the hiring manager for review, and wait for the hiring manager to respond. If approved, move them to the interview pipeline stage. If rejected, change their status to Rejected."

Or configure manually:

  • Trigger: Candidate Scored
  • Step 1: Check a Condition — Match score is greater than or equal to 50
  • Not Met branch: Change Candidate Status to Rejected, then Send Email with a rejection template. Branch ends here.
  • Met branch:
    • Send AI Interview Link
    • Wait for a Signal — set signal to ai_interview.completed, timeout 5 days. On timeout: optionally send a reminder or close the application.
    • Check a Condition — AI interview score is greater than or equal to 80
    • Not Met branch: Change Candidate Status to Rejected, then Send Email with a post-interview rejection template. Branch ends here.
    • Met branch:
      • Change Candidate Status to Shortlisted
      • Request Hiring Manager Review for Candidate — configure the hiring manager and link expiry
      • Wait for Hiring Manager to Respond
      • Approved branch: Move to Pipeline Stage to your interview or offer stage
      • Rejected branch: Change Candidate Status to Rejected, optionally Send Email
Warning

This flow has multiple gates and branches. Test it with a small batch of applications before setting it live across all roles. Use the flow detail view after the first few runs to confirm candidates are routing correctly at each branch.

Note

The hiring manager step requires the job to have a hiring manager assigned. If none is set, the 'Wait for Hiring Manager to Respond' step will stall. Confirm your job setup before publishing.


Rediscovery on Job Publish

A new job goes live and the team immediately starts sourcing from scratch, not realising there are already strong matching candidates sitting in the database from previous roles.

When a job is published, the workflow runs a rediscovery search across your entire candidate database. Strong matches are automatically linked to the new job and the recruiter is notified. The recruiter opens the pipeline to find warm, pre-scored candidates already waiting.

Paste this into the AI builder:

"When a job is published, run a rediscovery search for matching candidates. Load the results and link any candidate scoring above 70 to the job. Then notify the recruiter that rediscovery matches are ready to review."

Or configure manually:

  • Trigger: Job Published
  • Step 1: Run Rediscovery
  • Step 2: Wait for Background Job
  • Step 3: Get Rediscovery Results
  • Step 4: Auto-Match Candidate to Best Jobs — set threshold to 70
  • Step 5: Email Recruiter or Send In-App Notification
Tip

This flow pairs well with Auto-Shortlist on Score. Once rediscovered candidates are linked and scored, the shortlisting flow picks them up automatically.


Triggers Reference

View more
TriggerWhen it firesKey context provided
New CV UploadedA resume is uploaded and processedCandidate, document
Resume Parsing FailedA resume fails to parseDocument, error reason
Candidate AppliedA candidate submits an applicationCandidate, application, job, source
Candidate ScoredA candidate's application receives a scoreCandidate, application, job, score
Application Status ChangedAn application's status changesCandidate, application, job, new status
Candidate Replied to OutreachA candidate replies to an outreach campaignCandidate, reply content
Interview BookedA candidate books an interviewCandidate, application, job
AI Interview CompletedA candidate finishes their AI interviewCandidate, application, job
Job Approval CompletedA hiring manager reviews all jobs sent for approvalJob, approval outcome
Candidate Approval CompletedA hiring manager reviews all candidates sent for approvalCandidate, application, approval outcome
Job Made ActiveA job's status becomes Active. Can fire more than once per job.Job
Job PublishedA job is publishedJob
Webhook ReceivedAn inbound webhook is received from a connected integration. Restricted to specific accounts.Payload from external system

Actions Reference

View more

Checks and Decisions

ActionWhat it does
Check a ConditionEvaluates a data point against a threshold and routes the workflow down a met or not-met path.
Detect Reply IntentUses AI to classify a candidate's reply as interested, uncertain, or disinterested and routes accordingly.

Communicate

ActionWhat it doesGated
Send EmailSends a pre-written email template to the candidate.No
Email RecruiterSends a templated email to the recruiter assigned to the job. Skipped if no recruiter is assigned.No
Notify Recruiter After Hiring Manager ApprovalSends a templated email to the recruiter who initiated an HM approval request once all candidates have been reviewed.No
Notify Members of Parsing FailureSends a templated email to a fixed list of members whenever a resume fails to parse.No
Send AI Interview LinkSends the candidate a link to book and complete an AI-conducted interview.AI Interviews
Enroll in a CampaignEnrolls the candidate in an existing outreach campaign.No
Request Hiring Manager Review for JobsSends a job to a hiring manager for review and decision.No
Request Hiring Manager Review for CandidateSends a specific candidate's application to a hiring manager for review and decision.No
Send In-App NotificationSends a notification to one or more recruiters' in-app bell feeds.No

Update Records

ActionWhat it doesGated
Move to Pipeline StageMoves the candidate to a specific pipeline stage. Optionally syncs to ATS.No
Change Candidate StatusUpdates the candidate's application status. Optionally syncs to ATS and accepts a comment.No
Link Candidate to a Specific JobCreates an application linking this candidate to a chosen job.No
Auto-Match Candidate to Best JobsLinks the candidate to every open job scoring above a configured threshold. Default threshold is 70.No
Add Candidate to a ListAdds the candidate to a saved list for tracking or outreach.No
Update Custom FieldSets the value of a custom field on the candidate, job, or application.No
Assign Recruiter to JobAssigns a specific recruiter as the owner of the job.No
Create Task for RecruiterCreates a to-do task assigned to a recruiter with a title, priority, and due date.Tasks
Update Job StatusChanges the job's status, for example to Active or Closed.No

Enrich and Discover

ActionWhat it doesGated
Create AI InterviewCreates an AI-conducted interview session for the candidate's application.AI Interviews
Reveal Contact DetailsFinds and reveals the candidate's email, phone, and LinkedIn profile.Enrichment
Find Relevant Jobs for CandidateScores all open jobs for the candidate and loads the best matches into the workflow.No

Wait

ActionWhat it does
Wait a Few DaysPauses the workflow for a set number of days (1 to 30) before continuing.
Wait for a Candidate ReplyWaits for the candidate to reply to an email or campaign. Continues on a replied or no-reply path after a configurable window.
Wait for Hiring Manager to RespondPauses until the hiring manager submits a decision, then continues on approved or rejected path.
Wait for a SignalPauses until a named external signal arrives or times out after a configurable number of hours.

Advanced

ActionWhat it doesGated
Push Score to ATSSends the candidate's Skima AI score to your connected ATS.ATS integration
Push Note to ATSGenerates an AI-written score note and pushes it to your ATS as a candidate note.ATS integration
Run RediscoveryTriggers a search for new candidates matching the job's rubric.Talent Rediscovery
Get Rediscovery ResultsLoads the results of a completed rediscovery search into the workflow.Talent Rediscovery
Find New Matching CandidatesRuns rediscovery, waits for results, and loads matches in a single step.Talent Rediscovery
Wait for Background JobPolls a background job with exponential backoff. Managed automatically with Find New Matching Candidates.No
Update External ATS StageMoves the candidate to a stage directly in your external ATS.ATS integration
Update ATS Custom FieldUpdates a custom field in your connected ATS.ATS integration
Run Custom LogicRuns a custom integration handler specific to your account.Account-specific
Outbound WebhookSends candidate data to an external tool via webhook URL. Requires a valid https:// URL. Supports optional payload, HTTP method, and secret header.No
Suppress OutreachStops all future automated outreach to this candidate across all communication channels. Optionally provide a reason.No
Slack NotificationPosts a message to a Slack channel via webhook URL. Supports context key interpolation using .No