Recruiting Module
The Recruiting module provides a complete Applicant Tracking System (ATS) with AI-powered features for attracting, screening, and hiring top talent.
Overview
Key capabilities:
- Job posting creation and management
- AI-generated job descriptions
- Candidate pipeline management (list + kanban toggle)
- Interview scheduling and feedback (week-calendar view)
- Offer generation, revision, and lifecycle tracking
- Hiring plans with departmental rollups and status badges
- Public careers portal + applicant stepped form (tenant-routed at
{tenant}.sparko.app/careers)
Job Postings
Creating a Job Posting
Navigate to Recruiting > Jobs > Create Job.
Create Job Posting
Job Title *<div style="display: grid; grid-template-columns: 1fr 1fr; gap: 15px;">
<div>
<label style="display: block; font-size: 14px; color: #374151; margin-bottom: 5px;">Department *</label>
<select style="width: 100%; padding: 10px; border: 1px solid #d1d5db; border-radius: 6px;">
<option>Engineering</option>
</select>
</div>
<div>
<label style="display: block; font-size: 14px; color: #374151; margin-bottom: 5px;">Location *</label>
<select style="width: 100%; padding: 10px; border: 1px solid #d1d5db; border-radius: 6px;">
<option>San Francisco, CA</option>
</select>
</div>
</div>
<div style="background: #eff6ff; padding: 15px; border-radius: 8px; border: 1px solid #bfdbfe;">
<div style="display: flex; align-items: center; gap: 10px; margin-bottom: 10px;">
<span style="font-size: 20px;">🤖</span>
<span style="font-weight: 500; color: #1e40af;">AI Job Description Generator</span>
</div>
<p style="font-size: 13px; color: #3b82f6; margin: 0 0 10px 0;">Let AI create a compelling job description based on the role requirements.</p>
<button style="background: #3b82f6; color: white; border: none; padding: 8px 16px; border-radius: 6px; cursor: pointer;">✨ Generate with AI</button>
</div>
<div>
<label style="display: block; font-size: 14px; color: #374151; margin-bottom: 5px;">Job Description</label>
<textarea style="width: 100%; padding: 10px; border: 1px solid #d1d5db; border-radius: 6px; min-height: 150px; box-sizing: border-box;" placeholder="Enter job description or use AI to generate..."></textarea>
</div>
AI Job Description Generator
Click "Generate with AI" to create a professional job description:
- Enter basic job details (title, department, level)
- Add key requirements and nice-to-haves
- AI generates complete description including:
- Role overview
- Responsibilities
- Requirements
- Benefits highlights
- Company culture section
Job Posting Status
| Status | Description |
|---|---|
| Draft | Not yet published |
| Pending Approval | Awaiting manager/executive approval |
| Open | Actively accepting applications |
| Paused | Temporarily not accepting applications |
| Closed | No longer accepting applications |
| Filled | Position has been filled |
Hiring Plan & Approvals
Annual Hiring Plan
The Hiring Plan feature helps you plan and manage your company-wide hiring needs for the year.
Benefits:
- Budget control and headcount planning
- Quarterly hiring goals tracking
- Position prioritization
- Streamlined approval process for planned positions
Creating a Hiring Plan
Navigate to Admin > Recruiting Settings > Hiring Plan (typically done in October-November for the following year):
2025 Annual Hiring Plan
Total Budget $2,500,000 Total Headcount 15 positions Status Active| Position | Department | Salary Range | Quarter | Status |
|---|---|---|---|---|
| Senior Software Engineer | Engineering | $140K - $180K | Q1 | Open |
| Product Manager | Product | $130K - $170K | Q2 | Planned |
Position Details
Each position in the hiring plan includes:
- Job Title & Department: What role and which team
- Salary Range: Min/max compensation with currency
- Location: Office location or remote
- Headcount: Number of positions (1 or more)
- Target Quarter: When to fill (Q1, Q2, Q3, Q4)
- Priority: High, Medium, or Low urgency
- Career Path Link: Tied to role level in career framework
Multi-Approver Workflow
Professional Tier: Basic hiring plan with single approver Business/Enterprise Tiers: Multi-approver workflow with up to 5 approvers
Configuring Approvers
Navigate to Admin > Recruiting Settings > Approvals & Hiring Plan:
Job Approval Workflow
Require Job Approval All new job postings must be approved before posting Default Approvers Ella Brown (CEO) × James Wilson (CHRO) × Sarah Johnson (CFO) × Auto-Post After Approval Automatically publish jobs once all approvals are receivedApproval Process
When a job posting is created:
- Submission: Manager or recruiter creates job posting
- Approval Requests Created: System generates individual approval requests for each approver
- Parallel Review: All approvers see the request simultaneously in their Approvals dashboard
- Approval Context: Each approver sees:
- Job title, department, location
- Salary range (internal only)
- Employment type (full-time, contract, etc.)
- Hiring plan status (in-plan, backfill, ad-hoc)
- Their approval role (dept_head, chro, cfo, etc.)
- Decision: Each approver can:
- ✅ Approve - Move to next step
- ❌ Reject - Request is denied (must provide reason)
- 💬 Request Changes - Ask for revisions
- Auto-Post: Once all approvers approve, job automatically posts if auto-post is enabled
Unified Approvals Dashboard
Navigate to Approvals in the main menu to see all pending items:
Approvals Dashboard
⏳ 7 Total Pending 💼 3 Job Postings 🏖️ 2 Time Off 💼 Senior Software Engineer Engineering • $140K - $180K Review →Tabs:
- All: See everything pending
- Job Postings: Filter by job approvals
- Time Off: PTO requests
- Reviews: Performance reviews
Backfill Detection
Ask the AI assistant something like "is this a backfill for anyone who's left recently?" when creating a job outside the hiring plan, and it can look up employees who are leaving in the next 90 days or left in the last 30 days with a similar title, then suggest using their salary and location as a template. This is a lookup you ask for via the assistant — it does not run automatically when you create a job posting.
Ad-Hoc Hiring
For unplanned positions not in the hiring plan:
- AI Market Research: System can research market salary rates automatically
- Manual Entry: Or enter salary range manually
- Justification Required: Additional approval needed with business case
- Budget Impact: Tracked against overall hiring budget
Candidate Pipeline
Referring someone
Anyone can refer a candidate from Recruiting > Refer a candidate. Alongside their details you can record:
- How you know them. Former colleague, friend, met at an event, and so on.
- Why you're recommending them. A short note for the recruiter.
Both are optional and both reach the recruiter on the candidate's profile, so a referral arrives with the context that makes it worth acting on rather than as a bare name. The note is visible to recruiters reviewing the candidate, so write it as something you'd be comfortable having on the record.
Pipeline View
Navigate to Recruiting > Pipeline for a Kanban-style view of all candidates.
Recruiting Pipeline
Applied 12 Alex Rivera Senior Engineer @ Google AI: 92% match Jordan Kim Engineer II @ Meta AI: 78% match<!-- Screen Column -->
<div style="min-width: 250px; background: white; border-radius: 8px; padding: 15px; border: 1px solid #e5e7eb;">
<div style="display: flex; justify-content: space-between; align-items: center; margin-bottom: 15px;">
<span style="font-weight: 500; color: #374151;">Screen</span>
<span style="background: #e5e7eb; padding: 2px 8px; border-radius: 10px; font-size: 12px;">5</span>
</div>
<div style="display: flex; flex-direction: column; gap: 10px;">
<div style="background: #f9fafb; padding: 12px; border-radius: 6px; border-left: 3px solid #6366f1;">
<div style="font-weight: 500; font-size: 14px; color: #1a1a2e;">Taylor Chen</div>
<div style="font-size: 12px; color: #6b7280;">Staff Engineer @ Stripe</div>
<div style="font-size: 11px; color: #4f46e5; margin-top: 5px;">📞 Call scheduled: Tomorrow</div>
</div>
</div>
</div>
<!-- Interview Column -->
<div style="min-width: 250px; background: white; border-radius: 8px; padding: 15px; border: 1px solid #e5e7eb;">
<div style="display: flex; justify-content: space-between; align-items: center; margin-bottom: 15px;">
<span style="font-weight: 500; color: #374151;">Interview</span>
<span style="background: #e5e7eb; padding: 2px 8px; border-radius: 10px; font-size: 12px;">3</span>
</div>
<div style="font-size: 13px; color: #6b7280; text-align: center; padding: 20px 0;">Drag candidates here</div>
</div>
<!-- Offer Column -->
<div style="min-width: 250px; background: white; border-radius: 8px; padding: 15px; border: 1px solid #e5e7eb;">
<div style="display: flex; justify-content: space-between; align-items: center; margin-bottom: 15px;">
<span style="font-weight: 500; color: #374151;">Offer</span>
<span style="background: #e5e7eb; padding: 2px 8px; border-radius: 10px; font-size: 12px;">1</span>
</div>
</div>
Pipeline Stages
| Stage | Description |
|---|---|
| Applied | New applications, not yet reviewed |
| Screen | Initial phone/video screening |
| Interview | Full interview process |
| Offer | Offer extended |
| Hired | Offer accepted, preparing onboarding |
| Rejected | Not moving forward |
Moving Candidates
- Drag and drop between stages
- Click candidate → "Move to" dropdown
- Bulk select and move multiple candidates
AI Candidate Screening
Automatic Screening
When candidates apply, AI automatically:
- Parses resume for key information
- Matches skills to job requirements
- Calculates fit score (0-100%)
- Prioritizes candidates
When the score arrives depends on your plan. The rule checks (location, work authorisation, experience, skills match) run instantly on every plan, so a candidate is placed in the queue right away. On Growth and above the AI fit score arrives with them. On Core the fit score is added overnight, and the queue says so until it lands.
Match Score Breakdown
AI Match Analysis
92% Excellent Match Strong fit for Senior Engineer Required Skills 95% Experience Level 90% Education 88% Key Highlights:- 8 years experience (requires 5+)
- Python, Go, Kubernetes expertise
- Previous team lead experience
Rejection Mode & Human Review
A person decides every rejection. Screening produces a recommendation and the ground for it; the rejection itself is written only when a recruiter confirms it. This is on by default for every workspace, including one that has never opened the setting, and it is controlled in Admin → Settings → Recruiting as Require human review before rejection.
Candidates screening recommends rejecting appear in Waiting on your review at the top of the job's Pipeline tab, each with:
- who they are and what they applied for;
- the ground — Location outside hiring markets, Missing required skills, and so on;
- whether that ground is a Rule (deterministic: location, work authorisation, years of experience) or AI (a model judgement). A rule is arithmetic and quick to confirm; an AI ground deserves a longer look.
- Confirm rejection or Keep in pipeline.
Confirming writes the rejection against your name, carrying the recommendation's own reason, so the audit trail shows a person made the decision and on what basis (NYC Local Law 144, EU AI Act human oversight, GDPR Art. 22, UAE PDPL 45/2021).
Each job's screening policy in Job → Settings now controls how strongly a candidate is flagged, not whether they are rejected:
- Flag for review (default) — screens and prioritises, no rejection recommended.
- Recommend rejection on skill gap / on any gap — the candidate is ranked to the top of your review queue as a recommended rejection. Enabling either is recorded in the audit trail with your name and time.
One caveat worth knowing: on the careers-page apply path, the attributes the deterministic rules compare — skills, years of experience, country — are extracted from the résumé by AI. The rule itself is arithmetic; the data it reads may not be. That is part of why the confirmation step exists.
Referred candidates are screened the same way as public applicants, so no one enters the pipeline unscored.
Applicant Notice & Voluntary Self-Identification
On the public careers page, when AI screening is in use, applicants see a plain-language notice that an automated tool may help review their application, that AI does not make the final decision, and that a human can review any automated result. Applicants may opt out of AI screening and may voluntarily self-identify gender, race/ethnicity, veteran, and disability status. Self-identification is optional, encrypted at rest, kept separate from the hiring decision, and used only for aggregate fairness monitoring.
Résumé storage and retention
Résumés uploaded through the careers page are stored encrypted at rest and are readable only by people with access to that candidate in your workspace.
How long they are kept. Every résumé carries a retention tag derived from its application. An application that never progresses past screening is tagged to expire 365 days after upload; once an application reaches interviewing, offer, or hired, the résumé is tagged to keep and is retained indefinitely as part of the hiring record. The storage rule that acts on the expire tag is live, so a résumé tagged to expire is deleted once it reaches 365 days.
The flip to "keep" is one-way: a candidate who interviews and is later rejected keeps their résumé on file, because the record of a real hiring decision outlives the decision. A nightly reconciler re-derives every candidate's status from their application history, so a résumé is never deleted because a single tagging call failed at the moment someone advanced.
Screening Fairness Report
Recruiting → Analytics → Screening fairness (HR Admin / Super Admin only) shows two sections. Screening oversight is on every plan; adverse impact needs Growth or above.
- Screening oversight — applications screened, recommended-rejection rate, how often a recruiter kept a recommended rejection in the pipeline, flag rate, AI score distribution, and any referrals that slipped through unscreened. No demographic data required.
- Adverse impact (four-fifths rule) — for each disclosed demographic dimension, the selection rate per group (advanced past AI screening) and the impact ratio versus the most-selected group. A ratio below 0.80 is flagged as a potential adverse-impact indicator. Groups with fewer than 5 disclosed applicants are withheld, and a group under 30 is shown but marked provisional. The report is diagnostic, not a determination.
Interviews
Scheduling Interviews
- Select candidate → "Schedule Interview"
- Choose interview type and interviewers
- Select available times
- Candidate receives scheduling link
Rescheduling an Interview
Open the interview and choose Reschedule. Pick the new date and time, and add a reason if you want the candidate and the panel to know why.
Everyone on the interview gets an email with the old time and the new one, unless you untick the notification. The interview keeps the time it moved from, so the record shows it was moved rather than simply appearing at a different time. Its status becomes Rescheduled, which you can filter on in the Interviews list.
If an email cannot be delivered, the move still stands and Sparko tells you how many people it reached. Recipients are contacted independently, so one bad address does not stop the rest of the panel being told. Contact anyone it could not reach yourself.
An interview that is already completed, cancelled, or marked no-show cannot be moved. Schedule a new one instead.
Interview Types
- Phone Screen (30 min)
- Technical Interview (60 min)
- System Design (60 min)
- Behavioral (45 min)
- Hiring Manager (45 min)
- Team Fit (30 min)
AI Interview Brief
When you open your interview, an AI Interview Brief appears above the scorecard, tailored to your focus area for that round. It summarizes the candidate, the focus areas to cover, strengths to validate, areas to probe, suggested questions mapped to scoring dimensions, and what earlier panelists already found — so you walk in prepared and the panel doesn't repeat itself. The brief is visible only to panelists on that interview.
Interview Feedback
After interviews, submit structured feedback:
- Overall recommendation (Hire/No Hire)
- Competency ratings
- Strengths and concerns
- Detailed notes
AI Interview Synthesis & Finalist Comparison
The Decisions tab on a job has two views:
- AI Summary — a recommendation roll-up (strong hire / hire / needs discussion / no hire) plus a ranked card per finalist showing the cross-panel synthesis: aggregate scores, consensus strengths and concerns, conflicting signals, any potential bias flags, and a confidence level. Where a candidate's panel is complete but no synthesis exists yet, generate it on demand. "Compare top finalists" builds a side-by-side comparison matrix with a recommended candidate and rationale.
- Activity log — the full stage-move, interview, offer, and rejection history for the job, filterable by type and actor.
Offers
Creating an Offer
Navigate to candidate → "Create Offer"
Create Offer
Base Salary $ /year Sign-on Bonus $<div>
<label style="display: block; font-size: 13px; color: #6b7280; margin-bottom: 4px;">Equity</label>
<input type="text" value="10,000 options vesting over 4 years" style="width: 100%; padding: 8px; border: 1px solid #d1d5db; border-radius: 6px; box-sizing: border-box;">
</div>
<div>
<label style="display: block; font-size: 13px; color: #6b7280; margin-bottom: 4px;">Start Date</label>
<input type="date" value="2025-01-15" style="width: 100%; padding: 8px; border: 1px solid #d1d5db; border-radius: 6px; box-sizing: border-box;">
</div>
<!-- AI Prediction -->
<div style="background: #f0fdf4; padding: 15px; border-radius: 8px; border: 1px solid #86efac;">
<div style="display: flex; align-items: center; gap: 10px; margin-bottom: 8px;">
<span>🤖</span>
<span style="font-weight: 500; color: #166534;">AI Offer Prediction</span>
</div>
<div style="font-size: 14px; color: #166534;">
<strong>87% acceptance probability</strong>
</div>
<div style="font-size: 12px; color: #15803d; margin-top: 5px;">
Salary is 8% above market. Strong candidate enthusiasm in interviews.
</div>
</div>
AI Offer Prediction
AI predicts offer acceptance probability based on:
- Salary vs market rate
- Candidate interview enthusiasm
- Timeline alignment
- Competing offers (if known)
Offer Workflow
- Draft - Offer created, not sent
- Pending Approval - Awaiting manager/HR approval
- Approved - Ready to send
- Sent - Sent to candidate
- Accepted/Declined - The candidate accepts, declines, or requests changes from the secure link in their offer email. Someone with offer-send permission can also record the outcome on their behalf.
When an offer is accepted, Sparko marks the matching application as hired, creates the employee record, and starts an onboarding plan. If the employee record cannot be created (for example the candidate's email domain belongs to another workspace), the acceptance is still saved and the person who created the offer gets a notification explaining what to fix.
When an offer is declined, the person who created the offer gets a notification. The application stays open so you can decide the next step.
Downloading the offer letter (PDF)
Once an offer is Sent or Accepted, you can download the letter as a PDF from the offer's letter modal footer or the row's "⋯" menu (Download PDF). The PDF is generated on demand — nothing is stored — and includes the compensation summary and the drafted letter body. For an accepted offer it also carries an Acceptance block (who accepted, when, and the signature name recorded). Use it to route the letter to your authorized signatory and send the signed copy to the candidate through whatever channel you prefer. Anyone with recruiting.offers.view can download it.
Offer Revision History
When you revise an offer (e.g. counter-proposed by the candidate, comp re-approved by VP), Sparko keeps every prior version on a tamper-evident chain. The original offer is marked superseded; the new offer carries a previous_offer_id pointer back to it and bumps offer_version by 1.
Where to find it. Open any offer's letter modal — an embedded revision timeline tab shows every prior version with its version number, status, date, and the reason recorded at revision time. The revision timeline has no separate routed page and no copy-link yet; view it from the modal. (The offer letter itself can be downloaded as a PDF — see "Downloading the offer letter" above.)
Who can see it. Anyone with the recruiting.offers.view permission — typically HR Admin, Super Admin, and recruiters with explicit grants. To make a new revision, use the Revise button in the letter modal footer.
Use cases.
- Counter-offer history: "Why did we end at $150k? Because v2 was $145k and the candidate countered with $5k more — recorded May 21 by Daisy."
- Internal review: comparing what was sent vs what was accepted when reconciling against the signed offer.
Talent Pools
Silver Medalist Pool
Strong candidates not selected can be added to talent pools for future roles.
Features:
- Tag candidates by skills
- Set reminder to re-engage
- Track candidate preferences
- AI matching to new roles
Recruiting Analytics
Key Metrics
| Metric | Description |
|---|---|
| Time to Hire | Days from job post to offer acceptance |
| Time to Fill | Days from job post to start date |
| Offer Acceptance Rate | % of offers accepted |
| Source Effectiveness | Applications by source |
| Pipeline Velocity | Candidates moving through stages |
Integration with People Module
When a candidate accepts an offer:
- Employee record created automatically
- Onboarding plan generated
- Manager notified
- Skills transferred from application
Careers Page
Your public careers page lists your open roles and takes applications.
Candidates see it at: https://{your-company}.sparko.app/careers
What it shows
- Your company name and logo
- Up to six value cards you write yourself
- Every job that is active and approved
- An apply form for each role
Once you publish a careers page it also shows your hero image, tagline, about and culture copy, perks and benefits, offices, team quotes, and your careers email and social links.
Hiring countries can also be shown. That is off by default and turned on in Admin Settings > Company Settings > Privacy & Security.
Editing your value cards
Navigate to: Admin Settings > Recruiting > Careers Page
Value cards are the short statements candidates read before your roles. Use them for what makes working at your company distinctive.
- Add up to six cards
- Click a card's icon to change it
- Edit the title and body in place; changes save when you click away
- Drag a card by its handle to reorder
- Remove a card with the X in its corner
Value cards need no publishing. They appear as soon as you save.
Building the rest of the page
The same screen holds everything else a candidate reads: hero image, tagline, about us, culture statement, perks, benefits, offices, testimonials, your careers email and social links, and the SEO title and description search engines show.
Offices can point at a location you already have in Sparko by pasting its id, or carry a name you type. Either way the page shows a name, so an office never appears blank.
Publish makes the page visible to candidates; the badge beside it reads Live or Draft, and Unpublish takes the extra content down again while leaving the roles listing standing.
There is one copy of the page, not a draft and a live version. While it is unpublished, Save changes is private and Preview is how you see it. Once it is published, every Save is immediately visible to candidates. Unpublish first if you want to rework it out of sight.
Preview opens the saved page through the real careers page with a banner saying so, which is useful either way: it is what a visitor would get.
Sparko counts how many times the published page has been viewed, and a preview does not count as a view. The count is stored but not yet shown in the app.
Changing your logo or company name
These come from your company record, not from this page. Change them in Admin Settings > Company Settings > General and the careers page follows.
Common Questions
How do I post a job externally?
After creating a job, click "Publish" to post it to your own careers page ({tenant}.sparko.app/careers). There's no direct posting integration to external job boards (LinkedIn, Indeed, Glassdoor) yet — those sources only appear as inbound-application labels today, so you'd post to them manually and let candidates apply through your careers page link.
Can candidates apply without an account?
Yes, candidates can apply directly from your careers page.
How do I bulk reject candidates?
Select multiple candidates → "Bulk Actions" → "Reject" → Add reason.
More AI-Assisted Recruiting
- Screening calibration feedback loop — as candidates move through 30/90-day and 1-year post-hire checkpoints, actual outcomes feed back into the screening model to improve future fit-score accuracy over time.
- Candidate AI-screening opt-out — candidates can decline automated AI evaluation of their application at apply time.
- Job attention flags — job postings missing key structural info (e.g. an unassigned department or missing approver chain) are flagged so recruiters can fix incomplete postings before they go live.
- Salary band suggestion for offers — when drafting an offer, Sparko suggests a salary informed by the role's compensation band, falling back through career-path band and then AI market estimate if no band is set.
- Candidate duplicate detection — a background health check identifies and reports likely duplicate/merged candidate records across applications.
Known Limitations
- No candidate self-service portal. Candidates can't currently log in to track their own application status — they're notified by email at each stage instead.
- No native e-signature. Offers don't yet support in-platform signing (no DocuSign/HelloSign equivalent). Download the offer letter as a PDF (see "Downloading the offer letter") and route it through your own e-signature process.
- No bulk candidate import. The only ways candidates enter the pipeline are the public apply form and the single-candidate referral form — there's no CSV/ATS import for moving an existing pipeline into Sparko.
- Careers page branding is limited to value cards. You can't yet add a hero image, an about section, a culture statement, benefits, perks, office locations, testimonials, or your own SEO tags. The page uses your company name and logo, your value cards, and your open roles.
Related Features
- People Module - Employee onboarding
- AI Features - AI-powered recruiting
- Performance - New hire goals
Still need help? Reach us at [email protected].
← Back to Help Center