Hiring Pipeline Builder
Run ID: 69cb598261b1021a29a883752026-03-31HR
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: Research & Design Requirements

This document outlines the comprehensive design specifications, wireframe descriptions, color palette, and user experience (UX) recommendations for the "Hiring Pipeline Builder" platform. The goal is to create an intuitive, efficient, and customizable tool that streamlines the entire recruitment process from job requisition to candidate onboarding.


1. Executive Summary

The Hiring Pipeline Builder is envisioned as an all-in-one platform designed to empower HR professionals and hiring managers to efficiently manage their recruitment efforts. It will provide a centralized hub for creating and managing job descriptions, building interview question banks, applying consistent scoring rubrics, generating offer letters, and orchestrating candidate onboarding. This design document lays the foundation for a user-centric interface that prioritizes clarity, customization, and seamless workflow.


2. Overall Design Principles & Philosophy

Our design philosophy for the Hiring Pipeline Builder is centered on Clarity, Efficiency, and Customization.

  • Clarity: The interface must be easy to understand, with clear visual hierarchy, consistent terminology, and intuitive navigation. Users should always know where they are and what actions they can take.
  • Efficiency: Workflows should be streamlined, minimizing clicks and repetitive tasks. Features like template management, drag-and-drop functionality, and quick actions will enhance productivity.
  • Customization: Recognizing that every organization has unique hiring processes, the platform will offer extensive customization options for pipeline stages, templates, and user roles.
  • Collaboration: Facilitate seamless teamwork among hiring teams, allowing for shared notes, feedback, and progress tracking.
  • Scalability: The design will accommodate a growing number of jobs, candidates, and users without compromising performance or usability.

3. Key Features & Functionality Overview

The Hiring Pipeline Builder will encompass the following core functionalities:

  • Job Requisition Management: Create, edit, publish, and archive job postings with detailed descriptions and requirements.
  • Customizable Hiring Pipeline: Define and manage unique stages for each job, allowing for flexible recruitment workflows.
  • Candidate Management: Centralized candidate profiles, resume parsing, communication history, and status tracking.
  • Interview Management: Schedule interviews, assign interviewers, attach question banks, and record feedback.
  • Template Library: Store and manage reusable templates for job descriptions, interview questions, scoring rubrics, offer letters, and onboarding checklists.
  • Scoring & Evaluation: Apply standardized scoring rubrics to evaluate candidates consistently.
  • Offer Management: Generate, customize, send, and track offer letters.
  • Onboarding Checklists: Create and assign comprehensive onboarding tasks for new hires, track progress.
  • Team Collaboration: Facilitate internal notes, @mentions, and shared access to candidate information.
  • Reporting & Analytics: Basic reporting on pipeline health, time-to-hire, and candidate sources.

4. Detailed Design Specifications

4.1. Job Requisition & Posting Management

  • Job Creation Form:

* Fields: Job Title, Department, Location (Text/Dropdown), Employment Type (Full-time, Part-time, Contract), Salary Range (Min/Max), Experience Level (Dropdown), Job Description (Rich Text Editor), Key Responsibilities (Bulleted List/Rich Text), Required Qualifications (Bulleted List/Rich Text), Preferred Qualifications (Bulleted List/Rich Text).

* Associated Templates: Dropdowns to select pre-existing Job Description, Interview Question Bank, and Scoring Rubric templates. Option to create new on the fly.

* Hiring Team: Add hiring managers, recruiters, and interviewers with defined roles.

* Visibility: Internal/External posting options.

  • Job List View:

* Table or card view displaying active, draft, and archived jobs.

* Columns/Cards: Job Title, Department, Location, Status (Active, Draft, Closed), # Candidates, # New Candidates, Quick Actions (Edit, View Pipeline, Archive).

* Filter and Search functionality (by title, department, status).

4.2. Hiring Pipeline & Candidate Management

  • Pipeline Visualization:

* Kanban Board Style: Columns representing customizable stages (e.g., Application, Screen, Interview, Offer, Hired, Rejected).

* Candidate Cards: Each card represents a candidate, showing Name, Photo (if available), Current Stage, Last Activity, and quick action icons (e.g., View Profile, Move).

* Drag-and-Drop: Ability to move candidate cards between stages.

* Stage Customization: Admin settings to add, edit, or reorder pipeline stages globally or per job.

  • Candidate Profile:

* Overview: Name, Contact Info, Photo, Current Stage, Job Applied For.

* Tabs/Sections:

* Resume/CV: Embeddable viewer for uploaded documents, option to download.

* Application Details: Answers to application questions, custom fields.

* Notes & Feedback: Chronological log of internal notes, interviewer feedback, @mention functionality.

* Communication Log: Record of emails sent, calls made, with date/time stamps.

* Interviews: List of scheduled/completed interviews, links to feedback forms.

* Files: Upload additional documents (portfolio, cover letter).

* History: Audit trail of stage changes, user actions.

  • Candidate Actions: Move to next stage, reject, send email, schedule interview, add note.

4.3. Interview Management

  • Interview Scheduling:

* Integration with calendars (Google Calendar, Outlook) for availability checks and invitation sending.

* Select Interviewers, Interview Type (Phone, Video, On-site), Duration.

* Attach Interview Question Bank and Scoring Rubric.

  • Interview Question Banks:

* Creation/Editing: Rich text editor for questions, categorize by type (e.g., Behavioral, Technical, Situational).

* Structure: Group questions, add notes/guidance for interviewers.

  • Scoring Rubrics:

