Professional Resume Builder
Run ID: 69cd1e5b3e7fb09ff16a81062026-04-01Career
PantheraHive BOS
BOS Dashboard

Step 2 of 2: Generate Tailored Cover Letter

This step focuses on generating a professional cover letter that complements your resume and targets your desired job. A well-crafted cover letter is crucial for making a strong first impression, demonstrating your enthusiasm, and highlighting how your unique skills and experiences align with the specific requirements of the role and the values of the company.

Understanding the Importance of a Tailored Cover Letter

While your resume provides a factual overview of your career, a cover letter offers an opportunity to:

Information Required for a Fully Tailored Cover Letter

To generate a truly specific and impactful cover letter, we require the following details, which were not provided in the initial prompt:

  1. Target Job Title: The exact title of the position you are applying for.
  2. Company Name: The name of the organization you are applying to.
  3. Hiring Manager's Name (if known): Addressing the letter to a specific person is highly recommended. If unknown, "Hiring Manager" or "Recruiting Team" is acceptable.
  4. Key Requirements from the Job Description: Specific skills, qualifications, and experiences the employer is looking for.
  5. Your Resume Content (or key highlights): Essential to pull out relevant experiences and achievements to weave into the letter.

Since these details were not provided, we will provide a robust, professional template and comprehensive guidelines for you to customize it effectively. If you provide the above information, we can generate a fully personalized cover letter for you.


Professional Cover Letter Template

Below is a detailed template designed for maximum impact. Remember to replace all bracketed [ ] information with your specific details.

text • 2,988 chars
[Your Name]
[Your Address]
[Your Phone Number]
[Your Email Address]
[Your LinkedIn Profile URL (Optional)]

[Date]

[Hiring Manager Name (if known), or "Hiring Manager" or "Recruiting Team"]
[Hiring Manager Title (if known)]
[Company Name]
[Company Address]

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

**Paragraph 1: Introduction – Hook and Intent**
I am writing to express my enthusiastic interest in the **[Target Job Title]** position at **[Company Name]**, as advertised on **[Platform where you saw the advertisement, e.g., LinkedIn, company website, indeed.com]**. With my **[Number]** years of experience in **[Your relevant field/industry]** and a proven track record in **[1-2 key skills or achievements relevant to the role]**, I am confident that my skills and passion align perfectly with the requirements of this role and the innovative spirit of your team.

**Paragraph 2: Body – Highlight Key Skills & Experiences (Connect to Job Description)**
My professional background has equipped me with a strong foundation in **[mention a key skill from the job description, e.g., project management, data analysis, client relations]**. In my previous role as **[Your Previous Job Title]** at **[Previous Company Name]**, I was responsible for **[briefly describe 1-2 core responsibilities]**. For example, I successfully **[Quantifiable achievement 1, e.g., "streamlined the client onboarding process, reducing completion time by 20%"]**, which directly contributed to **[positive outcome]**. I am particularly adept at **[mention another key skill]** and have a strong understanding of **[relevant technology, methodology, or industry trend]**.

**Paragraph 3: Body – Showcase Value Proposition & Company Fit**
I am particularly drawn to **[Company Name]**'s commitment to **[mention a specific company value, project, or mission statement from their website/news]**. My approach to **[mention a work philosophy, e.g., problem-solving, collaboration, continuous improvement]** resonates deeply with your company's emphasis on **[relate back to company value]**. I am eager to leverage my expertise in **[specific skill/area]** to contribute to **[Company Name]'s** ongoing success, particularly in **[mention a specific area where you can contribute, e.g., expanding market reach, improving operational efficiency, developing innovative solutions]**. I am a proactive and adaptable professional who thrives in dynamic environments and is committed to delivering exceptional results.

**Paragraph 4: Conclusion – Reiterate Interest and Call to Action**
Thank you for considering my application. My attached resume provides further details on my qualifications and accomplishments. I am very enthusiastic about the opportunity to discuss how my skills and experience can benefit **[Company Name]** and am available for an interview at your earliest convenience. I look forward to hearing from you soon.

