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

Generate a professional resume with ATS optimization

Instant Resume Enhancement: Your Professional & ATS-Optimized Resume Blueprint

This deliverable provides a comprehensive, detailed, and professional blueprint for your resume, meticulously designed for both human recruiters and Applicant Tracking Systems (ATS). We've structured this output to guide you in creating a powerful document that highlights your strengths, quantifies your achievements, and maximizes your visibility in today's competitive job market.


Overview of Your Enhanced Resume Deliverable

Congratulations on taking a proactive step towards advancing your career! This output serves as your personalized guide to crafting an exceptional resume. We've focused on:

  • Professional Formatting: Ensuring a clean, readable, and impactful layout.
  • ATS Optimization: Implementing strategies to ensure your resume passes initial automated screenings.
  • Content Enhancement: Guiding you to articulate your experience and skills effectively.
  • Actionable Advice: Providing specific instructions for each section to make your resume stand out.

Key Principles of Professional Resume Enhancement

Before diving into the structure, understand the core principles that drive an effective resume:

  1. Targeted Content: Every resume should be tailored to the specific job you're applying for. Generic resumes rarely succeed.
  2. Clarity & Conciseness: Recruiters spend seconds scanning. Make your points clear, brief, and impactful.
  3. Quantifiable Achievements: Don't just list duties; demonstrate impact with numbers, percentages, and results.
  4. Keyword Optimization: Integrate keywords from job descriptions naturally to satisfy ATS and human readers.
  5. Professionalism: Maintain a consistent, clean, and error-free presentation.

Understanding ATS Optimization

Applicant Tracking Systems (ATS) are software applications used by companies to manage recruitment. They scan, parse, and rank resumes based on keywords, formatting, and other criteria. Your resume must be ATS-friendly to even reach a human recruiter.

How We've Optimized for ATS:

  • Standard Formatting: Using common fonts (e.g., Calibri, Arial, Helvetica) and clear section headers.
  • Keyword Integration: Emphasizing the importance of strategically placing relevant keywords throughout your resume.
  • Clear Sectioning: Utilizing standard section titles (e.g., "Work Experience," "Skills," "Education") that ATS can easily recognize.
  • Text-Based Content: Advising against excessive use of graphics, tables, or complex layouts that can confuse parsers.
  • Chronological Order: Recommending a reverse-chronological format for experience and education, which is preferred by most ATS.

Your Enhanced Resume Structure: A Section-by-Section Blueprint

Below is the recommended, ATS-friendly structure for your professional resume. Follow the instructions for each section to fill in your specific details.


1. Contact Information

  • Purpose: To make it easy for recruiters to reach you.
  • ATS & Professionalism: Keep it clean and at the top.

Your Action:

  • Full Name: [Your Full Name - Prominently displayed, larger font]
  • Phone Number: [Your Professional Phone Number (e.g., +1 (XXX) XXX-XXXX)]
  • Email Address: [Your Professional Email Address (e.g., firstname.lastname@email.com)]
  • LinkedIn Profile URL: [Your Customized LinkedIn Profile URL (e.g., linkedin.com/in/yourname)]
  • Portfolio/Website URL (Optional): [Link to your professional portfolio, GitHub, or personal website, if applicable]
  • Location (Optional, but recommended for local jobs): [Your City, State (e.g., San Francisco, CA)] - Avoid full street addresses for privacy.

2. Professional Summary / Objective

  • Purpose: A concise, 3-4 sentence paragraph that highlights your key qualifications, experience, and career goals relevant to the target job. For experienced professionals, a "Professional Summary" is preferred. For entry-level or career changers, an "Objective" can be used.
  • ATS & Professionalism: This is prime real estate for keywords and a quick overview of your value proposition.

Your Action (Choose One):

Option A: Professional Summary (Recommended for experienced professionals)

  • Start with your current title/role and years of experience.
  • Highlight 2-3 core competencies or key skills.
  • Mention your most significant achievements or contributions.
  • State your career goal or what you aim to contribute to the new role/company.

Example:

"Highly accomplished and results-driven [Your Current Title/Role] with [X] years of experience in [Industry/Field]. Proven expertise in [Skill 1], [Skill 2], and [Skill 3]. Successfully [quantifiable achievement 1] and [quantifiable achievement 2]. Seeking to leverage [your unique strength] to drive [specific goal] at [Target Company/Industry]."

Option B: Career Objective (Recommended for entry-level or career changers)

  • State the specific role you are seeking.
  • Mention relevant skills or academic achievements.
  • Express enthusiasm for the industry or company.

Example:

"Motivated and detail-oriented [Your Desired Role] eager to apply [Skill 1] and [Skill 2] in a dynamic [Industry] environment. Passionate about [specific area of interest] and committed to contributing to [Target Company/Team]'s success."


3. Skills

  • Purpose: To showcase your relevant technical and soft skills in a clear, organized manner.
  • ATS & Professionalism: This section is heavily scanned by ATS for keywords. Categorize for readability.

Your Action:

  • Create distinct categories for clarity.
  • List skills relevant to the jobs you are targeting.
  • Prioritize skills mentioned in job descriptions.

Example Categories:

  • Technical Skills: [Programming Languages: Python, Java, C++; Software: Adobe Creative Suite, Salesforce; Databases: SQL, MongoDB; Tools: JIRA, Trello; OS: Windows, macOS, Linux]
  • Soft Skills: [Project Management, Cross-functional Team Leadership, Strategic Planning, Data Analysis, Client Relations, Public Speaking, Problem-Solving, Communication, Adaptability]
  • Languages: [Language 1 (Fluency Level), Language 2 (Fluency Level)]

