Hiring Pipeline Builder
Run ID: 69cc79cd3e7fb09ff16a23e42026-04-01HR
PantheraHive BOS
BOS Dashboard

Build a complete hiring pipeline with job descriptions, interview question banks, scoring rubrics, offer letter templates, and onboarding checklists.

Hiring Pipeline Builder: Design Requirements & Specifications

This document outlines the comprehensive design requirements, wireframe descriptions, color palettes, and user experience (UX) recommendations for the "Hiring Pipeline Builder" platform. This deliverable serves as the foundational blueprint for developing a robust, intuitive, and efficient system for managing the entire recruitment lifecycle.


1. Design Specifications

1.1. Core Objectives

The primary objective of the Hiring Pipeline Builder is to streamline and standardize the recruitment process, from job creation to candidate onboarding. It aims to reduce time-to-hire, improve candidate experience, ensure consistency in evaluation, and provide actionable insights into recruitment performance.

1.2. Key Modules & Features

The platform will be structured around several interconnected modules, each designed to address a specific stage of the hiring pipeline:

1.2.1. Job Requisition & Description Builder

  • Job Templates: Pre-defined templates for common roles (e.g., Software Engineer, Marketing Manager) editable by users.
  • Customizable Fields: Ability to add, remove, and reorder sections (e.g., Responsibilities, Requirements, Company Culture, Benefits).
  • Rich Text Editor: Formatting options (bold, italics, lists, links) for detailed descriptions.
  • AI-Assisted Content Generation: Suggestions for job descriptions based on role and industry keywords (future enhancement).
  • Version Control: Track changes to job descriptions.
  • Approval Workflow: Optional multi-stage approval for job descriptions before publishing.

1.2.2. Interview Question Bank

  • Categorization: Organize questions by type (e.g., Technical, Behavioral, Situational, Problem-Solving, Culture Fit).
  • Pre-defined Questions: A library of professionally vetted interview questions.
  • Custom Question Creation: Users can add their own questions.
  • Tagging & Keywords: Facilitate search and filtering of questions.
  • Difficulty Levels: Assign difficulty (Easy, Medium, Hard) to questions.
  • Rating Guides/Expected Answers: Optional fields for interviewers to reference.

1.2.3. Scoring Rubric Creator

  • Customizable Criteria: Define specific evaluation criteria for each job (e.g., Problem-Solving Skills, Communication, Technical Proficiency).
  • Weighted Scores: Assign different weights to criteria to reflect their importance.
  • Rating Scales: Multiple options for rating scales (e.g., 1-5, Poor-Excellent, Yes/No).
  • Comment Fields: Allow interviewers to provide qualitative feedback for each criterion.
  • Overall Recommendation: Final decision field (e.g., "Hire," "No Hire," "Strong Consider").
  • Rubric Templates: Save and reuse rubrics across similar roles.

1.2.4. Offer Letter Generator

  • Dynamic Templates: Pre-approved offer letter templates with merge fields for candidate-specific information (Name, Salary, Start Date, Title, Benefits).
  • Customizable Clauses: Ability to include/exclude specific clauses (e.g., non-compete, confidentiality).
  • Preview Functionality: Review the generated offer letter before sending.
  • E-Signature Integration: Seamless integration with popular e-signature platforms (e.g., DocuSign, Adobe Sign).
  • Offer Tracking: Status updates (Sent, Viewed, Accepted, Declined).

1.2.5. Onboarding Checklist Manager

  • Template-Based Checklists: Create and manage onboarding checklists for different roles or departments.
  • Task Assignment: Assign tasks to specific individuals (e.g., IT, HR, Manager) with due dates.
  • Progress Tracking: Visual indicators of task completion.
  • Resource Links: Attach relevant documents, links, or training materials to tasks.
  • Automated Notifications: Reminders for pending tasks or upcoming due dates.
  • Welcome Kit Integration: Option to include links to welcome documents or videos.

1.2.6. Pipeline Management & Candidate Tracking

  • Visual Pipeline View: Kanban board or similar interface representing hiring stages (e.g., Applied, Screen, Interview, Offer, Hired).
  • Drag-and-Drop Functionality: Move candidates between stages.
  • Candidate Profiles: Centralized repository for candidate information (CV, contact details, interview feedback, scores, communication history).
  • Communication Tools: Integrated email and calendar for scheduling interviews and sending updates.
  • Notes & Activity Log: Track all interactions and internal notes related to a candidate.
  • Source Tracking: Record where candidates applied from.

1.2.7. Reporting & Analytics

  • Pipeline Overview: Number of candidates at each stage, time in stage.
  • Time-to-Hire Metrics: Average time from application to offer acceptance.
  • Source Effectiveness: Which channels yield the best candidates.
  • Interview Feedback Summaries: Aggregate scores and feedback.
  • Customizable Reports: Filter and export data based on various parameters.

1.3. Technical Considerations

  • Scalability: Architecture designed to handle a growing number of jobs, candidates, and users.
  • Security: Robust authentication (MFA, SSO), authorization (role-based access control), data encryption (in transit and at rest), and compliance with data privacy regulations (e.g., GDPR, CCPA).
  • Integrations: APIs for seamless integration with:

* Applicant Tracking Systems (ATS)

* Human Resources Information Systems (HRIS)

* Email and Calendar services (Google Workspace, Microsoft 365)

* E-signature platforms (DocuSign, Adobe Sign)

* Video conferencing tools (Zoom, Google Meet, Microsoft Teams)

  • Performance: Fast loading times and responsive interactions.
  • Responsive Design: Optimized experience across desktop, tablet, and mobile devices.
  • Cloud-Native Architecture: Leverage cloud services for reliability and elasticity.

1.4. User Roles & Permissions

  • Administrator: Full access to all features, settings, user management, and reporting.
  • Hiring Manager: View and manage their specific job requisitions, review candidates, provide feedback, schedule interviews.
  • Recruiter: Create and manage job requisitions, source candidates, manage pipeline, schedule interviews, generate offers.
  • Interviewer: Access candidate profiles for scheduled interviews, provide feedback using rubrics.
  • HR Generalist/Onboarding Specialist: Manage onboarding checklists, track task completion.

2. Wireframe Descriptions

Below are descriptions for key screens, outlining their layout, primary elements, and user interactions. These are conceptual and will be refined during the detailed design phase.

2.1. Dashboard / Home Screen

  • Layout: Top navigation bar, left sidebar, main content area.
  • Elements:

