Hiring Pipeline Builder
Run ID: 69cc107304066a6c4a16904a2026-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: Design & Requirements Specification

This document outlines the detailed design specifications, wireframe descriptions, color palettes, and user experience (UX) recommendations for the "Hiring Pipeline Builder" application. This foundational step ensures a robust, intuitive, and highly effective tool for streamlining recruitment processes.


1. Detailed Design Specifications

The Hiring Pipeline Builder will be a comprehensive SaaS solution designed to empower HR professionals and hiring managers to create, manage, and optimize their recruitment workflows from job requisition to candidate onboarding.

1.1 Core Modules & Features

1.1.1 Dashboard & Pipeline Overview

  • Active Pipelines Summary: Quick view of all active hiring pipelines, their status, and key metrics (e.g., candidates in pipeline, average time-to-hire).
  • Quick Actions: Buttons for "Create New Pipeline," "View All Candidates," "Manage Templates."
  • Notifications: Alerts for pending actions, new applications, or team comments.

1.1.2 Job Description Generator

  • AI-Powered Drafts: Generate initial job descriptions based on job title, department, and key responsibilities (user input).
  • Customizable Templates: Library of pre-built, industry-specific job description templates.
  • Rich Text Editor: Full control over formatting, bullet points, sections.
  • Key Sections: Role Summary, Responsibilities, Qualifications (Required/Preferred), Company Culture, Benefits, EEO Statement.
  • SEO Optimization: Suggestions for keywords to improve job board visibility.
  • Version Control: Track changes and save multiple versions.

1.1.3 Interview Question Bank & Creator

  • Categorized Questions: Behavioral, Technical, Situational, Problem-Solving, Culture Fit.
  • AI-Suggested Questions: Propose relevant questions based on the job description and desired skills.
  • Custom Question Creation: Add, edit, and organize custom questions.
  • Interview Stages Integration: Assign specific questions to different interview stages (e.g., Phone Screen, Technical Interview, Panel Interview).
  • Question Pooling: Create pools of questions from which interviewers can draw.

1.1.4 Scoring Rubric Builder

  • Customizable Criteria: Define specific skills, competencies, or attributes to evaluate (e.g., Problem Solving, Communication, Technical Proficiency).
  • Weighted Scoring: Assign different weights to criteria based on their importance for the role.
  • Rating Scales: Define custom rating scales (e.g., 1-5, "Poor" to "Excellent," "Met" / "Not Met").
  • Comment Sections: Allow interviewers to add detailed notes for each criterion.
  • Consensus View: Aggregate scores from multiple interviewers for a candidate.

1.1.5 Offer Letter Template Builder

  • Dynamic Fields: Automatically populate candidate-specific data (name, salary, start date, title) from the candidate profile.
  • Legal & Compliance Clauses: Include standard legal disclaimers, at-will employment, confidentiality agreements, and EEO statements.
  • Customizable Sections: Add/remove clauses for benefits, equity, bonuses, relocation packages.
  • Electronic Signature Integration (Future): Facilitate digital signing of offer letters.
  • Version Control: Manage different offer letter versions and track changes.

1.1.6 Onboarding Checklist Generator

  • Role-Specific Checklists: Create distinct checklists for different roles or departments.
  • Categorized Tasks: Pre-Day 1, Day 1, Week 1, Month 1.
  • Assignable Tasks: Assign tasks to different team members (HR, Manager, IT, Mentor).
  • Due Dates & Reminders: Set deadlines and automated notifications.
  • Resource Links: Attach links to relevant documents, training modules, or company policies.
  • Progress Tracking: Monitor completion status of onboarding tasks.

1.1.7 Pipeline Management (ATS Light)

  • Configurable Stages: Define custom stages for each pipeline (e.g., Applied, Phone Screen, Interview 1, Interview 2, Offer, Hired, Rejected).
  • Candidate Cards: Visual representation of candidates moving through stages (Kanban board style).
  • Drag-and-Drop Functionality: Easily move candidates between stages.
  • Candidate Profile: Centralized view of all candidate information, applications, interview feedback, scores, and communications.
  • Communication Tools: Email templates for candidate communication (e.g., "Application Received," "Interview Request").
  • Rejection Management: Standardized rejection reasons and automated emails.