* Creation/Editing: Define criteria (e.g., Communication Skills, Problem Solving), scoring scale (e.g., 1-5, Poor-Excellent), and descriptive notes for each score level.

* Application: When an interviewer completes a feedback form, the rubric is presented for structured evaluation.

  • Interviewer Feedback Form:

* Displays selected interview questions.

* Input fields for interviewer notes per question.

* Scoring rubric section for objective evaluation.

* Overall recommendation (Hire, No Hire, Maybe).

* Private notes for the hiring team.

4.4. Offer Management

  • Offer Letter Templates:

* Rich Text Editor: Create and manage multiple offer letter templates.

* Merge Fields: Dynamic fields for Candidate Name, Job Title, Salary, Start Date, Benefits, etc. (e.g., {{candidate_first_name}}, {{job_title}}).

* Version Control: Track changes to templates.

  • Generate Offer:

* Select candidate, select template.

* Pre-populate merge fields; allow manual override for specific offer details.

* Preview offer letter.

* Option to attach additional documents (benefits package, company policy).

  • Send & Track Offer:

* Send via email directly from the platform.

* Track status: Sent, Viewed, Accepted, Rejected.

* Option for e-signature integration (future enhancement).

4.5. Onboarding Management

  • Onboarding Checklist Templates:

* Creation/Editing: Define tasks (e.g., IT setup, HR paperwork, Welcome Kit), assignees (e.g., IT Dept, HR Dept, Manager), due dates relative to start date.

* Task Types: Checkbox, text input, file upload.

  • Assign Onboarding:

* Select hired candidate, select onboarding template.

* Adjust due dates, assignees as needed.

  • Onboarding Dashboard (for Managers/Admins):

* View all active onboarding processes.

* Track progress of individual tasks (Completed, Pending, Overdue).

* Filter by New Hire, Department, Task Status.

  • New Hire View (limited access):

* View assigned tasks, mark as complete.

* Access relevant documents.


5. Wireframe Descriptions (Key Screens)

5.1. Global Navigation & Dashboard

  • Left Sidebar Navigation:

* Top: Company Logo, User Profile/Settings.

* Main Menu: Dashboard, Jobs, Candidates, Templates, Reports, Settings.

* Collapsed/Expanded: Toggle for more screen real estate.

  • Dashboard (Main Content Area):

* Top Bar: Search bar (global search), Notifications icon, Quick Add (Job, Candidate, Template).

* Job Overview Cards: Small cards for each active job, showing Job Title, # Candidates, # New Applicants, and a mini-pipeline progress bar.

* Pipeline Summary: A visual representation (e.g., donut chart or bar graph) of candidates across all jobs grouped by stage.

* Pending Tasks/Alerts: Reminders for interviews to schedule, offers to send, onboarding tasks due.

5.2. Job Pipeline View

  • Header: Job Title, Department, Location, Status, Quick Actions (Edit Job, Add Candidate, Close Job).
  • Main Content:

* Kanban Board: Columns representing each defined pipeline stage.

* Stage Headers: Stage Name, Count of Candidates in stage.

* Candidate Cards: Within each column, display individual candidate cards (Name, Photo, Days in Stage, Last Activity).

* Drag Handle: Clear visual cue for drag-and-drop functionality on candidate cards.

* "Add Candidate" Button: At the top of the 'Application' stage.

5.3. Candidate Profile View

  • Header: Candidate Name, Job Title Applied For, Current Stage (with "Move Stage" dropdown), Primary Actions (Reject, Send Email, Schedule Interview).
  • Left Panel (Fixed):

* Candidate Photo/Avatar.

* Contact Information (Email, Phone, LinkedIn).

* Quick Stats (Days in Pipeline, Last Contact).

* Tags/Labels (e.g., "Top Performer," "Referral").

  • Main Content Area (Tabbed Interface):

* Overview: Summary of application, key resume highlights (parsed), quick notes.

* Resume/CV: Embedded PDF viewer for the candidate's resume. Download button.

* Notes & Feedback: Chronological feed of internal notes, interviewer feedback forms. Input field for new notes.

* Interviews: List of past and upcoming interviews, status, interviewer, link to feedback.

* Communication: Log of emails sent to/from candidate (integrated), call notes.

* Files: Uploaded documents.

* History: Audit log of all actions taken on the candidate profile.

5.4. Template Editors (Job Description, Offer Letter, Onboarding)

  • Header: Template Type (e.g., "Job Description Template"), Template Name, Save/Discard buttons, Version History.
  • Main Content:

* Rich Text Editor: Standard editor with formatting options (bold, italic, lists, headings, links).

* Merge Field Selector: A sidebar or dropdown to easily insert dynamic merge fields (e.g., {{job_title}}, {{candidate_name}}).

* Preview Button: To see how the template will render with sample data.

* Tags/Categories: To organize templates.


6. Color Palette

The chosen color palette aims for professionalism, trustworthiness, and a clean, modern aesthetic.

  • Primary Brand Color:

* Deep Teal: #007B80 (A professional, calming, and trustworthy color that evokes growth and clarity.)

  • Secondary Accent Colors:

* Action Green: #4CAF50 (Used for primary calls to action, success messages, and positive indicators. Represents progress and completion.)

* Warm Grey: #6C757D (For secondary buttons, subtle accents, and disabled states. Provides a sophisticated contrast.)

  • Neutral Palette (Backgrounds & Text):

*

gemini Output

Hiring Pipeline Builder: Design Specifications

