Give professional resume format which can be edited

Reading File
Reading File
Running Command

ls -la /home/daytona/workspace/ 2>/dev/null || echo "workspace empty or not foun…

Writing File

~/resume/build_resume.js

const {
  Document, Packer, Paragraph, TextRun, Table, TableRow, TableCell,
  AlignmentType, LevelFormat, BorderStyle, WidthType, VerticalAlign,
  HeadingLevel, ShadingType, UnderlineType
} = require('docx');
const fs = require('fs');

// ── Colour palette ──────────────────────────────────────────────
const ACCENT     = "1F3864";   // deep navy – header background
const ACCENT_LT  = "2E74B5";   // medium blue – section bars
const WHITE      = "FFFFFF";
const TEXT_DARK  = "1A1A1A";
const TEXT_MID   = "444444";
const LIGHT_GRAY = "F2F4F7";
const MID_GRAY   = "BDC3C7";

// ── Bullet numbering config ──────────────────────────────────────
const numberingConfig = {
  config: [
    {
      reference: "bullets",
      levels: [{
        level: 0,
        format: LevelFormat.BULLET,
        text: "\u2022",
        alignment: AlignmentType.LEFT,
        style: { paragraph: { indent: { left: 360, hanging: 200 } } }
      }]
    }
  ]
};

// ── Helpers ──────────────────────────────────────────────────────
function bullet(text) {
  return new Paragraph({
    numbering: { reference: "bullets", level: 0 },
    spacing: { before: 40, after: 40 },
    children: [new TextRun({ text, font: "Calibri", size: 20, color: TEXT_DARK })]
  });
}

function sectionDivider(title) {
  return new Table({
    width: { size: 100, type: WidthType.PERCENTAGE },
    margins: { top: 0, bottom: 0, left: 0, right: 0 },
    borders: {
      top: { style: BorderStyle.NONE }, bottom: { style: BorderStyle.NONE },
      left: { style: BorderStyle.NONE }, right: { style: BorderStyle.NONE },
      insideH: { style: BorderStyle.NONE }, insideV: { style: BorderStyle.NONE }
    },
    rows: [
      new TableRow({
        children: [
          new TableCell({
            width: { size: 100, type: WidthType.PERCENTAGE },
            shading: { type: ShadingType.SOLID, color: ACCENT_LT, fill: ACCENT_LT },
            margins: { top: 80, bottom: 80, left: 160, right: 160 },
            children: [
              new Paragraph({
                alignment: AlignmentType.LEFT,
                spacing: { before: 0, after: 0 },
                children: [new TextRun({
                  text: title.toUpperCase(),
                  font: "Calibri", size: 22, bold: true, color: WHITE,
                  characterSpacing: 40
                })]
              })
            ]
          })
        ]
      })
    ]
  });
}

function gap(pts = 60) {
  return new Paragraph({ spacing: { before: 0, after: pts }, children: [] });
}

function jobEntry({ title, company, location, dates, bullets }) {
  const rows = [];

  // Title + Dates row
  rows.push(new Table({
    width: { size: 100, type: WidthType.PERCENTAGE },
    borders: {
      top: { style: BorderStyle.NONE }, bottom: { style: BorderStyle.NONE },
      left: { style: BorderStyle.NONE }, right: { style: BorderStyle.NONE },
      insideH: { style: BorderStyle.NONE }, insideV: { style: BorderStyle.NONE }
    },
    rows: [
      new TableRow({
        children: [
          new TableCell({
            width: { size: 75, type: WidthType.PERCENTAGE },
            borders: {
              top: { style: BorderStyle.NONE }, bottom: { style: BorderStyle.NONE },
              left: { style: BorderStyle.NONE }, right: { style: BorderStyle.NONE }
            },
            children: [
              new Paragraph({
                spacing: { before: 100, after: 0 },
                children: [new TextRun({ text: title, font: "Calibri", size: 22, bold: true, color: TEXT_DARK })]
              }),
              new Paragraph({
                spacing: { before: 0, after: 40 },
                children: [
                  new TextRun({ text: company, font: "Calibri", size: 20, bold: true, color: ACCENT_LT }),
                  new TextRun({ text: "   |   " + location, font: "Calibri", size: 20, color: TEXT_MID, italics: true })
                ]
              })
            ]
          }),
          new TableCell({
            width: { size: 25, type: WidthType.PERCENTAGE },
            verticalAlign: VerticalAlign.CENTER,
            borders: {
              top: { style: BorderStyle.NONE }, bottom: { style: BorderStyle.NONE },
              left: { style: BorderStyle.NONE }, right: { style: BorderStyle.NONE }
            },
            children: [
              new Paragraph({
                alignment: AlignmentType.RIGHT,
                spacing: { before: 100, after: 40 },
                children: [new TextRun({ text: dates, font: "Calibri", size: 20, color: TEXT_MID, italics: true })]
              })
            ]
          })
        ]
      })
    ]
  }));

  for (const b of bullets) rows.push(bullet(b));
  rows.push(gap(80));
  return rows;
}