1.1.8 Team Collaboration

  • Shared Pipelines: Grant access to hiring managers, interviewers, and HR teams.
  • Internal Comments: Allow team members to leave notes and discuss candidates within the platform.
  • Feedback Collection: Standardized forms for interviewers to submit feedback and scores.

1.2 User Roles & Permissions

  • Admin: Full access to all features, settings, user management, and global templates.
  • HR Manager: Create/manage pipelines, access all candidate data, manage templates, view reports.
  • Hiring Manager: Create/manage pipelines for their department, view candidates in their pipelines, access interview feedback, send offers.
  • Interviewer: View assigned candidates, conduct interviews, submit feedback and scores.
  • Team Member (Onboarding): View and complete assigned onboarding tasks.

1.3 Technical & Security Considerations

  • Cloud-Native Architecture: Scalable, reliable, and accessible from anywhere.
  • Data Encryption: End-to-end encryption for all sensitive candidate and company data.
  • Compliance: Built with GDPR, CCPA, and other relevant data privacy regulations in mind.
  • Role-Based Access Control: Granular permissions to ensure data security.
  • Audit Trails: Log all significant actions for accountability and compliance.
  • API for Integrations (Future): Designed for future integrations with HRIS, payroll, and external ATS systems.

2. Wireframe Descriptions

The following describes key screens and their functional elements, focusing on a clean, intuitive, and task-oriented user experience.

2.1 Dashboard / Home Screen

  • Layout: Top navigation bar, left sidebar for main modules, central content area.
  • Top Nav: Company logo, user profile (avatar, name), notifications icon, "Help" link.
  • Left Sidebar: "Dashboard," "Pipelines," "Candidates," "Templates," "Settings."
  • Central Content:

* "My Active Pipelines" Card: Displays 3-5 most active pipelines with progress bars, number of candidates, and status. Click to view full pipeline.

* "Quick Actions" Section: Large buttons: "Create New Pipeline," "View All Candidates," "Manage Job Descriptions."

* "Pipeline Analytics Snapshot": Small widgets showing key metrics (e.g., "Avg. Time-to-Hire," "Open Positions").

* "Upcoming Interviews": List of interviews scheduled for the current user.

2.2 Pipeline Builder Screen (Step-by-Step Wizard)

  • Layout: Persistent left-hand navigation showing pipeline creation steps (e.g., "1. Job Details," "2. Job Description," "3. Interview Plan," "4. Offer," "5. Onboarding"). Main content area for each step. "Save Draft" and "Next/Back" buttons at the bottom.
  • Step 1: Job Details:

* Fields: Job Title, Department, Hiring Manager, Location, Employment Type, Target Start Date.

* Description: Input field for a brief summary.

  • Step 2: Job Description:

* Options: "Generate with AI," "Choose from Template," "Start from Scratch."

* Editor: Rich text editor with formatting tools, section headers. Preview pane.

  • Step 3: Interview Plan:

* Sections: "Interview Stages" (list of configurable stages like Phone Screen, Technical, Panel), "Question Bank" (searchable, filterable list of questions), "Rubric Builder" (interface to define criteria and weights).

* Functionality: Drag-and-drop questions to stages, assign rubrics to stages.

  • Step 4: Offer Letter:

* Options: "Choose from Template," "Create New."

* Editor: Template preview with dynamic fields highlighted. Side panel to input values for dynamic fields (e.g., Salary, Bonus, Start Date).

  • Step 5: Onboarding Checklist:

* Options: "Choose from Template," "Create New."

* Editor: List of tasks, fields for task name, assignee, due date, description, resource link. Ability to add/remove tasks and categories.

  • Review & Activate: Final summary of the pipeline, "Activate Pipeline" button.