This document outlines the detailed design specifications, wireframe descriptions, color palettes, and user experience (UX) recommendations for the "Hiring Pipeline Builder." The goal is to create a robust, intuitive, and highly efficient tool that empowers organizations to streamline their recruitment processes from job creation to candidate onboarding.


1. Detailed Design Specifications

The Hiring Pipeline Builder will be a modular system, allowing users to create, customize, and manage all essential components of a hiring process within a unified interface.

1.1. Core System Workflow & Architecture

  • Pipeline Creation Wizard: A guided, multi-step process for building a new hiring pipeline, allowing users to define job details, select/create associated assets (JD, Q-Bank, Rubrics, etc.), and configure stages.
  • Modular Asset Management: Each component (Job Descriptions, Interview Question Banks, Scoring Rubrics, Offer Letters, Onboarding Checklists) will be managed as distinct, reusable assets accessible across multiple pipelines.
  • Pipeline Stages Configuration: Users can define custom stages (e.g., Application Review, Phone Screen, Technical Interview, Final Interview, Offer, Onboarding) and associate specific assets or actions with each stage.
  • Dashboard Overview: A centralized dashboard providing a holistic view of all active pipelines, their current status, and quick access to pipeline management.

1.2. Job Description (JD) Builder Module

  • Template Library:

* Pre-built, customizable templates for common roles (e.g., Software Engineer, Marketing Manager, Sales Representative).

* Ability to save custom JDs as new templates for future use.

  • Rich Text Editor:

* Standard formatting options (bold, italics, lists, headings).

* Ability to embed images or links.

  • Dynamic Fields:

* Pre-defined placeholders for common variables (e.g., [Job Title], [Department], [Location], [Company Name]).

* Customizable fields for specific organizational needs.

  • Key Sections:

* Job Title & Summary: Concise overview.

* Responsibilities: Bulleted list of core duties.

* Qualifications: Required skills, experience, education.

* Preferred Qualifications: Desired but not mandatory attributes.

* Benefits & Perks: Company offerings.

* About Us: Standard company boilerplate.

  • Version Control: Track changes and revert to previous versions of a JD.
  • Preview Functionality: See how the JD will appear to candidates.
  • Integration Points (Future Consideration): Direct publishing to selected job boards.

1.3. Interview Question Bank Module

  • Categorization:

* Pre-defined categories: Behavioral, Technical, Situational, Culture Fit, Role-Specific.

* Ability to create custom categories.

  • Question Types:

* Open-ended, Multiple Choice (for self-assessment or quick screens), Scenario-based.

  • Question Attributes:

* Difficulty Level: (e.g., Entry, Mid, Senior).

* Associated Skills/Competencies: Tag questions with relevant skills.

* Suggested Answers/Evaluation Criteria: Guidance for interviewers.

  • Search & Filter: Efficiently find questions by keyword, category, skill, or difficulty.
  • Question Sets:

* Create curated sets of questions for specific interview stages or roles (e.g., "Phone Screen - Junior Dev," "Technical Interview - Marketing Lead").

* Drag-and-drop to reorder questions within a set.

  • Contribution & Moderation: (Optional) Allow team members to suggest questions, with admin approval.

1.4. Scoring Rubric Module

  • Customizable Criteria:

* Define specific skills or attributes to evaluate (e.g., "Problem Solving," "Communication," "Technical Proficiency," "Team Collaboration").

* Ability to add detailed descriptions for each criterion.

  • Grading Scales:

* Pre-defined scales (e.g., 1-5, Poor-Excellent, Not Met-Exceeded Expectations).

* Ability to customize labels and numerical values for each point on the scale.

  • Weighting:

* Assign percentage weights to individual criteria to reflect their importance for the role.

* Automatic calculation of total scores based on weights.

  • Rubric Templates:

* Save frequently used rubrics as templates for different roles or interview types.

* Associate specific rubrics with interview stages within a pipeline.

  • Interviewer Guidance: Provide clear instructions and examples for each rating level to ensure consistency.

1.5. Offer Letter Template Module

  • Dynamic Field Insertion:

* Extensive library of merge tags for candidate-specific information: [Candidate Name], [Job Title], [Start Date], [Annual Salary], [Signing Bonus], [Reporting Manager], [Benefits Package Summary].

* Ability to add custom merge tags.

  • Rich Text Editor:

* Full formatting capabilities, similar to the JD builder.

* Ability to upload company logo and branding elements.

  • Legal Clauses Library:

* Pre-approved legal disclaimers, confidentiality agreements, at-will employment clauses, etc.

* Easy drag-and-drop or selection to include in letters.

  • Version Control: Track changes and maintain historical versions of templates.
  • Preview & Send Functionality:

* Generate a preview with sample data.

* Option to send directly to candidates (with e-signature integration, if applicable).

  • Conditional Content: (Advanced) Display specific paragraphs or clauses based on job level, location, or other criteria.

1.6. Onboarding Checklist Module

  • Categorization:

* Group tasks by phase: Pre-Start, Day 1, Week 1, Month 1, First 90 Days.

* Customizable categories.

  • Task Management:

* Task Name: Clear description.

* Assignee: Assign tasks to HR, Hiring Manager, IT, Candidate, etc.

* Due Date: Set specific deadlines or relative dates (e.g., "3 days before start," "Day 1").

* Description/Instructions: Provide details for completing the task.

* Attachments: Link to necessary documents or resources.

  • Template Library:

* Pre-built checklists for different roles or departments.

* Ability to save custom checklists as templates.

  • Progress Tracking:

* Visual indicators for task completion (e.g., checkboxes, progress bars).