Sincerely,

[Your Typed Name]
Sandboxed live preview

Workflow Step: Generate Tailored Resume (Step 1 of 2)

Objective

The objective of this step is to initiate the creation of a highly tailored professional resume designed to maximize your chances of securing your target job. A custom-built resume significantly outperforms generic applications by directly addressing the specific requirements and keywords found in job descriptions.

Current Status: Information Gathering & Blueprinting

At this stage, we are preparing to build your resume. To ensure the highest quality and most effective resume, we require specific details about your professional background and, critically, the target job you are applying for. Without this information, we cannot generate a truly tailored document that reflects your unique qualifications and the employer's needs.

Action Required: Provide Your Details and Target Job Information

To proceed with generating your personalized resume, please provide the following comprehensive information. The more detail you provide, the more effective and impactful your resume will be.

1. Your Personal & Contact Information

  • Full Name:
  • Phone Number:
  • Email Address:
  • LinkedIn Profile URL (if applicable):
  • Professional Portfolio/Website URL (if applicable, e.g., for designers, developers):
  • City, State (and Country, if applying internationally): (e.g., San Francisco, CA)

2. Your Target Job Information

This is the most critical piece of information for tailoring your resume.

  • Specific Job Title you are applying for: (e.g., "Senior Product Manager," "Marketing Specialist," "Software Engineer")
  • Company Name (if known):
  • Full Job Description: Please provide the complete text or a link to the job posting. This allows us to extract keywords, required skills, and responsibilities to align your experience perfectly.
  • Key Responsibilities/Skills you want to highlight: Are there specific aspects of the job description you feel particularly strong about or want to emphasize?

3. Your Professional Experience (Detailed)

For each relevant position, please provide:

  • Job Title:
  • Company Name:
  • Location: (City, State)
  • Employment Dates: (Month Year - Month Year, or "Present")
  • Key Responsibilities: List your primary duties.
  • Quantifiable Achievements: This is crucial. For each role, describe 3-5 accomplishments using the STAR method (Situation, Task, Action, Result) where possible, focusing on measurable outcomes.

Example:* "Increased sales by 15% ($500K) in Q3 2023 by implementing a new customer engagement strategy."

Example:* "Led a team of 5 engineers to successfully launch Project X on time and 10% under budget."

  • Technologies/Tools Used: (e.g., Salesforce, Python, Adobe Creative Suite, SQL, Jira)

4. Your Education (Detailed)

For each degree or relevant certification:

  • Degree/Certification Name: (e.g., "Master of Business Administration (MBA)," "B.S. in Computer Science," "PMP Certification")
  • Major/Field of Study:
  • University/Institution Name:
  • Location: (City, State)
  • Graduation Date: (Month Year, or "Expected Month Year")
  • GPA (if 3.5 or higher and recent graduate):
  • Relevant Coursework/Projects (optional, especially for recent grads):
  • Honors/Awards (if applicable):

5. Your Skills

  • Technical Skills: (e.g., Programming Languages, Software, Databases, Operating Systems, Cloud Platforms, Analytical Tools)
  • Soft Skills: (e.g., Communication, Leadership, Problem-Solving, Teamwork, Adaptability, Project Management)
  • Languages: (e.g., English - Native, Spanish - Fluent, French - Conversational)

6. Additional Sections (Optional but Recommended)

  • Awards & Recognition: (e.g., "Employee of the Year 2022," "Patent Awarded")
  • Projects: (Personal or professional projects, especially relevant for tech roles, with links if available)
  • Volunteer Experience: (Role, Organization, Dates, Key Contributions)
  • Publications/Presentations:
  • Conferences Attended/Presented At:
  • Professional Memberships:

What Happens Next (Step 2 of 2)

Once we receive the above information, we will proceed to Step 2: "Generate Tailored Resume Draft."

