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

Professional Cover Letter Generation

This step delivers a comprehensive, professional cover letter template designed to complement your resume and effectively communicate your value to potential employers. While a fully generated cover letter requires specific details about your target job and personal achievements, this output provides a robust framework and detailed guidance for you to tailor it perfectly.


Understanding the Purpose of a Cover Letter

A cover letter is your opportunity to introduce yourself, express your specific interest in a role, and highlight how your unique skills and experiences align with the employer's needs. It's not merely a summary of your resume but a compelling narrative that showcases your personality, enthusiasm, and understanding of the company and position.

Key Objectives:


Professional Cover Letter Template

Below is a detailed template for a professional cover letter. Please replace all bracketed [PLACEHOLDER] text with your specific information.

text • 2,424 chars
[Your Full Name]
[Your Street Address]
[Your City, State, Zip Code]
[Your Phone Number]
[Your Email Address]
[Your LinkedIn Profile URL (Optional)]

[Date]

[Hiring Manager Name (if known, otherwise use title)]
[Hiring Manager Title]
[Company Name]
[Company Street Address]
[Company City, State, Zip Code]

Dear [Mr./Ms./Mx. Last Name of Hiring Manager, or "Hiring Team" / "Hiring Manager" if name is unknown],

I am writing to express my enthusiastic interest in the **[Specific Job Title]** position at **[Company Name]**, as advertised on [Platform where you saw the advertisement, e.g., LinkedIn, Company Website, Indeed]. With my [Number] years of experience in [Your Primary Field/Industry] and a proven track record in [Key Skill 1] and [Key Skill 2], I am confident that my skills and passion align perfectly with the requirements of this role and your company's mission.

In my previous role as [Your Previous Job Title] at [Previous Company Name], I was responsible for [Briefly describe 1-2 key responsibilities relevant to the target job]. A significant achievement included [Quantifiable Achievement 1, e.g., "streamlining processes that led to a 15% increase in efficiency"]. I also successfully [Quantifiable Achievement 2, e.g., "managed projects from conception to completion, consistently delivering results 10% ahead of schedule and under budget"]. My expertise in [Specific Skill/Software/Methodology relevant to the job description] would allow me to immediately contribute to your team at [Company Name].

What particularly draws me to [Company Name] is [Mention something specific about the company – its mission, values, recent project, innovation, culture, or reputation]. I am especially impressed by [Specific detail about the company that resonates with you or the role]. I am eager to leverage my [Relevant Skill/Trait, e.g., "problem-solving abilities," "leadership skills," "technical proficiency"] to contribute to your [Specific Team/Department or overall company goal] and help achieve [Company Name]'s objectives.

Thank you for considering my application. I have attached my resume for your review, which provides further detail on my qualifications and accomplishments. I am very eager to learn more about this opportunity and discuss how my background and enthusiasm can benefit [Company Name]. I am available for an interview at your earliest convenience.

Sincerely,
[Your Full Name]
Sandboxed live preview

This output represents the initial draft of your professional resume, generated based on best practices for clarity, impact, and Applicant Tracking System (ATS) compatibility. This template is designed to be highly customizable.


Your Tailored Professional Resume Draft

Please Note: This resume draft uses placeholder information to demonstrate structure, content style, and best practices. You will need to replace all bracketed [ ] information with your specific details, experiences, and achievements.


[Your Full Name]

[Your Phone Number] | [Your Email Address] | [Your LinkedIn Profile URL] | [Your Professional Portfolio URL (Optional)] | [Your City, State]


Professional Summary

Highly results-driven and innovative [Your Primary Role/Profession, e.g., Senior Marketing Manager] with [Number] years of progressive experience in [Key Industry/Field, e.g., digital marketing, brand strategy, campaign management]. Proven ability to [Key Skill 1, e.g., develop and execute comprehensive marketing strategies] that drive [Key Outcome 1, e.g., revenue growth and market share expansion]. Expert in [Key Skill 2, e.g., leveraging data analytics to optimize performance] and leading cross-functional teams to achieve ambitious targets. Seeking to apply strategic vision and hands-on expertise to [Type of Role/Company Goal, e.g., drive impactful marketing initiatives for a forward-thinking organization].


Skills