* Overview of onboarding status for each new hire.

  • Automated Reminders: (Optional) Send notifications to assignees for upcoming or overdue tasks.
  • Candidate Self-Service: (Optional) Allow candidates to complete certain tasks (e.g., submit forms) via a secure portal.

1.7. User Management & Permissions

  • Role-Based Access Control (RBAC):

* Admin: Full access to all features, settings, and user management.

* Hiring Manager: Manage pipelines they own, view candidate progress, conduct interviews, provide feedback.

* Recruiter: Create and manage pipelines, screen candidates, schedule interviews, send offers.

* Interviewer: Access candidate profiles, interview schedules, and provide feedback using assigned rubrics.

  • Granular Permissions: Define specific actions users can perform within their roles (e.g., "can edit JDs," "can view offer letters," "can create new pipelines").

2. Wireframe Descriptions

The following describes the layout and key elements for crucial screens within the Hiring Pipeline Builder.

2.1. Dashboard / Pipeline Overview

  • Layout: Three-column layout or a main content area with a left-hand navigation.
  • Left Navigation:

* "Dashboard"

* "Pipelines"

* "Job Descriptions"

* "Interview Questions"

* "Scoring Rubrics"

* "Offer Letters"

* "Onboarding Checklists"

* "Settings" (Admin only)

  • Header:

* Company Logo / Product Name.

* User Profile / Logout.

* Global Search Bar.

  • Main Content Area:

* "Create New Pipeline" Button: Prominently displayed.

* Pipeline Cards/List: Each card represents an active hiring pipeline.

* Elements per card: Job Title, Department, Number of Candidates, Current Stage, Quick Actions (e.g., "View Candidates," "Edit Pipeline," "Pause").

* Quick Stats Section: (Optional) Total active pipelines, candidates in progress, average time-to-hire.

* Filters/Sort: By status (Active, Draft, Closed), department, hiring manager.

2.2. Pipeline Builder / Job Role Configuration Screen (Multi-step Wizard)

  • Layout: A linear, step-by-step wizard with a progress indicator at the top.
  • Progress Indicator: "1. Job Details" > "2. Stages & Assets" > "3. Review & Publish".
  • Step 1: Job Details:

* Form fields for Job Title, Department, Location, Hiring Manager, Start Date, Salary Range, Job Summary (brief text area).

* "Next" button.

  • Step 2: Stages & Assets:

* Left Panel: List of pipeline stages (e.g., Application, Phone Screen, Interview 1, Offer, Onboarding).

* Ability to add/remove/reorder stages (drag-and-drop).

* Each stage has a "Configure" or "Add Assets" button.

* Right Panel (Contextual): When a stage is selected, this panel displays options to:

* Associate Job Description: Select from library or "Create New JD."

* Associate Interview Question Set: Select from library or "Create New Set."

* Associate Scoring Rubric: Select from library or "Create New Rubric."

* Associate Offer Letter Template: Select from library or "Create New Template."

* Associate Onboarding Checklist: Select from library or "Create New Checklist."

* "Previous" / "Next" buttons.

  • Step 3: Review & Publish:

* Summary of all configured details.

* "Edit" links next to each section for quick modifications.

* "Save as Draft" / "Publish Pipeline" buttons.

2.3. Job Description Editor Screen

  • Layout: Two-column layout.
  • Left Column (Editor):

* Job Title input field.

* Template Selector dropdown.

* Rich Text Editor for Job Summary, Responsibilities, Qualifications, etc.

* Dynamic Field insertion tool (dropdown or sidebar with placeholders).

* "Save" / "Save as Template" / "Cancel" buttons.

  • Right Column (Preview):

* Real-time rendering of the JD as it would appear to a candidate.

* Toggle for "Desktop View" / "Mobile View."

2.4. Interview Question Bank Management Screen

  • Layout: Main content area with filters and a list of questions.
  • Header: "Interview Question Bank"

* "Add New Question" button.

  • Filters/Search Bar:

* Search by keyword.

* Filter by Category (Behavioral, Technical), Difficulty, Skills.

  • Question List:

* Table or card view, displaying Question, Category, Difficulty, Associated Skills.

* Action buttons

gemini Output

As the final step in the "Hiring Pipeline Builder" workflow, we present the comprehensive design assets for your new, robust hiring platform. This deliverable outlines detailed specifications, visual guidelines, and user experience recommendations to ensure an intuitive, efficient, and professional tool for managing your entire recruitment lifecycle.


Finalized Design Assets: Hiring Pipeline Builder

1. Overall Design Philosophy

The design philosophy for the Hiring Pipeline Builder is centered on Clarity, Efficiency, and Professionalism. Our aim is to create an interface that is:

  • Intuitive: Easy to navigate for recruiters, hiring managers, and administrators, minimizing learning curves.
  • Efficient: Streamlined workflows, quick access to critical information, and automation where appropriate to save time.
  • Professional: A clean, modern aesthetic that reflects the importance of talent acquisition and instills confidence in users.
  • Scalable: Designed to grow with your organization's needs, accommodating increasing candidate volumes and diverse roles.
  • Data-Driven: Emphasizing clear visualization of pipeline status and key metrics.

2. Core Interface Layout & Wireframe Descriptions

The platform will feature a modular design, allowing users to seamlessly transition between different aspects of the hiring process.

2.1. Global Navigation (Persistent Left Sidebar)

  • Description: A collapsible left-hand navigation panel providing quick access to primary modules. Icons with text labels for clarity.
  • Sections:

* Dashboard: Overview of active pipelines, key metrics.

* Jobs: Manage all active and archived job requisitions.