In Step 2, we will:

  1. Analyze the Target Job Description: Identify key responsibilities, required skills, and keywords.
  2. Select Best-Fit Format: Choose a resume format (chronological, functional, hybrid) that best highlights your strengths for the target role.
  3. Craft a Compelling Professional Summary/Objective: Tailored to the job and showcasing your value proposition.
  4. Optimize Experience Section: Rephrase bullet points to emphasize achievements relevant to the target job, incorporating keywords.
  5. Curate Skills Section: Highlight skills explicitly mentioned in the job description and relevant to the industry.
  6. Review and Refine: Ensure clarity, conciseness, and professional presentation, adhering to industry best practices.

Example Resume Structure (for your reference)

While we will customize the content, a typical professional resume will follow this general structure:


[Your Full Name]

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

[Optional: Portfolio/Website URL]


PROFESSIONAL SUMMARY / OBJECTIVE

  • A concise 3-4 sentence paragraph highlighting your most relevant qualifications, experience, and career goals, specifically tailored to the target job.
  • Example: "Highly accomplished [Your Profession] with X years of experience in [Key Industry/Area], seeking to leverage proven expertise in [Skill 1] and [Skill 2] to drive success as a [Target Job Title] at [Target Company Name]."

SKILLS

  • Technical: [List relevant software, languages, tools, platforms, etc.]
  • Soft Skills: [List relevant communication, leadership, problem-solving, teamwork skills, etc.]
  • Languages: [List languages and proficiency]

PROFESSIONAL EXPERIENCE

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

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

  • Action Verb + Quantifiable Achievement + Impact. Example: "Led a cross-functional team of 5 to develop and launch new product feature, resulting in a 20% increase in user engagement."
  • Action Verb + Key Responsibility + Result. Example: "Managed client portfolios exceeding $X million, consistently achieving a 95% client retention rate."
  • [Continue with 3-5 bullet points per role, focusing on achievements and relevance]

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

[Month Year] – [Month Year]

  • [3-5 tailored bullet points]

EDUCATION

[Degree Name] | [Major/Field of Study]

[University/Institution Name], [City, State]

[Graduation Month Year]

  • [Optional: Relevant Coursework, Honors, GPA (if applicable)]

[Optional Sections: Projects, Awards, Volunteer Experience, Certifications, Publications]


We look forward to receiving your detailed information to begin building your impactful resume!


Guidelines for Customizing Your Cover Letter

Follow these steps to transform the template into a compelling, personalized cover letter:

  1. Research the Company and Role Thoroughly:

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

* Job Description: Identify keywords, essential duties, required skills, and preferred qualifications.

* LinkedIn: Look up employees in similar roles to understand typical backgrounds.

* News Articles: Stay updated on recent company achievements or industry news.

  1. Personalize the Salutation:

* Always try to find the hiring manager's name (e.g., through LinkedIn, company website, or a quick call to the reception). Addressing it to a specific person shows initiative.

* If you can't find a name, use "Dear Hiring Manager" or "Dear Recruiting Team." Avoid "To Whom It May Concern."

  1. Craft a Strong Opening Paragraph:

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

Briefly mention 1-2 of your most relevant qualifications or achievements that immediately grab attention and align with the job's core requirements. Show enthusiasm for this specific role and company*.

  1. Develop Impactful Body Paragraphs:

* Paragraph 2 (Skills & Experience):

* Directly address job requirements: For each key requirement in the job description, think of a specific example from your past experience where you demonstrated that skill.

* Quantify achievements: Use numbers, percentages, and metrics whenever possible to illustrate the impact of your work (e.g., "increased sales by 15%", "managed a budget of $500K", "reduced project delays by 25%").

* Use action verbs: Start sentences with strong verbs (e.g., developed, managed, implemented, analyzed, led, optimized).

* Paragraph 3 (Value Proposition & Company Fit):

Show your research: Connect your values and professional goals to the company's mission, culture, or recent initiatives. Explain why you want to work for them*.