* Top Nav: Company logo, search bar, user profile (avatar, settings, logout), notifications.

* Left Sidebar: Main navigation links (Dashboard, Jobs, Candidates, Templates, Reports, Settings).

* Main Content:

* "My Active Jobs" Widget: Card-based view of jobs assigned to the user, showing status, number of candidates, and quick links.

* "Pipeline Snapshot" Widget: Visual summary (e.g., bar chart) of candidates across all active pipelines or specific jobs.

* "Upcoming Interviews" Widget: List of scheduled interviews with candidate names, job titles, and time.

* "Pending Tasks" Widget: For onboarding or other assigned actions.

* "Quick Actions": Buttons for "Create New Job," "Add Candidate," etc.

  • Interaction: Click on job cards to go to job details, click on candidate names for profile, quick filters for widgets.

2.2. Job Pipeline View (Kanban Board)

  • Layout: Top header with job title and actions, horizontal swimlanes for pipeline stages.
  • Elements:

* Header: Job Title, "Add Candidate" button, "Edit Job" button, "Share Link" button, toggle for different views (Kanban, List).

* Pipeline Stages: Columns representing stages (e.g., "Applied," "Screening," "Interview 1," "Interview 2," "Offer," "Hired," "Rejected"). Each column shows the stage name and candidate count.

* Candidate Cards: Within each stage, cards for individual candidates. Each card displays:

* Candidate Name

* Current Status/Sub-stage (e.g., "Pending Review," "Interview Scheduled")

* Quick Action Buttons (e.g., "Move," "View Profile," "Reject")

* Small icons for recent activity (e.g., new feedback, email sent).

  • Interaction: Drag-and-drop candidate cards between stages. Click on a card to open candidate profile. Filter candidates by status, source, or recruiter.

2.3. Job Description Builder

  • Layout: Multi-step form or single-page scrolling form with clear sections.
  • Elements:

* Header: Job Title, "Save Draft," "Publish," "Preview" buttons.

* Left Sidebar (Optional): Navigation for sections (Job Details, Responsibilities, Requirements, Benefits, Company Info).

* Main Content:

* Basic Info: Job Title, Department, Location, Employment Type, Salary Range.

* Rich Text Editor: For "Job Summary," "Responsibilities," "Requirements," "About Us," "Benefits." Toolbars for formatting.

* Pre-defined Sections: Option to insert standard clauses or templates.

* AI Suggestion Bar: (Future) Contextual suggestions for sentences or keywords.

* Review & Publish: Summary of the JD, button to publish.

  • Interaction: Type directly into fields, select from dropdowns, use rich text editor. "Preview" opens a modal showing how the JD will appear to applicants.

2.4. Candidate Profile View

  • Layout: Left sidebar for navigation within the profile, main content area split into sections.
  • Elements:

* Header: Candidate Name, Job Applied For, Current Stage, "Move Stage" dropdown, "Reject" button, "Schedule Interview" button.

* Left Sidebar: Profile Overview, Resume, Feedback, Interviews, Communication, Offers, Onboarding.

* Main Content (Overview Tab):

* Basic Info: Contact details, source, application date.

* Resume Preview: Embedded viewer for the candidate's CV.

* Activity Feed: Chronological log of all interactions, feedback, and status changes.

* Summary Scores: Aggregate scores from interviews/rubrics.

  • Interaction: Click on tabs in the left sidebar to navigate sections. View and download resume. Add notes. Initiate emails or calls.

2.5. Scoring Rubric / Interview Feedback Form

  • Layout: Form-based, likely a modal or dedicated page accessed from the candidate profile or interview schedule.
  • Elements:

* Header: Candidate Name, Job Title, Interviewer Name, Interview Date.

* Criteria List: Each criterion from the rubric is listed.

* Rating Scale: Dropdown or radio buttons for selecting a score (e.g., 1-5).

* Comment Box: Rich text field for qualitative feedback specific to the criterion.

* Overall Recommendation: Dropdown (Hire, No Hire, Strong Consider, etc.).

* General Comments: Larger rich text field for overall interview notes.

* "Submit Feedback" Button.

  • Interaction: Select ratings, type comments, submit the form. Auto-save functionality.

3. Color Palettes

The color palette is designed to be professional, trustworthy, and user-friendly, aligning with a modern business aesthetic. It ensures good contrast and accessibility.

3.1. Primary Brand Colors

  • Primary Blue: #2E6DA4 (RGB: 46, 109, 164)

Usage*: Main branding, primary calls-to-action (CTAs), active navigation elements, important headers. Conveys professionalism and reliability.

  • Secondary Teal: #1A7B7A (RGB: 26, 123, 122)

Usage*: Secondary CTAs, accent elements, charts/graphs, progress indicators. Adds a touch of modernity and calm.

3.2. Neutral & Text Colors

  • Dark Gray (Text): #333333 (RGB: 51, 51, 51)

Usage*: Primary body text, main headings. Ensures high readability.

  • Medium Gray (Secondary Text): #666666 (RGB: 102, 102, 102)

Usage*: Secondary text, labels, placeholder text.

  • Light Gray (Background/Borders): #F5F5F5 (RGB: 245, 245, 245)

Usage*: Page backgrounds, card backgrounds, subtle borders. Provides a clean, spacious feel.

  • Border Gray: #CCCCCC (RGB: 204, 204, 204)

Usage*: Input field borders, dividers, subtle UI elements.

3.3. Accent & Status Colors

  • Success Green: #28A745 (RGB: 40, 167, 69)

Usage*: Positive feedback, successful actions, "Hired" status, completion.

  • Warning Orange: #FFC107 (RGB: 255, 193, 7)

Usage*: Warnings, pending actions, attention required.

  • Danger Red: #DC3545 (RGB: 220, 53, 69)

Usage*: Error messages, rejection, critical alerts, "Rejected" status.

  • Info Blue: #17A2B8 (RGB: 23, 162, 184)

Usage*: Informational messages, non-critical alerts.

3.4. Accessibility

  • All color combinations
gemini Output

Hiring Pipeline Builder: Design Specifications & UX Recommendations

This document outlines the detailed design specifications, wireframe descriptions, color palettes, and user experience (UX) recommendations for the "Hiring Pipeline Builder" tool. The aim is to create an intuitive, efficient, and visually appealing platform that streamlines the entire hiring process from job creation to onboarding.


1. Detailed Design Specifications

The Hiring Pipeline Builder will be a modular web application designed for clarity, efficiency, and scalability.

