Skip to content

Instantly share code, notes, and snippets.

@theinventor
Created August 24, 2025 06:21
Show Gist options
  • Save theinventor/7921d5fb41155f6f857d7053e96955ca to your computer and use it in GitHub Desktop.
Save theinventor/7921d5fb41155f6f857d7053e96955ca to your computer and use it in GitHub Desktop.

PRD: ATS New Job Creation with Hiring Plan Templates

Overview

This PRD outlines a new job creation flow that replaces the current single-stage job creation with a comprehensive hiring plan builder. The new flow will guide users through creating a job description, selecting a hiring plan template, and automatically generating all stages, interviews, and competencies.

Problem Statement

Current job creation flow:

  • Creates only a single pre-screen stage
  • Doesn't support the full ATS workflow (sourcing → screening → interviewing → offer)
  • Requires manual setup of additional stages and interviews
  • Not optimized for different hiring scenarios (tech, sales, operations, etc.)

Solution

New job creation flow at /company/[companySlug]/jobs/ats/create that:

  1. Captures job description and basic details
  2. Recommends hiring plan templates based on role type and volume
  3. Generates complete hiring workflow with appropriate AI/human interview stages
  4. Auto-generates competencies for each interview stage
  5. Creates all stages, interviews, and competencies in one atomic operation

Schema Changes

1. New HiringPlanTemplate Model

model HiringPlanTemplate {
  id                  Int                       @id @default(autoincrement())
  name                String                    // "Tech/Engineering", "Sales", etc.
  slug                String                    @unique
  description         String
  isActive            Boolean                   @default(true)
  isDefault           Boolean                   @default(false)
  category            String                    // "technical", "sales", "operations", "creative", "high-volume"
  volumeType          String                    // "individual", "team", "high-volume"
  seniorityLevel      String?                   // "entry", "mid", "senior", "executive"
  stages              HiringPlanTemplateStage[]
  createdAt           DateTime                  @default(now())
  updatedAt           DateTime                  @updatedAt
}

model HiringPlanTemplateStage {
  id                  Int                       @id @default(autoincrement())
  templateId          Int
  template            HiringPlanTemplate        @relation(fields: [templateId], references: [id], onDelete: Cascade)
  stageType           StageType
  name                String
  description         String?
  order               Int
  interviews          HiringPlanTemplateInterview[]

  @@index([templateId])
}

model HiringPlanTemplateInterview {
  id                  Int                       @id @default(autoincrement())
  stageId             Int
  stage               HiringPlanTemplateStage   @relation(fields: [stageId], references: [id], onDelete: Cascade)
  name                String
  description         String?
  interviewMode       InterviewMode             // "ai" or "human"
  duration            Int                       // in minutes
  competencyFocus     String?                   // "technical", "behavioral", "cultural"
  suggestedQuestions  Json?                     // Array of suggested questions
  order               Int

  @@index([stageId])
}

2. Update Job Model

model Job {
  // ... existing fields ...

  // Add template tracking
  templateId          Int?
  template            HiringPlanTemplate?       @relation(fields: [templateId], references: [id])

  // Add bulk creation tracking
  createdWithTemplate Boolean                   @default(false)
}

User Flow

Step 1: Job Creation Entry

URL: /company/[companySlug]/jobs/ats/create

Screen: Job Details Form

  • Job title (required)
  • Department (optional)
  • Location (required)
  • Remote options (hybrid/remote/onsite)
  • Employment type (full-time/part-time/contract)
  • Salary range (optional)
  • Job description (rich text editor)
  • [Continue to Hiring Plan →]

Step 2: Template Selection

URL: /company/[companySlug]/jobs/ats/create/plan

Screen: Smart Template Selector

┌─────────────────────────────────────────────────────────┐
│ Choose Your Hiring Plan                                  │
│                                                          │
│ Based on your job details, we recommend:                │
│                                                          │
│ ┌─────────────────────┐ ┌─────────────────────┐        │
│ │ 🎯 Tech/Engineering │ │ 💼 Sales/Business   │        │
│ │                     │ │                     │        │
│ │ • AI Tech Screen    │ │ • AI Qualification  │        │
│ │ • AI Coding Test    │ │ • AI Sales Sim      │        │
│ │ • Human Tech Deep   │ │ • Human Leadership  │        │
│ │ • Human Team Fit    │ │ • AI References     │        │
│ │                     │ │                     │        │
│ │ 4-5 stages          │ │ 4 stages            │        │
│ │ ~3 hours total      │ │ ~2.5 hours total    │        │
│ └─────────────────────┘ └─────────────────────┘        │
│                                                          │
│ ┌─────────────────────┐ ┌─────────────────────┐        │
│ │ 📋 Operations       │ │ 🎨 Creative         │        │
│ │                     │ │                     │        │
│ │ • AI Logistics      │ │ • AI Portfolio Rev  │        │
│ │ • AI Skills Test    │ │ • Human Creative    │        │
│ │ • Human Manager     │ │ • AI Project Brief  │        │
│ │                     │ │ • Human Present     │        │
│ └─────────────────────┘ └─────────────────────┘        │
│                                                          │
│ [View All Templates] [Build Custom]                     │
└─────────────────────────────────────────────────────────┘

