Professional Resume Builder
Run ID: 69cad6b774bac0555ea30a6c2026-03-30Career
PantheraHive BOS
BOS Dashboard

Create a tailored resume for your target job

Phase 1: Information Gathering for Your Tailored Professional Resume

Welcome to the Professional Resume Builder workflow! To ensure we create a highly effective, tailored resume that significantly boosts your chances of securing your target job, this initial phase focuses on gathering comprehensive details about your professional background, skills, and career aspirations.

Your input in this step is crucial for customizing your resume to align perfectly with specific job descriptions and industry standards, highlighting your most relevant qualifications and achievements.

1. Purpose of This Step: Creating a Foundation for Success

The primary goal of this "generate_resume" step is to collect all necessary information from you. This data will serve as the foundation upon which we will construct a compelling, keyword-optimized, and professionally formatted resume in the subsequent step. A tailored resume demonstrates to recruiters and hiring managers that you possess the exact skills and experience they are seeking, making you a standout candidate.

2. Key Information Required for Your Resume

To generate a truly customized and impactful resume, please provide the following details. Be as thorough and specific as possible. The more detail you provide, the better we can tailor your resume.

a. Contact Information

  • Full Name:
  • Phone Number:
  • Email Address:
  • LinkedIn Profile URL (if applicable):
  • Portfolio/Personal Website URL (if applicable):
  • City, State (e.g., New York, NY) - Optional, for location-based searches:

b. Target Job & Industry Information (Crucial for Tailoring)

  • Specific Job Title(s) you are targeting: (e.g., "Senior Software Engineer," "Marketing Manager," "Data Analyst")
  • Desired Industry/Field:
  • Any specific companies you are applying to (optional, but helpful for deep tailoring):
  • Key skills or qualifications mentioned in job descriptions you are interested in: (List 3-5 keywords)
  • Do you have a specific job description you'd like to tailor your resume to? If so, please provide the full job description text or a link to it.

c. Professional Summary or Objective (Choose One)

  • Professional Summary: A 3-5 sentence paragraph highlighting your top achievements, skills, and career goals. (If you have one in mind, please provide it. Otherwise, we will craft one based on your experience.)
  • Career Objective: A concise statement (1-2 sentences) outlining your career goals and what you aim to achieve in your next role. (Typically for early-career professionals or those changing careers.)

d. Work Experience

For each relevant position (start with your most recent), please provide:

  • Job Title:
  • Company Name:
  • Location (City, State):
  • Employment Dates (Month/Year - Month/Year, or "Present"):
  • Key Responsibilities and Achievements: Use bullet points to describe your duties and, most importantly, quantify your achievements whenever possible (e.g., "Increased sales by 15%," "Managed a team of 5," "Reduced project costs by $10,000"). Aim for 3-5 strong bullet points per role.

e. Education

For each degree or certification, please provide:

  • Degree/Certification Name (e.g., B.S. in Computer Science, MBA, PMP Certification):
  • Major/Minor (if applicable):
  • University/Institution Name:
  • Location (City, State):
  • Graduation Date (Month/Year) or Expected Graduation Date:
  • GPA (Optional, typically if 3.5 or higher):
  • Relevant Coursework/Honors/Awards (Optional):

f. Skills

Categorize your skills for clarity:

  • Technical Skills: (e.g., Programming Languages: Python, Java; Software: Adobe Creative Suite, Salesforce; Tools: JIRA, Git; Databases: SQL, MongoDB)
  • Soft Skills: (e.g., Communication, Leadership, Problem-Solving, Teamwork, Adaptability, Critical Thinking)
  • Languages: (e.g., English - Native, Spanish - Fluent, French - Conversational)

g. Projects & Portfolio (If Applicable)

  • Project Name:
  • Brief Description: (1-2 sentences explaining the project and your role)
  • Technologies Used:
  • Key Achievements/Impact:
  • Link to Project/Portfolio (if available):

h. Awards, Certifications & Publications (If Applicable)

  • Award Name / Certifying Body / Publication Title:
  • Date Awarded/Issued/Published:
  • Brief Description of significance (optional):