1.1 Core Modules & Features

1.1.1 Dashboard

  • Purpose: Provides an at-a-glance overview of all active hiring pipelines, open requisitions, and key metrics.
  • Components:

* Summary statistics (e.g., "Open Roles," "Candidates in Pipeline," "Average Time-to-Hire").

* Quick access to recently active pipelines.

* Pipeline health indicators (e.g., bottlenecks, overdue tasks).

* Upcoming interview schedule.

* Actionable notifications (e.g., "New Applicant for Role X," "Offer Pending Approval").

1.1.2 Pipeline Management

  • Purpose: Allows users to create, configure, and manage hiring pipelines.
  • Components:

* Pipeline Creation Wizard: Step-by-step guide for defining pipeline stages.

* Customizable Stages: Drag-and-drop interface for adding, reordering, and renaming stages (e.g., Application Review, Phone Screen, Interview Round 1, Offer, Onboarding).

* Stage-Specific Actions: Ability to link job descriptions, interview question banks, and scoring rubrics to specific stages.

* Template Library: Pre-defined pipeline templates for common roles (e.g., Software Engineer, Marketing Manager).

* Status Tracking: Visual indicators for pipeline status (Active, Draft, Archived).

1.1.3 Job Description (JD) Builder

  • Purpose: Facilitates the creation and management of professional job descriptions.
  • Components:

* Rich Text Editor (WYSIWYG): For formatting text, adding bullet points, headings, and links.

* JD Templates: A library of customizable templates for various roles and industries.

* Dynamic Fields: Auto-fill options for standard company information, location, and department.

* Section Management: Pre-defined sections (e.g., "About the Role," "Responsibilities," "Qualifications," "What We Offer") with the ability to add custom sections.

* Version Control: History of JD revisions.

* Preview Functionality: See how the JD will appear to applicants.

1.1.4 Interview Question Bank

  • Purpose: Centralized repository for structured interview questions, promoting consistency and fairness.
  • Components:

* Question Categorization: Group questions by skill (e.g., Technical, Behavioral, Problem-Solving), stage, or role.

* Search & Filter: Efficiently locate questions based on keywords, categories, or associated roles.

* Question Editor: Add new questions, edit existing ones, and associate them with specific competencies.

* Rating Guidelines: Optional prompts or ideal answers associated with each question to guide interviewers.

* Sharing & Collaboration: Ability to share question sets with specific hiring teams.

1.1.5 Scoring Rubric Creator

  • Purpose: Standardizes candidate evaluation through objective scoring criteria.
  • Components:

* Rubric Templates: Pre-built templates for common evaluation areas.

* Customizable Criteria: Define specific skills, competencies, or attributes to be evaluated (e.g., Communication, Technical Proficiency, Problem Solving).

* Rating Scales: Define numeric or descriptive rating scales (e.g., 1-5, "Needs Improvement" to "Exceptional").

* Weighting: Assign different weightages to criteria to reflect their importance for the role.

* Automated Scoring: Calculate total scores based on individual criterion ratings and weightages.

* Feedback Fields: Dedicated areas for interviewers to provide qualitative feedback alongside scores.

1.1.6 Candidate Management

  • Purpose: Track candidates through the pipeline and manage their data.
  • Components:

* Candidate Profiles: Comprehensive view including application details, resume, contact info, interview notes, and feedback.

* Drag-and-Drop Stage Progression: Visually move candidates between pipeline stages.

* Communication Tools: Integrated email templates for candidate communication (e.g., interview invites, rejection letters).

* Notes & Attachments: Add internal notes and attach relevant documents (e.g., portfolio, assessments).

* Interview Scheduling Integration: Sync with calendar tools (e.g., Google Calendar, Outlook) for scheduling.

* Duplicate Detection: Flag potential duplicate candidate entries.

1.1.7 Offer Letter Templates

  • Purpose: Generate professional and consistent offer letters.
  • Components:

* Template Library: Pre-designed offer letter templates.

* Dynamic Placeholders: Auto-populate candidate name, salary, start date, benefits, and other job-specific details.

* Rich Text Editor: Customize letter content for specific offers.

* Preview & Send: Generate a PDF preview and send directly to candidates (or integrate with e-signature platforms).

* Approval Workflow: Define an approval process for offer letters before they are sent.

1.1.8 Onboarding Checklist Builder

  • Purpose: Ensure a smooth and consistent onboarding experience for new hires.
  • Components:

* Customizable Checklists: Create task lists for pre-boarding, first day, first week, etc.

* Task Assignment: Assign tasks to specific individuals or departments (e.g., IT, HR, Hiring Manager).

* Due Dates & Reminders: Set deadlines and automated reminders for tasks.

* Task Status Tracking: Visual indicators for task completion.

* Resource Links: Attach relevant documents or links to each task.

* Onboarding Templates: Reusable templates for different roles or departments.

1.2 General Design Principles

  • Consistency: Uniform UI elements, typography, and interaction patterns across the platform.
  • Clarity: Clear labeling, intuitive navigation, and concise information presentation.
  • Efficiency: Minimize clicks, provide shortcuts, and automate repetitive tasks.
  • Feedback: Provide immediate and clear feedback for user actions (e.g., success messages, error alerts).
  • Accessibility: Adherence to WCAG guidelines for color contrast, keyboard navigation, and screen reader compatibility.
  • Responsiveness: Optimized for various screen sizes (desktop, tablet).

2. Wireframe Descriptions (Key Screens)

These descriptions outline the layout and core elements for critical user interfaces.

2.1 Dashboard Wireframe

  • Layout: Three-column layout with a persistent left-hand navigation.
  • Left Column (Navigation):

* Company Logo / Product Name.

* Main navigation links: Dashboard, Pipelines, Job Descriptions, Interview Bank, Rubrics, Candidates, Offers, Onboarding, Settings.

* User profile/logout.

  • Center Column (Main Content - Top Section):

* Header: "Dashboard" with a "Create New Pipeline" primary button.

* Summary Cards (4-6 cards): Displaying key metrics like "Open Roles," "Total Candidates," "Avg. Time-to-Hire," "Upcoming Interviews." Each card shows a number and a small trend indicator.

  • Center Column (Main Content - Middle Section):

* "My Active Pipelines" Section: A list or card view of active pipelines, showing role name, number of candidates, and current stage distribution (e.g., mini-kanban view or progress bar).

* "Upcoming Interviews" Section: A chronological list of scheduled interviews, showing candidate name, role, interviewer, and time.

  • Right Column (Optional/Contextual):