Template Recommendation Logic:

  • Parse job title/description for keywords
  • Consider salary range (higher = more senior = more human touchpoints)
  • Factor in urgency indicators
  • Show confidence score for each recommendation

Step 3: Plan Customization

URL: /company/[companySlug]/jobs/ats/create/customize

Screen: Interactive Hiring Plan Builder

┌─────────────────────────────────────────────────────────┐
│ Customize Your Tech/Engineering Hiring Plan             │
│                                                          │
│ ┌─── Stage 1: Application ────────────────────────┐    │
│ │ ✓ AI Resume Screening (instant)                  │    │
│ │   Automatically reviews applications              │    │
│ └──────────────────────────────────────────────────┘    │
│                          ↓                               │
│ ┌─── Stage 2: Screening ──────────────────────────┐    │
│ │ ✓ AI Technical Pre-screen (15 min)              │    │
│ │   • Basic coding questions                       │    │
│ │   • Tech stack verification                      │    │
│ │   [Edit Interview] [Remove]                      │    │
│ └──────────────────────────────────────────────────┘    │
│                          ↓                               │
│ ┌─── Stage 3: Technical Assessment ───────────────┐    │
│ │ ✓ AI Coding Assessment (45 min)                 │    │
│ │   • Real-time problem solving                    │    │
│ │   • Code review & discussion                     │    │
│ │ [Edit Interview]                                 │    │
│ │                                                  │    │
│ │ ○ Human Technical Interview (60 min)            │    │
│ │   • System design                                │    │
│ │   • Architecture discussion                      │    │
│ │ [+ Add This Interview]                           │    │
│ └──────────────────────────────────────────────────┘    │
│                                                          │
│ [+ Add Stage]                                           │
│                                                          │
│ Estimated Time to Hire: 5-7 days                       │
│ Total Candidate Time: 2.5 hours                         │
│                                                          │
│ [← Back] [Create Job & Hiring Plan →]                   │
└─────────────────────────────────────────────────────────┘

Features:

  • Drag & drop to reorder stages
  • Toggle interviews on/off
  • Edit interview details (name, duration, focus)
  • Add custom stages/interviews
  • Real-time metrics (time to hire, candidate time investment)

Step 4: Review & Create

URL: /company/[companySlug]/jobs/ats/create/review

Screen: Final Review

┌─────────────────────────────────────────────────────────┐
│ Review Your New Job & Hiring Plan                       │
│                                                          │
│ Job Details:                                             │
│ • Senior Software Engineer                               │
│ • Engineering Department                                 │
│ • San Francisco (Hybrid)                                 │
│ • $150k - $200k                                         │
│                                                          │
│ Hiring Plan: Tech/Engineering (Customized)              │
│                                                          │
│ 5 Stages, 4 Interviews:                                 │
│ 1. Application → AI Resume Screen                       │
│ 2. Screening → AI Technical Pre-screen (15m)           │
│ 3. Technical → AI Coding Assessment (45m)              │
│ 4. Culture → Human Team Interview (45m)                │
│ 5. Offer → Human Negotiation                           │
│                                                          │
│ What happens next:                                      │
│ ✓ Job will be created and published                    │
│ ✓ All interview stages will be set up                  │
│ ✓ AI will generate role-specific competencies         │
│ ✓ Interview questions will be prepared                  │
│ ✓ You'll be redirected to the job dashboard           │
│                                                          │
│ [← Edit] [Create Everything →]                          │
└─────────────────────────────────────────────────────────┘

Step 5: Creation Process

Background Process (with loading state):

  1. Create Job record
  2. Create all Stage records in order
  3. Create InterviewType records for each stage
  4. Generate competencies for each AI interview (async)

Success State:

  • Redirect to /company/[companySlug]/jobs/ats/[jobSlug]
  • Show success toast: "Job created with 5 stages and 4 interviews!"

Template Examples

Tech/Engineering Template

1. Application (AI screening - instant)
2. Screening: AI Technical Pre-screen (15-20 min)
3. Technical Assessment:
   - AI Coding Assessment (45-60 min)
   - Human Technical Deep Dive (60 min)
4. Culture Fit: Human Team Interview (30 min)
5. Offer Discussion (Human)

Sales/Business Development Template

1. Application (AI screening)
2. Screening: AI Initial Qualification (10-15 min)
3. Skills Assessment: AI Sales Simulation (30-45 min)
4. Leadership Review: Human Interview (45 min)
5. References: AI Reference Check (async)
6. Offer Close (Human)

High-Volume/Hourly Template

1. Quick Application (AI-powered form)
2. Screening: AI Instant Screen (5-10 min)
3. Interview: AI Behavioral Interview (15-20 min)
4. Final Check: Human Video Call (15 min)
5. Onboarding (AI Coordinator)

Mobile Considerations

  • Template cards stack vertically on mobile
  • Hiring plan builder uses accordion UI
  • Drag & drop becomes move up/down buttons
  • Multi-step form with clear progress indicator

Analytics & Optimization

Track:

  • Template selection rates
  • Customization patterns (what gets added/removed)
  • Time to complete job creation
  • Completion rates at each step
  • Template performance (time to hire, quality of hire)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment