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:

  1. Enter basic job details (title, department, level)
  2. Add key requirements and nice-to-haves
  3. 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 received

Approval Process

When a job posting is created:

  1. Submission: Manager or recruiter creates job posting
  2. Approval Requests Created: System generates individual approval requests for each approver
  3. Parallel Review: All approvers see the request simultaneously in their Approvals dashboard
  4. 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.)
  5. Decision: Each approver can:
    • Approve - Move to next step
    • Reject - Request is denied (must provide reason)
    • 💬 Request Changes - Ask for revisions
  6. 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:

  1. AI Market Research: System can research market salary rates automatically
  2. Manual Entry: Or enter salary range manually
  3. Justification Required: Additional approval needed with business case
  4. Budget Impact: Tracked against overall hiring budget

Candidate Pipeline

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:

  1. Parses resume for key information
  2. Matches skills to job requirements
  3. Calculates fit score (0-100%)
  4. Prioritizes candidates

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 Override

Each job's screening policy is set in Job → Settings:

  • Flag for review (default) — AI screens and prioritizes, but a human decides. Nothing is auto-rejected.
  • Auto-reject on skill gap / Auto-reject on any gap — applicants below the threshold are rejected automatically. Enabling either shows a confirmation dialog (fully automated rejection is a regulated employment decision) and is recorded in the audit trail with your name and time.

Every AI screening decision appears on the candidate's drawer with the score, the rule checks that passed or failed, and the model used. When AI has auto-rejected a candidate, an Override this AI decision control lets an authorized recruiter reinstate them with a required written reason. The reason, reviewer, and time are written to the screening audit log alongside the original AI decision, giving a complete human-oversight trail (NYC Local Law 144 / EU AI Act).

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.

Screening Fairness Report

Recruiting → Analytics → Screening fairness (HR Admin / Super Admin only) shows two sections:

  • Screening oversight — applications screened, auto-reject rate, human-override rate, 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 30 disclosed applicants are suppressed. The report is diagnostic, not a determination.

Interviews

Scheduling Interviews

  1. Select candidate → "Schedule Interview"
  2. Choose interview type and interviewers
  3. Select available times
  4. Candidate receives scheduling link

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

  1. Draft - Offer created, not sent
  2. Pending Approval - Awaiting manager/HR approval
  3. Approved - Ready to send
  4. Sent - Sent to candidate
  5. Accepted/Declined - Recorded by HR/the recruiter once the candidate responds (there is no candidate-facing accept/decline link yet — the candidate replies by email or in conversation, and someone with offer-send permission records the outcome)

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:

  1. Employee record created automatically
  2. Onboarding plan generated
  3. Manager notified
  4. Skills transferred from application

Careers Page Builder

Create a beautiful, branded careers page that showcases your company culture and attracts top talent.

Overview

The Careers Page Builder allows you to customize every aspect of your public-facing careers page without any coding. Create a compelling employer brand with custom branding, photos, testimonials, and more.

Navigate to: Admin Settings > Recruiting > Careers Page

Getting Started

Careers Page Builder

Branding Company Info Benefits Offices Testimonials Social SEO ℹ️ Preview Your Changes

See how your careers page will look before publishing. Click "Preview" anytime to view your changes.

Company Logo URL

Displayed in the header. Recommended: PNG or JPG, max 5MB

<div>
  <label style="display: block; font-size: 14px; color: #374151; margin-bottom: 5px; font-weight: 500;">Hero Image URL</label>
  <input type="text" placeholder="https://example.com/hero.jpg" style="width: 100%; padding: 10px; border: 1px solid #d1d5db; border-radius: 6px; box-sizing: border-box;">
  <p style="font-size: 12px; color: #6b7280; margin: 5px 0 0 0;">Large banner image at the top of your careers page</p>
</div>