Marketing & Strategy: Digital Marketing, Content Strategy, SEO/SEM, Social Media Marketing, Email Marketing, Brand Management, Product Marketing, Market Research, Campaign Management, Lead Generation, CRM, Marketing Automation, Public Relations

Data & Analytics: Google Analytics, Adobe Analytics, A/B Testing, Data Visualization, Performance Reporting, ROI Analysis, Predictive Analytics

Tools & Platforms: HubSpot, Salesforce, Mailchimp, WordPress, Asana, Trello, Microsoft Office Suite (Excel, PowerPoint, Word), Adobe Creative Suite (Basic)

Leadership & Soft Skills: Strategic Planning, Team Leadership, Project Management, Cross-functional Collaboration, Communication, Problem-Solving, Budget Management, Vendor Management, Mentorship


Work Experience

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

[Month, Year] – Present

  • [Action Verb] [Specific achievement/responsibility using quantifiable metrics and impact]. Example: Developed and executed a comprehensive digital marketing strategy that increased qualified leads by 35% and boosted conversion rates by 15% within the first year.
  • [Action Verb] [Specific achievement/responsibility using quantifiable metrics and impact]. Example: Managed a marketing budget of over $500,000, consistently achieving campaigns below budget while exceeding ROI targets by an average of 20%.
  • [Action Verb] [Specific achievement/responsibility, highlighting a key skill or project]. Example: Led a team of 5 marketing specialists, providing mentorship and performance reviews, resulting in a 25% improvement in team productivity and engagement scores.
  • [Action Verb] [Specific achievement/responsibility, demonstrating problem-solving or innovation]. Example: Implemented a new SEO strategy for the company website, driving a 40% increase in organic traffic and securing top-5 rankings for 10 high-value keywords.

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

[Month, Year] – [Month, Year]

  • [Action Verb] [Specific achievement/responsibility using quantifiable metrics and impact]. Example: Orchestrated multi-channel marketing campaigns across social media, email, and paid ads, contributing to a 10% year-over-year revenue growth.
  • [Action Verb] [Specific achievement/responsibility, highlighting collaboration or project management]. Example: Collaborated with product development to launch 3 new products, managing all marketing aspects from market research to post-launch analysis.
  • [Action Verb] [Specific achievement/responsibility, demonstrating analytical skills]. Example: Analyzed campaign performance data to identify trends and make data-driven recommendations, improving campaign efficiency by 18%.

[Your Earlier Job Title (if applicable)] | [Company Name], [City, State]

[Month, Year] – [Month, Year]

  • [Action Verb] [Specific achievement/responsibility]. Example: Assisted in the creation of marketing collateral, including brochures, presentations, and website content, ensuring brand consistency.
  • [Action Verb] [Specific achievement/responsibility]. Example: Managed social media accounts, increasing follower engagement by 20% through targeted content and community management.

Education

[Your Degree Name, e.g., Master of Business Administration (MBA)] | [University Name], [City, State]

[Year of Graduation] | [Relevant coursework, honors, or thesis title (Optional)]

[Your Degree Name, e.g., Bachelor of Science in Marketing] | [University Name], [City, State]

[Year of Graduation] | [Relevant coursework, honors, or minor (Optional)]


Certifications & Awards (Optional)

  • [Certification Name], [Issuing Body], [Year] Example: Google Ads Certification, Google, 2023
  • [Award Name], [Issuing Body], [Year] Example: Employee of the Quarter, [Company Name], Q3 2022
  • [Other Relevant Professional Development] Example: HubSpot Content Marketing Certification, HubSpot Academy, 2023

How to Customize Your Resume

To make this resume truly effective, follow these critical steps:

  1. Replace All Bracketed Information: Go through every section and replace [ ] placeholders with your actual, specific details.
  2. Tailor to Each Job Application:

* Analyze the Job Description: Read the job posting carefully. Identify keywords, required skills, and key responsibilities.

* Customize Your Summary: Rephrase your Professional Summary to directly address the specific requirements and desired qualities mentioned in the job description.

* Integrate Keywords: Weave in keywords from the job description naturally throughout your skills and experience sections. This is crucial for passing Applicant Tracking Systems (ATS).

