Instant Resume Enhancement
Run ID: 69cd01643e7fb09ff16a70652026-04-01Career
PantheraHive BOS
BOS Dashboard

Generate a professional resume with ATS optimization

Instant Resume Enhancement: Professional Resume Generation

This deliverable provides a comprehensive, ATS-optimized professional resume structure and content guidelines tailored to maximize your visibility and impact with recruiters and automated Applicant Tracking Systems. We've structured this output to be highly actionable, allowing you to populate it with your specific details to create a compelling and professional document.


1. Core Principles for ATS Optimization & Impact

Before diving into the structure, understand these fundamental principles:

  • Keyword Optimization: ATS systems scan for keywords relevant to the job description. Your resume must incorporate these naturally throughout.
  • Clear, Standard Formatting: ATS struggles with complex layouts, graphics, and non-standard fonts. Stick to clean, chronological, and widely accepted formats.
  • Quantifiable Achievements: Don't just list duties; demonstrate impact with numbers, percentages, and specific results.
  • Action Verbs: Start bullet points with strong action verbs to convey initiative and accomplishment.
  • Customization: Every resume submission should be slightly tweaked to align with the specific job description you're applying for.

2. Professional Resume Structure & Content Guidelines

Below is a standard, ATS-friendly resume structure. Populate each section with your relevant information, following the guidance provided.


2.1. Contact Information

  • Placement: Top of the page, centered or left-aligned.
  • Content:

* Full Name: [Your Full Name] (Prominent font size, e.g., 18-24pt)

* Phone Number: [Your Professional Phone Number] (e.g., (123) 456-7890)

* Email Address: [Your Professional Email Address] (e.g., your.name@email.com - avoid unprofessional addresses)