* Candidates: Centralized candidate database and search.

* Templates: Access and manage Job Descriptions, Interview Questions, Scoring Rubrics, Offer Letters, Onboarding Checklists.

* Reports: Analytics and custom reporting.

* Settings: User management, integrations, system configurations.

  • Interaction: Highlight active module; hover states for tooltips. Collapse/expand toggle for more screen real estate.

2.2. Main Dashboard (Home Screen)

  • Description: The primary landing page, offering an at-a-glance overview of recruitment activities.
  • Sections:

* Pipeline Overview (Kanban Board): Visual representation of active jobs and candidates in each stage (e.g., New Applications, Screening, Interview, Offer, Hired). Drag-and-drop functionality for candidate progression. Each card represents a job or candidate.

* Key Metrics Widgets: Customizable widgets displaying critical data:

* "Candidates by Stage" (Bar Chart)

* "Time to Hire" (Average duration)

* "Active Jobs" (Count)

* "New Applicants Today/Week" (Count)

* Quick Actions: Buttons for "Create New Job," "Add Candidate," "View All Templates."

* Recent Activity Feed: Log of recent system actions (e.g., "John Doe moved to Interview stage," "New Job Posting: Senior Software Engineer").

  • Interaction: Clickable cards/widgets to drill down into specific jobs or candidates. Customizable dashboard layout.

2.3. Job Management Module

  • Description: A dedicated section for creating, editing, and managing individual job requisitions.
  • Sections:

* Job List View: A sortable, filterable table displaying all jobs with key details (Title, Department, Status, Openings, Pipeline Stage Count).

* Job Detail View (Multi-Tabbed Panel):

* Overview: Job description, hiring team, status, creation date.

* Candidates: List of all candidates associated with this job, with their current pipeline stage.

* Pipeline Stages: Customizable stages for this specific job, with options to add/remove/reorder.

* Assets: Linked Job Description, Interview Questions, Scoring Rubrics.

* Activity Log: Specific to this job.

  • Interaction: Inline editing for some fields, dedicated "Edit Job" button for comprehensive changes. "Archive Job" option.

2.4. Candidate Profile View

  • Description: A comprehensive 360-degree view of an individual candidate.
  • Sections:

* Header: Candidate Name, Current Job Applied For, Current Pipeline Stage, Contact Info.

* Left Panel: Resume/CV Viewer (integrated viewer or downloadable link).

* Main Content Area (Multi-Tabbed):

* Overview: Basic info, source, referrer, desired salary.

* Application: Application form details, cover letter.

* Interviews: Scheduled interviews, interview feedback forms (linked to scoring rubrics), interviewer notes.

* Documents: Uploaded files (portfolio, certifications).

* Notes: Internal notes from hiring team members.

* Activity Log: All interactions and stage changes for this candidate.

* Right Sidebar (Action Panel): Buttons for "Move Stage," "Schedule Interview," "Send Email," "Make Offer," "Reject Candidate," "Add Note."

  • Interaction: Seamless navigation between tabs. Rich text editor for notes. Integrated email client for quick communication.

2.5. Templates Module

  • Description: Centralized repository for all reusable assets.
  • Sections:

* Navigation Tabs: "Job Descriptions," "Interview Question Banks," "Scoring Rubrics," "Offer Letter Templates," "Onboarding Checklists."

* List View (for each tab): Table displaying template name, description, last modified, associated roles/departments.

* Template Editor: A rich text editor with dynamic fields (e.g., {{candidate_name}}, {{job_title}}) for offer letters. Drag-and-drop interface for building onboarding checklists. Version control for templates.

  • Interaction: "Create New Template," "Edit," "Duplicate," "Delete" options. Preview functionality for offer letters.

3. Detailed Design Specifications

3.1. Typography

  • Primary Font (Headings & Key Information): Inter (Google Fonts)

* Purpose: Modern, highly readable, and professional.

* Usage: H1 (28px, Semibold), H2 (24px, Medium), H3 (20px, Medium), H4 (16px, Medium).

  • Secondary Font (Body Text & UI Elements): Roboto (Google Fonts)

* Purpose: Clean, versatile, excellent for smaller text and data tables.

* Usage: Body (14px, Regular), Small Text (12px, Regular), Button Text (14px, Medium).

  • Line Height: 1.5 for body text to ensure readability.

3.2. Iconography

  • Library: Material Design Icons or Font Awesome Pro.
  • Style: Line icons, consistent stroke weight. Filled icons for active states or primary actions.
  • Usage: Navigation, quick actions, status indicators, module differentiation.
  • Size: Standard 24x24px for general use; 16x16px for inline text or smaller elements.

3.3. Color Palette

  • Primary Brand Color (PantheraHive Blue): #007bff (A vibrant, trustworthy blue)

* Usage: Primary buttons, active navigation items, progress indicators, branding elements.

  • Secondary Accent Color (Teal): #20c997 (A refreshing, optimistic teal)

* Usage: Secondary buttons, success messages, highlights, data visualization accents.

  • Neutral Colors:

* Dark Gray (Text): #343a40 (For main body text, strong contrast)

* Medium Gray (Subtle Text/Borders): #6c757d (For secondary text, disabled states, subtle borders)

* Light Gray (Backgrounds/Dividers): #f8f9fa (For card backgrounds, section dividers, subtle borders)

* White: #ffffff (For main content areas, modals, clean backgrounds)

  • Semantic Colors:

* Success: #28a745 (Green for successful actions, "Hired" status)

* Warning: #ffc107 (Yellow/Orange for warnings, pending actions)

