<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>ücretsiz CV oluşturma &#8211; Bilgi Defterim</title>
	<atom:link href="https://bilgidefterim.com/tag/ucretsiz-cv-olusturma/feed/" rel="self" type="application/rss+xml" />
	<link>https://bilgidefterim.com</link>
	<description>Kısa Bilgi Kalıcı Etki</description>
	<lastBuildDate>Sun, 15 Mar 2026 15:31:08 +0000</lastBuildDate>
	<language>tr</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>

<image>
	<url>https://bilgidefterim.com/wp-content/uploads/2025/06/cropped-Simge-32x32.webp</url>
	<title>ücretsiz CV oluşturma &#8211; Bilgi Defterim</title>
	<link>https://bilgidefterim.com</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Ücretsiz CV Oluştur</title>
		<link>https://bilgidefterim.com/ucretsiz-cv-olustur/</link>
					<comments>https://bilgidefterim.com/ucretsiz-cv-olustur/#respond</comments>
		
		<dc:creator><![CDATA[Bilgi Defterim]]></dc:creator>
		<pubDate>Tue, 29 Jul 2025 21:27:53 +0000</pubDate>
				<category><![CDATA[GEREKLİ BİLGİLER]]></category>
		<category><![CDATA[CV oluşturma sitesi]]></category>
		<category><![CDATA[online CV hazırlama]]></category>
		<category><![CDATA[ücretsiz CV oluşturma]]></category>
		<category><![CDATA[ücretsiz özgeçmiş oluşturma]]></category>
		<guid isPermaLink="false">https://bilgidefterim.com/?p=801</guid>

					<description><![CDATA[📄 Profesyonel CV Oluşturucu Modern ve şık CV&#8217;nizi kolayca oluşturun 📸 Profil Fotoğrafı Fotoğraf Yükle 👤 Kişisel Bilgiler Ad Soyad&#46;&#46;&#46;]]></description>
										<content:encoded><![CDATA[
<script src="https://cdnjs.cloudflare.com/ajax/libs/jspdf/2.5.1/jspdf.umd.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/html2canvas/1.4.1/html2canvas.min.js"></script>
    <style>
        @import url('https://fonts.googleapis.com/css2?family=Poppins:wght@300;400;500;600;700;800&display=swap');
        
        * {
            margin: 0;
            padding: 0;
            box-sizing: border-box;
        }

        body {
            font-family: 'Poppins', sans-serif;
            background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
            min-height: 100vh;
            padding: 0;
            margin: 0;
        }

        .container {
            max-width: 100%;
            margin: 0;
            background: white;
            border-radius: 0;
            box-shadow: none;
            overflow: hidden;
        }

        .header {
            background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
            color: white;
            padding: 40px;
            text-align: center;
        }

        .header h1 {
            font-size: 2.5em;
            font-weight: 700;
            margin-bottom: 10px;
        }

        .header p {
            font-size: 1.1em;
            opacity: 0.95;
        }

        .app-container {
            display: block;
            min-height: 800px;
        }

        .app-container.show-preview {
            display: grid;
            grid-template-columns: 1fr 1.2fr;
        }

        /* Form Panel */
        .form-panel {
            background: #f8f9fa;
            padding: 40px;
            overflow-y: auto;
            max-height: 900px;
        }

        .app-container:not(.show-preview) .form-panel {
            max-width: 800px;
            margin: 0 auto;
            max-height: none;
        }

        .form-section {
            background: white;
            padding: 25px;
            border-radius: 12px;
            margin-bottom: 20px;
            box-shadow: 0 2px 10px rgba(0, 0, 0, 0.05);
        }

        .form-section-title {
            font-size: 1.1em;
            font-weight: 700;
            color: #667eea;
            margin-bottom: 20px;
            padding-bottom: 10px;
            border-bottom: 2px solid #e0e7ff;
            text-transform: uppercase;
            letter-spacing: 0.5px;
        }

        .form-group {
            margin-bottom: 18px;
        }

        .form-group label {
            display: block;
            font-size: 0.9em;
            font-weight: 600;
            color: #374151;
            margin-bottom: 8px;
        }

        .form-group input,
        .form-group textarea,
        .form-group select {
            width: 100%;
            padding: 12px 15px;
            border: 2px solid #e5e7eb;
            border-radius: 8px;
            font-size: 0.95em;
            font-family: inherit;
            transition: all 0.2s;
            background: white;
            color: #111827;
        }

        .form-group input:focus,
        .form-group textarea:focus,
        .form-group select:focus {
            outline: none;
            border-color: #667eea;
            box-shadow: 0 0 0 3px rgba(102, 126, 234, 0.1);
        }

        .form-group input::placeholder,
        .form-group textarea::placeholder {
            color: #9ca3af;
        }

        .form-group textarea {
            resize: vertical;
            min-height: 100px;
        }

        .array-item {
            background: #f9fafb;
            padding: 15px;
            border-radius: 8px;
            margin-bottom: 12px;
            border: 2px solid #e5e7eb;
        }

        .array-item input,
        .array-item textarea {
            width: 100%;
            padding: 10px 12px;
            border: 1px solid #d1d5db;
            border-radius: 6px;
            font-size: 0.9em;
            margin-bottom: 10px;
            background: white;
        }

        .array-item textarea {
            min-height: 80px;
            resize: vertical;
        }

        .btn-add {
            width: 100%;
            padding: 12px;
            background: #667eea;
            color: white;
            border: none;
            border-radius: 8px;
            font-size: 0.9em;
            font-weight: 600;
            cursor: pointer;
            transition: all 0.2s;
            margin-top: 10px;
        }

        .btn-add:hover {
            background: #5568d3;
            transform: translateY(-1px);
        }

        .btn-remove {
            background: #ef4444;
            color: white;
            border: none;
            padding: 6px 14px;
            border-radius: 6px;
            font-size: 0.8em;
            cursor: pointer;
            margin-top: 8px;
            transition: all 0.2s;
        }

        .btn-remove:hover {
            background: #dc2626;
        }

        .image-upload {
            width: 200px;
            height: 200px;
            margin: 0 auto;
            border: 3px dashed #d1d5db;
            border-radius: 12px;
            display: flex;
            align-items: center;
            justify-content: center;
            cursor: pointer;
            transition: all 0.3s;
            background: #f9fafb;
            position: relative;
            overflow: hidden;
        }

        .image-upload:hover {
            border-color: #667eea;
            background: #f0f4ff;
        }

        .image-upload img {
            width: 100%;
            height: 100%;
            object-fit: cover;
            display: none;
        }

        .image-upload.has-image img {
            display: block;
        }

        .image-upload.has-image .upload-text {
            display: none;
        }

        .upload-text {
            text-align: center;
            color: #6b7280;
        }

        .upload-text svg {
            width: 48px;
            height: 48px;
            margin-bottom: 10px;
            opacity: 0.5;
        }

        .file-input {
            display: none;
        }

        /* CV Preview */
        .preview-panel {
            background: linear-gradient(135deg, #f0f4ff 0%, #e0e7ff 50%, #ddd6fe 100%);
            padding: 0;
            display: none;
            justify-content: flex-start;
            align-items: flex-start;
        }

        .preview-panel.show {
            display: flex;
        }

        .cv-document {
            width: 210mm;
            height: 297mm;
            background: white;
            box-shadow: 0 20px 60px rgba(0, 0, 0, 0.2);
            display: grid;
            grid-template-columns: 340px 1fr;
            border-radius: 0;
            overflow: hidden;
            margin: 0;
        }

        .cv-left {
            background: linear-gradient(180deg, #8b5cf6 0%, #7c3aed 50%, #6d28d9 100%);
            color: white;
            padding: 50px 35px 50px 35px;
            position: relative;
            border-radius: 20px;
        }

        .cv-right {
            background: white;
            padding: 50px 45px;
        }

        .cv-photo-container {
            text-align: center;
            margin-bottom: 40px;
        }

        .cv-photo {
            width: 180px;
            height: 180px;
            border-radius: 50%;
            object-fit: cover;
            border: 6px solid rgba(255, 255, 255, 0.3);
            margin: 0 auto;
            display: block;
        }

        .cv-photo-placeholder {
            width: 180px;
            height: 180px;
            border-radius: 50%;
            background: rgba(255, 255, 255, 0.2);
            border: 6px solid rgba(255, 255, 255, 0.3);
            margin: 0 auto;
        }

        .cv-name-section {
            margin-bottom: 40px;
            text-align: center;
            padding-bottom: 25px;
            border-bottom: 2px solid rgba(255, 255, 255, 0.3);
        }

        .cv-full-name {
            font-size: 2.2em;
            font-weight: 800;
            margin-bottom: 8px;
            letter-spacing: -0.5px;
        }

        .cv-job-title {
            font-size: 1.1em;
            font-weight: 500;
            opacity: 0.95;
            text-transform: uppercase;
            letter-spacing: 1px;
        }

        .cv-section-left {
            margin-bottom: 35px;
        }

        .cv-section-title-left {
            font-size: 1.1em;
            font-weight: 700;
            margin-bottom: 18px;
            text-transform: uppercase;
            letter-spacing: 1px;
            padding-bottom: 10px;
            border-bottom: 2px solid rgba(255, 255, 255, 0.3);
        }

        .cv-contact-item {
            margin-bottom: 15px;
            font-size: 0.95em;
            display: flex;
            align-items: flex-start;
            gap: 12px;
        }

        .cv-contact-item svg {
            width: 18px;
            height: 18px;
            margin-top: 3px;
            flex-shrink: 0;
            opacity: 0.9;
        }

        .cv-info-item {
            margin-bottom: 12px;
            font-size: 0.9em;
        }

        .cv-info-label {
            font-weight: 600;
            margin-bottom: 4px;
        }

        .cv-info-value {
            opacity: 0.9;
        }

        .cv-language-item {
            margin-bottom: 15px;
            font-size: 0.95em;
            display: flex;
            justify-content: space-between;
            align-items: center;
            padding-bottom: 12px;
            border-bottom: 1px solid #e5e7eb;
        }

        .cv-language-item:last-child {
            border-bottom: none;
        }

        .cv-language-name {
            font-weight: 600;
            color: #111827;
            font-size: 1em;
        }

        .cv-language-level {
            color: #6b7280;
            font-size: 0.85em;
            font-weight: 500;
        }

        .cv-section-right {
            margin-bottom: 40px;
        }

        .cv-section-title-right {
            font-size: 1.3em;
            font-weight: 700;
            color: #6d28d9;
            margin-bottom: 20px;
            padding-bottom: 12px;
            border-bottom: 3px solid #6d28d9;
            text-transform: uppercase;
            letter-spacing: 0.5px;
        }

        .cv-summary-text {
            font-size: 1.05em;
            line-height: 1.8;
            color: #374151;
        }

        .cv-entry {
            margin-bottom: 30px;
        }

        .cv-entry-header {
            display: flex;
            justify-content: space-between;
            align-items: flex-start;
            margin-bottom: 10px;
        }

        .cv-entry-title {
            font-size: 1.2em;
            font-weight: 700;
            color: #111827;
            margin-bottom: 5px;
        }

        .cv-entry-company {
            font-size: 1em;
            font-weight: 600;
            color: #6d28d9;
            margin-bottom: 5px;
        }

        .cv-entry-period {
            font-size: 0.9em;
            color: #6b7280;
            font-weight: 500;
            white-space: nowrap;
        }

        .cv-entry-description {
            margin-top: 10px;
            line-height: 1.7;
            color: #4b5563;
            font-size: 0.95em;
        }

        .cv-skills-list {
            display: flex;
            flex-wrap: wrap;
            gap: 10px;
        }

        .cv-skill-tag {
            background: transparent;
            padding: 8px 0;
            border-radius: 0;
            font-size: 0.9em;
            font-weight: 500;
            color: #374151;
            border: none;
            border-left: none;
        }

        .cv-interests {
            line-height: 1.8;
            color: #4b5563;
            font-size: 0.95em;
        }

        .download-section {
            background: #f8f9fa;
            padding: 30px;
            text-align: center;
            border-top: 1px solid #e5e7eb;
        }

        .btn-download {
            background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
            color: white;
            border: none;
            padding: 18px 50px;
            border-radius: 12px;
            font-size: 1.2em;
            font-weight: 700;
            cursor: pointer;
            box-shadow: 0 10px 30px rgba(102, 126, 234, 0.4);
            transition: all 0.3s;
        }

        .btn-download:hover {
            transform: translateY(-2px);
            box-shadow: 0 15px 40px rgba(102, 126, 234, 0.5);
        }

        .btn-download:disabled {
            opacity: 0.6;
            cursor: not-allowed;
        }


        .pdf-mode .no-print {
            display: none !important;
        }

        .pdf-mode input,
        .pdf-mode textarea,
        .pdf-mode select {
            border: none !important;
            background: transparent !important;
            padding: 0 !important;
            box-shadow: none !important;
        }

        .pdf-mode .form-section {
            background: transparent !important;
            box-shadow: none !important;
            padding: 0 !important;
            margin-bottom: 0 !important;
        }

        .pdf-mode input::placeholder,
        .pdf-mode textarea::placeholder {
            color: transparent !important;
        }

        @media (max-width: 1400px) {
            .app-container {
                grid-template-columns: 1fr;
            }

            .preview-panel {
                padding: 30px 20px;
            }
        }
    </style>
</head>
<div id="cv-app-root">
    <div class="container">
        <div class="header">
            <h1><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f4c4.png" alt="📄" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Profesyonel CV Oluşturucu</h1>
            <p>Modern ve şık CV&#8217;nizi kolayca oluşturun</p>
        </div>

        <div class="app-container">
            <!-- Form Panel -->
            <div class="form-panel" id="formPanel">
                <div class="form-section">
                    <div class="form-section-title"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f4f8.png" alt="📸" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Profil Fotoğrafı</div>
                    <div class="image-upload" id="imageUpload" onclick="document.getElementById('photoInput').click()">
                        <img id="previewImage" alt="Profil">
                        <div class="upload-text">
                            <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
                                <path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"></path>
                                <polyline points="17 8 12 3 7 8"></polyline>
                                <line x1="12" y1="3" x2="12" y2="15"></line>
                            </svg>
                            <span>Fotoğraf Yükle</span>
                        </div>
                    </div>
                    <input type="file" id="photoInput" class="file-input" accept="image/*">
                </div>

                <div class="form-section">
                    <div class="form-section-title"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f464.png" alt="👤" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Kişisel Bilgiler</div>
                    <div class="form-group">
                        <label>Ad Soyad</label>
                        <input type="text" id="fullName" placeholder="Ad Soyad">
                    </div>
                    <div class="form-group">
                        <label>Meslek/Unvan</label>
                        <input type="text" id="jobTitle" placeholder="Örn: Bilgisayar Mühendisi">
                    </div>
                    <div class="form-group">
                        <label>Telefon</label>
                        <input type="text" id="phone" placeholder="+90 555 123 45 67">
                    </div>
                    <div class="form-group">
                        <label>E-posta</label>
                        <input type="email" id="email" placeholder="ornek@email.com">
                    </div>
                    <div class="form-group">
                        <label>Adres</label>
                        <input type="text" id="address" placeholder="Şehir, Ülke">
                    </div>
                    <div class="form-group">
                        <label>Web Sitesi</label>
                        <input type="text" id="website" placeholder="www.ornek.com">
                    </div>
                    <div class="form-group">
                        <label>Doğum Tarihi</label>
                        <input type="text" id="birthDate" placeholder="DD.MM.YYYY">
                    </div>
                    <div class="form-group">
                        <label>Medeni Durum</label>
                        <select id="maritalStatus">
                            <option value="">Seçiniz</option>
                            <option value="Bekar">Bekar</option>
                            <option value="Evli">Evli</option>
                        </select>
                    </div>
                    <div class="form-group">
                        <label>Çalışma Durumu</label>
                        <select id="employmentStatus">
                            <option value="">Seçiniz</option>
                            <option value="Çalışıyor">Çalışıyor</option>
                            <option value="Çalışmıyor">Çalışmıyor</option>
                            <option value="İş Arıyor">İş Arıyor</option>
                        </select>
                    </div>
                    <div class="form-group">
                        <label>Mezuniyet Tarihi</label>
                        <input type="text" id="graduationDate" placeholder="Ay Yıl (örn: Mart 2014)">
                    </div>
                    <div class="form-group">
                        <label>Kariyer Seviyesi</label>
                        <select id="careerLevel">
                            <option value="">Seçiniz</option>
                            <option value="Yeni Başlayan">Yeni Başlayan</option>
                            <option value="Orta Seviye">Orta Seviye</option>
                            <option value="Profesyonel (5 yıl ve üzeri tecrübe)">Profesyonel (5 yıl ve üzeri tecrübe)</option>
                            <option value="Uzman">Uzman</option>
                        </select>
                    </div>
                </div>

                <div class="form-section">
                    <div class="form-section-title"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f4dd.png" alt="📝" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Profesyonel Özet</div>
                    <div class="form-group">
                        <textarea id="summary" placeholder="Kendiniz hakkında kısa ve etkileyici bir özet yazın..."></textarea>
                    </div>
                </div>

                <div class="form-section">
                    <div class="form-section-title"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f4bc.png" alt="💼" class="wp-smiley" style="height: 1em; max-height: 1em;" /> İş Deneyimi</div>
                    <div id="experienceItems"></div>
                    <button class="btn-add no-print" onclick="addExperience()">+ Deneyim Ekle</button>
                </div>

                <div class="form-section">
                    <div class="form-section-title"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f393.png" alt="🎓" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Eğitim</div>
                    <div id="educationItems"></div>
                    <button class="btn-add no-print" onclick="addEducation()">+ Eğitim Ekle</button>
                </div>

                <div class="form-section">
                    <div class="form-section-title"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f6e0.png" alt="🛠" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Yetenekler</div>
                    <div id="skillItems"></div>
                    <button class="btn-add no-print" onclick="addSkill()">+ Yetenek Ekle</button>
                </div>

                <div class="form-section">
                    <div class="form-section-title"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f310.png" alt="🌐" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Yabancı Diller</div>
                    <div id="languageItems"></div>
                    <button class="btn-add no-print" onclick="addLanguage()">+ Dil Ekle</button>
                </div>

                <div class="form-section">
                    <div class="form-section-title"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2b50.png" alt="⭐" class="wp-smiley" style="height: 1em; max-height: 1em;" /> İlgi Alanları</div>
                    <div class="form-group">
                        <textarea id="interests" placeholder="Hobileriniz ve ilgi alanlarınızı yazın..."></textarea>
                    </div>
                </div>
            </div>

            <!-- Preview Panel -->
            <div class="preview-panel">
                <div class="cv-document" id="cvPreview">
                    <!-- Sol Sütun -->
                    <div class="cv-left">
                        <div class="cv-photo-container">
                            <div id="cvPhotoContainer">
                                <div class="cv-photo-placeholder"></div>
                            </div>
                        </div>

                        <div class="cv-name-section">
                            <div class="cv-full-name" id="cvFullName">Ad Soyad</div>
                            <div class="cv-job-title" id="cvJobTitle">Meslek</div>
                        </div>

                        <div class="cv-section-left">
                            <div class="cv-section-title-left">İletişim</div>
                            <div id="cvContact"></div>
                        </div>

                        <div class="cv-section-left">
                            <div class="cv-section-title-left">Kişisel Bilgiler</div>
                            <div id="cvPersonalInfo"></div>
                        </div>

                    </div>

                    <!-- Sağ Sütun -->
                    <div class="cv-right">
                        <div class="cv-section-right">
                            <div class="cv-section-title-right">Profesyonel Özet</div>
                            <div class="cv-summary-text" id="cvSummary">Profesyonel özet buraya gelecek&#8230;</div>
                        </div>

                        <div class="cv-section-right">
                            <div class="cv-section-title-right">Yetenekler</div>
                            <div class="cv-skills-list" id="cvSkills"></div>
                        </div>

                        <div class="cv-section-right">
                            <div class="cv-section-title-right">İş Deneyimi</div>
                            <div id="cvExperience"></div>
                        </div>

                        <div class="cv-section-right">
                            <div class="cv-section-title-right">Eğitim</div>
                            <div id="cvEducation"></div>
                        </div>

                        <div class="cv-section-right">
                            <div class="cv-section-title-right">Yabancı Dil</div>
                            <div id="cvLanguages"></div>
                        </div>

                        <div class="cv-section-right">
                            <div class="cv-section-title-right">İlgi Alanları</div>
                            <div class="cv-interests" id="cvInterests">İlgi alanlarınızı ekleyin&#8230;</div>
                        </div>
                    </div>
                </div>
            </div>
        </div>

        <div class="download-section">
            <button class="btn-download" onclick="generatePDF()"><img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f4e5.png" alt="📥" class="wp-smiley" style="height: 1em; max-height: 1em;" /> PDF Olarak İndir</button>
        </div>
    </div>

    <script>
        let cvData = {
            photo: '',
            fullName: '',
            jobTitle: '',
            phone: '',
            email: '',
            address: '',
            website: '',
            birthDate: '',
            maritalStatus: '',
            employmentStatus: '',
            graduationDate: '',
            careerLevel: '',
            summary: '',
            experiences: [],
            educations: [],
            skills: [],
            languages: [],
            interests: ''
        };

        // Fotoğraf yükleme
        document.getElementById('photoInput').addEventListener('change', function(e) {
            const file = e.target.files[0];
            if (file) {
                const reader = new FileReader();
                reader.onload = function(e) {
                    cvData.photo = e.target.result;
                    document.getElementById('imageUpload').classList.add('has-image');
                    document.getElementById('previewImage').src = e.target.result;
                    updatePreview();
                };
                reader.readAsDataURL(file);
            }
        });

        // Doğum tarihi formatı
        document.getElementById('birthDate').addEventListener('input', function(e) {
            let value = e.target.value.replace(/\D/g, ''); // Sadece rakamları al
            if (value.length >= 2) {
                value = value.substring(0, 2) + '/' + value.substring(2);
            }
            if (value.length >= 5) {
                value = value.substring(0, 5) + '/' + value.substring(5, 9);
            }
            e.target.value = value;
            cvData.birthDate = value;
            updatePreview();
        });

        // Input değişikliklerini dinle
        ['fullName', 'jobTitle', 'phone', 'email', 'address', 'website', 
         'maritalStatus', 'employmentStatus', 'graduationDate', 'careerLevel', 'summary', 'interests'].forEach(id => {
            const element = document.getElementById(id);
            element.addEventListener('input', function() {
                cvData[id] = this.value;
                updatePreview();
            });
            if (element.tagName === 'SELECT') {
                element.addEventListener('change', function() {
                    cvData[id] = this.value;
                    updatePreview();
                });
            }
        });

        // Deneyim ekleme
        function addExperience() {
            cvData.experiences.push({ title: '', company: '', period: '', description: '' });
            renderExperiences();
        }

        function removeExperience(index) {
            cvData.experiences.splice(index, 1);
            renderExperiences();
        }

        function renderExperiences() {
            const container = document.getElementById('experienceItems');
            container.innerHTML = cvData.experiences.map((exp, index) => `
                <div class="array-item">
                    <input type="text" placeholder="İş Unvanı" value="${exp.title}" 
                        oninput="cvData.experiences[${index}].title = this.value; updatePreview();">
                    <input type="text" placeholder="Şirket Adı" value="${exp.company}" 
                        oninput="cvData.experiences[${index}].company = this.value; updatePreview();">
                    <input type="text" placeholder="Tarih (örn: Ocak 2017 - Mayıs 2018)" value="${exp.period}" 
                        oninput="cvData.experiences[${index}].period = this.value; updatePreview();">
                    <textarea placeholder="Açıklama" 
                        oninput="cvData.experiences[${index}].description = this.value; updatePreview();">${exp.description}</textarea>
                    <button class="btn-remove no-print" onclick="removeExperience(${index})">Sil</button>
                </div>
            `).join('');
            updatePreview();
        }

        // Eğitim ekleme
        function addEducation() {
            cvData.educations.push({ degree: '', school: '', period: '', gpa: '' });
            renderEducations();
        }

        function removeEducation(index) {
            cvData.educations.splice(index, 1);
            renderEducations();
        }

        function renderEducations() {
            const container = document.getElementById('educationItems');
            container.innerHTML = cvData.educations.map((edu, index) => `
                <div class="array-item">
                    <input type="text" placeholder="Derece (örn: Lisans)" value="${edu.degree}" 
                        oninput="cvData.educations[${index}].degree = this.value; updatePreview();">
                    <input type="text" placeholder="Üniversite/Okul" value="${edu.school}" 
                        oninput="cvData.educations[${index}].school = this.value; updatePreview();">
                    <input type="text" placeholder="Tarih (örn: 2010-2014)" value="${edu.period}" 
                        oninput="cvData.educations[${index}].period = this.value; updatePreview();">
                    <input type="text" placeholder="Not Ortalaması (opsiyonel)" value="${edu.gpa}" 
                        oninput="cvData.educations[${index}].gpa = this.value; updatePreview();">
                    <button class="btn-remove no-print" onclick="removeEducation(${index})">Sil</button>
                </div>
            `).join('');
            updatePreview();
        }

        // Yetenek ekleme
        function addSkill() {
            cvData.skills.push('');
            renderSkills();
        }

        function removeSkill(index) {
            cvData.skills.splice(index, 1);
            renderSkills();
        }

        function renderSkills() {
            const container = document.getElementById('skillItems');
            container.innerHTML = cvData.skills.map((skill, index) => `
                <div class="array-item">
                    <input type="text" placeholder="Yetenek (örn: JavaScript)" value="${skill}" 
                        oninput="cvData.skills[${index}] = this.value; updatePreview();">
                    <button class="btn-remove no-print" onclick="removeSkill(${index})">Sil</button>
                </div>
            `).join('');
            updatePreview();
        }

        // Dil ekleme
        function addLanguage() {
            cvData.languages.push({ name: '', level: '' });
            renderLanguages();
        }

        function removeLanguage(index) {
            cvData.languages.splice(index, 1);
            renderLanguages();
        }

        function renderLanguages() {
            const container = document.getElementById('languageItems');
            container.innerHTML = cvData.languages.map((lang, index) => `
                <div class="array-item">
                    <input type="text" placeholder="Dil (örn: İngilizce)" value="${lang.name}" 
                        oninput="cvData.languages[${index}].name = this.value; updatePreview();">
                    <select onchange="cvData.languages[${index}].level = this.value; updatePreview();" style="width: 100%; padding: 10px 12px; border: 1px solid #d1d5db; border-radius: 6px; font-size: 0.9em; margin-bottom: 10px; background: white;">
                        <option value="">Seviye Seçiniz</option>
                        <option value="Başlangıç" ${lang.level === 'Başlangıç' ? 'selected' : ''}>Başlangıç</option>
                        <option value="Orta" ${lang.level === 'Orta' ? 'selected' : ''}>Orta</option>
                        <option value="İleri" ${lang.level === 'İleri' ? 'selected' : ''}>İleri</option>
                    </select>
                    <button class="btn-remove no-print" onclick="removeLanguage(${index})">Sil</button>
                </div>
            `).join('');
            updatePreview();
        }

        // Önizlemeyi güncelle
        function updatePreview() {
            // Fotoğraf
            const photoContainer = document.getElementById('cvPhotoContainer');
            if (cvData.photo) {
                photoContainer.innerHTML = `<img decoding="async" src="${cvData.photo}" class="cv-photo" alt="Profil">`;
            } else {
                photoContainer.innerHTML = '<div class="cv-photo-placeholder"></div>';
            }

            // İsim ve Unvan
            document.getElementById('cvFullName').textContent = cvData.fullName || 'Ad Soyad';
            document.getElementById('cvJobTitle').textContent = cvData.jobTitle || 'Meslek';

            // İletişim
            const contact = [];
            if (cvData.phone) contact.push(`
                <div class="cv-contact-item">
                    <svg fill="currentColor" viewBox="0 0 20 20"><path d="M2 3a1 1 0 011-1h2.153a1 1 0 01.986.836l.74 4.435a1 1 0 01-.54 1.06l-1.548.773a11.037 11.037 0 006.105 6.105l.774-1.548a1 1 0 011.059-.54l4.435.74a1 1 0 01.836.986V17a1 1 0 01-1 1h-2C7.82 18 2 12.18 2 5V3z"/></svg>
                    <span>${cvData.phone}</span>
                </div>
            `);
            if (cvData.email) contact.push(`
                <div class="cv-contact-item">
                    <svg fill="currentColor" viewBox="0 0 20 20"><path d="M2.003 5.884L10 9.882l7.997-3.998A2 2 0 0016 4H4a2 2 0 00-1.997 1.884z"/><path d="M18 8.118l-8 4-8-4V14a2 2 0 002 2h12a2 2 0 002-2V8.118z"/></svg>
                    <span>${cvData.email}</span>
                </div>
            `);
            if (cvData.address) contact.push(`
                <div class="cv-contact-item">
                    <svg fill="currentColor" viewBox="0 0 20 20"><path fill-rule="evenodd" d="M5.05 4.05a7 7 0 119.9 9.9L10 18.9l-4.95-4.95a7 7 0 010-9.9zM10 11a2 2 0 100-4 2 2 0 000 4z" clip-rule="evenodd"/></svg>
                    <span>${cvData.address}</span>
                </div>
            `);
            if (cvData.website) contact.push(`
                <div class="cv-contact-item">
                    <svg fill="currentColor" viewBox="0 0 20 20"><path fill-rule="evenodd" d="M4.083 9h1.946c.089-1.546.383-2.97.837-4.118A6.004 6.004 0 004.083 9zM10 2a8 8 0 100 16 8 8 0 000-16zm0 2c-.076 0-.232.032-.465.262-.238.234-.497.623-.737 1.182-.389.907-.673 2.142-.766 3.556h3.936c-.093-1.414-.377-2.649-.766-3.556-.24-.56-.5-.948-.737-1.182C10.232 4.032 10.076 4 10 4zm3.971 5c-.089-1.546-.383-2.97-.837-4.118A6.004 6.004 0 0115.917 9h-1.946zm-2.003 2H8.032c.093 1.414.377 2.649.766 3.556.24.56.5.948.737 1.182.233.23.389.262.465.262.076 0 .232-.032.465-.262.238-.234.498-.623.737-1.182.389-.907.673-2.142.766-3.556zm1.166 4.118c.454-1.147.748-2.572.837-4.118h1.946a6.004 6.004 0 01-2.783 4.118zm-6.268 0C6.412 13.97 6.118 12.546 6.03 11H4.083a6.004 6.004 0 002.783 4.118z" clip-rule="evenodd"/></svg>
                    <span>${cvData.website}</span>
                </div>
            `);
            document.getElementById('cvContact').innerHTML = contact.join('') || '<div class="cv-contact-item">İletişim bilgileri</div>';

            // Kişisel Bilgiler
            const personalInfo = [];
            if (cvData.birthDate) personalInfo.push(`
                <div class="cv-info-item">
                    <div class="cv-info-label">Doğum Tarihi</div>
                    <div class="cv-info-value">${cvData.birthDate}</div>
                </div>
            `);
            if (cvData.maritalStatus) personalInfo.push(`
                <div class="cv-info-item">
                    <div class="cv-info-label">Medeni Durum</div>
                    <div class="cv-info-value">${cvData.maritalStatus}</div>
                </div>
            `);
            if (cvData.employmentStatus) personalInfo.push(`
                <div class="cv-info-item">
                    <div class="cv-info-label">Çalışma Durumu</div>
                    <div class="cv-info-value">${cvData.employmentStatus}</div>
                </div>
            `);
            if (cvData.graduationDate) personalInfo.push(`
                <div class="cv-info-item">
                    <div class="cv-info-label">Mezuniyet Tarihi</div>
                    <div class="cv-info-value">${cvData.graduationDate}</div>
                </div>
            `);
            if (cvData.careerLevel) personalInfo.push(`
                <div class="cv-info-item">
                    <div class="cv-info-label">Kariyer Seviyesi</div>
                    <div class="cv-info-value">${cvData.careerLevel}</div>
                </div>
            `);
            document.getElementById('cvPersonalInfo').innerHTML = personalInfo.join('') || '<div class="cv-info-item"><div class="cv-info-value">Kişisel bilgiler</div></div>';

            // Diller
            document.getElementById('cvLanguages').innerHTML = cvData.languages.length > 0
                ? cvData.languages.filter(l => l.name.trim()).map(lang => `
                    <div class="cv-language-item">
                        <div class="cv-language-name">${lang.name}</div>
                        <div class="cv-language-level">${lang.level || ''}</div>
                    </div>
                `).join('')
                : '<div class="cv-language-item"><div class="cv-language-name">Dil bilgisi</div><div class="cv-language-level"></div></div>';

            // Özet
            document.getElementById('cvSummary').textContent = cvData.summary || 'Profesyonel özet buraya gelecek...';

            // Yetenekler
            document.getElementById('cvSkills').innerHTML = cvData.skills.length > 0
                ? cvData.skills.filter(s => s.trim()).map(skill => `
                    <div class="cv-skill-tag">${skill}</div>
                `).join('')
                : '<div class="cv-skill-tag">Yetenekler</div>';

            // Deneyimler
            document.getElementById('cvExperience').innerHTML = cvData.experiences.length > 0
                ? cvData.experiences.map(exp => `
                    <div class="cv-entry">
                        <div class="cv-entry-header">
                            <div>
                                <div class="cv-entry-title">${exp.title || 'İş Unvanı'}</div>
                                <div class="cv-entry-company">${exp.company || 'Şirket Adı'}</div>
                            </div>
                            <div class="cv-entry-period">${exp.period || 'Tarih'}</div>
                        </div>
                        ${exp.description ? `<div class="cv-entry-description">${exp.description}</div>` : ''}
                    </div>
                `).join('')
                : '<div class="cv-entry"><div class="cv-entry-description">İş deneyimi bilgisi ekleyin</div></div>';

            // Eğitim
            document.getElementById('cvEducation').innerHTML = cvData.educations.length > 0
                ? cvData.educations.map(edu => `
                    <div class="cv-entry">
                        <div class="cv-entry-header">
                            <div>
                                <div class="cv-entry-title">${edu.degree || 'Derece'}</div>
                                <div class="cv-entry-company">${edu.school || 'Üniversite/Okul'}</div>
                            </div>
                            <div class="cv-entry-period">${edu.period || 'Tarih'}${edu.gpa ? ` / ${edu.gpa} not ortalaması` : ''}</div>
                        </div>
                    </div>
                `).join('')
                : '<div class="cv-entry"><div class="cv-entry-description">Eğitim bilgisi ekleyin</div></div>';

            // İlgi Alanları
            document.getElementById('cvInterests').textContent = cvData.interests || 'İlgi alanlarınızı ekleyin...';
        }

        // PDF oluşturma
        async function generatePDF() {
            const { jsPDF } = window.jspdf;
            const element = document.getElementById('cvPreview');
            const btn = document.querySelector('.btn-download');
            const container = document.querySelector('.container');
            const appContainer = document.querySelector('.app-container');
            const previewPanel = document.querySelector('.preview-panel');
            
            btn.disabled = true;
            btn.textContent = 'PDF oluşturuluyor...';
            
            // Önizlemeyi göster
            appContainer.classList.add('show-preview');
            previewPanel.classList.add('show');
            container.classList.add('pdf-mode');
            
            // Önizlemeyi güncelle
            updatePreview();
            
            try {
                await new Promise(resolve => setTimeout(resolve, 300));
                
                const canvas = await html2canvas(element, {
                    scale: 2,
                    useCORS: true,
                    logging: false,
                    backgroundColor: '#ffffff'
                });

                const imgData = canvas.toDataURL('image/png');
                const pdf = new jsPDF('p', 'mm', 'a4');
                
                const pdfWidth = pdf.internal.pageSize.getWidth();
                const pdfHeight = pdf.internal.pageSize.getHeight();
                const imgWidth = canvas.width;
                const imgHeight = canvas.height;
                const ratio = Math.min(pdfWidth / imgWidth, pdfHeight / imgHeight);
                const imgX = (pdfWidth - imgWidth * ratio) / 2;
                const imgY = 8;

                pdf.addImage(imgData, 'PNG', imgX, imgY, imgWidth * ratio, imgHeight * ratio);
                
                const fileName = (cvData.fullName || 'CV').replace(/\s+/g, '_') + '_CV.pdf';
                pdf.save(fileName);
                
                container.classList.remove('pdf-mode');
                appContainer.classList.remove('show-preview');
                previewPanel.classList.remove('show');
                btn.disabled = false;
                btn.textContent = '&#x1f4e5; PDF Olarak İndir';
                
                alert('CV başarıyla PDF olarak kaydedildi!');
            } catch (error) {
                console.error('PDF oluşturma hatası:', error);
                container.classList.remove('pdf-mode');
                appContainer.classList.remove('show-preview');
                previewPanel.classList.remove('show');
                btn.disabled = false;
                btn.textContent = '&#x1f4e5; PDF Olarak İndir';
                alert('PDF oluşturulurken bir hata oluştu. Lütfen tekrar deneyin.');
            }
        }

        // İlk render
        updatePreview();
    </script>



<h2 class="wp-block-heading"><strong>Ücretsiz CV Oluşturma</strong></h2>



<p><br>Günümüzde iş başvurularında etkileyici bir CV, başarıya giden yolu açar. <strong>Ücretsiz CV oluşturma</strong> araçları, profesyonel bir özgeçmiş hazırlamak isteyenler için mükemmel bir çözüm sunar. İnternetteki çeşitli platformlar sayesinde, hiç ücret ödemeden kolayca <strong>online CV hazırlama</strong> işlemini gerçekleştirebilirsiniz. İş arayanlar, sadece birkaç adımda kendi <strong>özgeçmişlerini oluşturma</strong> fırsatını yakalar. Kullanıcı dostu arayüzler ve şablonlar sayesinde, <strong>CV oluşturma siteleri</strong> hem hızlı hem de pratik bir seçenek sunar. Kariyer yolculuğunuzda bir adım önde olmak için, <strong>kolay CV hazırlama</strong> platformlarını keşfedin!</p>



<figure class="wp-block-image size-large"><img fetchpriority="high" decoding="async" width="1024" height="683" src="https://bilgidefterim.com/wp-content/uploads/2025/07/cv-1024x683.webp" alt="Ücretsiz CV Oluştur" class="wp-image-824" srcset="https://bilgidefterim.com/wp-content/uploads/2025/07/cv-1024x683.webp 1024w, https://bilgidefterim.com/wp-content/uploads/2025/07/cv-300x200.webp 300w, https://bilgidefterim.com/wp-content/uploads/2025/07/cv-768x512.webp 768w, https://bilgidefterim.com/wp-content/uploads/2025/07/cv-1320x880.webp 1320w, https://bilgidefterim.com/wp-content/uploads/2025/07/cv.webp 1536w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>
]]></content:encoded>
					
					<wfw:commentRss>https://bilgidefterim.com/ucretsiz-cv-olustur/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