2.3 Candidate Management Screen (Kanban View)

  • Layout: Top filters/search, column headers representing pipeline stages, draggable candidate cards within columns.
  • Filters: Job Title, Status, Source, Date Applied.
  • Search Bar: For candidate names.
  • Pipeline Stages: Vertical columns (e.g., "Applied," "Screening," "Interview," "Offer," "Hired," "Rejected").
  • Candidate Card (within stage column):

* Candidate Photo/Avatar (optional)

* Candidate Name

* Current Stage (if different from column header)

* Days in Stage

* Small icons for new notes, pending feedback.

* Clicking card opens "Candidate Profile" sidebar/modal.

  • Candidate Profile (Sidebar/Modal):

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

* Overview: Contact info, current stage, expected salary, source.

* Application: Resume, cover letter, application questions.

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

* Feedback: Aggregated scores and comments from all interviewers.

* Notes: Internal team comments.

* Activity Log: Timeline of all actions (stage changes, emails sent).

* Actions: Buttons for "Move Stage," "Send Email," "Schedule Interview," "Reject."

2.4 Templates Management Screen

  • Layout: Tabbed interface for "Job Descriptions," "Interview Question Banks," "Scoring Rubrics," "Offer Letters," "Onboarding Checklists."
  • Content Area: List of existing templates for the selected category.
  • Template Card/Row: Template Name, Last Modified, Creator, Actions (Edit, Duplicate, Delete, Preview).
  • "Create New Template" Button: Opens respective builder.
  • Search & Filters: To find specific templates.

3. Color Palettes

The color palette aims for a professional, trustworthy, and user-friendly aesthetic, ensuring high contrast for accessibility.

  • Primary Brand Color (PantheraHive Blue): #007BFF (A vibrant, yet professional blue for primary actions, headers, and branding elements).
  • Secondary Accent Color (PantheraHive Green): #28A745 (Used for success indicators, "Hired" status, positive actions).
  • Tertiary Accent Color (PantheraHive Orange/Yellow): #FFC107 (Used for warnings, "Pending" status, highlights).
  • Neutral Colors:

* Dark Text: #343A40 (Main body text, headings for readability).

* Light Grey Backgrounds: #F8F9FA (Subtle background for cards, sections).

* Medium Grey Borders/Dividers: #DEE2E6 (Separators, borders).

* White: #FFFFFF (Main background for content areas, forms).

  • Status Indicators:

* Success: #28A745 (Green)

* Warning: #FFC107 (Yellow/Orange)

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

* Info/Active: #17A2B8 (Cyan, for "Active" status, information alerts)

Accessibility Note: All color combinations will be checked against WCAG 2.1 guidelines for sufficient contrast ratios (minimum AA level).


4. UX Recommendations

User experience is paramount for adoption and efficiency. The following recommendations will guide the design process:

  • Intuitive & Guided Workflow:

* Step-by-Step Wizards: For pipeline creation, ensure a clear, linear progression with visual indicators of current step and progress.

* Contextual Help: Tooltips, info icons, and brief explanations for complex fields or features.

* Clear Navigation: Consistent global navigation, breadcrumbs for deeper pages, and logical grouping of related items.

  • Customization & Flexibility:

* Template-First Approach: Provide robust templates for all elements (JD, questions, rubrics, offers, onboarding) but allow extensive customization.

* Drag-and-Drop: Implement for pipeline stages, question ordering, and task management to enhance usability.

* Configurable Settings: Allow users to define their own rating scales, rejection reasons, and communication preferences.

  • Feedback & Validation:

* Real-time Validation: Provide immediate feedback on form inputs (e.g., required fields, format errors).

* Confirmation Dialogs: For critical actions like deleting a pipeline or sending an offer.

* Success/Error Messages: Clear, concise, and actionable messages after user actions.

  • Efficiency & Automation:

* AI-Powered Suggestions: Leverage AI to accelerate content generation (JDs, questions) and provide smart recommendations. Always ensure human override.

* Dynamic Fields: Automate data population in offer letters and candidate communications.