<div style="display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 15px;">
  <div>
    <label style="display: block; font-size: 14px; color: #374151; margin-bottom: 5px; font-weight: 500;">Primary Color</label>
    <div style="display: flex; align-items: center; gap: 10px;">
      <input type="color" value="#3b82f6" style="width: 50px; height: 40px; border: 1px solid #d1d5db; border-radius: 6px; cursor: pointer;">
      <input type="text" value="#3b82f6" style="flex: 1; padding: 10px; border: 1px solid #d1d5db; border-radius: 6px;">
    </div>
  </div>
  <div>
    <label style="display: block; font-size: 14px; color: #374151; margin-bottom: 5px; font-weight: 500;">Secondary Color</label>
    <div style="display: flex; align-items: center; gap: 10px;">
      <input type="color" value="#10b981" style="width: 50px; height: 40px; border: 1px solid #d1d5db; border-radius: 6px; cursor: pointer;">
      <input type="text" value="#10b981" style="flex: 1; padding: 10px; border: 1px solid #d1d5db; border-radius: 6px;">
    </div>
  </div>
  <div>
    <label style="display: block; font-size: 14px; color: #374151; margin-bottom: 5px; font-weight: 500;">Accent Color</label>
    <div style="display: flex; align-items: center; gap: 10px;">
      <input type="color" value="#f59e0b" style="width: 50px; height: 40px; border: 1px solid #d1d5db; border-radius: 6px; cursor: pointer;">
      <input type="text" value="#f59e0b" style="flex: 1; padding: 10px; border: 1px solid #d1d5db; border-radius: 6px;">
    </div>
  </div>
</div>
💾 Save Changes 👁️ Preview 🚀 Publish

Section 1: Branding

Customize the visual identity of your careers page.

