Employment Agreement Generator

Employment Agreement Generator

Create a professional employment contract in minutes.

Employer Details

Employee Details

The Employee shall be eligible for the following benefits: ${data.benefits}

`; } html += `

4. Duties and Responsibilities

`; html += `

The Employee's duties shall include, but are not limited to, the following: ${data.jobDuties || 'As assigned by the Employer.'}

`; html += `

5. Termination

`; html += `

${data.termination || 'Employment is on an at-will basis.'}

`; html += `

IN WITNESS WHEREOF, the parties have executed this Agreement as of the date first written above.

`; document.getElementById('generated-agreement-content').innerHTML = html; }; // --- PDF Generation --- downloadPdfBtn.addEventListener('click', () => { const { jsPDF } = window.jspdf; const doc = new jsPDF({ orientation: 'portrait', unit: 'mm', format: 'a4' }); const data = getAgreementData(); const pageW = doc.internal.pageSize.getWidth(); const margin = 20; const maxW = pageW - margin * 2; let y = margin; const textColor = '#333333'; doc.setTextColor(textColor); const addH1 = (text) => { y += 10; doc.setFontSize(16); doc.setFont(undefined, 'bold'); doc.text(text, pageW / 2, y, { align: 'center' }); y += 15; }; const addH2 = (text) => { if (y > 250) { doc.addPage(); y = margin; } y += 8; doc.setFontSize(12); doc.setFont(undefined, 'bold'); doc.text(text, margin, y); y += 6; }; const addBody = (text) => { if (y > 260) { doc.addPage(); y = margin; } doc.setFontSize(11); doc.setFont(undefined, 'normal'); const lines = doc.splitTextToSize(text, maxW); doc.text(lines, margin, y); y += (lines.length * 5) + 4; }; addH1('Employment Agreement'); addBody(`This Employment Agreement (the "Agreement") is entered into as of ${data.agreementDate}, by and between ${data.employerName} ("Employer"), with a primary place of business at ${data.employerAddress}, and ${data.employeeName} ("Employee"), residing at ${data.employeeAddress}.`); addH2('1. Position'); addBody(`The Employer agrees to employ the Employee as a ${data.jobTitle}. This is a ${data.employmentType} position. The employment shall commence on ${data.startDate}.`); addH2('2. Compensation'); addBody(`The Employer will pay the Employee a salary of ${data.compensationAmount} ${data.compensationRate}, payable on a ${data.paymentFrequency} basis, subject to standard payroll deductions and withholdings.`); if (data.benefits) { addH2('3. Benefits'); addBody(`The Employee shall be eligible for the following benefits: ${data.benefits}`); } addH2('4. Duties and Responsibilities'); addBody(`The Employee's duties shall include, but are not limited to, the following: ${data.jobDuties || 'As assigned by the Employer.'}`); addH2('5. Termination'); addBody(`${data.termination || 'Employment is on an at-will basis, meaning either party can terminate the relationship at any time for any reason, with or without notice.'}`); addH2('6. Governing Law'); addBody('This Agreement shall be governed by and construed in accordance with the laws of the state where the Employer\'s primary place of business is located.'); addBody('IN WITNESS WHEREOF, the parties have executed this Agreement as of the date first written above.'); // Signature Lines y += 20; if (y > 240) { doc.addPage(); y = margin; } const sigY = y; const sigLineLength = 70; // Employer Signature doc.text('Employer:', margin, sigY); doc.line(margin, sigY + 15, margin + sigLineLength, sigY + 15); doc.text(data.employerName, margin, sigY + 20); // Employee Signature doc.text('Employee:', pageW / 2 + 10, sigY); doc.line(pageW / 2 + 10, sigY + 15, pageW / 2 + 10 + sigLineLength, sigY + 15); doc.text(data.employeeName, pageW / 2 + 10, sigY + 20); doc.save(`Employment-Agreement-${data.employeeName.replace(/\s+/g, '-')}.pdf`); }); // Initialize updateTabUI(0); lucide.createIcons(); });
Scroll to Top