* Bulk Actions: Allow users to select multiple candidates for actions like moving stages or sending emails.

* Keyboard Shortcuts (Advanced Users): Consider for frequently used actions.

  • Clarity & Simplicity:

* Clean UI: Minimalist design, ample whitespace, and clear typography to reduce cognitive load.

* Iconography: Use universally recognized icons to supplement text and improve scannability.

* Consistent Design Language: Apply a consistent visual style and interaction patterns across the entire application.

  • Accessibility:

* WCAG Compliance: Adhere to Web Content Accessibility Guidelines (WCAG 2.1 AA) for color contrast, keyboard navigation, screen reader compatibility, and clear focus indicators.

* Semantic HTML: Structure content logically for assistive technologies.

* Alt Text: Provide descriptive alt text for all images and interactive elements.

  • Responsiveness:

*

gemini Output

This document outlines the detailed design specifications for the "Hiring Pipeline Builder" product. The goal is to create an intuitive, efficient, and comprehensive tool that streamlines the entire recruitment process from job posting to onboarding.

1. Design Philosophy & Principles

The design of the Hiring Pipeline Builder will adhere to the following core principles:

  • Clarity & Simplicity: Ensure all interfaces are clean, uncluttered, and easy to understand, minimizing cognitive load for the user.
  • Efficiency & Automation: Design workflows that reduce manual effort, offer smart defaults, and enable quick actions.
  • Customization & Flexibility: Provide robust templating capabilities and configurable options to adapt to diverse organizational needs.
  • Consistency: Maintain a unified look, feel, and interaction model across all modules to foster familiarity and ease of use.
  • Feedback & Guidance: Offer clear visual feedback for user actions, system status, and provide helpful guidance where necessary.
  • Accessibility: Design with WCAG standards in mind to ensure usability for all users, including those with disabilities.
  • Professionalism: A modern, clean aesthetic that reflects the seriousness and importance of the hiring process.

2. Core Modules & Detailed Design Specifications

The Hiring Pipeline Builder will consist of the following interconnected modules:

2.1. Pipeline Dashboard & Management

Purpose: Provide an overview of all active hiring pipelines, their status, and quick access to manage them.

UI Elements:

  • Global Navigation: Persistent left-hand or top navigation for quick access to Dashboard, Job Descriptions, Question Banks, Rubrics, Offer Letters, Onboarding.
  • Pipeline Cards: Each card represents a distinct hiring pipeline (e.g., "Senior Software Engineer - Q3 2024").

* Card Content: Job Title, Department, Location, Number of Active Candidates, Current Stage breakdown (e.g., "3 New Applicants, 5 Interviewing, 2 Offer Pending"), Progress Bar (overall pipeline progress).

* Action Buttons: "View Pipeline Details," "Add Candidate," "Edit Pipeline."

  • "Create New Pipeline" Button: Prominent CTA.
  • Search & Filter: Ability to search pipelines by title, department, status.

User Flow:

  1. User lands on Dashboard.
  2. Views active pipelines, their status, and key metrics.
  3. Clicks "Create New Pipeline" to initiate a new hiring process.
  4. Clicks on a Pipeline Card to drill down into its specific details (candidates, stages, etc.).

Data Model/Inputs:

  • Pipeline Name
  • Associated Job Description
  • Hiring Team Members
  • Pipeline Stages (configurable)
  • Current Status (Open, Closed, On Hold)

2.2. Job Description (JD) Builder

Purpose: Create, store, and manage standardized and customizable job descriptions.

UI Elements:

  • Template Selector: Dropdown to choose from pre-defined JD templates or start from scratch.
  • Input Fields:

* Job Title: Text input (required).

* Department: Dropdown/Searchable text input.

* Location: Text input (supports multiple locations, remote option).

* Employment Type: Dropdown (Full-time, Part-time, Contract, Internship).

* Salary Range: Numeric input (Min/Max) with currency selector.

* Reporting To: Text input/Searchable dropdown (Manager Name/Title).

  • Rich Text Editor (WYSIWYG): For core sections (e.g., "About the Role," "Key Responsibilities," "Required Qualifications," "Preferred Qualifications," "Benefits," "Company Culture").

