Instant Resume Enhancement
Run ID: 69cb385c61b1021a29a86f582026-03-31Career
PantheraHive BOS
BOS Dashboard

Generate a professional resume with ATS optimization

Instant Resume Enhancement: Your ATS-Optimized Professional Resume Template

This deliverable provides a comprehensive, ATS-optimized professional resume template designed to maximize your chances of getting noticed by recruiters and Applicant Tracking Systems (ATS). We have structured each section with best practices, detailed guidelines, and actionable advice to help you craft a powerful and effective resume.


1. Understanding Your ATS-Optimized Resume

Before diving into the template, it's crucial to understand the principles behind an ATS-friendly resume:

  • Applicant Tracking Systems (ATS): These are software applications that scan, sort, and rank resumes based on keywords, formatting, and relevance to the job description. Most large companies use ATS to manage high volumes of applications.
  • Keywords: The ATS looks for specific keywords and phrases directly from the job description. Integrating these naturally throughout your resume is vital.
  • Clean Formatting: ATS prefers simple, standard formatting. Complex designs, graphics, tables, custom fonts, and text boxes can often confuse the system, leading to your resume being misread or discarded.
  • Standard Sections: Using universally recognized section headers (e.g., "Work Experience," "Education," "Skills") helps the ATS correctly categorize your information.

2. Your Professional Resume Template Structure

Below is a detailed breakdown of each essential resume section, complete with instructions and examples. Fill in your specific information using these guidelines.

2.1 Contact Information

Place this at the very top. Ensure it's clear, concise, and professional.

  • Guidelines:

* Use a professional email address (e.g., firstname.lastname@email.com).

* Include a link to your professional online profile (e.g., LinkedIn).

* Do not include your full street address; city and state are sufficient.

  • Template:

[Your Full Name]

[Your Phone Number] | [Your Professional Email] | [Your City, State] | [LinkedIn Profile URL]

Example:

Jane Doe

(555) 123-4567 | jane.doe@email.com | New York, NY | linkedin.com/in/janedoe

2.2 Professional Summary / Objective (Choose One)

This section provides a brief overview of your qualifications and career goals.

  • Professional Summary (Recommended for experienced professionals): A 3-4 sentence paragraph highlighting your key achievements, skills, and career aspirations relevant to the target job. Focus on what you can do for the company.

* Guidelines:

* Include 2-3 of your most impressive quantifiable achievements.

* Incorporate relevant keywords from the job description.

Tailor this for each* application.

* Template:

Professional Summary