function eduEntry({ degree, institution, location, dates, detail }) {
  const items = [];
  items.push(new Table({
    width: { size: 100, type: WidthType.PERCENTAGE },
    borders: {
      top: { style: BorderStyle.NONE }, bottom: { style: BorderStyle.NONE },
      left: { style: BorderStyle.NONE }, right: { style: BorderStyle.NONE },
      insideH: { style: BorderStyle.NONE }, insideV: { style: BorderStyle.NONE }
    },
    rows: [
      new TableRow({
        children: [
          new TableCell({
            width: { size: 75, type: WidthType.PERCENTAGE },
            borders: {
              top: { style: BorderStyle.NONE }, bottom: { style: BorderStyle.NONE },
              left: { style: BorderStyle.NONE }, right: { style: BorderStyle.NONE }
            },
            children: [
              new Paragraph({
                spacing: { before: 100, after: 0 },
                children: [new TextRun({ text: degree, font: "Calibri", size: 22, bold: true, color: TEXT_DARK })]
              }),
              new Paragraph({
                spacing: { before: 0, after: 40 },
                children: [
                  new TextRun({ text: institution, font: "Calibri", size: 20, bold: true, color: ACCENT_LT }),
                  new TextRun({ text: "   |   " + location, font: "Calibri", size: 20, color: TEXT_MID, italics: true })
                ]
              }),
              ...(detail ? [new Paragraph({
                spacing: { before: 0, after: 40 },
                children: [new TextRun({ text: detail, font: "Calibri", size: 20, color: TEXT_MID })]
              })] : [])
            ]
          }),
          new TableCell({
            width: { size: 25, type: WidthType.PERCENTAGE },
            verticalAlign: VerticalAlign.CENTER,
            borders: {
              top: { style: BorderStyle.NONE }, bottom: { style: BorderStyle.NONE },
              left: { style: BorderStyle.NONE }, right: { style: BorderStyle.NONE }
            },
            children: [
              new Paragraph({
                alignment: AlignmentType.RIGHT,
                spacing: { before: 100, after: 40 },
                children: [new TextRun({ text: dates, font: "Calibri", size: 20, color: TEXT_MID, italics: true })]
              })
            ]
          })
        ]
      })
    ]
  }));
  items.push(gap(80));
  return items;
}