* Formatting Options: Bold, Italic, Underline, Lists (bullet, numbered), Headings, Links, Image/Video embedding (optional).

* Placeholders: Support for dynamic placeholders (e.g., {{company_name}}) to be populated at pipeline creation.

  • "Save Draft," "Publish," "Preview" Buttons.
  • Version History: (Optional, advanced feature) Track changes to JDs.

User Flow:

  1. Navigate to "Job Descriptions" module.
  2. Click "Create New Job Description" or select an existing one to edit.
  3. Choose a template or start blank.
  4. Fill in structured fields and use the Rich Text Editor for detailed content.
  5. Click "Preview" to see how the JD will look.
  6. Click "Save Draft" or "Publish."

Validation Rules:

  • Job Title, Department, Employment Type are required.
  • Salary range must be valid numbers (if entered).
  • Rich text content validation for basic HTML safety.

2.3. Interview Question Bank

Purpose: Central repository for interview questions, categorized and tagged, allowing for the creation of structured interview guides.

UI Elements:

  • Question List (Table/Grid View):

* Columns: Question Text, Category (e.g., Behavioral, Technical, Situational), Difficulty (Easy, Medium, Hard), Recommended Stage (Phone Screen, Technical, Final), Tags, Last Updated.

* Actions: Edit, Delete, Add to Set.

  • "Add New Question" Form:

* Question Text: Textarea (required).

* Category: Dropdown (configurable options).

* Difficulty: Radio buttons/Dropdown.

* Recommended Stage: Dropdown (configurable options, e.g., "Phone Screen," "Hiring Manager Interview," "Technical Interview").

* Tags: Multi-select input (e.g., "Leadership," "Problem Solving," "Python").

* Expected Answers/Key Points: (Optional) Rich Text Editor for internal guidance.

  • Question Set Builder (Drag-and-Drop Interface):

* Left Pane: Available questions (filterable by category, difficulty, tags).

* Right Pane: Current interview set (questions can be reordered).

* Set Name: Text input.

* Associated Role/Stage: Dropdown.

  • Search & Filter: Comprehensive search across question text, categories, and tags.

User Flow:

  1. Navigate to "Interview Question Bank."
  2. Browse existing questions, filter, or add new ones.
  3. To create a set:

* Click "Create New Question Set."

* Drag questions from the left pane to the right pane.

* Name the set and associate it with a role/stage.

* Save the set.

Validation Rules:

  • Question Text is required.
  • Category is required.

2.4. Interview Scoring Rubrics

Purpose: Define objective scoring criteria and scales to ensure fair and consistent candidate evaluation.

UI Elements:

  • Template Selector: Choose from pre-defined rubric templates or start fresh.
  • Rubric Name: Text input (required).
  • Associated Interview Stage: Dropdown (e.g., "Technical Interview," "Culture Fit").
  • Criteria Management Table:

* Columns: Criterion Name (Text input, e.g., "Problem Solving," "Communication Skills"), Description (Textarea for detailed explanation of criterion).

* Scoring Scale Configuration:

* Scale Type: Dropdown (e.g., 1-5, Poor-Excellent, Yes/No).

* Score Levels: Configurable text inputs for each level (e.g., "1 - Limited," "2 - Developing," "3 - Proficient," "4 - Advanced," "5 - Expert").

* Description for each Score Level: Textarea to define what each score means for that specific criterion.

* "Add Criterion" Button.

  • Link to Interview Questions: Ability to associate specific questions from the Question Bank with a rubric criterion.
  • "Save Rubric," "Preview" Buttons.

User Flow:

  1. Navigate to "Scoring Rubrics."
  2. Click "Create New Rubric" or select an existing one to edit.
  3. Name the rubric and select the interview stage it applies to.
  4. Add criteria, define their descriptions, and configure the scoring scale for each.
  5. (Optional) Link relevant interview questions to each criterion.
  6. Save the rubric.