* "Notifications/Alerts": A feed of recent activities or urgent alerts (e.g., "New Applicant for X," "Offer for Y Pending Approval").

* "Quick Actions": Buttons for common tasks like "Add Candidate," "Create Job."

2.2 Pipeline Configuration Wireframe

  • Layout: Two-column layout with a main content area and a right-hand properties panel.
  • Header: "Configure Pipeline: [Pipeline Name]" with "Save" and "Cancel" buttons.
  • Left Column (Pipeline Stages - Main Area):

* "Pipeline Stages" Title.

* Drag-and-Drop Canvas: A horizontal or vertical flow chart representation of stages.

* Each stage represented as a card/box, showing:

* Stage Name (editable).

* Small icon to "Add Stage Before/After."

* Option to "Delete Stage."

* Small icon to "Configure Stage" (opens right panel).

* A prominent "+" button to "Add New Stage."

* Option to "Load from Template" (dropdown).

  • Right Column (Stage Properties Panel):

* Header: "Stage Details: [Selected Stage Name]"

* Input Field: "Stage Name."

* Dropdown: "Associate Job Description" (select from existing JDs).

* Multi-select/Tags Input: "Associate Interview Questions" (select from question bank).

* Dropdown: "Associate Scoring Rubric" (select from existing rubrics).

* Checkbox: "Is this an interview stage?" (If checked, reveal options for scheduling integration).

* Text Area: "Stage Notes/Instructions for Recruiters."

* "Apply to All" / "Apply to Selected" buttons for template settings.

2.3 Job Description Editor Wireframe

  • Layout: Single column, focused content area with a toolbar.
  • Header: "Edit Job Description: [Job Title]" with "Save Draft," "Publish," "Preview," and "Cancel" buttons.
  • Top Section:

* Input Field: "Job Title."

* Dropdown: "Department."

* Input Field: "Location."

* Dropdown: "JD Template" (with "Load Template" button).

  • Main Editor Area:

* Rich Text Editor Toolbar: Standard formatting options (bold, italic, underline, lists, headings, links, etc.).

* Content Area: A large, scrollable text area where the JD content is written. Pre-populated with template content if selected, with clear placeholders for dynamic fields.

* Sidebar/Right Panel (Optional - for advanced settings):

* "Internal Notes."

* "Tags/Keywords."

* "Associated Pipeline."

2.4 Candidate Profile Wireframe

  • Layout: Two-column layout with a left-hand summary and a tabbed right-hand detail area.
  • Header: Candidate Name ("John Doe - Software Engineer") with "Move Stage" dropdown/button and "Actions" dropdown (e.g., "Send Email," "Schedule Interview," "Reject," "Archive").
  • Left Column (Candidate Summary):

* Candidate Photo/Avatar.

* Contact Info: Email, Phone, LinkedIn.

* Current Stage: "Interview Round 2."

* Application Date.

* Resume Download Link.

* Overall Score (if applicable).

* Source: (e.g., LinkedIn, Referral).

  • Right Column (Tabbed Detail Area):

* Tabs: "Overview," "Interviews," "Feedback," "Notes," "Attachments," "Activity Log."

* "Overview" Tab:

* Basic application questions/answers.

* Short summary/recruiter notes.

* "Interviews" Tab:

* List of scheduled/completed interviews.

* Each item shows: Interviewer, Date/Time, Stage, Status (Scheduled, Completed, Canceled).

* Link to "View Interview Details" / "Add Feedback."

* "Feedback" Tab:

* List of all interview feedback forms submitted for this candidate.

* Each item shows: Interviewer, Stage, Overall Rating, Summary of Feedback.

* Option to "View Full Feedback Form."

* "Notes" Tab:

* Chronological list of internal notes from team members.

* Input field to "Add New Note."

* "Activity Log" Tab:

* Timeline of all actions taken on the candidate profile (e.g., "Moved to Phone Screen by Jane Doe," "Offer Letter Sent").


3. Color Palettes

A professional, clean, and inviting color palette will be used to ensure a positive user experience.

  • Primary Brand Color (Dark Blue/Teal): #1D3557 (or similar deep, rich blue for headers, primary buttons, branding elements)

Purpose:* Conveys professionalism, trust, and stability.

  • Secondary Accent Color (Lighter Blue/Green): #457B9D (or a complementary calming color)

Purpose:* Used for active states, secondary buttons, progress indicators, and subtle accents.

  • Neutral Palette:

* Backgrounds (Light Grey): #F8F9FA (soft, subtle background for content areas)

* Card Backgrounds (White): #FFFFFF (clean content separation)

* Text (Dark Grey): #343A40 (highly readable body text)

* Borders/Dividers (Light Grey): #E9ECEF (subtle separation of elements)

  • Action/Status Colors:

* Success (Green): #28A745 (for successful actions, positive feedback)

* Warning (Orange): #FFC107 (for warnings,

gemini Output

This document outlines the detailed design specifications, wireframe descriptions, color palettes, and user experience (UX) recommendations for the "PantheraHire Pipeline Builder." This final design aims to provide a professional, intuitive, and highly effective platform for managing all aspects of your hiring process, from job definition to onboarding.


1. Detailed Design Specifications: PantheraHire Pipeline Builder System

The PantheraHire Pipeline Builder is envisioned as a comprehensive, web-based platform designed to centralize and streamline the creation and management of all hiring assets. Its core philosophy is to empower HR professionals and hiring managers with robust tools for efficiency, consistency, and a superior candidate experience.

1.1 Core Principles

  • User-Centric Design: Prioritize ease of use, intuitive workflows, and clear information hierarchy.
  • Modularity: Allow for independent management of job descriptions, interview questions, rubrics, offers, and onboarding, while ensuring seamless integration.
  • Customizability: Enable extensive customization of all templates to reflect specific organizational needs and branding.
  • Scalability: Design to accommodate growth in the number of pipelines, roles, and users.
  • Collaboration: Facilitate teamwork among hiring teams through shared access and version control.

1.2 System Architecture (Conceptual)

The platform will be structured around key modules accessible via a persistent navigation system.

  • Dashboard: An overview of all active pipelines, key metrics, and quick access to recent activities or drafts.
  • Job Management: Create, edit, publish, and archive job descriptions.
  • Interview Management: Build and manage banks of interview questions, categorized by type or skill.
  • Evaluation Management: Design and apply scoring rubrics for consistent candidate assessment.
  • Offer Management: Customize and generate offer letters using dynamic templates.
  • Onboarding Management: Develop and track comprehensive onboarding checklists.
  • Templates Library: A central repository for all system-provided and user-created templates.

