Arbeitszeugnis Generator – Marlow D. Guttmann
📄 Qualifiziertes Arbeitszeugnis · Hamburg
Arbeitszeugnisse, die wirklich wirken.
Professioneller Generator für HR-Teams und Einzelpersonen. Vorlagen, strukturierter Aufbau, sauberer Export — fertig in unter 10 Minuten.
⚡ Sofort-Vorschau
🇩🇪 Made in Germany
📥 PDF-Export
🔒 100 % lokal
5 Beurteilungskategorien
5 Rollenvorlagen
A4 Print-ready
1
Basisdaten
2
Tätigkeiten
3
Beurteilung
4
Schlussformel
5
Export
* Pflichtfelder für vollständiges Zeugnis
Weiter →
Rollenvorlage laden
— Vorlage wählen —
IT / Softwareentwicklung
Kaufmännisch / Verwaltung
Pflege / Gesundheit
HR / Personal
Produktion / Logistik
Marketing / Kommunikation
Vertrieb / Sales
Führungsverantwortung
Nicht vorhanden
💡
Beschreiben Sie Tätigkeiten konkret und mit Verben im Präteritum. Nutzen Sie die Rollenvorlagen als Ausgangspunkt und passen Sie diese an.
← Zurück
Weiter →
📖
Zeugnissprache: In deutschen Arbeitszeugnissen bedeutet Note 1 = „stets zu vollster Zufriedenheit" (sehr gut), Note 3 = „zur Zufriedenheit" (befriedigend). Passen Sie die Textbausteine individuell an.
← Zurück
Weiter →
💡
Eine vollständige Schlussformel mit Bedauern, Dank und Zukunftswünschen gilt als positives Signal für das Gesamtzeugnis.
← Zurück
Weiter →
📄
PDF exportieren
Professionelles A4-Dokument
🖨️
Drucken
Druckdialog öffnen
💾
Entwurf speichern
JSON-Datei für später
📂
Entwurf laden
JSON-Datei öffnen
🔒
Alle Daten werden ausschließlich lokal in Ihrem Browser verarbeitet. Es findet keine Übertragung an externe Server statt.
← Zurück
Arbeitszeugnis
Mitarbeiter:in ,
geboren im Jahr ,
war vom — bis zum —
als Position in der Abteilung —
(Vollzeit ) in unserem Unternehmen tätig.
Gesamtbeurteilung: — (Note — )
Entwurf · marlowguttmann.de
Selbstcheck
Vorhandenes Zeugnis prüfen lassen
Versteckt sich hinter positiv klingenden Formulierungen tatsächlich eine Negativbeurteilung? Lassen Sie Ihr Zeugnis von Marlow D. Guttmann professionell analysieren.
Als Arbeitnehmer:in
Als HR-Verantwortliche:r
Zur Prüfung einreichen
Einreichung per E-Mail an
mdg@marlowguttmann.de
oder über marlowguttmann.de/kontakt .
Bleiben Sie auf dem Laufenden: HR-Impulse, Zeugnistipps und Updates rund um Personalentwicklung — unverbindlich, jederzeit abbestellbar.
Falls das Formular in der Vorschau nicht lädt: Newsletter-Formular direkt öffnen .
oder
Überspringen — direkt zum Export
Mit einer Anmeldung akzeptieren Sie unsere Datenschutzhinweise . Abmeldung jederzeit möglich.
✅
Export ist freigeschaltet!
Super — Sie erhalten in Kürze eine Bestätigungsmail. Ihr Zeugnis steht jetzt zum Download bereit.
Zum Export →
';
return html;
}
function esc(s){
return String(s||"").replace(/[&<>"']/g,function(m){return({"&":"&","<":"<",">":">",'"':""","'":"'"})[m];});
}
function doPDFExport(){
function loadScript(src){
return new Promise(function(res,rej){
var existing = Array.prototype.slice.call(document.scripts).find(function(x){ return x.src === src; });
if(existing && (window.jspdf || window.html2pdf)){ res(); return; }
var s=document.createElement("script");
s.src=src; s.async=true; s.onload=res; s.onerror=rej;
document.head.appendChild(s);
});
}
function safeFileName(str){
return String(str||"Entwurf").replace(/[^a-zA-Z0-9äöüÄÖÜß_-]+/g,"_").replace(/^_+|_+$/g,"") || "Entwurf";
}
toast("PDF wird erstellt…");
var jsPdfUrl = "https://cdnjs.cloudflare.com/ajax/libs/jspdf/2.5.1/jspdf.umd.min.js";
var p = (window.jspdf && window.jspdf.jsPDF) ? Promise.resolve() : loadScript(jsPdfUrl);
p.then(function(){
try{
if(!(window.jspdf && window.jspdf.jsPDF)) throw new Error("jsPDF nicht verfügbar");
var jsPDF = window.jspdf.jsPDF;
var doc = new jsPDF({ unit:"mm", format:"a4", orientation:"portrait" });
var b = state.base;
var employee = b.employee || "Mitarbeiter:in";
var pageW = 210, pageH = 297;
var marginX = 22;
var maxW = pageW - (marginX * 2);
var y = 24;
var lineH = 6.2;
function normalizeText(txt){
return String(txt || "")
.replace(/\u00a0/g," ")
.replace(/[“”]/g,'"')
.replace(/[‘’]/g,"'")
.replace(/–|—/g,"-");
}
function ensureSpace(needed){
if(y + needed > pageH - 24){
doc.addPage();
y = 24;
}
}
function setFont(family, style, size, color){
doc.setFont(family || "times", style || "normal");
doc.setFontSize(size || 11);
if(color){ doc.setTextColor(color[0],color[1],color[2]); }
else { doc.setTextColor(26,26,26); }
}
function addParagraph(txt, opts){
opts = opts || {};
if(!txt) return;
setFont(opts.font || "times", opts.style || "normal", opts.size || 11, opts.color);
var width = opts.width || maxW;
var x = opts.x || marginX;
var lh = opts.lineH || lineH;
var after = opts.after == null ? 3 : opts.after;
var lines = doc.splitTextToSize(normalizeText(txt), width);
ensureSpace(lines.length * lh + after);
doc.text(lines, x, y, { baseline:"top", align: opts.align || "left" });
y += lines.length * lh + after;
}
function addHeading(txt){
ensureSpace(12);
setFont("helvetica","bold",9,[85,85,85]);
doc.text(normalizeText(txt).toUpperCase(), marginX, y, { baseline:"top" });
y += 8;
}
// Letterhead
setFont("helvetica","bold",16,[12,12,15]);
doc.text(normalizeText(b.company || "Unternehmen"), marginX, y, { baseline:"top" });
setFont("helvetica","normal",9,[85,85,85]);
if(b.address){
var addressLines = normalizeText(b.address).split(/\n+/).slice(0,4);
doc.text(addressLines, marginX, y + 9, { baseline:"top" });
}
setFont("helvetica","normal",10,[68,68,68]);
var dateLine = normalizeText((b.place || "Hamburg") + ", " + (b.date ? formatDate(b.date) : ""));
doc.text(dateLine, pageW - marginX, y, { align:"right", baseline:"top" });
y += 25;
doc.setDrawColor(26,26,26);
doc.setLineWidth(0.6);
doc.line(marginX, y, pageW - marginX, y);
y += 18;
// Title
setFont("times","bold",18,[12,12,15]);
doc.text("Arbeitszeugnis", pageW/2, y, { align:"center", baseline:"top" });
y += 9;
doc.setDrawColor(201,168,108);
doc.setLineWidth(0.7);
doc.line(pageW/2 - 12, y, pageW/2 + 12, y);
y += 14;
// Intro
var period = "";
if(b.periodFrom || b.periodTo){
period = " war vom " + (b.periodFrom ? formatDate(b.periodFrom) : "...") +
" bis zum " + (b.periodTo ? formatDate(b.periodTo) : "...");
} else {
period = " war";
}
var birthPart = b.birthYear ? ", geboren im Jahr " + b.birthYear + "," : "";
var dept = b.department ? " in der Abteilung " + b.department : "";
addParagraph(employee + birthPart + period + " als " + (b.position || "Position") + dept + " (" + (b.contractType || "Vollzeit") + ") in unserem Unternehmen tätig.");
// Tasks
if(state.tasks && state.tasks.length){
addHeading("Aufgaben und Tätigkeiten");
state.tasks.forEach(function(t){
addParagraph("- " + t, { after:1 });
});
y += 2;
}
// Category texts
activeCats().forEach(function(c){
var txt = fillNameWith(state.categories[c.key].text, employee);
addParagraph(txt);
});
// Overall note
var sum=0,w=0;
activeCats().forEach(function(c){ var cs=state.categories[c.key]; sum+=cs.rating*cs.weight; w+=cs.weight; });
var overallNum = w ? (Math.round((sum/w)*10)/10).toFixed(1) : "";
var labelIdx = w ? Math.min(5,Math.max(1,Math.round(sum/w))) : 0;
var overallLabel = NOTE_LABELS[labelIdx] || "";
addParagraph("Gesamtbeurteilung: " + overallLabel + (overallNum ? " (Note " + overallNum + ")" : ""), { style:"bold" });
// Closing
if(state.closingThanks) addParagraph(state.closingThanks);
if(b.exitReason) addParagraph("Das Arbeitsverhältnis endete auf Grund von: " + b.exitReason + ".");
if(state.closingRegret) addParagraph(state.closingRegret);
if(state.closingWishes) addParagraph(state.closingWishes);
// Signature
ensureSpace(35);
y += 14;
doc.setDrawColor(153,153,153);
doc.setLineWidth(0.3);
doc.line(marginX, y, marginX + 65, y);
y += 4;
if(b.signerName){ addParagraph(b.signerName, { font:"helvetica", style:"bold", size:10, after:0 }); }
if(b.signerRole){ addParagraph(b.signerRole, { font:"helvetica", size:9, color:[85,85,85], after:0 }); }
// Legal footer
ensureSpace(28);
y += 10;
doc.setDrawColor(221,221,221);
doc.line(marginX, y, pageW - marginX, y);
y += 5;
addParagraph("Dieses Arbeitszeugnis wurde mit dem Arbeitszeugnis-Generator auf marlowguttmann.de erstellt. Es stellt keine Rechtsberatung dar. Die endgültige Version ist vom Unternehmen zu prüfen, zu unterzeichnen und ggf. zu stempeln.", { font:"helvetica", size:8, color:[136,136,136], lineH:4.2, after:2 });
setFont("helvetica","normal",8,[187,187,187]);
doc.text("marlowguttmann.de · Personalentwicklung & HR", pageW/2, pageH - 14, { align:"center" });
doc.setProperties({
title: "Arbeitszeugnis " + employee,
subject: "Arbeitszeugnis-Generator",
creator: "marlowguttmann.de"
});
doc.save("Arbeitszeugnis_" + safeFileName(employee) + ".pdf");
toast("PDF gespeichert ✓","success");
} catch(err){
console.error(err);
toast("PDF konnte nicht direkt erstellt werden. Druckdialog wird geöffnet.","error");
doPrint();
}
}).catch(function(err){
console.error(err);
toast("PDF-Modul konnte nicht geladen werden. Druckdialog wird geöffnet.","error");
doPrint();
});
}
// ─────────────────────────────────────────────
// SELBSTCHECK
// ─────────────────────────────────────────────
function initSelbstcheck(){
var currentRole="employee";
$$(".role-btn").forEach(function(btn){
btn.addEventListener("click",function(){
currentRole=btn.getAttribute("data-role");
$$(".role-btn").forEach(function(b){ b.classList.toggle("is-active",b===btn); });
});
});
document.getElementById("btnSubmitCheck").addEventListener("click",function(){
var subj = encodeURIComponent("Arbeitszeugnis Prüfung – "+(currentRole==="hr"?"HR":"Arbeitnehmer:in"));
window.location.href="mailto:mdg@marlowguttmann.de?subject="+subj;
});
}
// ─────────────────────────────────────────────
// BOOT
// ─────────────────────────────────────────────
bindFields();
renderTasks();
renderCats();
renderPreview();
initNav();
initTaskAdd();
initGate();
initExports();
initSelbstcheck();
showStep(state.step||1);
})();