Validation Rules:

  • Rubric Name and at least one Criterion are required.
  • Each score level must have a description (if custom scale is used).

2.5. Offer Letter Templates

Purpose: Create, manage, and customize offer letter templates with dynamic placeholders for personalization.

UI Elements:

  • Template Selector: Dropdown for existing templates.
  • Template Name: Text input (required).
  • Rich Text Editor (WYSIWYG): For the body of the offer letter.

* Formatting Options: Standard text formatting, lists, alignment.

* Dynamic Placeholders Sidebar/Menu: A list of available placeholders (e.g., {{candidate_name}}, {{job_title}}, {{start_date}}, {{annual_salary}}, {{sign_on_bonus}}, {{equity_grant}}, {{manager_name}}, {{company_name}}, {{offer_expiry_date}}). Users can click to insert.

  • "Preview with Sample Data" Button: Allows users to see how the letter will look with typical candidate data.
  • "Save Template" Button.
  • Default Offer Letter Toggle: Mark a template as the default for new offers.

User Flow:

  1. Navigate to "Offer Letter Templates."
  2. Click "Create New Template" or select an existing one to edit.
  3. Name the template.
  4. Compose the offer letter content using the Rich Text Editor and inserting dynamic placeholders.
  5. Use "Preview with Sample Data" to review.
  6. Save the template.

Validation Rules:

  • Template Name is required.
  • Warning if common essential placeholders (e.g., {{candidate_name}}, {{job_title}}) are missing.

2.6. Onboarding Checklists

Purpose: Create and manage customizable onboarding checklists for new hires, ensuring a smooth transition.

UI Elements:

  • Template Selector: Dropdown for existing templates.
  • Checklist Name: Text input (required).
  • Task List (Table/Configurable List):

* Columns: Task Name (Text input, required), Description (Textarea, optional), Assignee (Dropdown/Searchable input, e.g., "HR," "Hiring Manager," "IT," "Employee"), Due Date Offset (Number input + Dropdown for "Days before/after Start Date"), Status (Checkbox for completion).

* "Add Task" Button.

*Drag

gemini Output

This document outlines the final design specifications and user experience recommendations for the deliverables generated by the "Hiring Pipeline Builder." The goal is to ensure all outputs – job descriptions, interview question banks, scoring rubrics, offer letters, and onboarding checklists – are professional, clear, consistent, and highly usable, whether viewed as standalone documents or within a digital platform.


Hiring Pipeline Builder: Final Design Assets & UX Specifications

1. Design Principles

The design of all assets and the user experience for the Hiring Pipeline Builder are guided by the following principles:

  • Clarity & Readability: Information must be easily digestible with clear typography, logical layouts, and appropriate visual hierarchy.
  • Professionalism & Trust: The aesthetic should be clean, modern, and inspire confidence in the quality and thoroughness of the hiring process.
  • Consistency: A uniform look and feel across all generated documents and potential platform interfaces enhances brand recognition and usability.
  • Actionability & Efficiency: Designs should facilitate quick understanding and action, minimizing cognitive load for recruiters, hiring managers, and candidates.
  • Customizability & Scalability: Templates should be easily adaptable to specific company branding and grow with organizational needs.
  • Accessibility: Designs will consider WCAG guidelines to ensure usability for all users, including those with disabilities.

2. Detailed Design Specifications for Pipeline Assets

These specifications apply broadly to all generated documents (Job Descriptions, Offer Letters, etc.) to ensure a cohesive and professional appearance.

2.1. Typography

  • Primary Font Family (Headings):

* Font: Montserrat (modern, clean, highly readable)

* Usage: Main titles (H1), section headings (H2, H3)

* Weights: Bold, Semi-Bold

  • Secondary Font Family (Body Text):

* Font: Open Sans (highly legible, professional, good for long-form content)

* Usage: Body paragraphs, bullet points, table content, form fields

* Weights: Regular, Semi-Bold, Italic

  • Font Sizes (Print/PDF Standard, adaptable for web):