4. Work Experience

  • Purpose: To detail your professional history, focusing on achievements and responsibilities that align with your career goals.
  • ATS & Professionalism: This is the most critical section. Use strong action verbs, quantify achievements, and integrate keywords.

Your Action:

  • List positions in reverse-chronological order (most recent first).
  • For each role, include:

* Job Title: [Your Official Job Title]

* Company Name: [Company Name]

* Location: [City, State]

* Dates of Employment: [Month Year – Month Year / Present]

  • Under each job, write 3-5 bullet points describing your responsibilities and, more importantly, your quantifiable achievements.

Tips for Bullet Points:

  • Start with Strong Action Verbs: (e.g., Developed, Managed, Led, Implemented, Optimized, Generated, Increased, Reduced).
  • Quantify Everything Possible: Use numbers, percentages, dollar amounts, and timeframes to show impact.

Instead of:* "Responsible for managing social media."

Try:* "Managed social media campaigns across 3 platforms, increasing engagement by 25% and driving 15% more traffic to the company website within 6 months."

  • Focus on Results: What was the outcome of your actions?
  • Tailor to the Job Description: Use keywords from the target job description in your bullet points where appropriate.

Example Structure:

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

[Month Year] – [Month Year / Present]

  • [Strong Action Verb] + [What you did] + [How you did it] + [Quantifiable Result/Impact]
  • [Strong Action Verb] + [What you did] + [How you did it] + [Quantifiable Result/Impact]
  • [Strong Action Verb] + [What you did] + [How you did it] + [Quantifiable Result/Impact]
  • [Strong Action Verb] + [What you did] + [How you did it] + [Quantifiable Result/Impact]

5. Education

  • Purpose: To list your academic qualifications.
  • ATS & Professionalism: Keep it concise and in reverse-chronological order.

Your Action:

  • List degrees in reverse-chronological order.
  • For each degree, include:

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

* Major/Minor (if applicable): [e.g., Major in Marketing, Minor in Psychology]

* University Name: [University Name]

* Location: [City, State]

* Graduation Date (or Expected Graduation Date): [Month Year]

  • Optional:

* GPA: Only include if 3.5 or higher (on a 4.0 scale).

* Honors/Awards: [e.g., Magna Cum Laude, Dean's List]

* Relevant Coursework: (Especially for recent graduates or career changers, list 3-5 courses relevant to the target job).

Example:

[Degree Name] | [Major/Minor (if applicable)]

[University Name], [City, State] | [Graduation Date]

  • GPA: [X.X/4.0] (if applicable)
  • Honors: [e.g., Summa Cum Laude]
  • Relevant Coursework: [Course 1], [Course 2], [Course 3]

6. Projects / Portfolio (Optional but Recommended for certain fields)

  • Purpose: To showcase practical application of your skills, especially for tech, design, or creative roles.
  • ATS & Professionalism: Demonstrates initiative and tangible results.

Your Action:

  • List 2-3 significant projects.
  • For each project, include:

* Project Title: [Project Name]

* Role (if applicable): [Your Role in the Project]

* Dates: [Month Year – Month Year]

* Brief Description: 1-2 sentences explaining the project.

* Key Contributions/Technologies Used: Use bullet points, similar to work experience, focusing on your impact and skills utilized.

* Link (if applicable): [Link to live project, GitHub repo, or portfolio page]


7. Awards & Recognition / Certifications (Optional)

  • Purpose: To highlight special achievements, professional development, and validated skills.
  • ATS & Professionalism: Adds credibility and demonstrates continuous learning.

Your Action:

  • List relevant awards, scholarships, certifications, or professional licenses.
  • For each entry, include:

* Award/Certification Name: [Name of Award/Certification]

* Issuing Organization: [Organization Name]

* Date Issued/Received: [Month Year]

Example:

Certifications:

  • Certified Project Management Professional (PMP) | Project Management Institute | [Month Year]
  • Google Analytics Certification | Google | [Month Year]

Awards & Recognition:

  • Employee of the Year | [Company Name] | [Year]
  • [Scholarship Name] | [Organization Name] | [Year]

8. Volunteer Experience (Optional)

  • Purpose: To demonstrate leadership, teamwork, and commitment outside of paid employment.
  • ATS & Professionalism: Particularly useful for recent graduates or those with limited professional experience to showcase soft skills.

Your Action:

  • List volunteer roles similar to work experience, focusing on responsibilities and impact.

Example:

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

[Month Year] – [Month Year / Present]

  • [Action Verb] + [What you did] + [Result/Impact]
  • [Action Verb] + [What you did] + [Result/Impact]

Final Recommendations & Next Steps

  1. Proofread Meticulously: Errors undermine credibility. Read your resume aloud, ask a friend to review, and use grammar checkers.
  2. Save as PDF: Always save and submit your resume as a PDF unless explicitly asked for a different format. This preserves formatting across different systems and is generally ATS-friendly.
  3. Tailor for Each Application: This blueprint is a starting point. Adjust your summary, skills, and bullet points to align with each specific job description.
  4. Keyword Scan: Before submitting, copy the job description and your resume into a word cloud generator to see if key terms align.
  5. Get Feedback: Share your drafted resume with mentors, career advisors, or trusted colleagues for constructive criticism.
  6. Update Regularly: Keep your resume current with new achievements, skills, and experiences.

By diligently following this enhanced resume blueprint, you will create a powerful, ATS-optimized document that effectively showcases your qualifications and significantly increases your chances of landing an interview. Good luck!

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