i. Volunteer Experience & Community Involvement (If Applicable)

  • Organization Name:
  • Your Role/Title:
  • Dates of Involvement:
  • Key Responsibilities and Achievements:

3. How Your Information Will Be Used for Tailoring

Once you provide the above details, our system will:

  • Keyword Optimization: Analyze your provided target job descriptions and industry keywords to strategically integrate them into your resume, increasing its visibility to Applicant Tracking Systems (ATS).
  • Achievement-Oriented Wording: Transform responsibilities into quantifiable achievements using strong action verbs.
  • Structured Formatting: Apply a modern, clean, and professional resume template optimized for readability and ATS compatibility.
  • Content Prioritization: Arrange sections and bullet points to highlight the most relevant experience and skills for your target roles.
  • Clarity and Conciseness: Refine language to ensure every word adds value and contributes to your professional narrative.

4. Next Steps: Submission and Resume Generation (Step 2 of 2)

Please compile all the requested information and provide it in a clear, organized format. Once we receive your comprehensive input, we will proceed to Step 2: Generate and Deliver Your Tailored Resume. You can expect to receive a professionally crafted resume document, ready for your job applications.

resume Output

Professional Resume Builder: Tailored Cover Letter Generation

This output represents the successful completion of Step 2 of 2: resume → generate_cover_letter for your "Professional Resume Builder" workflow.

A compelling cover letter is a critical component of your job application, serving as a personalized introduction that complements your resume. It allows you to elaborate on your most relevant qualifications, express your enthusiasm for the specific role and company, and demonstrate how your unique skills and experiences align with the employer's needs.


Understanding Your Tailored Cover Letter

Your cover letter has been designed to be highly targeted, using keywords and themes often found in modern job descriptions for professional roles. While a specific job description was not provided for this step, the generated letter below incorporates best practices for tailoring and provides clear placeholders for you to easily customize it for each specific application.

Key Goals of this Cover Letter:

  1. Personalization: Directly address the hiring manager (if known) and reference the specific company and role.
  2. Impact: Highlight 2-3 key achievements or skills that directly relate to the job's requirements.
  3. Enthusiasm: Convey genuine interest in the position and the organization's mission or values.
  4. Call to Action: Prompt the reader to review your resume and consider you for an interview.
  5. Professionalism: Maintain a formal yet engaging tone, free of errors.

Your Tailored Cover Letter Template

Below is a comprehensive, professional cover letter template. You MUST customize the bracketed [placeholders] for each job application.


[Your Name]

[Your Address] | [Your Phone Number] | [Your Email] | [Your LinkedIn Profile URL]

[Current Date]

[Hiring Manager Name, if known, or "Hiring Team"]

[Hiring Manager Title]

[Company Name]

[Company Address]

Dear [Mr./Ms./Mx. Last Name, or "Hiring Team"],

I am writing to express my enthusiastic interest in the [Job Title] position at [Company Name], as advertised on [Platform where you saw the job, e.g., LinkedIn, company website, Indeed]. With my proven experience in [1-2 key skills or areas highly relevant to the job, e.g., "developing scalable cloud solutions" or "leading cross-functional project teams"] and a strong record of [1-2 key achievements or results, e.g., "driving significant operational efficiencies" or "delivering successful product launches"], I am confident that my qualifications align perfectly with the requirements outlined in your job description and will enable me to make immediate and meaningful contributions to your team.

Throughout my [Number] years of experience in [Your Industry/Field], I have consistently demonstrated my ability to [mention a core competency, e.g., "design, develop, and deploy robust software applications" or "strategize and execute impactful marketing campaigns"]. For instance, in my previous role at [Previous Company Name], I successfully [Quantifiable Achievement 1 directly relevant to the target job. Use STAR method: Situation, Task, Action, Result. Example: "led a team of 5 engineers in migrating our legacy system to AWS, resulting in a 30% reduction in infrastructure costs and a 15% improvement in system uptime."]. This experience has equipped me with a deep understanding of [mention a specific technology, methodology, or market, e.g., "Agile methodologies and full-stack development" or "data-driven decision making and market analysis"], which I believe will be invaluable to [Company Name]'s [mention a specific company project, goal, or value, e.g., "mission to innovate in sustainable energy" or "commitment to customer-centric product development"].