Highly motivated and results-driven [Your Job Title/Profession] with [X years] of experience in [Key Industry/Area]. Proven ability to [Key Skill 1] and [Key Skill 2], consistently achieving [Quantifiable Achievement 1] and driving [Quantifiable Achievement 2]. Seeking to leverage expertise in [Relevant Area] to contribute to [Target Company's Goal/Mission].

Example:

Professional Summary

Highly motivated and results-driven Marketing Manager with 7+ years of experience in digital strategy and campaign execution. Proven ability to increase market share and drive revenue growth, consistently achieving a 25% increase in lead generation and a 15% improvement in conversion rates. Seeking to leverage expertise in data-driven marketing and team leadership to contribute to innovative brand development at TechSolutions Inc.

  • Career Objective (For entry-level or career changers): A 2-3 sentence statement outlining your career goals and what you hope to achieve in a new role.

* Guidelines:

* Clearly state the type of role you're seeking.

* Mention 1-2 key skills you bring to the table.

* Focus on how your skills can benefit the employer.

* Template:

Career Objective

Enthusiastic [Your Background/Degree] seeking an entry-level [Target Job Title] position at [Target Company]. Eager to apply strong [Key Skill 1] and [Key Skill 2] abilities to contribute to team success and grow within a dynamic organization.

Example:

Career Objective

Enthusiastic recent Computer Science graduate seeking an entry-level Software Developer position at InnovateTech. Eager to apply strong Python and Java programming skills and problem-solving abilities to contribute to team success and grow within a dynamic software development environment.

2.3 Work Experience

List your professional experience in reverse chronological order (most recent first).

  • Guidelines:

* For each role, include: Job Title, Company Name, City, State, and Dates of Employment (Month/Year – Month/Year).

* Use 3-5 bullet points per role, focusing on achievements rather than just duties.

* Quantify Everything: Use numbers, percentages, and dollar amounts whenever possible.

* Action Verbs: Start each bullet point with a strong action verb.

* STAR Method (Situation, Task, Action, Result): While not explicitly written out, structure your bullet points to implicitly convey the action you took and the positive result.

* Keywords: Integrate keywords from job descriptions naturally into your bullet points.

  • Template:

Work Experience

[Your Job Title] | [Company Name] | [City, State]

[Month Year] – [Month Year]

* [Action Verb] [what you did/task] using [skill/tool] resulting in [quantifiable positive outcome].

* [Action Verb] [specific project/initiative] that [impact/benefit], leading to [quantifiable result].

* [Action Verb] [responsibility/contribution] by [method], improving [metric] by [percentage/amount].

* [Action Verb] [team/client interaction] to [achieve goal], recognized for [positive feedback/award].

Example:

Marketing Manager | Global Solutions Inc. | San Francisco, CA

January 2020 – Present

* Developed and executed comprehensive digital marketing strategies, increasing online lead generation by 25% and conversion rates by 15% within 12 months.

* Managed a $500K annual marketing budget, optimizing spend across PPC, SEO, and social media campaigns to achieve a 10x ROI.

* Led a team of 4 marketing specialists, providing mentorship and performance reviews, resulting in a 20% improvement in team productivity.

* Collaborated with sales teams to align marketing efforts with sales goals, contributing to a $2M increase in annual revenue.

Strong Action Verbs for Work Experience:

* Leadership/Management: Led, Managed, Oversaw, Coordinated, Supervised, Mentored, Guided, Directed

* Achievement/Results: Achieved, Generated, Increased, Decreased, Optimized, Boosted, Exceeded, Delivered, Spearheaded

* Communication/Collaboration: Collaborated, Liaised, Presented, Communicated, Negotiated, Partnered, Trained

* Technical/Analytical: Analyzed, Developed, Designed, Implemented, Programmed, Troubleshot, Configured, Modeled

* Creative/Innovative: Created, Innovated, Designed, Conceptualized, Invented, Developed, Formulated

2.4 Education

List your academic achievements in reverse chronological order.

  • Guidelines:

* Include Degree, Major, University Name, City, State, and Graduation Date (Month/Year or Expected Month/Year).

* You can include your GPA if it's 3.5 or higher.

* Relevant coursework, honors, or academic awards can be included if space permits and they are relevant.

  • Template:

Education

[Degree Name] in [Major] | [University Name] | [City, State]

[Month Year] – [Month Year] (or Expected [Month Year])

* GPA: [X.X/4.0] (Optional, if 3.5+)

* Relevant Coursework: [Course 1], [Course 2], [Course 3] (Optional)

* Honors/Awards: [Dean's List, Cum Laude, Scholarship Name] (Optional)

Example:

Master of Business Administration (MBA) | University of California, Berkeley | Berkeley, CA

August 2022 – May 2024 (Expected)

Bachelor of Science in Marketing | New York University | New York, NY

September 2016 – May 2020

* GPA: 3.8/4.0

* Honors: Summa Cum Laude, Dean's List (all semesters)

2.5 Skills

This section is critical for ATS keyword matching. Categorize your skills for clarity.

  • Guidelines:

* List specific technical skills, software proficiencies, languages, and relevant soft skills.

* Group related skills (e.g., Programming Languages, Software, Marketing Tools).

* Ensure skills listed here are also reflected in your work experience bullet points.

* Include keywords directly from job descriptions.

  • Template:

Skills

* Technical Skills: [Skill 1], [Skill 2], [Skill 3], [Skill 4], [Skill 5]

* Software: [Software 1], [Software 2], [Software 3], [Software 4]

* Marketing Tools: [Tool 1], [Tool 2], [Tool 3]

* Languages: [Language 1] (Proficiency Level), [Language 2] (Proficiency Level)

* Soft Skills: [Skill 1], [Skill 2], [Skill 3] (Use sparingly and only if highly relevant, as these are harder for ATS to parse effectively)

Example:

Skills

* Technical Skills: Python, SQL, Java, C++, JavaScript, Data Analysis, Machine Learning, Cloud Computing (AWS, Azure)

* Software: Microsoft Office Suite (Excel, Word, PowerPoint), Salesforce, Tableau, Adobe Creative Suite, Google Analytics

* Marketing Tools: SEO (SEMrush, Ahrefs), PPC (Google Ads, Facebook Ads), CRM (HubSpot), Email Marketing (Mailchimp)

* Languages: English (Native), Spanish (Fluent)

* Soft Skills: Project Management, Strategic Planning, Cross-functional Collaboration, Problem Solving

2.6 Optional Sections (Add as applicable)

Include these sections only if they add significant value and are relevant to the jobs you're applying for. Place them after "Skills" or "Education," depending on relevance.

  • Projects:

* Showcase personal projects, academic projects, or significant initiatives that demonstrate skills not fully covered in work experience.

* Template:

Projects

[Project Name] | [Your Role] | [Dates]

* [Brief description of project and technologies used].

* [Key responsibilities and challenges overcome].

* [Quantifiable results or impact].

Example:*

E-commerce Website Redesign | Lead Developer | Jan 2023 - Apr 2023

* Developed a full-stack e-commerce platform using React, Node.js, and MongoDB, integrating Stripe for payment processing.

* Implemented responsive design, reducing page load times by 30% and improving user experience.

  • Certifications:

* List any professional certifications relevant to your field.

* Template:

Certifications

* [Certification Name], [Issuing Body], [Date Issued]

Example:*

Certifications

* Google Ads Search Certification, Google, June 2023

* Certified ScrumMaster (CSM), Scrum Alliance, March 2022

  • Awards & Honors:

* Recognize significant achievements, scholarships, or company awards.

* Template:

Awards & Honors

* [Award Name], [Issuing Body], [Year]

Example:*

Awards & Honors

* Employee of the Year, Global Solutions Inc., 2022

* Marketing Excellence Award, American Marketing Association, 2021

  • Volunteer Experience:

* Demonstrate leadership, teamwork, or specific skills gained through volunteer work.

* Template:

Volunteer Experience

[Your Role] | [Organization Name] | [City, State]

[Month Year] – [Month Year]

* [Description of responsibilities and impact].

Example:*

Team Lead | Habitat for Humanity | Austin, TX

January 2021 – December 2022

* Coordinated teams of 10+ volunteers for weekly build projects, ensuring safety and efficiency.


3. ATS Optimization Checklist & Best Practices

To ensure your resume passes through ATS successfully and makes a strong impression:

  • Keywords are King: Always tailor your resume with keywords directly from the job description. If the job description uses "customer relationship management," don't just put "CRM" – use both.
  • Clean, Standard Formatting:

* Use a professional, easy-to-read font (e.g., Calibri, Arial, Lato, Georgia, Times New Roman). Stick to 10-12pt for body text and 14-18pt for headers.

* Avoid fancy templates, graphics, images, tables, or text boxes. These can confuse ATS.

* Use standard bullet points (simple circles or squares).

* Maintain consistent spacing and alignment.

  • File Type: Save your resume as a PDF unless explicitly asked for another format (e.g., .doc or .docx). PDFs preserve formatting across different systems.
  • Length:

* For entry-level to mid-career professionals (0-10 years of experience): Aim for one page.

* For senior-level professionals (10+ years of experience): Two pages are acceptable, but every word must count.

  • **Proofread Meticulously
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
\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);}});}