1.3 Asset Presentation & Interaction Design

  • Rich Text Editing: For job descriptions and offer letters, a powerful WYSIWYG editor will be provided, supporting formatting, media embedding (optional, e.g., company culture videos), and merge fields for dynamic content.
  • Structured Input: For interview questions, scoring rubrics, and onboarding checklists, structured forms will guide users, ensuring completeness and consistency. This includes fields for question type, criteria definition, score levels, and task assignments.
  • Template Management:

* System Templates: Clearly labeled, read-only templates provided by PantheraHire, serving as excellent starting points.

* Custom Templates: Users can duplicate system templates or create new ones from scratch, saving them for future use.

* Version Control: Automatic saving of drafts and an optional version history for major revisions.

  • Preview Functionality: A "Preview" mode for all assets (Job Descriptions, Offer Letters) to visualize how they will appear to candidates or internal stakeholders.
  • Export & Share: Options to export assets to common formats (PDF, DOCX) or generate shareable web links.
  • Drag-and-Drop Interface: For ordering interview questions within a bank, reordering rubric criteria, or arranging onboarding tasks.
  • Search & Filtering: Robust search capabilities and filters across all modules to quickly locate specific jobs, questions, or templates.

1.4 Responsiveness & Accessibility

  • Responsive Design: The interface will be fully responsive, ensuring optimal usability across desktops, tablets, and mobile devices.
  • WCAG Compliance: Adherence to Web Content Accessibility Guidelines (WCAG 2.1 AA) for color contrast, keyboard navigation, screen reader compatibility, and clear focus states.

2. Wireframe Descriptions: Key Modules

Below are conceptual wireframe descriptions for the primary screens of the PantheraHire Pipeline Builder, outlining their structure and key elements.

2.1 Dashboard / Pipeline Overview

  • Layout:

* Left Navigation Bar: Persistent navigation with icons and labels for Dashboard, Jobs, Interviews, Rubrics, Offers, Onboarding, Templates, Settings.

* Header: System logo, search bar, user profile/notifications.

* Main Content Area: Divided into sections for quick insights and active pipelines.

  • Key Elements:

* "Create New Pipeline" CTA: Prominent button to initiate a new hiring workflow.

* Pipeline Cards: Each card represents an active hiring pipeline, showing:

* Job Title & Department

* Current Stage (e.g., "Application Review," "Interviews")

* Number of Candidates (Total, Active, New)

* Progress Bar or Status Indicator

* Quick Actions (e.g., "View Pipeline," "Add Candidate").

* Key Metrics Section: Small widgets displaying:

* Total Open Jobs

* Average Time-to-Hire

* Candidate Conversion Rates (optional, if integrated with ATS).

* Recent Activity Feed: Shows recently edited templates, new applications, or pipeline updates.

2.2 Job Description Editor

  • Layout:

* Header: Job Title (editable), "Save Draft," "Publish," "Preview" buttons.

* Left Pane (Optional): Section navigation (e.g., "Overview," "Responsibilities," "Qualifications," "Benefits").

* Main Content Area: Rich Text Editor for the job description content.

* Right Sidebar: Job details panel for metadata.

  • Key Elements:

* Job Title Input Field: Primary identifier.

* Rich Text Editor: Fully featured editor for the main body of the JD, including formatting options (bold, italics, lists), heading styles, and potentially image/video embeds.

* Metadata Fields (Right Sidebar):

* Department, Location, Employment Type (Full-time, Part-time), Seniority Level.