* Prioritize Experience: Adjust the bullet points under your work experience to highlight achievements most relevant to the target job. If a job emphasizes project management, ensure your project management achievements are prominent.

  1. Quantify Your Achievements: For every bullet point in your "Work Experience" section, strive to include numbers, percentages, or specific results. Instead of "Managed social media," write "Managed social media, increasing engagement by 20% and growing followers by 15,000 in 6 months."
  2. Use Strong Action Verbs: Start each bullet point with a powerful action verb (e.g., Developed, Led, Managed, Optimized, Implemented, Generated, Analyzed).
  3. Review and Proofread: Carefully check for any typos, grammatical errors, or inconsistencies. A fresh pair of eyes can be helpful.
  4. Save as PDF: Always submit your resume as a PDF file unless otherwise specified, to preserve formatting.

This comprehensive draft provides a strong foundation. By meticulously filling in your details and tailoring it for each application, you will significantly increase your chances of securing interviews.


Guidance for Customization and Tailoring

The power of a cover letter lies in its ability to be highly personalized. Follow these steps to tailor your letter effectively for each application:

  1. Research the Company and Role Thoroughly:

* Company Website: Understand their mission, values, recent news, projects, and culture.

* Job Description: Identify keywords, required skills, responsibilities, and desired qualifications. Pay close attention to what they emphasize.

* LinkedIn: Look up the company, the hiring manager (if known), and potential team members to gain insights.

  1. Identify Key Alignment Points:

* Match Skills: For every skill listed in the job description, think of a specific example from your experience where you demonstrated that skill.

* Match Achievements: Connect your past accomplishments directly to the potential needs or challenges of the target role.

* Match Values: If the company emphasizes specific values (e.g., innovation, teamwork, customer focus), think of how your experiences reflect those values.

  1. Craft a Compelling Opening (Paragraph 1):

* Clearly state the position you're applying for and where you saw it.

* Briefly mention 1-2 top qualifications or achievements that make you a strong candidate, immediately capturing the reader's interest.

* Express genuine enthusiasm for the specific company and role.

  1. Develop Strong Body Paragraphs (Paragraph 2-3):

* Show, Don't Just Tell: Instead of saying "I am a good leader," describe a situation where you led a team to success.

* Quantify Your Achievements: Whenever possible, use numbers, percentages, and metrics to demonstrate the impact of your work (e.g., "increased sales by 20%," "reduced costs by $10,000," "managed a team of 5").

* Use Keywords: Incorporate relevant keywords and phrases from the job description naturally throughout your letter. This helps with Applicant Tracking Systems (ATS) and shows you've read the description carefully.

Focus on the Employer's Needs: Explain how your skills and experiences will benefit their* company, not just what you've done.

  1. Write a Strong Closing (Paragraph 4):

* Reiterate your interest and enthusiasm.

* Express confidence in your fit for the role.

* Include a clear call to action (e.g., "I welcome the opportunity to discuss my qualifications further in an interview").

* Thank them for their time and consideration.

  1. Maintain Professional Tone and Formatting:

* Use a formal and respectful tone.

* Keep it concise, ideally one page.

* Use a professional font (e.g., Calibri, Arial, Times New Roman) that matches your resume.

* Ensure consistent formatting, spacing, and alignment.


Tips for Success

  • Proofread Meticulously: Typos and grammatical errors can be deal-breakers. Read your letter aloud, use grammar checkers, and ask someone else to review it.
  • Address it to a Specific Person: If you can find the hiring manager's name, use it. A personalized greeting is always better than a generic one. Use LinkedIn or the company website to find this information.
  • Be Authentic: While professional, let your genuine interest and personality shine through.
  • Save as PDF: Always submit your cover letter as a PDF unless explicitly requested otherwise. This preserves formatting.
  • Don't Repeat Your Resume Verbatim: The cover letter expands on your resume, providing context and narrative, not just bullet points.

Next Steps

  1. Select a Target Job: Identify a specific job opening that aligns with your career goals and skills.
  2. Gather Information: Research the company and carefully read the job description.
  3. Customize Your Cover Letter: Use the template and guidance above to tailor every section of your cover letter to that specific job.
  4. Review and Refine: Proofread thoroughly and ensure it flows well and effectively communicates your value.
  5. Submit with Your Resume: Attach your personalized cover letter along with your resume when applying for the position.
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);}});}