* H1 (Document Title): 24-28pt, Montserrat Bold

* H2 (Major Section Title): 18-22pt, Montserrat Semi-Bold

* H3 (Sub-Section Title): 14-16pt, Montserrat Semi-Bold

* Body Text: 10-12pt, Open Sans Regular

* Labels/Small Text: 8-9pt, Open Sans Regular

* Call-to-Action/Key Info: 12-14pt, Open Sans Semi-Bold

2.2. Layout & Spacing

  • Margins: Consistent 1-inch (2.54 cm) margins on all sides for print-ready documents. For web interfaces, adapt with responsive padding.
  • Line Spacing: 1.5x for body text to improve readability.
  • Paragraph Spacing: 10pt after each paragraph for clear separation.
  • Bullet Points & Lists: Standard bullet points (solid circle) with 0.25-inch indentation. Numbered lists for sequential steps.
  • Whitespace: Generous use of whitespace to reduce visual clutter and enhance focus on content.

2.3. Branding Elements

  • Company Logo: Prominently placed at the top of each document (e.g., top-left or centered in the header). Standardized size and aspect ratio across all assets.
  • Header/Footer:

* Header: Company logo, document title, and version control (optional).

* Footer: Page numbering (e.g., "Page X of Y"), company website URL, and copyright information.

  • Accent Lines/Dividers: Subtle horizontal rules (e.g., thin grey line) to visually separate major sections without being distracting.

2.4. Visual Hierarchy

  • Headings: Distinct font sizes and weights clearly differentiate primary, secondary, and tertiary information.
  • Color: Use of primary accent color for key headings or call-to-action buttons (see Color Palette).
  • Bold Text: Sparingly used for emphasis on critical keywords or phrases within body text.
  • Indentation: For nested information (e.g., sub-bullets, detailed criteria).

3. Wireframe Descriptions for Key Pipeline Components

These descriptions outline the structural layout and key elements for each generated asset, suitable for both PDF documents and a potential web-based interface.

3.1. Job Description Template

  • Header:

* [Company Logo] (Top Left/Center)

* Job Title: [e.g., Senior Software Engineer] (H1, Centered/Left-aligned)

* Department: [e.g., Engineering], Location: [e.g., Remote / San Francisco, CA] (H3)