function skillRow(category, skills) {
  return new Table({
    width: { size: 100, type: WidthType.PERCENTAGE },
    borders: {
      top: { style: BorderStyle.NONE }, bottom: { style: BorderStyle.NONE },
      left: { style: BorderStyle.NONE }, right: { style: BorderStyle.NONE },
      insideH: { style: BorderStyle.NONE }, insideV: { style: BorderStyle.NONE }
    },
    rows: [
      new TableRow({
        children: [
          new TableCell({
            width: { size: 28, type: WidthType.PERCENTAGE },
            borders: {
              top: { style: BorderStyle.NONE }, bottom: { style: BorderStyle.NONE },
              left: { style: BorderStyle.NONE }, right: { style: BorderStyle.NONE }
            },
            shading: { type: ShadingType.SOLID, color: LIGHT_GRAY, fill: LIGHT_GRAY },
            margins: { top: 80, bottom: 80, left: 160, right: 160 },
            children: [
              new Paragraph({
                children: [new TextRun({ text: category, font: "Calibri", size: 20, bold: true, color: TEXT_DARK })]
              })
            ]
          }),
          new TableCell({
            width: { size: 72, type: WidthType.PERCENTAGE },
            borders: {
              top: { style: BorderStyle.NONE }, bottom: { style: BorderStyle.NONE },
              left: { style: BorderStyle.NONE }, right: { style: BorderStyle.NONE }
            },
            margins: { top: 80, bottom: 80, left: 200, right: 160 },
            children: [
              new Paragraph({
                children: [new TextRun({ text: skills, font: "Calibri", size: 20, color: TEXT_DARK })]
              })
            ]
          })
        ]
      })
    ]
  });
}

// ── Header banner ────────────────────────────────────────────────
const headerBanner = new Table({
  width: { size: 100, type: WidthType.PERCENTAGE },
  borders: {
    top: { style: BorderStyle.NONE }, bottom: { style: BorderStyle.NONE },
    left: { style: BorderStyle.NONE }, right: { style: BorderStyle.NONE },
    insideH: { style: BorderStyle.NONE }, insideV: { style: BorderStyle.NONE }
  },
  rows: [
    new TableRow({
      children: [
        new TableCell({
          width: { size: 100, type: WidthType.PERCENTAGE },
          shading: { type: ShadingType.SOLID, color: ACCENT, fill: ACCENT },
          margins: { top: 300, bottom: 300, left: 400, right: 400 },
          children: [
            new Paragraph({
              alignment: AlignmentType.CENTER,
              spacing: { before: 0, after: 80 },
              children: [new TextRun({
                text: "JOHN A. SMITH",
                font: "Calibri", size: 52, bold: true, color: WHITE,
                characterSpacing: 60
              })]
            }),
            new Paragraph({
              alignment: AlignmentType.CENTER,
              spacing: { before: 0, after: 80 },
              children: [new TextRun({
                text: "Senior Software Engineer  ·  Full-Stack Development  ·  Cloud Architecture",
                font: "Calibri", size: 22, color: "A8C4E0", italics: false
              })]
            }),
            new Paragraph({
              alignment: AlignmentType.CENTER,
              spacing: { before: 60, after: 0 },
              children: [
                new TextRun({ text: "📍 San Francisco, CA", font: "Calibri", size: 19, color: "C9D9EE" }),
                new TextRun({ text: "   |   ", font: "Calibri", size: 19, color: "7A99BB" }),
                new TextRun({ text: "📞 +1 (415) 555-0192", font: "Calibri", size: 19, color: "C9D9EE" }),
                new TextRun({ text: "   |   ", font: "Calibri", size: 19, color: "7A99BB" }),
                new TextRun({ text: "✉ john.smith@email.com", font: "Calibri", size: 19, color: "C9D9EE" }),
                new TextRun({ text: "   |   ", font: "Calibri", size: 19, color: "7A99BB" }),
                new TextRun({ text: "🔗 linkedin.com/in/johnsmith", font: "Calibri", size: 19, color: "C9D9EE" })
              ]
            })
          ]
        })
      ]
    })
  ]
});

// ── Professional Summary ─────────────────────────────────────────
const summarySection = [
  gap(120),
  sectionDivider("Professional Summary"),
  gap(60),
  new Paragraph({
    spacing: { before: 0, after: 0 },
    alignment: AlignmentType.JUSTIFIED,
    children: [new TextRun({
      text: "Results-driven Senior Software Engineer with 8+ years of experience designing and delivering scalable web applications and cloud-native solutions. Adept at leading cross-functional teams, architecting microservices, and driving agile development cycles from concept to production. Proven track record of reducing system latency by 40% and improving deployment frequency by 3×. Passionate about clean code, mentorship, and building products that make an impact.",
      font: "Calibri", size: 20, color: TEXT_DARK
    })]
  }),
  gap(100)
];