* Explain your "why": Articulate how your unique contributions will benefit the company, not just how the job benefits you.

  1. Write a Concise Closing Paragraph:

* Reiterate your strong interest and enthusiasm.

* Briefly mention your attached resume.

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

* Thank the reader for their time and consideration.

  1. Proofread Meticulously:

* Check for any typos, grammatical errors, or formatting inconsistencies.

* Read it aloud to catch awkward phrasing.

* Ask a trusted friend or colleague to review it. Even small errors can make a negative impression.

* Ensure all names (yours, the company's, the manager's) are spelled correctly.

  1. Maintain Professional Formatting:

* Use a clean, professional font (e.g., Arial, Calibri, Times New Roman) between 10-12 points.

* Keep it to one page.

* Use standard business letter format.

* Match the style and font of your resume for consistency.


Best Practices for a Winning Cover Letter

  • Be Concise: Aim for one page, three to four paragraphs max. Hiring managers often skim.
  • Be Specific: Avoid generic statements. Provide concrete examples and data.
  • Show, Don't Just Tell: Instead of saying "I am a strong leader," describe a situation where you led a team to success.
  • Match Keywords: Integrate keywords from the job description naturally into your letter. This helps with Applicant Tracking Systems (ATS).
  • Maintain a Professional Tone: Be confident, enthusiastic, and respectful.
  • Customize for Every Application: Never send the same cover letter to different jobs. Each letter should be uniquely tailored.
  • Save as a PDF: Unless otherwise specified, always submit your cover letter (and resume) as a PDF to preserve formatting.

Next Steps

To receive a fully personalized and tailored cover letter from us, please provide the following details:

  1. The specific job title you are applying for.
  2. The name of the company.
  3. A link to the job description (or copy and paste the key requirements).
  4. Your current resume (or a summary of your key skills, experiences, and achievements).

Once we have this information, we will generate a customized cover letter that maximizes your chances of securing an interview.

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
"); 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' import ReactDOM from 'react-dom/client' import App from './App' import './index.css' ReactDOM.createRoot(document.getElementById('root')!).render( ) "); 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' import './App.css' function App(){ return(

"+slugTitle(pn)+"