* Reporting To (Manager's Name/Role).

* Salary Range (optional, for internal use or public display).

* Associated Pipeline Stages (link to interview plan).

* "AI Assist" Button (Optional): Suggests improvements, expands on bullet points, or generates initial content based on keywords.

* Template Selector: Dropdown to choose from saved custom templates or system templates.

2.3 Interview Question Bank Manager

  • Layout:

* Header: "Interview Question Bank," "Add New Question" CTA.

* Left Sidebar: Categories/Filters (e.g., "Behavioral," "Technical," "Situational," "Role-Specific").

* Main Content Area: List of questions.

  • Key Elements:

* Question List: Each item displays:

* Question Text

* Question Type (e.g., "Behavioral," "Technical")

* Associated Skills/Competencies

* Action Icons (Edit, Duplicate, Delete).

* "Add New Question" Form (Modal or Inline):

* Question Text Input: Multi-line text area.

* Question Type Selector: Dropdown (e.g., Behavioral, Technical, Problem-Solving, Culture Fit).

* Keywords/Tags: For searchability and linking to job requirements.

* Suggested Answer/Scoring Notes: A text area for internal guidance on what to look for in a good answer.

* Associated Competencies: Multi-select dropdown.

* Search Bar & Filters: To quickly find specific questions.

2.4 Scoring Rubric Creator

  • Layout:

* Header: "Scoring Rubrics," "Create New Rubric" CTA.

* Main Content Area: List of existing rubrics.

* Rubric Editor (Modal or Dedicated Page):

  • Key Elements:

* Rubric List: Displays Rubric Name, Description, Associated Jobs/Stages, Action Icons (Edit, Duplicate, Delete).

* Rubric Editor Interface:

* Rubric Name & Description.

* Criteria Section:

* "Add New Criteria" button.

* Each criterion has: Name (e.g., "Problem Solving," "Communication"), Description.

* Score Levels Grid:

* Configurable number of score levels (e.g., 1-5, or Novice-Expert).

* For each criterion, text boxes to describe performance at each score level.

* Example: "Score 1: Rarely contributes to solutions," "Score 5: Proactively identifies and solves complex problems."

* Weighting (Optional): Assign weights to different criteria.

* "Link to Interview Stage" Functionality: Associate a rubric with specific interview stages within a pipeline.

2.5 Offer Letter Template Editor

  • Layout:

* Header: "Offer Letter Templates," "Create New Template" CTA.

* Main Content Area: List of templates.

* Editor (Rich Text Editor with merge fields).

  • Key Elements:

* Template List: Displays Template Name, Last Modified, Action Icons (Edit, Duplicate, Delete, Generate Offer).

* Rich Text Editor: Similar to JD editor, but with specific focus on:

* Merge Fields: Dropdown or sidebar panel to insert dynamic placeholders (e.g., {{Candidate Name}}, {{Position Title}}, {{Salary}}, {{Start Date}}, {{Manager Name}}).

* Company Branding: Placeholder for logo, letterhead.

* Standard Clauses: Pre-defined sections for confidentiality, at-will employment, benefits overview.

* Preview Functionality: Shows how an offer letter would look with sample data.

* "Generate Offer" Workflow: Step-by-step process to select a candidate, fill in specific details (salary, start date), and generate a personalized offer letter.

2.6 Onboarding Checklist Builder

  • Layout:

* Header: "Onboarding Checklists," "Create New Checklist" CTA.

* Main Content Area: List of checklists.

* Checklist Editor (Hierarchical list).

  • Key Elements:

* Checklist List: Displays Checklist Name, Associated Roles/Departments, Number of Tasks, Action Icons (Edit, Duplicate, Delete, Assign).

* Checklist Editor Interface:

* Checklist Name & Description.

* Task Categories: (e.g., "Pre-Boarding," "Day 1," "Week 1," "First 30 Days").

* Individual Tasks:

* Task Name (e.g., "Setup IT Equipment," "Complete HR Paperwork").

* Description/Instructions.

* Assignee:

hiring_pipeline_builder.md
Download as Markdown
Copy all content
Full output as text
Download ZIP
IDE-ready project ZIP
Copy share link
Permanent URL for this run
Get Embed Code
Embed this result on any website
Print / Save PDF
Use browser print dialog
"); var hasSrcMain=Object.keys(extracted).some(function(k){return k.indexOf("src/main")>=0;}); if(!hasSrcMain) zip.file(folder+"src/main."+ext,"import React from 'react' import ReactDOM from 'react-dom/client' import App from './App' import './index.css' ReactDOM.createRoot(document.getElementById('root')!).render( ) "); var hasSrcApp=Object.keys(extracted).some(function(k){return k==="src/App."+ext||k==="App."+ext;}); if(!hasSrcApp) zip.file(folder+"src/App."+ext,"import React from 'react' import './App.css' function App(){ return(

"+slugTitle(pn)+"

Built with PantheraHive BOS

) } export default App "); zip.file(folder+"src/index.css","*{margin:0;padding:0;box-sizing:border-box} body{font-family:system-ui,-apple-system,sans-serif;background:#f0f2f5;color:#1a1a2e} .app{min-height:100vh;display:flex;flex-direction:column} .app-header{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:40px} h1{font-size:2.5rem;font-weight:700} "); zip.file(folder+"src/App.css",""); zip.file(folder+"src/components/.gitkeep",""); zip.file(folder+"src/pages/.gitkeep",""); zip.file(folder+"src/hooks/.gitkeep",""); Object.keys(extracted).forEach(function(p){ var fp=p.startsWith("src/")?p:"src/"+p; zip.file(folder+fp,extracted[p]); }); zip.file(folder+"README.md","# "+slugTitle(pn)+" Generated by PantheraHive BOS. ## Setup ```bash npm install npm run dev ``` ## Build ```bash npm run build ``` ## Open in IDE Open the project folder in VS Code or WebStorm. "); zip.file(folder+".gitignore","node_modules/ dist/ .env .DS_Store *.local "); } /* --- Vue (Vite + Composition API + TypeScript) --- */ function buildVue(zip,folder,app,code,panelTxt){ var pn=pkgName(app); var C=cc(pn); var extracted=extractCode(panelTxt); zip.file(folder+"package.json",'{ "name": "'+pn+'", "version": "0.0.0", "type": "module", "scripts": { "dev": "vite", "build": "vue-tsc -b && vite build", "preview": "vite preview" }, "dependencies": { "vue": "^3.5.13", "vue-router": "^4.4.5", "pinia": "^2.3.0", "axios": "^1.7.9" }, "devDependencies": { "@vitejs/plugin-vue": "^5.2.1", "typescript": "~5.7.3", "vite": "^6.0.5", "vue-tsc": "^2.2.0" } } '); zip.file(folder+"vite.config.ts","import { defineConfig } from 'vite' import vue from '@vitejs/plugin-vue' import { resolve } from 'path' export default defineConfig({ plugins: [vue()], resolve: { alias: { '@': resolve(__dirname,'src') } } }) "); zip.file(folder+"tsconfig.json",'{"files":[],"references":[{"path":"./tsconfig.app.json"},{"path":"./tsconfig.node.json"}]} '); zip.file(folder+"tsconfig.app.json",'{ "compilerOptions":{ "target":"ES2020","useDefineForClassFields":true,"module":"ESNext","lib":["ES2020","DOM","DOM.Iterable"], "skipLibCheck":true,"moduleResolution":"bundler","allowImportingTsExtensions":true, "isolatedModules":true,"moduleDetection":"force","noEmit":true,"jsxImportSource":"vue", "strict":true,"paths":{"@/*":["./src/*"]} }, "include":["src/**/*.ts","src/**/*.d.ts","src/**/*.tsx","src/**/*.vue"] } '); zip.file(folder+"env.d.ts","/// "); zip.file(folder+"index.html"," "+slugTitle(pn)+"
"); var hasMain=Object.keys(extracted).some(function(k){return k==="src/main.ts"||k==="main.ts";}); if(!hasMain) zip.file(folder+"src/main.ts","import { createApp } from 'vue' import { createPinia } from 'pinia' import App from './App.vue' import './assets/main.css' const app = createApp(App) app.use(createPinia()) app.mount('#app') "); var hasApp=Object.keys(extracted).some(function(k){return k.indexOf("App.vue")>=0;}); if(!hasApp) zip.file(folder+"src/App.vue"," "); zip.file(folder+"src/assets/main.css","*{margin:0;padding:0;box-sizing:border-box}body{font-family:system-ui,sans-serif;background:#fff;color:#213547} "); zip.file(folder+"src/components/.gitkeep",""); zip.file(folder+"src/views/.gitkeep",""); zip.file(folder+"src/stores/.gitkeep",""); Object.keys(extracted).forEach(function(p){ var fp=p.startsWith("src/")?p:"src/"+p; zip.file(folder+fp,extracted[p]); }); zip.file(folder+"README.md","# "+slugTitle(pn)+" Generated by PantheraHive BOS. ## Setup ```bash npm install npm run dev ``` ## Build ```bash npm run build ``` Open in VS Code or WebStorm. "); zip.file(folder+".gitignore","node_modules/ dist/ .env .DS_Store *.local "); } /* --- Angular (v19 standalone) --- */ function buildAngular(zip,folder,app,code,panelTxt){ var pn=pkgName(app); var C=cc(pn); var sel=pn.replace(/_/g,"-"); var extracted=extractCode(panelTxt); zip.file(folder+"package.json",'{ "name": "'+pn+'", "version": "0.0.0", "scripts": { "ng": "ng", "start": "ng serve", "build": "ng build", "test": "ng test" }, "dependencies": { "@angular/animations": "^19.0.0", "@angular/common": "^19.0.0", "@angular/compiler": "^19.0.0", "@angular/core": "^19.0.0", "@angular/forms": "^19.0.0", "@angular/platform-browser": "^19.0.0", "@angular/platform-browser-dynamic": "^19.0.0", "@angular/router": "^19.0.0", "rxjs": "~7.8.0", "tslib": "^2.3.0", "zone.js": "~0.15.0" }, "devDependencies": { "@angular-devkit/build-angular": "^19.0.0", "@angular/cli": "^19.0.0", "@angular/compiler-cli": "^19.0.0", "typescript": "~5.6.0" } } '); zip.file(folder+"angular.json",'{ "$schema": "./node_modules/@angular/cli/lib/config/schema.json", "version": 1, "newProjectRoot": "projects", "projects": { "'+pn+'": { "projectType": "application", "root": "", "sourceRoot": "src", "prefix": "app", "architect": { "build": { "builder": "@angular-devkit/build-angular:application", "options": { "outputPath": "dist/'+pn+'", "index": "src/index.html", "browser": "src/main.ts", "tsConfig": "tsconfig.app.json", "styles": ["src/styles.css"], "scripts": [] } }, "serve": {"builder":"@angular-devkit/build-angular:dev-server","configurations":{"production":{"buildTarget":"'+pn+':build:production"},"development":{"buildTarget":"'+pn+':build:development"}},"defaultConfiguration":"development"} } } } } '); zip.file(folder+"tsconfig.json",'{ "compileOnSave": false, "compilerOptions": {"baseUrl":"./","outDir":"./dist/out-tsc","forceConsistentCasingInFileNames":true,"strict":true,"noImplicitOverride":true,"noPropertyAccessFromIndexSignature":true,"noImplicitReturns":true,"noFallthroughCasesInSwitch":true,"paths":{"@/*":["src/*"]},"skipLibCheck":true,"esModuleInterop":true,"sourceMap":true,"declaration":false,"experimentalDecorators":true,"moduleResolution":"bundler","importHelpers":true,"target":"ES2022","module":"ES2022","useDefineForClassFields":false,"lib":["ES2022","dom"]}, "references":[{"path":"./tsconfig.app.json"}] } '); zip.file(folder+"tsconfig.app.json",'{ "extends":"./tsconfig.json", "compilerOptions":{"outDir":"./dist/out-tsc","types":[]}, "files":["src/main.ts"], "include":["src/**/*.d.ts"] } '); zip.file(folder+"src/index.html"," "+slugTitle(pn)+" "); zip.file(folder+"src/main.ts","import { bootstrapApplication } from '@angular/platform-browser'; import { appConfig } from './app/app.config'; import { AppComponent } from './app/app.component'; bootstrapApplication(AppComponent, appConfig) .catch(err => console.error(err)); "); zip.file(folder+"src/styles.css","* { margin: 0; padding: 0; box-sizing: border-box; } body { font-family: system-ui, -apple-system, sans-serif; background: #f9fafb; color: #111827; } "); var hasComp=Object.keys(extracted).some(function(k){return k.indexOf("app.component")>=0;}); if(!hasComp){ zip.file(folder+"src/app/app.component.ts","import { Component } from '@angular/core'; import { RouterOutlet } from '@angular/router'; @Component({ selector: 'app-root', standalone: true, imports: [RouterOutlet], templateUrl: './app.component.html', styleUrl: './app.component.css' }) export class AppComponent { title = '"+pn+"'; } "); zip.file(folder+"src/app/app.component.html","

"+slugTitle(pn)+"

Built with PantheraHive BOS

"); zip.file(folder+"src/app/app.component.css",".app-header{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:60vh;gap:16px}h1{font-size:2.5rem;font-weight:700;color:#6366f1} "); } zip.file(folder+"src/app/app.config.ts","import { ApplicationConfig, provideZoneChangeDetection } from '@angular/core'; import { provideRouter } from '@angular/router'; import { routes } from './app.routes'; export const appConfig: ApplicationConfig = { providers: [ provideZoneChangeDetection({ eventCoalescing: true }), provideRouter(routes) ] }; "); zip.file(folder+"src/app/app.routes.ts","import { Routes } from '@angular/router'; export const routes: Routes = []; "); Object.keys(extracted).forEach(function(p){ var fp=p.startsWith("src/")?p:"src/"+p; zip.file(folder+fp,extracted[p]); }); zip.file(folder+"README.md","# "+slugTitle(pn)+" Generated by PantheraHive BOS. ## Setup ```bash npm install ng serve # or: npm start ``` ## Build ```bash ng build ``` Open in VS Code with Angular Language Service extension. "); zip.file(folder+".gitignore","node_modules/ dist/ .env .DS_Store *.local .angular/ "); } /* --- Python --- */ function buildPython(zip,folder,app,code){ var title=slugTitle(app); var pn=pkgName(app); var src=code.replace(/^```[w]* ?/m,"").replace(/ ?```$/m,"").trim(); var reqMap={"numpy":"numpy","pandas":"pandas","sklearn":"scikit-learn","tensorflow":"tensorflow","torch":"torch","flask":"flask","fastapi":"fastapi","uvicorn":"uvicorn","requests":"requests","sqlalchemy":"sqlalchemy","pydantic":"pydantic","dotenv":"python-dotenv","PIL":"Pillow","cv2":"opencv-python","matplotlib":"matplotlib","seaborn":"seaborn","scipy":"scipy"}; var reqs=[]; Object.keys(reqMap).forEach(function(k){if(src.indexOf("import "+k)>=0||src.indexOf("from "+k)>=0)reqs.push(reqMap[k]);}); var reqsTxt=reqs.length?reqs.join(" "):"# add dependencies here "; zip.file(folder+"main.py",src||"# "+title+" # Generated by PantheraHive BOS print(title+" loaded") "); zip.file(folder+"requirements.txt",reqsTxt); zip.file(folder+".env.example","# Environment variables "); zip.file(folder+"README.md","# "+title+" Generated by PantheraHive BOS. ## Setup ```bash python3 -m venv .venv source .venv/bin/activate pip install -r requirements.txt ``` ## Run ```bash python main.py ``` "); zip.file(folder+".gitignore",".venv/ __pycache__/ *.pyc .env .DS_Store "); } /* --- Node.js --- */ function buildNode(zip,folder,app,code){ var title=slugTitle(app); var pn=pkgName(app); var src=code.replace(/^```[w]* ?/m,"").replace(/ ?```$/m,"").trim(); var depMap={"mongoose":"^8.0.0","dotenv":"^16.4.5","axios":"^1.7.9","cors":"^2.8.5","bcryptjs":"^2.4.3","jsonwebtoken":"^9.0.2","socket.io":"^4.7.4","uuid":"^9.0.1","zod":"^3.22.4","express":"^4.18.2"}; var deps={}; Object.keys(depMap).forEach(function(k){if(src.indexOf(k)>=0)deps[k]=depMap[k];}); if(!deps["express"])deps["express"]="^4.18.2"; var pkgJson=JSON.stringify({"name":pn,"version":"1.0.0","main":"src/index.js","scripts":{"start":"node src/index.js","dev":"nodemon src/index.js"},"dependencies":deps,"devDependencies":{"nodemon":"^3.0.3"}},null,2)+" "; zip.file(folder+"package.json",pkgJson); var fallback="const express=require("express"); const app=express(); app.use(express.json()); app.get("/",(req,res)=>{ res.json({message:""+title+" API"}); }); const PORT=process.env.PORT||3000; app.listen(PORT,()=>console.log("Server on port "+PORT)); "; zip.file(folder+"src/index.js",src||fallback); zip.file(folder+".env.example","PORT=3000 "); zip.file(folder+".gitignore","node_modules/ .env .DS_Store "); zip.file(folder+"README.md","# "+title+" Generated by PantheraHive BOS. ## Setup ```bash npm install ``` ## Run ```bash npm run dev ``` "); } /* --- Vanilla HTML --- */ function buildVanillaHtml(zip,folder,app,code){ var title=slugTitle(app); var isFullDoc=code.trim().toLowerCase().indexOf("=0||code.trim().toLowerCase().indexOf("=0; var indexHtml=isFullDoc?code:" "+title+" "+code+" "; zip.file(folder+"index.html",indexHtml); zip.file(folder+"style.css","/* "+title+" — styles */ *{margin:0;padding:0;box-sizing:border-box} body{font-family:system-ui,-apple-system,sans-serif;background:#fff;color:#1a1a2e} "); zip.file(folder+"script.js","/* "+title+" — scripts */ "); zip.file(folder+"assets/.gitkeep",""); zip.file(folder+"README.md","# "+title+" Generated by PantheraHive BOS. ## Open Double-click `index.html` in your browser. Or serve locally: ```bash npx serve . # or python3 -m http.server 3000 ``` "); zip.file(folder+".gitignore",".DS_Store node_modules/ .env "); } /* ===== MAIN ===== */ var sc=document.createElement("script"); sc.src="https://cdnjs.cloudflare.com/ajax/libs/jszip/3.10.1/jszip.min.js"; sc.onerror=function(){ if(lbl)lbl.textContent="Download ZIP"; alert("JSZip load failed — check connection."); }; sc.onload=function(){ var zip=new JSZip(); var base=(_phFname||"output").replace(/.[^.]+$/,""); var app=base.toLowerCase().replace(/[^a-z0-9]+/g,"_").replace(/^_+|_+$/g,"")||"my_app"; var folder=app+"/"; var vc=document.getElementById("panel-content"); var panelTxt=vc?(vc.innerText||vc.textContent||""):""; var lang=detectLang(_phCode,panelTxt); if(_phIsHtml){ buildVanillaHtml(zip,folder,app,_phCode); } else if(lang==="flutter"){ buildFlutter(zip,folder,app,_phCode,panelTxt); } else if(lang==="react-native"){ buildReactNative(zip,folder,app,_phCode,panelTxt); } else if(lang==="swift"){ buildSwift(zip,folder,app,_phCode,panelTxt); } else if(lang==="kotlin"){ buildKotlin(zip,folder,app,_phCode,panelTxt); } else if(lang==="react"){ buildReact(zip,folder,app,_phCode,panelTxt); } else if(lang==="vue"){ buildVue(zip,folder,app,_phCode,panelTxt); } else if(lang==="angular"){ buildAngular(zip,folder,app,_phCode,panelTxt); } else if(lang==="python"){ buildPython(zip,folder,app,_phCode); } else if(lang==="node"){ buildNode(zip,folder,app,_phCode); } else { /* Document/content workflow */ var title=app.replace(/_/g," "); var md=_phAll||_phCode||panelTxt||"No content"; zip.file(folder+app+".md",md); var h=""+title+""; h+="

"+title+"

"; var hc=md.replace(/&/g,"&").replace(//g,">"); hc=hc.replace(/^### (.+)$/gm,"

$1

"); hc=hc.replace(/^## (.+)$/gm,"

$1

"); hc=hc.replace(/^# (.+)$/gm,"

$1

"); hc=hc.replace(/**(.+?)**/g,"$1"); hc=hc.replace(/ {2,}/g,"

"); h+="

"+hc+"

Generated by PantheraHive BOS
"; zip.file(folder+app+".html",h); zip.file(folder+"README.md","# "+title+" Generated by PantheraHive BOS. Files: - "+app+".md (Markdown) - "+app+".html (styled HTML) "); } zip.generateAsync({type:"blob"}).then(function(blob){ var a=document.createElement("a"); a.href=URL.createObjectURL(blob); a.download=app+".zip"; a.click(); URL.revokeObjectURL(a.href); if(lbl)lbl.textContent="Download ZIP"; }); }; document.head.appendChild(sc); }function phShare(){navigator.clipboard.writeText(window.location.href).then(function(){var el=document.getElementById("ph-share-lbl");if(el){el.textContent="Link copied!";setTimeout(function(){el.textContent="Copy share link";},2500);}});}function phEmbed(){var runId=window.location.pathname.split("/").pop().replace(".html","");var embedUrl="https://pantherahive.com/embed/"+runId;var code='';navigator.clipboard.writeText(code).then(function(){var el=document.getElementById("ph-embed-lbl");if(el){el.textContent="Embed code copied!";setTimeout(function(){el.textContent="Get Embed Code";},2500);}});}