Professional Resume Builder
Run ID: 69cc1a2104066a6c4a1695142026-03-31Career
PantheraHive BOS
BOS Dashboard

This output represents the successful generation of a tailored cover letter, a crucial component of your job application package. A well-crafted cover letter complements your resume by allowing you to express your enthusiasm, highlight key qualifications, and demonstrate your understanding of the target company and role in a narrative format.


Step 2 of 2: Generate Tailored Cover Letter

Purpose of Your Cover Letter

Your cover letter serves as a personalized introduction, providing context to your resume and making a compelling case for why you are the ideal candidate for the specific job. It's an opportunity to:

Key Elements of an Effective Professional Cover Letter

A strong cover letter typically includes the following sections:

  1. Your Contact Information: Clearly display your name, address, phone number, and email.
  2. Date: The date you are sending the letter.
  3. Employer Contact Information: If known, include the hiring manager's name, title, company name, and company address. If not, address it to "Hiring Team" or "Hiring Manager."
  4. Salutation: A professional greeting, ideally addressing the hiring manager by name.
  5. Opening Paragraph:

* State the position you are applying for.

* Mention where you saw the job posting.

Briefly express your enthusiasm and why you are interested in this specific role and company*.

  1. Body Paragraphs (1-3 paragraphs):

* Connect Your Skills to Job Requirements: This is the core of your letter. Review the job description and pull out 2-3 key requirements. For each requirement, provide a concise example from your experience that demonstrates how you meet or exceed it. Use action verbs and quantify your achievements where possible.

* Showcase Company Fit: Demonstrate that you've researched the company. Mention specific aspects of their mission, values, or recent projects that resonate with you and explain how your contributions would align.

* Highlight Unique Value: What unique perspective or skill set do you bring that sets you apart?

  1. Closing Paragraph:

* Reiterate your strong interest in the position and the company.

* Express confidence in your ability to contribute significantly.

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

* Thank them for their time and consideration.

  1. Professional Closing: E.g., "Sincerely," "Best regards," "Respectfully."
  2. Your Signature: Your typed name below the closing.

How to Tailor Your Cover Letter for Maximum Impact

To make your cover letter truly stand out, it must be tailored for each application. Here’s how:

Sample Tailored Cover Letter

Below is a professional, tailored cover letter template, demonstrating best practices. Please note that bracketed [ ] information needs to be replaced with your specific details and the job-specific information.

text • 2,456 chars
[Your Name]
[Your Address]
[Your City, State, Zip Code]
[Your Phone Number]
[Your Email Address]

[Date]

[Hiring Manager Name] (If known, otherwise use title or "Hiring Team")
[Hiring Manager Title]
[Company Name]
[Company Address]
[Company City, State, Zip Code]

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]**, which I discovered on [Platform where you saw the job posting, e.g., LinkedIn, company website, referral from X]. With my extensive experience in **[mention 1-2 key areas from your resume relevant to the job]** and a proven track record of **[mention a key achievement that aligns with company needs]**, I am confident that my skills and passion align perfectly with the requirements and the innovative spirit of your team.

Throughout my career, I have consistently demonstrated proficiency in **[Key Requirement 1 from Job Description, e.g., "developing scalable software solutions"]**. For instance, at [Previous Company], I **[describe a specific achievement that demonstrates this skill, quantifying impact, e.g., "led a project to refactor legacy code, resulting in a 20% reduction in system latency and improved user experience for over 100,000 customers"]**. I am particularly adept at **[Key Requirement 2 from Job Description, e.g., "cross-functional team collaboration and project management"]**, as evidenced by my role in **[describe another specific achievement, e.g., "successfully coordinating a team of 5 engineers across different departments to launch three major product features ahead of schedule"]**.

What particularly draws me to **[Company Name]** is **[mention something specific about the company – its mission, values, recent project, industry impact, or product that excites you]**. Your commitment to **[mention a specific company value, e.g., "innovation and customer-centric design"]** deeply resonates with my professional philosophy and my drive to create impactful solutions. I am eager to contribute my expertise in **[mention a specific skill or area of expertise]** to your dynamic environment and help **[Company Name]** continue to achieve its ambitious goals.

Thank you for considering my application. I have attached my resume for your review and welcome the opportunity to discuss how my qualifications and enthusiasm can benefit **[Company Name]** in an interview.

Sincerely,
[Your Typed Name]
Sandboxed live preview

Professional Resume Builder - Step 1 of 2: Generate Your Tailored Resume

Welcome to the first step of building your professional resume! This stage, resume → generate_resume, focuses on creating a comprehensive, highly tailored resume designed to significantly enhance your chances of landing your target job. Our goal is to transform your experience, skills, and achievements into a compelling document that stands out to hiring managers and Applicant Tracking Systems (ATS).


1. Understanding the Goal of Step 1: Tailored Resume Generation

The objective of this step is to produce a first draft of your professional resume, specifically customized for a particular job or type of role. This isn't just a generic resume; it's a strategic document built with your career aspirations and the specific requirements of your target opportunities in mind.

Key Deliverables from this Step:

  • A professionally formatted resume draft.
  • Content optimized for relevance to your target job.
  • Inclusion of key achievements and quantifiable results.
  • Keywords strategically integrated for ATS compatibility.

2. Essential Information Required to Build Your Resume

To generate a truly effective and tailored resume, we need your detailed input. Please provide the following information as comprehensively as possible. The more detail you provide, the better we can customize your resume.

A. Target Job Description (CRITICAL)

  • Provide the full job description(s) for the specific role(s) you are applying for. This is the single most important piece of information, as it allows us to align your experience and skills directly with the employer's needs and keywords. If you have multiple target roles, please specify your primary target or provide multiple descriptions.