Built with PantheraHive BOS

) } export default App "); zip.file(folder+"src/index.css","*{margin:0;padding:0;box-sizing:border-box} body{font-family:system-ui,-apple-system,sans-serif;background:#f0f2f5;color:#1a1a2e} .app{min-height:100vh;display:flex;flex-direction:column} .app-header{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:40px} h1{font-size:2.5rem;font-weight:700} "); 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)+" Generated by PantheraHive BOS. ## Setup ```bash npm install npm run dev ``` ## Build ```bash npm run build ``` ## Open in IDE Open the project folder in VS Code or WebStorm. "); zip.file(folder+".gitignore","node_modules/ dist/ .env .DS_Store *.local "); } /* --- 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",'{ "name": "'+pn+'", "version": "0.0.0", "type": "module", "scripts": { "dev": "vite", "build": "vue-tsc -b && vite build", "preview": "vite preview" }, "dependencies": { "vue": "^3.5.13", "vue-router": "^4.4.5", "pinia": "^2.3.0", "axios": "^1.7.9" }, "devDependencies": { "@vitejs/plugin-vue": "^5.2.1", "typescript": "~5.7.3", "vite": "^6.0.5", "vue-tsc": "^2.2.0" } } '); zip.file(folder+"vite.config.ts","import { defineConfig } from 'vite' import vue from '@vitejs/plugin-vue' import { resolve } from 'path' export default defineConfig({ plugins: [vue()], resolve: { alias: { '@': resolve(__dirname,'src') } } }) "); zip.file(folder+"tsconfig.json",'{"files":[],"references":[{"path":"./tsconfig.app.json"},{"path":"./tsconfig.node.json"}]} '); zip.file(folder+"tsconfig.app.json",'{ "compilerOptions":{ "target":"ES2020","useDefineForClassFields":true,"module":"ESNext","lib":["ES2020","DOM","DOM.Iterable"], "skipLibCheck":true,"moduleResolution":"bundler","allowImportingTsExtensions":true, "isolatedModules":true,"moduleDetection":"force","noEmit":true,"jsxImportSource":"vue", "strict":true,"paths":{"@/*":["./src/*"]} }, "include":["src/**/*.ts","src/**/*.d.ts","src/**/*.tsx","src/**/*.vue"] } '); zip.file(folder+"env.d.ts","/// "); zip.file(folder+"index.html"," "+slugTitle(pn)+"
"); 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' import { createPinia } from 'pinia' import App from './App.vue' import './assets/main.css' const app = createApp(App) app.use(createPinia()) app.mount('#app') "); var hasApp=Object.keys(extracted).some(function(k){return k.indexOf("App.vue")>=0;}); if(!hasApp) zip.file(folder+"src/App.vue"," "); 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} "); 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)+" Generated by PantheraHive BOS. ## Setup ```bash npm install npm run dev ``` ## Build ```bash npm run build ``` Open in VS Code or WebStorm. "); zip.file(folder+".gitignore","node_modules/ dist/ .env .DS_Store *.local "); } /* --- 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",'{ "name": "'+pn+'", "version": "0.0.0", "scripts": { "ng": "ng", "start": "ng serve", "build": "ng build", "test": "ng test" }, "dependencies": { "@angular/animations": "^19.0.0", "@angular/common": "^19.0.0", "@angular/compiler": "^19.0.0", "@angular/core": "^19.0.0", "@angular/forms": "^19.0.0", "@angular/platform-browser": "^19.0.0", "@angular/platform-browser-dynamic": "^19.0.0", "@angular/router": "^19.0.0", "rxjs": "~7.8.0", "tslib": "^2.3.0", "zone.js": "~0.15.0" }, "devDependencies": { "@angular-devkit/build-angular": "^19.0.0", "@angular/cli": "^19.0.0", "@angular/compiler-cli": "^19.0.0", "typescript": "~5.6.0" } } '); zip.file(folder+"angular.json",'{ "$schema": "./node_modules/@angular/cli/lib/config/schema.json", "version": 1, "newProjectRoot": "projects", "projects": { "'+pn+'": { "projectType": "application", "root": "", "sourceRoot": "src", "prefix": "app", "architect": { "build": { "builder": "@angular-devkit/build-angular:application", "options": { "outputPath": "dist/'+pn+'", "index": "src/index.html", "browser": "src/main.ts", "tsConfig": "tsconfig.app.json", "styles": ["src/styles.css"], "scripts": [] } }, "serve": {"builder":"@angular-devkit/build-angular:dev-server","configurations":{"production":{"buildTarget":"'+pn+':build:production"},"development":{"buildTarget":"'+pn+':build:development"}},"defaultConfiguration":"development"} } } } } '); zip.file(folder+"tsconfig.json",'{ "compileOnSave": false, "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"]}, "references":[{"path":"./tsconfig.app.json"}] } '); zip.file(folder+"tsconfig.app.json",'{ "extends":"./tsconfig.json", "compilerOptions":{"outDir":"./dist/out-tsc","types":[]}, "files":["src/main.ts"], "include":["src/**/*.d.ts"] } '); zip.file(folder+"src/index.html"," "+slugTitle(pn)+" "); zip.file(folder+"src/main.ts","import { bootstrapApplication } from '@angular/platform-browser'; import { appConfig } from './app/app.config'; import { AppComponent } from './app/app.component'; bootstrapApplication(AppComponent, appConfig) .catch(err => console.error(err)); "); zip.file(folder+"src/styles.css","* { margin: 0; padding: 0; box-sizing: border-box; } body { font-family: system-ui, -apple-system, sans-serif; background: #f9fafb; color: #111827; } "); 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'; import { RouterOutlet } from '@angular/router'; @Component({ selector: 'app-root', standalone: true, imports: [RouterOutlet], templateUrl: './app.component.html', styleUrl: './app.component.css' }) export class AppComponent { title = '"+pn+"'; } "); zip.file(folder+"src/app/app.component.html","