* Danger: #dc3545 (Red for errors, critical actions, "Rejected" status)

* Info: #17a2b8 (Light Blue for informational messages)

3.4. UI Elements

  • Buttons:

* Primary: Solid #007bff background, white text. Rounded corners (4px). Hover: slightly darker blue.

* Secondary: White background, #007bff border and text. Hover: light blue background.

* Ghost/Tertiary: Transparent background, #6c757d text. Hover: light gray background.

* Sizes: Large (48px height), Medium (40px height), Small (32px height).

  • Input Fields:

* Clean, light gray border (#ced4da). Focus: blue border (#007bff) with subtle shadow.

* Placeholder text in light gray.

* Error state: red border (#dc3545).

  • Dropdowns: Consistent styling with input fields. Clear arrow indicator.
  • Data Tables:

* Alternating row colors (white and very light gray #f2f2f2) for readability.

* Clear column headers with sort indicators.

* Sticky header for long tables.

  • Cards:

* Clean white background, subtle border (#e9ecef) or shadow for depth.

* Rounded corners (6px).

* Consistent padding.

  • Modals/Side Panels:

* Overlay background with slight opacity (e.g., rgba(0,0,0,0.5)).

* Modals centered; side panels slide in from right/left.

* Clear close button (X icon).

4. User Experience (UX) Recommendations

4.1. Streamlined Workflows & Automation

  • Drag-and-Drop Pipeline: Enable intuitive candidate progression by dragging cards between stages on the Kanban board.
  • Template Auto-Fill: Automatically populate job descriptions, interview questions, and offer letters based on selected templates and job details.
  • Automated Notifications: Configure system to send automated emails to candidates (e.g., application received, interview scheduled) and internal users (e.g., new applicant, interview feedback due).
  • Smart Suggestions: AI-powered suggestions for interview questions based on job description keywords or industry best practices.
  • Bulk Actions: Allow users to perform actions (e.g., move stage, send email, reject) on multiple candidates simultaneously.

4.2. Feedback & Collaboration

  • Integrated Feedback Forms: Standardized interview feedback forms directly linked to scoring rubrics, making evaluation consistent and objective.
  • Real-time Collaboration: Allow multiple hiring team members to view and contribute to candidate profiles, notes, and feedback simultaneously, with clear indication of who is editing/viewing.
  • In-App Messaging/Commenting: Enable direct communication and comments on candidate profiles or job requisitions, reducing reliance on external tools.
  • Activity Logs: Comprehensive audit trails for every candidate and job, showing who did what and when.

4.3. Customization & Flexibility

  • Configurable Pipeline Stages: Allow administrators to define and customize pipeline stages globally or per job.
  • Custom Fields: Ability to add custom fields to candidate profiles, job requisitions, and application forms to capture unique organizational data.
  • User Roles & Permissions: Granular control over user access and capabilities based on roles (e.g., Recruiter, Hiring Manager, Admin).
  • Customizable Dashboard: Users can arrange and select widgets for their personal dashboard view.

4.4. Data Visualization & Reporting

  • Interactive Charts: Use interactive charts and graphs to visualize key metrics like time-to-hire, source-of-hire, candidate conversion rates, and diversity metrics.
  • Custom Report Builder: Empower users to create custom reports by selecting specific data points, filters, and visualization types.
  • Export Functionality: Easily export data and reports in various formats (CSV, PDF).

4.5. Accessibility & Responsiveness

  • WCAG Compliance: Design to meet WCAG 2.1 AA standards for accessibility, including keyboard navigation, sufficient color contrast, and screen reader compatibility.
  • Responsive Design: The interface will adapt seamlessly across various screen sizes, from desktop monitors to tablets, ensuring a consistent experience for users on the go.

4.6. Onboarding & Support

  • Interactive Walkthroughs: Provide optional guided tours for first-time users to quickly grasp core functionalities.
  • Contextual Help: Small info icons or tooltips next to complex features, providing instant explanations.
  • Integrated Knowledge Base: Easy access to a searchable help center or FAQs within the application.

Conclusion & Next Steps

This detailed design specification provides a robust foundation for developing your Hiring Pipeline Builder. The proposed design emphasizes a user-centric approach, combining aesthetic appeal with powerful functionality to transform your recruitment process.

Next Steps:

  1. Review and Feedback: Please review these design assets and provide any feedback or modifications you deem necessary.
  2. Mockup Development: Based on your approval, we will proceed with creating high-fidelity mockups and interactive prototypes to visualize the user interface in detail.
  3. Technical Specification: Concurrently, our team will begin drafting the technical specifications required for development, aligning with these design principles.

We are confident that this design will result in a powerful, intuitive, and

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
\n\n\n"); 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'\nimport ReactDOM from 'react-dom/client'\nimport App from './App'\nimport './index.css'\n\nReactDOM.createRoot(document.getElementById('root')!).render(\n \n \n \n)\n"); 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'\nimport './App.css'\n\nfunction App(){\n return(\n
\n
\n

"+slugTitle(pn)+"

\n

Built with PantheraHive BOS

\n
\n
\n )\n}\nexport default App\n"); zip.file(folder+"src/index.css","*{margin:0;padding:0;box-sizing:border-box}\nbody{font-family:system-ui,-apple-system,sans-serif;background:#f0f2f5;color:#1a1a2e}\n.app{min-height:100vh;display:flex;flex-direction:column}\n.app-header{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:40px}\nh1{font-size:2.5rem;font-weight:700}\n"); 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)+"\n\nGenerated by PantheraHive BOS.\n\n## Setup\n\`\`\`bash\nnpm install\nnpm run dev\n\`\`\`\n\n## Build\n\`\`\`bash\nnpm run build\n\`\`\`\n\n## Open in IDE\nOpen the project folder in VS Code or WebStorm.\n"); zip.file(folder+".gitignore","node_modules/\ndist/\n.env\n.DS_Store\n*.local\n"); } /* --- 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",'{\n "name": "'+pn+'",\n "version": "0.0.0",\n "type": "module",\n "scripts": {\n "dev": "vite",\n "build": "vue-tsc -b && vite build",\n "preview": "vite preview"\n },\n "dependencies": {\n "vue": "^3.5.13",\n "vue-router": "^4.4.5",\n "pinia": "^2.3.0",\n "axios": "^1.7.9"\n },\n "devDependencies": {\n "@vitejs/plugin-vue": "^5.2.1",\n "typescript": "~5.7.3",\n "vite": "^6.0.5",\n "vue-tsc": "^2.2.0"\n }\n}\n'); zip.file(folder+"vite.config.ts","import { defineConfig } from 'vite'\nimport vue from '@vitejs/plugin-vue'\nimport { resolve } from 'path'\n\nexport default defineConfig({\n plugins: [vue()],\n resolve: { alias: { '@': resolve(__dirname,'src') } }\n})\n"); zip.file(folder+"tsconfig.json",'{"files":[],"references":[{"path":"./tsconfig.app.json"},{"path":"./tsconfig.node.json"}]}\n'); zip.file(folder+"tsconfig.app.json",'{\n "compilerOptions":{\n "target":"ES2020","useDefineForClassFields":true,"module":"ESNext","lib":["ES2020","DOM","DOM.Iterable"],\n "skipLibCheck":true,"moduleResolution":"bundler","allowImportingTsExtensions":true,\n "isolatedModules":true,"moduleDetection":"force","noEmit":true,"jsxImportSource":"vue",\n "strict":true,"paths":{"@/*":["./src/*"]}\n },\n "include":["src/**/*.ts","src/**/*.d.ts","src/**/*.tsx","src/**/*.vue"]\n}\n'); zip.file(folder+"env.d.ts","/// \n"); zip.file(folder+"index.html","\n\n\n \n \n "+slugTitle(pn)+"\n\n\n
\n \n\n\n"); 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'\nimport { createPinia } from 'pinia'\nimport App from './App.vue'\nimport './assets/main.css'\n\nconst app = createApp(App)\napp.use(createPinia())\napp.mount('#app')\n"); var hasApp=Object.keys(extracted).some(function(k){return k.indexOf("App.vue")>=0;}); if(!hasApp) zip.file(folder+"src/App.vue","\n\n\n\n\n"); 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}\n"); 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)+"\n\nGenerated by PantheraHive BOS.\n\n## Setup\n\`\`\`bash\nnpm install\nnpm run dev\n\`\`\`\n\n## Build\n\`\`\`bash\nnpm run build\n\`\`\`\n\nOpen in VS Code or WebStorm.\n"); zip.file(folder+".gitignore","node_modules/\ndist/\n.env\n.DS_Store\n*.local\n"); } /* --- 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",'{\n "name": "'+pn+'",\n "version": "0.0.0",\n "scripts": {\n "ng": "ng",\n "start": "ng serve",\n "build": "ng build",\n "test": "ng test"\n },\n "dependencies": {\n "@angular/animations": "^19.0.0",\n "@angular/common": "^19.0.0",\n "@angular/compiler": "^19.0.0",\n "@angular/core": "^19.0.0",\n "@angular/forms": "^19.0.0",\n "@angular/platform-browser": "^19.0.0",\n "@angular/platform-browser-dynamic": "^19.0.0",\n "@angular/router": "^19.0.0",\n "rxjs": "~7.8.0",\n "tslib": "^2.3.0",\n "zone.js": "~0.15.0"\n },\n "devDependencies": {\n "@angular-devkit/build-angular": "^19.0.0",\n "@angular/cli": "^19.0.0",\n "@angular/compiler-cli": "^19.0.0",\n "typescript": "~5.6.0"\n }\n}\n'); zip.file(folder+"angular.json",'{\n "$schema": "./node_modules/@angular/cli/lib/config/schema.json",\n "version": 1,\n "newProjectRoot": "projects",\n "projects": {\n "'+pn+'": {\n "projectType": "application",\n "root": "",\n "sourceRoot": "src",\n "prefix": "app",\n "architect": {\n "build": {\n "builder": "@angular-devkit/build-angular:application",\n "options": {\n "outputPath": "dist/'+pn+'",\n "index": "src/index.html",\n "browser": "src/main.ts",\n "tsConfig": "tsconfig.app.json",\n "styles": ["src/styles.css"],\n "scripts": []\n }\n },\n "serve": {"builder":"@angular-devkit/build-angular:dev-server","configurations":{"production":{"buildTarget":"'+pn+':build:production"},"development":{"buildTarget":"'+pn+':build:development"}},"defaultConfiguration":"development"}\n }\n }\n }\n}\n'); zip.file(folder+"tsconfig.json",'{\n "compileOnSave": false,\n "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"]},\n "references":[{"path":"./tsconfig.app.json"}]\n}\n'); zip.file(folder+"tsconfig.app.json",'{\n "extends":"./tsconfig.json",\n "compilerOptions":{"outDir":"./dist/out-tsc","types":[]},\n "files":["src/main.ts"],\n "include":["src/**/*.d.ts"]\n}\n'); zip.file(folder+"src/index.html","\n\n\n \n "+slugTitle(pn)+"\n \n \n \n\n\n \n\n\n"); zip.file(folder+"src/main.ts","import { bootstrapApplication } from '@angular/platform-browser';\nimport { appConfig } from './app/app.config';\nimport { AppComponent } from './app/app.component';\n\nbootstrapApplication(AppComponent, appConfig)\n .catch(err => console.error(err));\n"); zip.file(folder+"src/styles.css","* { margin: 0; padding: 0; box-sizing: border-box; }\nbody { font-family: system-ui, -apple-system, sans-serif; background: #f9fafb; color: #111827; }\n"); 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';\nimport { RouterOutlet } from '@angular/router';\n\n@Component({\n selector: 'app-root',\n standalone: true,\n imports: [RouterOutlet],\n templateUrl: './app.component.html',\n styleUrl: './app.component.css'\n})\nexport class AppComponent {\n title = '"+pn+"';\n}\n"); zip.file(folder+"src/app/app.component.html","
\n
\n