B. Contact Information

  • Full Name:
  • Phone Number:
  • Email Address:
  • LinkedIn Profile URL: (Highly Recommended)
  • Portfolio/Personal Website URL: (If applicable)
  • City, State: (e.g., "New York, NY" - full address is generally not needed for privacy and space)

C. Professional Summary / Objective (Optional, but Recommended)

  • A brief (2-4 sentences) overview of your career goals, key qualifications, and what you bring to a role. If you have a specific summary in mind, please provide it. Otherwise, we can draft one based on your experience and target job.

D. Work Experience

  • For each relevant position (starting with the most recent), please provide:

* Job Title:

* Company Name:

* City, State:

* Employment Dates: (Start Month/Year - End Month/Year, or "Present")

Key Responsibilities and Achievements: Use bullet points. Focus on accomplishments* over duties. Quantify results whenever possible (e.g., "Increased sales by 15%", "Managed a team of 5", "Reduced project time by 20%"). Use strong action verbs.

E. Education

  • For each degree or relevant certification:

* Degree/Program Name: (e.g., "Master of Business Administration", "B.S. in Computer Science")

* Major/Minor: (If applicable)

* University/Institution Name:

* City, State:

* Graduation Date: (Month/Year or "Expected Month/Year")

* GPA: (Optional, if 3.5 or higher)

* Relevant Coursework/Projects: (Optional, especially for recent graduates)

F. Skills

  • Technical Skills: (e.g., Programming Languages: Python, Java; Software: Adobe Creative Suite, Salesforce; Databases: SQL, MongoDB; Operating Systems: Linux, Windows)
  • Soft Skills: (e.g., Communication, Leadership, Problem-Solving, Teamwork, Adaptability)
  • Languages: (e.g., English - Native, Spanish - Fluent, French - Conversational)
  • Tools & Technologies: (Specific tools or platforms you are proficient with)

G. Additional Sections (Optional, but can strengthen your application)

  • Certifications & Licenses: (e.g., PMP, AWS Certified Solutions Architect)
  • Awards & Honors: (Academic or professional recognitions)
  • Projects: (Personal or professional projects, especially relevant for tech roles. Include project name, brief description, and your role/contributions.)
  • Volunteer Experience: (Relevant experiences that showcase skills)
  • Publications/Presentations: (If applicable to your field)

3. Our Approach to Crafting Your Professional Resume

Once we receive your information, we will employ a strategic approach to build your resume:

  • Keyword Optimization: We analyze your target job description to identify critical keywords and phrases, integrating them naturally into your resume to ensure ATS compatibility and relevance.
  • Achievement-Oriented Content: We transform your responsibilities into impactful achievements, using the STAR method (Situation, Task, Action, Result) where appropriate, and quantifying your contributions whenever possible.
  • Strong Action Verbs: We utilize a powerful vocabulary to describe your experience, making each bullet point compelling and dynamic.
  • Professional Formatting: We apply a clean, modern, and easy-to-read layout that is both visually appealing and highly scannable by recruiters and ATS.
  • Conciseness and Clarity: We ensure your resume is concise, impactful, and free of jargon, delivering your value proposition effectively within optimal length guidelines.

4. What You Will Receive: Your Tailored Resume Draft

Upon completion of this step, you will receive:

  • A first draft of your professional resume in a standard format (e.g., PDF and/or editable Word document).
  • The resume will include sections like: Contact Information, Professional Summary, Work Experience, Education, Skills, and any other relevant optional sections you provided.
  • It will be specifically tailored to the target job description you provided, highlighting your most relevant qualifications.

5. Action Required: Provide Your Details

To proceed with generating your tailored resume, please provide all the requested information from Section 2 above. You can provide it in a structured text format or upload existing documents (e.g., an old resume, a detailed work history document) if that's easier, but please ensure the target job description is clearly provided.

Please submit your information now to initiate the resume generation process.


6. What's Next? (Step 2 Preview)

Once your tailored resume draft is generated, we will move to Step 2: Review and Refine Your Resume. This next stage will allow you to:

  • Review the generated resume for accuracy and completeness.
  • Provide feedback for any adjustments, additions, or modifications.
  • Collaborate with us to fine-tune the document until it perfectly represents your professional brand and career goals.
  • Potentially explore options for a matching cover letter or LinkedIn profile optimization.

Next Steps & Actionable Advice

To generate a truly customized cover letter for your specific target job, please provide the following details:

  1. Target Job Title: (e.g., "Senior Product Manager")
  2. Company Name: (e.g., "Innovate Solutions Inc.")
  3. Hiring Manager's Name (if known): (e.g., "Ms. Sarah Chen")
  4. Where you found the job posting: (e.g., "LinkedIn," "Company Website," "Referral from [Name]")
  5. Key requirements/skills from the job description (3-5 bullet points):

* Example: "5+ years experience in SaaS product management"

* Example: "Strong analytical and problem-solving skills"

* Example: "Experience with Agile methodologies"

  1. Your top 2-3 most relevant achievements/experiences that directly address those requirements (with quantifiable results if possible):

* Example: "Launched 3 successful SaaS products, increasing revenue by 25%."

* Example: "Led a cross-functional team of 10, reducing project delivery time by 15%."

  1. Something specific about the company that appeals to you: (e.g., "their focus on sustainable technology," "their groundbreaking AI research," "their company culture of collaboration")

Once you provide these details, I can generate a fully personalized and highly effective cover letter for your application.

professional_resume_builder.txt
Download source file
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);}});}