* LinkedIn Profile URL: [Your Custom LinkedIn URL] (Ensure it's updated and professional)

* Portfolio/Personal Website URL (Optional): [Your Portfolio/Website URL] (If relevant to your profession, e.g., designers, developers)

* City, State (Optional): [Your City, State] (e.g., New York, NY - or just State if open to relocation)


2.2. Professional Summary / Objective

  • Placement: Immediately below Contact Information.
  • Content: A concise (3-5 sentences or 3-4 bullet points) overview of your career, highlighting your most relevant skills, experience, and career goals. Tailor this heavily to the job description.

* Professional Summary (Experienced Professionals): Focus on your key achievements, years of experience, and what you bring to a role.

Example:* "Highly accomplished [Your Job Title] with X years of experience in [Key Industry/Area], specializing in [Skill 1] and [Skill 2]. Proven ability to [Key Achievement 1, e.g., drive revenue growth by X%] and [Key Achievement 2, e.g., optimize operational efficiency]. Seeking to leverage expertise in [Relevant Area] to contribute to [Target Company's] success."

* Career Objective (Entry-Level/Career Changers): Focus on your skills, enthusiasm, and what you aim to achieve in the new role.

Example:* "Motivated and detail-oriented [Your Field] professional seeking an entry-level position at [Target Company] to apply strong foundational skills in [Skill 1] and [Skill 2]. Eager to contribute to a dynamic team and develop expertise in [Desired Area] while achieving organizational goals."


2.3. Skills

  • Placement: Below the Summary, or after Experience if preferred (but often beneficial upfront for ATS).
  • Content: Categorize your skills for readability and ATS scannability.

* Technical Skills: List specific software, programming languages, tools, platforms, and technologies.

Examples:* Python, SQL, Salesforce, Adobe Creative Suite, Microsoft Azure, Data Analysis, Project Management Software (Jira, Asana).

* Soft Skills: Important for human readers, but also increasingly sought by ATS.

Examples:* Communication, Teamwork, Problem-Solving, Leadership, Adaptability, Critical Thinking, Client Relations.

* Industry-Specific Skills: Relevant methodologies, certifications, or specialized knowledge.

Examples:* Agile Methodology, Lean Six Sigma, GAAP, Digital Marketing, Supply Chain Management.

* Languages (if applicable):

Examples:* English (Native), Spanish (Fluent), French (Conversational).


2.4. Professional Experience

  • Placement: This is the core of your resume, presented in reverse chronological order (most recent first).
  • Content: For each position:

* Job Title: [Your Official Job Title]

* Company Name: [Company Name], [City, State]

* Dates of Employment: [Start Date] – [End Date] (e.g., June 2018 – Present, or Jan 2015 – Dec 2017)

Bullet Points (3-5 per role): Describe your responsibilities and, crucially, your achievements*. Use the STAR Method (Situation, Task, Action, Result) mentally to formulate each point.

* Start each bullet with a strong action verb.

* Quantify results whenever possible (numbers, percentages, dollar amounts, time saved).

* Incorporate keywords from job descriptions.

* Example Bullet Points:

* Managed a portfolio of 50+ key client accounts, resulting in a 15% increase in recurring revenue year-over-year.

* Developed and implemented a new data analysis process that reduced reporting time by 20% and improved accuracy by 10%.

* Led cross-functional team of 7 to successfully launch three major product features, exceeding user adoption targets by 25%.

* Optimized marketing campaigns across digital channels, achieving a 30% increase in lead generation and reducing cost-per-acquisition by 12%.

* Mentored and trained junior staff, improving team productivity by 18% within six months.


2.5. Education

  • Placement: Below Professional Experience.
  • Content: List your degrees in reverse chronological order.

* Degree: [Degree Name] (e.g., Master of Business Administration, Bachelor of Science in Computer Science)

* Major/Minor (Optional): [Your Major/Minor]

* University Name: [University Name], [City, State]

* Graduation Date: [Month, Year] or [Year] (e.g., May 2017)

* GPA (Optional): Only include if 3.5 or higher, especially for recent graduates.

* Relevant Coursework (Optional for recent grads): List 3-5 courses highly relevant to the target role.

* Honors/Awards (Optional): Dean's List, Magna Cum Laude, Scholarships.


2.6. Projects / Portfolio (Optional but Recommended)

  • Placement: After Education or Skills.
  • Content: Showcase personal or academic projects that demonstrate your skills, especially if you have limited professional experience or are in a technical/creative field.

* Project Title: [Project Name]

* Technologies/Skills Used: [List relevant technologies/skills]

* Brief Description: 1-2 sentences outlining the project's purpose and your role.

* Key Outcome/Impact: What did you achieve or learn?

* Link (Optional): [Link to Project on GitHub, personal website, etc.]


2.7. Certifications & Licenses (Optional)

  • Placement: Below Education or Projects.
  • Content: List relevant professional certifications and licenses.

* Certification Name: [Certification Body] (e.g., Project Management Professional (PMP), Google Analytics Certified, AWS Certified Solutions Architect)

* Issuing Authority: [Issuing Organization]

* Date Issued / Expiration Date (if applicable): [Month, Year]


2.8. Awards & Honors (Optional)

  • Placement: Below Certifications.
  • Content: Any significant professional or academic awards.

* Award Name: [Award Title]

* Issuing Body: [Issuing Organization]

* Date Received: [Year]


2.9. Volunteer Experience (Optional)

  • Placement: Below Awards.
  • Content: If relevant, showcases leadership, teamwork, or specific skills. Treat like professional experience with bullet points.

* Role: [Your Role]

* Organization: [Organization Name], [City, State]

* Dates: [Start Date] – [End Date]

* Key Contributions: Use action verbs and quantifiable results.


3. General ATS Optimization Best Practices

Beyond content, these formatting and submission tips are crucial:

  • Standard Font: Use professional, clean, and widely recognized fonts like Calibri, Arial, Helvetica, or Georgia. Avoid decorative fonts.
  • Font Size: 11-12pt for body text, 14-16pt for section headers, 18-24pt for your name.
  • White Space: Ensure adequate white space for readability. Don't cram too much text.
  • Consistent Formatting: Maintain consistent font sizes, bolding, and bullet styles throughout.
  • No Graphics, Images, or Fancy Templates: ATS can't read these, and they often cause parsing errors. Keep it text-based.
  • Keyword Density: Naturally integrate keywords from the job description. Don't "keyword stuff" as it can be penalized.
  • File Type: Always save and submit your resume as a PDF unless explicitly asked for a Word document (.docx). PDFs maintain formatting across systems.
  • File Naming: Name your file professionally: [Your Name] - Resume - [Target Job Title].pdf (e.g., JaneDoe - Resume - SeniorMarketingManager.pdf).
  • Proofread Meticulously: Typos and grammatical errors are immediate red flags. Use grammar checkers and have someone else review it.

4. Actionable Next Steps for You

  1. Gather Your Information: Collect all necessary details for each section (dates, company names, job titles, achievements, skills, etc.).
  2. Populate the Template: Systematically fill in each section of the resume structure provided above.
  3. Tailor to a Specific Job: Find a job description you're interested in. Go through your populated resume and identify where you can integrate keywords and rephrase achievements to directly align with the job's requirements.
  4. Quantify Everything Possible: Review your experience section. Can you add more numbers, percentages, or dollar figures to demonstrate impact?
  5. Proofread and Get Feedback: Read through your resume multiple times. Use online grammar checkers. Ask a trusted friend or mentor to review it for clarity, impact, and errors.
  6. Save as PDF: Convert your final resume to a PDF document.
  7. Test ATS Compatibility (Optional but Recommended): Use a free online resume scanner tool (search for "free ATS resume checker") to get an initial idea of how well your resume might perform against a target job description.

This detailed framework provides the foundation for a powerful, ATS-optimized resume. By meticulously following these guidelines and customizing your content for each application, you significantly enhance your chances of landing an interview.

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

"+slugTitle(pn)+"

Built with PantheraHive BOS

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

"+slugTitle(pn)+"

Built with PantheraHive BOS

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

"+title+"

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

$1

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

$1

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

$1

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

"); h+="

"+hc+"

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