"+slugTitle(pn)+"

Built with PantheraHive BOS

"); 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} "); } zip.file(folder+"src/app/app.config.ts","import { ApplicationConfig, provideZoneChangeDetection } from '@angular/core'; import { provideRouter } from '@angular/router'; import { routes } from './app.routes'; export const appConfig: ApplicationConfig = { providers: [ provideZoneChangeDetection({ eventCoalescing: true }), provideRouter(routes) ] }; "); zip.file(folder+"src/app/app.routes.ts","import { Routes } from '@angular/router'; export const routes: Routes = []; "); 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)+" Generated by PantheraHive BOS. ## Setup ```bash npm install ng serve # or: npm start ``` ## Build ```bash ng build ``` Open in VS Code with Angular Language Service extension. "); zip.file(folder+".gitignore","node_modules/ dist/ .env .DS_Store *.local .angular/ "); } /* --- Python --- */ function buildPython(zip,folder,app,code){ var title=slugTitle(app); var pn=pkgName(app); var src=code.replace(/^```[w]* ?/m,"").replace(/ ?```$/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(" "):"# add dependencies here "; zip.file(folder+"main.py",src||"# "+title+" # Generated by PantheraHive BOS print(title+" loaded") "); zip.file(folder+"requirements.txt",reqsTxt); zip.file(folder+".env.example","# Environment variables "); zip.file(folder+"README.md","# "+title+" Generated by PantheraHive BOS. ## Setup ```bash python3 -m venv .venv source .venv/bin/activate pip install -r requirements.txt ``` ## Run ```bash python main.py ``` "); zip.file(folder+".gitignore",".venv/ __pycache__/ *.pyc .env .DS_Store "); } /* --- Node.js --- */ function buildNode(zip,folder,app,code){ var title=slugTitle(app); var pn=pkgName(app); var src=code.replace(/^```[w]* ?/m,"").replace(/ ?```$/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)+" "; zip.file(folder+"package.json",pkgJson); var fallback="const express=require("express"); const app=express(); app.use(express.json()); app.get("/",(req,res)=>{ res.json({message:""+title+" API"}); }); const PORT=process.env.PORT||3000; app.listen(PORT,()=>console.log("Server on port "+PORT)); "; zip.file(folder+"src/index.js",src||fallback); zip.file(folder+".env.example","PORT=3000 "); zip.file(folder+".gitignore","node_modules/ .env .DS_Store "); zip.file(folder+"README.md","# "+title+" Generated by PantheraHive BOS. ## Setup ```bash npm install ``` ## Run ```bash npm run dev ``` "); } /* --- 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:" "+title+" "+code+" "; zip.file(folder+"index.html",indexHtml); zip.file(folder+"style.css","/* "+title+" — styles */ *{margin:0;padding:0;box-sizing:border-box} body{font-family:system-ui,-apple-system,sans-serif;background:#fff;color:#1a1a2e} "); zip.file(folder+"script.js","/* "+title+" — scripts */ "); zip.file(folder+"assets/.gitkeep",""); zip.file(folder+"README.md","# "+title+" Generated by PantheraHive BOS. ## Open Double-click `index.html` in your browser. Or serve locally: ```bash npx serve . # or python3 -m http.server 3000 ``` "); zip.file(folder+".gitignore",".DS_Store node_modules/ .env "); } /* ===== 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(/ {2,}/g,"

"); h+="

"+hc+"

Generated by PantheraHive BOS
"; zip.file(folder+app+".html",h); zip.file(folder+"README.md","# "+title+" Generated by PantheraHive BOS. Files: - "+app+".md (Markdown) - "+app+".html (styled HTML) "); } 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);}});}