// ── Work Experience ──────────────────────────────────────────────
const experienceSection = [
  sectionDivider("Work Experience"),
  gap(60),
  ...jobEntry({
    title: "Senior Software Engineer",
    company: "TechCorp Inc.",
    location: "San Francisco, CA",
    dates: "Jan 2021 – Present",
    bullets: [
      "Architected and delivered a microservices platform serving 2M+ daily active users, reducing P95 latency by 42%.",
      "Led a team of 6 engineers through 3 major product releases on schedule and within budget.",
      "Designed CI/CD pipelines (GitHub Actions + Kubernetes) that cut deployment time from 45 min to 8 min.",
      "Mentored 4 junior engineers; 2 subsequently promoted to mid-level roles."
    ]
  }),
  ...jobEntry({
    title: "Software Engineer II",
    company: "DataStream Solutions",
    location: "Austin, TX",
    dates: "Jun 2018 – Dec 2020",
    bullets: [
      "Built real-time data ingestion pipeline processing 500K events/sec using Apache Kafka and Go.",
      "Refactored legacy monolith into 12 independently deployable services, improving release cadence 3×.",
      "Collaborated with product and design to ship 5 major features, driving a 28% increase in user retention.",
      "Authored internal engineering standards adopted across 3 development teams."
    ]
  }),
  ...jobEntry({
    title: "Junior Software Engineer",
    company: "StartApp Labs",
    location: "New York, NY",
    dates: "Jul 2016 – May 2018",
    bullets: [
      "Developed React front-end and Node.js REST APIs for a SaaS product with 50K+ subscribers.",
      "Integrated Stripe payment gateway, enabling $1.2M in annual recurring revenue.",
      "Reduced page load time by 35% through code splitting, lazy loading, and CDN optimisation."
    ]
  })
];

// ── Education ────────────────────────────────────────────────────
const educationSection = [
  sectionDivider("Education"),
  gap(60),
  ...eduEntry({
    degree: "B.S. Computer Science",
    institution: "University of California, Berkeley",
    location: "Berkeley, CA",
    dates: "2012 – 2016",
    detail: "GPA: 3.8 / 4.0  ·  Dean's List  ·  Relevant coursework: Algorithms, Distributed Systems, ML"
  })
];

// ── Skills ───────────────────────────────────────────────────────
const skillsSection = [
  sectionDivider("Skills"),
  gap(60),
  skillRow("Languages",      "JavaScript / TypeScript, Python, Go, Java, SQL"),
  gap(30),
  skillRow("Front-End",      "React, Next.js, Vue.js, Tailwind CSS, GraphQL"),
  gap(30),
  skillRow("Back-End",       "Node.js, Express, Django, FastAPI, gRPC"),
  gap(30),
  skillRow("Cloud & DevOps", "AWS (EC2, S3, Lambda, RDS), GCP, Docker, Kubernetes, Terraform"),
  gap(30),
  skillRow("Databases",      "PostgreSQL, MongoDB, Redis, Elasticsearch, Snowflake"),
  gap(30),
  skillRow("Tools",          "Git, JIRA, Figma, DataDog, Sentry, CircleCI"),
  gap(100)
];

// ── Certifications ───────────────────────────────────────────────
const certSection = [
  sectionDivider("Certifications & Awards"),
  gap(60),
  bullet("AWS Certified Solutions Architect – Professional  (2023)"),
  bullet("Google Cloud Professional Data Engineer  (2022)"),
  bullet("Certified Kubernetes Administrator (CKA)  (2021)"),
  bullet("TechCorp Engineering Excellence Award  (2022, 2023)"),
  gap(100)
];