* Date Posted: [DD/MM/YYYY], Job ID: [####] (Small text)

  • Section 1: Company Overview (H2)

* Short paragraph introducing the company, its mission, and values.

  • Section 2: Role Summary (H2)

* Concise paragraph outlining the primary purpose of the role and its contribution to the team/company.

  • Section 3: Key Responsibilities (H2)

* Bullet-point list of 5-8 primary duties and tasks.

Example:* Develop and maintain scalable web applications.

  • Section 4: Required Qualifications (H2)

* Bullet-point list of essential skills, experience, and education.

Example:* 5+ years of experience with Python and Django.

  • Section 5: Preferred Qualifications (H2)

* Bullet-point list of desired but not mandatory skills or experiences.

Example:* Experience with AWS cloud services.

  • Section 6: Benefits & Perks (H2)

* Bullet-point list highlighting key company benefits (health, PTO, professional development, culture).

  • Section 7: How to Apply / Call to Action (H2)

* Clear instructions and a link or email address for application submission.

  • Footer: [Company Website] | [Copyright Info] | Page X of Y

3.2. Interview Question Bank Interface/Document

  • Header:

* [Company Logo]

* Interview Question Bank: [Job Title] (H1)

* Role Level: [e.g., Mid-Senior], Interview Stage: [e.g., Technical Round] (H3)

* Date Created: [DD/MM/YYYY]

  • Search & Filter (for Digital Interface):

* Search bar for keywords.

* Filters: Category (Behavioral, Technical, Situational, Role-Specific), Difficulty (Easy, Medium, Hard).

  • Question Categories (H2):

* Category Title: [e.g., Technical Skills: Backend Development]

* Question 1: [e.g., How would you design a scalable API for a new mobile application?] (H3)

* Type: Technical / Problem-Solving

* Probing Questions: What considerations would you make for security? How would you handle error logging?

* Expected Answer Keywords/Concepts: REST principles, authentication (OAuth), rate limiting, caching, database design, microservices.

* Scoring Guidance: (e.g., 1-5 scale, detailed explanation for each level).

* Question 2: ...

* Category Title: [e.g., Behavioral: Teamwork & Collaboration]

* Question 1: [e.g., Tell me about a time you had to work with a difficult team member. How did you handle it?] (H3)

* Type: Behavioral / Conflict Resolution

* STAR Method Prompt: Please describe the Situation, Task, Action, and Result.

* Expected Answer Keywords/Concepts: Empathy, communication, compromise, conflict resolution, positive outcome.

* Scoring Guidance: ...

  • Footer: [Company Website] | [Copyright Info] | Page X of Y

3.3. Scoring Rubric Template

  • Header:

* [Company Logo]

* Candidate Interview Scoring Rubric (H1)

* Candidate Name: [_______________________]

* Position Applied For: [_______________________]

* Interviewer Name: [_______________________]

* Date of Interview: [_______________________]

* Interview Stage: [_______________________]

  • Evaluation Criteria Table (H2):

* | Criteria | Needs Development (1) | Developing (2) | Meets Expectations (3) | Exceeds Expectations (4) | Outstanding (5) | Score | Notes |

* | Communication | Poor clarity, disorganized thoughts, difficulty listening. | Struggles with clarity, needs prompting, some listening. | Clear, articulate, listens well, engages thoughtfully. | Highly articulate, persuasive, exceptional listener, inspires confidence. | Masterful communicator, inspires and influences with ease. | [ ] | |

* | Problem-Solving | Unable to approach complex problems, lacks analytical skills. | Basic problem-solving, needs significant guidance. | Systematically approaches problems, finds effective solutions. | Innovates solutions, anticipates challenges, critical thinker. | Visionary problem-solver, transforms challenges into opportunities. | [ ] | |

| ...add more criteria relevant to role...* |

  • Overall Recommendation (H2):

* [ ] Strong No

* [ ] No

* [ ] Lean No

* [ ] Lean Yes

* [ ] Yes

* [ ] Strong Yes

  • Interviewer Comments & Rationale (H2):

* Open text field for detailed feedback on strengths, areas for development, and overall fit.

  • Footer: [Company Website] | [Copyright Info] | Page X of Y

3.4. Offer Letter Template

  • Header:

* [Company Logo] (Prominent)

* [Company Name]

* [Company Address Line 1]

* [Company Address Line 2]

* [Company Phone Number] | [Company Website]

  • Date: [DD Month YYYY] (Left-aligned)
  • Candidate Address Block:

* [Candidate Name]

* [Candidate Address Line 1]

* [Candidate Address Line 2]

  • Salutation: Dear [Candidate Name],
  • Body Paragraph 1: Opening & Offer:

* "We are thrilled to extend an offer of employment for the position of [Job Title] at [Company Name]."

  • Body Paragraph 2: Key Terms:

* Position: [Job Title]

* Reporting To: [Manager's Name, Title]

* Start Date: [DD Month YYYY] (or "On a mutually agreed upon date")

* Annual Salary: [$$$,$$$,$$] (Paid [Bi-weekly/Monthly])

* Bonus/Commission: [Details if applicable]

  • Body Paragraph 3: Benefits Overview:

* Brief summary of health, dental, vision, PTO, 401k, etc., with a note about detailed benefits package availability.

  • Body Paragraph 4: Contingencies (if applicable):

* Subject to background check, reference checks, work authorization, etc.

  • Body Paragraph 5: Acceptance & Deadline:

* "Please indicate your acceptance of this offer by signing below and returning this letter by [Deadline Date]."

  • Closing: Sincerely,
  • Signature Block:

* _________________________

* [Hiring Manager/HR Representative Name]

* [Title]

  • Candidate Acceptance Block:

* I accept this offer of employment

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);}});}