"+slugTitle(pn)+"

\n

Built with PantheraHive BOS

\n
\n \n
\n"); 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}\n"); } zip.file(folder+"src/app/app.config.ts","import { ApplicationConfig, provideZoneChangeDetection } from '@angular/core';\nimport { provideRouter } from '@angular/router';\nimport { routes } from './app.routes';\n\nexport const appConfig: ApplicationConfig = {\n providers: [\n provideZoneChangeDetection({ eventCoalescing: true }),\n provideRouter(routes)\n ]\n};\n"); zip.file(folder+"src/app/app.routes.ts","import { Routes } from '@angular/router';\n\nexport const routes: Routes = [];\n"); 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)+"\n\nGenerated by PantheraHive BOS.\n\n## Setup\n\`\`\`bash\nnpm install\nng serve\n# or: npm start\n\`\`\`\n\n## Build\n\`\`\`bash\nng build\n\`\`\`\n\nOpen in VS Code with Angular Language Service extension.\n"); zip.file(folder+".gitignore","node_modules/\ndist/\n.env\n.DS_Store\n*.local\n.angular/\n"); } /* --- Python --- */ function buildPython(zip,folder,app,code){ var title=slugTitle(app); var pn=pkgName(app); var src=code.replace(/^\`\`\`[\w]*\n?/m,"").replace(/\n?\`\`\`$/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("\n"):"# add dependencies here\n"; zip.file(folder+"main.py",src||"# "+title+"\n# Generated by PantheraHive BOS\n\nprint(title+\" loaded\")\n"); zip.file(folder+"requirements.txt",reqsTxt); zip.file(folder+".env.example","# Environment variables\n"); zip.file(folder+"README.md","# "+title+"\n\nGenerated by PantheraHive BOS.\n\n## Setup\n\`\`\`bash\npython3 -m venv .venv\nsource .venv/bin/activate\npip install -r requirements.txt\n\`\`\`\n\n## Run\n\`\`\`bash\npython main.py\n\`\`\`\n"); zip.file(folder+".gitignore",".venv/\n__pycache__/\n*.pyc\n.env\n.DS_Store\n"); } /* --- Node.js --- */ function buildNode(zip,folder,app,code){ var title=slugTitle(app); var pn=pkgName(app); var src=code.replace(/^\`\`\`[\w]*\n?/m,"").replace(/\n?\`\`\`$/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)+"\n"; zip.file(folder+"package.json",pkgJson); var fallback="const express=require(\"express\");\nconst app=express();\napp.use(express.json());\n\napp.get(\"/\",(req,res)=>{\n res.json({message:\""+title+" API\"});\n});\n\nconst PORT=process.env.PORT||3000;\napp.listen(PORT,()=>console.log(\"Server on port \"+PORT));\n"; zip.file(folder+"src/index.js",src||fallback); zip.file(folder+".env.example","PORT=3000\n"); zip.file(folder+".gitignore","node_modules/\n.env\n.DS_Store\n"); zip.file(folder+"README.md","# "+title+"\n\nGenerated by PantheraHive BOS.\n\n## Setup\n\`\`\`bash\nnpm install\n\`\`\`\n\n## Run\n\`\`\`bash\nnpm run dev\n\`\`\`\n"); } /* --- 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:"\n\n\n\n\n"+title+"\n\n\n\n"+code+"\n\n\n\n"; zip.file(folder+"index.html",indexHtml); zip.file(folder+"style.css","/* "+title+" — styles */\n*{margin:0;padding:0;box-sizing:border-box}\nbody{font-family:system-ui,-apple-system,sans-serif;background:#fff;color:#1a1a2e}\n"); zip.file(folder+"script.js","/* "+title+" — scripts */\n"); zip.file(folder+"assets/.gitkeep",""); zip.file(folder+"README.md","# "+title+"\n\nGenerated by PantheraHive BOS.\n\n## Open\nDouble-click \`index.html\` in your browser.\n\nOr serve locally:\n\`\`\`bash\nnpx serve .\n# or\npython3 -m http.server 3000\n\`\`\`\n"); zip.file(folder+".gitignore",".DS_Store\nnode_modules/\n.env\n"); } /* ===== 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(/\n{2,}/g,"

"); h+="

"+hc+"

Generated by PantheraHive BOS
"; zip.file(folder+app+".html",h); zip.file(folder+"README.md","# "+title+"\n\nGenerated by PantheraHive BOS.\n\nFiles:\n- "+app+".md (Markdown)\n- "+app+".html (styled HTML)\n"); } 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);}});}