// ── Projects ─────────────────────────────────────────────────────
const projectsSection = [
  sectionDivider("Key Projects"),
  gap(60),
  new Paragraph({
    spacing: { before: 80, after: 0 },
    children: [new TextRun({ text: "OpenMetrics Dashboard", font: "Calibri", size: 21, bold: true, color: ACCENT_LT })]
  }),
  new Paragraph({
    spacing: { before: 0, after: 40 },
    children: [new TextRun({ text: "Open-source observability dashboard (2.3K GitHub stars). Built with React, Go, and InfluxDB; supports 15+ data-source integrations.", font: "Calibri", size: 20, color: TEXT_DARK })]
  }),
  new Paragraph({
    spacing: { before: 80, after: 0 },
    children: [new TextRun({ text: "AI Code Review Bot", font: "Calibri", size: 21, bold: true, color: ACCENT_LT })]
  }),
  new Paragraph({
    spacing: { before: 0, after: 40 },
    children: [new TextRun({ text: "GitHub Action that uses OpenAI GPT-4 to flag security issues and style violations in PRs. Deployed at 30+ organisations.", font: "Calibri", size: 20, color: TEXT_DARK })]
  }),
  gap(100)
];

// ── Assemble document ────────────────────────────────────────────
const doc = new Document({
  numbering: numberingConfig,
  styles: {
    default: {
      document: { run: { font: "Calibri", size: 20, color: TEXT_DARK } }
    }
  },
  sections: [{
    properties: {
      page: {
        margin: { top: 720, bottom: 720, left: 900, right: 900 }
      }
    },
    children: [
      headerBanner,
      ...summarySection,
      ...experienceSection,
      ...educationSection,
      ...skillsSection,
      ...certSection,
      ...projectsSection
    ]
  }]
});

Packer.toBuffer(doc).then(buffer => {
  fs.writeFileSync("/home/daytona/workspace/resume/Professional_Resume_Template.docx", buffer);
  console.log("✅ Resume created successfully!");
}).catch(err => {
  console.error("Error:", err);
  process.exit(1);
});
Browsing Directory

~/resume

Editing File

~/resume/build_resume.js

Error: String not found in file: 'const {
  Document, Packer, Paragraph, TextRun, Table, TableRow, TableCell,
  AlignmentType, LevelFormat, BorderStyle, WidthType, VerticalAlign,
  HeadingLevel, ShadingType, UnderlineType
} = require('docx');'
Reading File
Running Command

cd /home/daytona/workspace/resume && node build_resume.js 2>&1 | tail -5

Reading File
Running Command

cat > /home/daytona/workspace/resume/build_resume_v2.js << 'ENDSCRIPT' const { …

Running Command

cd /home/daytona/workspace/resume && node build_resume_v2.js 2>&1

Running Command

ls -lh /home/daytona/workspace/resume/Professional_Resume_Template.docx

Running Command

python /home/daytona/skills/docx/scripts/office/validate.py /home/daytona/worksp…

Running Command

cd /tmp && rm -rf resume_check && mkdir resume_check && unzip -q /home/daytona/w…

The document is structurally valid — all required Word XML files are present. The resume is ready to download.

Your professional resume template is ready:

Professional Resume Template

Word Document · DOCX


What's included in the template

SectionDetails
Header BannerDeep-navy background with name (large), tagline, and contact info in one clean block
Professional SummaryJustified paragraph — replace with your own pitch
Work Experience3 sample roles with 2-column layout (company/bullets left, dates right)
EducationDegree, institution, GPA/awards row
Technical SkillsAlternating shaded rows: category label
Certifications & AwardsBulleted list
Notable ProjectsProject name + one-line description

How to edit it

  1. Open in Microsoft Word or Google Docs (File → Import) — all text is fully editable
  2. Replace "JOHN A. SMITH" and all placeholder content with your own details
  3. Add/remove sections as needed — each section is self-contained
  4. Colors: The accent blue (#2E74B5) and navy (#1F3864) can be changed via Word's "Design → Colors"
This is a shared conversation. Sign in to Orris to start your own chat.