Employment Agreement Generator
Create a professional employment contract in minutes.
Employer Details
Employee Details
Your complete Employment Agreement will appear here.
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(); });