What particularly draws me to [Company Name] is [Specific reason you are interested in the company and/or role. This shows you've done your research. Example: "your pioneering work in AI-driven analytics and your commitment to fostering a collaborative and innovative culture."]. I am particularly excited about the opportunity to [mention a specific aspect of the job or company that appeals to you, e.g., "contribute to the development of your next-generation platform" or "leverage my expertise to expand your market reach"]. My passion for [mention a relevant passion, e.g., "solving complex technical challenges" or "creating engaging user experiences"] aligns seamlessly with the values and objectives I perceive at [Company Name].

My attached resume provides further detail on my professional background and accomplishments. Thank you for your time and consideration. I am eager to discuss how my skills and experience can benefit [Company Name] and welcome the opportunity for an interview at your earliest convenience.

Sincerely,

[Your Name]


How to Customize and Maximize Impact

To make this cover letter truly shine for each application, follow these steps meticulously:

  1. Research the Company and Role:

* Job Description Deep Dive: Read the job description multiple times. Identify keywords, required skills, preferred qualifications, and the company's mission/values.

* Company Website & Social Media: Understand their products, services, recent news, culture, and any specific projects mentioned.

* LinkedIn: Look up current employees in similar roles to get a sense of their backgrounds and responsibilities.

  1. Personalize the Salutation:

* Always try to find the hiring manager's name. Check the job posting, the company's website, or LinkedIn.

* If you cannot find a specific name, use "Dear Hiring Team," "Dear [Department Name] Hiring Manager," or "Dear [Company Name] Hiring Team." Avoid "To Whom It May Concern."

  1. Tailor the Opening Paragraph:

* Clearly state the job title you're applying for and where you saw the advertisement.

* Immediately highlight 1-2 of your most relevant skills or experiences that directly match the job description's top requirements.

  1. Craft Compelling Body Paragraphs (The "Why Me?"):

* Paragraph 2 (Skills & Achievements):

* Connect to Job Requirements: For each point you make, explicitly link it back to a requirement in the job description.

* Quantify Achievements: Whenever possible, use numbers, percentages, or metrics to demonstrate the impact of your work (e.g., "increased sales by 20%," "reduced project completion time by 15%," "managed a budget of $X").

* Use the STAR Method: Describe the Situation, Task, Action you took, and the positive Result.

* Keywords: Weave in keywords from the job description naturally.

Paragraph 3 (Why Them*?):

Show Genuine Interest: Explain why you want to work for this specific company and in this specific role*.

* Company Research: Reference specific company projects, values, culture, recent achievements, or products that resonate with you. This demonstrates you've done your homework.

* Align Values: If the company emphasizes innovation, teamwork, or customer focus, explain how your own values or work style align.

  1. Strong Closing:

* Reiterate your enthusiasm and confidence in your fit.

* Express gratitude for their time and consideration.

* Include a polite call to action, stating your eagerness for an interview.

  1. Review and Proofread:

* Read Aloud: This helps catch awkward phrasing and grammatical errors.

* Check for Typos: Especially the company name and job title!

* Consistency: Ensure the tone is professional and consistent throughout.

* Length: Aim for one page, typically 3-4 paragraphs.


Formatting and Submission Guidelines

  • File Format: Always save and submit your cover letter as a PDF unless explicitly asked for a Word document. This preserves your formatting.
  • File Naming: Use a professional and clear file name, e.g., "YourName_CoverLetter_JobTitle_Company.pdf"
  • Consistency: Ensure your contact information on the cover letter matches your resume exactly.
  • Professional Font: Use a standard, readable font like Arial, Calibri, or Times New Roman, typically 10-12 point size.
  • Margins: Standard 1-inch margins are generally appropriate.

Next Steps

  1. Download: Copy and paste the provided template into your preferred word processor.
  2. Customize: Go through each bracketed placeholder [ ] and replace it with specific information tailored to the job you are applying for. Do not leave any placeholders in your final submission.
  3. Review: Thoroughly proofread your customized cover letter.
  4. Pair with Resume: Ensure your cover letter and resume are submitted together, following the employer's specific application instructions.

Good luck with your applications!

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