Fields:

  • Company Logo URL: Your company logo (PNG/JPG, max 5MB)
  • Hero Image URL: Large banner image at the top (max 10MB)
  • Primary Color: Main brand color (hex code, e.g., #3B82F6)
  • Secondary Color: Secondary brand color
  • Accent Color: Accent color for buttons and highlights

Tips:

  • Use high-quality images that represent your company culture
  • Choose colors that align with your brand guidelines
  • Ensure good contrast between text and background colors
  • Test your branding in light and dark modes

Section 2: Company Info

Tell your company story and showcase your culture.

Fields:

  • Company Name: Official company name (auto-filled from settings)
  • Tagline: Short, catchy phrase (e.g., "Building the future of work")
  • About Us: Company overview (2-3 paragraphs)
  • Culture Statement: What makes your company special

Example:

Tagline: "Innovation meets impact"

About Us:
We're a fast-growing tech company on a mission to revolutionize how businesses operate. Founded in 2020, we've grown from 10 to 300+ employees and serve over 5,000 customers worldwide.

Culture Statement:
Innovation, collaboration, and excellence drive everything we do. We believe in empowering our team to take ownership, think creatively, and make an impact from day one.

Section 3: Benefits & Perks

Highlight what makes your company a great place to work.

General Benefits: Add company-wide benefits and perks that apply to all employees:

  • Health insurance, 401k, PTO
  • Remote work options
  • Professional development budget
  • Team events and activities

Office-Specific Benefits: Add benefits specific to each office location:

Office:

Why this matters: Office-specific benefits help candidates understand what they'll get at their location, especially for companies with multiple offices worldwide.

Section 4: Office Locations

Showcase your physical office spaces with photos and details.

For each office, add:

  • Office Name: (e.g., "San Francisco HQ")
  • Address: Full street address
  • City, State, Country: Location details
  • Office Photo URL: Interior/exterior photo of the space
  • Amenities: (e.g., "Standing desks, coffee bar, rooftop terrace")
  • Nearby Transit: (e.g., "2 blocks from BART, bike parking available")

Example Office Entry:

Name: San Francisco HQ
Address: 123 Market Street, Floor 5
City: San Francisco, State: CA
Photo: https://example.com/sf-office.jpg
Amenities: Standing desks, dual monitors, coffee bar, game room, rooftop terrace
Transit: 2 blocks from Montgomery BART station, Caltrain accessible, bike parking

Section 5: Employee Testimonials

Let your team tell your story with video or text testimonials.

Text Testimonials:

  • Employee name and role
  • Quote about working at your company
  • Optional: Employee photo

Video Testimonials (YouTube): Add YouTube video URLs to embed employee testimonial videos directly on your careers page.

YouTube Video URL Employee Name Role Quote (for text version)

Best Practices:

  • Keep videos short (30-90 seconds)
  • Feature employees from different teams/roles
  • Ask about: what they love, career growth, company culture, work-life balance
  • Get proper consent before featuring employees

Section 6: Social Media & Contact

Connect candidates with your company on social media and provide contact information.

Social Media Links:

  • LinkedIn Company Page
  • Twitter/X
  • Facebook
  • Instagram
  • YouTube Channel

Contact Information:

Example:

LinkedIn: https://linkedin.com/company/your-company
Twitter: https://twitter.com/yourcompany
Careers Email: careers@yourcompany.com

Section 7: SEO Settings

Optimize your careers page for search engines to attract more candidates.

Fields:

  • SEO Title: Page title for search results (50-60 characters)
    • Example: "Careers at Sparko - Join Our Team | Software Jobs"
  • SEO Description: Page description for search results (150-160 characters)
    • Example: "Explore exciting career opportunities at Sparko. We're building the future of HR technology. View open positions and apply today."
  • SEO Keywords: Comma-separated keywords for search indexing
    • Example: "careers, jobs, software engineer, HRIS, HR technology, remote work"

Best Practices:

  • Include your company name, industry, and job types
  • Use natural language (avoid keyword stuffing)
  • Highlight unique selling points (remote, benefits, culture)
  • Update regularly when adding new job categories

Publishing Your Careers Page

Once you've customized all sections:

  1. Preview: Click "Preview" to see how your careers page will look
  2. Save: Click "Save Changes" to save your progress (can edit later)
  3. Publish: Click "Publish" to make your careers page live

Your careers page URL: https://your-subdomain.sparko.app/careers

Publishing Status:

  • 📝 Draft: Not visible to public, you can edit freely
  • 🚀 Published: Live and visible to candidates
  • ⏸️ Unpublished: Previously published, now hidden

To unpublish: Click "Unpublish" button to temporarily hide your careers page while keeping all your customizations saved.

Editing Published Pages

You can edit and update your careers page anytime:

  1. Make changes to any section
  2. Click "Save Changes"
  3. Changes are saved but NOT live yet
  4. Click "Preview" to review changes
  5. Click "Publish" to push changes live

Note: Unpublishing and re-publishing doesn't lose any data - all your customizations are preserved.

Analytics

Track how your careers page is performing:

  • Page Views: Total number of visits to your careers page
  • Last Viewed: Most recent page visit timestamp
  • Application Rate: % of visitors who apply to jobs

View analytics: Admin Settings > Recruiting > Careers Page > View Analytics

Best Practices

Branding:

  • Use professional, high-resolution images
  • Keep your brand colors consistent with your main website
  • Ensure mobile responsiveness by testing on different devices

Content:

  • Write authentic, engaging copy that reflects your culture
  • Keep sections concise - candidates should understand your company in 2-3 minutes
  • Update content regularly (quarterly recommended)

Testimonials:

  • Feature diverse voices from different departments and levels
  • Get written consent from employees before featuring them
  • Update testimonials annually to keep them fresh

Photos:

  • Show real office spaces and team photos (avoid stock photos)
  • Include photos of team events, office amenities, and workspaces
  • Ensure photos reflect your actual culture and diversity

SEO:

  • Use relevant keywords naturally in your content
  • Update SEO metadata when you add new job categories
  • Include your location(s) in SEO fields for local search
  • Link your careers page from your main website

Common Issues

Problem: Images not displaying

  • Solution: Ensure image URLs are publicly accessible (not behind login)
  • Solution: Use HTTPS URLs (not HTTP)
  • Solution: Check file size limits (logo: 5MB, hero: 10MB)

Problem: Colors not applying correctly

  • Solution: Use valid hex color codes (e.g., #3B82F6, not "blue")
  • Solution: Include the # symbol in hex codes
  • Solution: Clear browser cache after publishing

Problem: YouTube videos not embedding

  • Solution: Use the full YouTube URL format: https://www.youtube.com/watch?v=VIDEO_ID
  • Solution: Ensure videos are set to "Public" (not Unlisted or Private)
  • Solution: Check that embeds are allowed in YouTube video settings

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.

Related Features