/* ============================================================ BAN YARO — Social-Media-Job Bewerbung ============================================================ */ window.Page_jobs = (() => { let _container = null; let _appState = null; const _ph = (name, size = 22) => ``; async function init(container, appState) { _container = container; _appState = appState; await _render(); } async function _render() { // Bestehende Bewerbung prüfen (nur wenn eingeloggt) let existingApp = null; let trialStatus = null; if (_appState.user) { try { const r = await API.get('/jobs/my-application'); existingApp = r.application; trialStatus = await API.get('/jobs/luna-trial-status'); } catch { /* ignorieren */ } } _container.innerHTML = `
🐾

Social-Media-Manager/in gesucht

Werde das Gesicht von Ban Yaro auf Instagram & TikTok

Die Stelle

${_infoRow(_ph('map-pin'), 'Remote', '100 % flexibel — du arbeitest wann und wie du willst')} ${_infoRow(_ph('calendar-dots'), 'Umfang', '1–2 Posts pro Woche auf Instagram & TikTok')} ${_infoRow(_ph('tag'), 'Vergütung', '50 € / Monat — wächst mit der Community')} ${_infoRow(_ph('robot'), 'Luna an deiner Seite', 'Unser KI-Assistent schreibt Captions, generiert Post-Ideen und Hashtags — du wählst aus und postest')} ${_infoRow(_ph('star'), 'Gründer-Status', 'Du wirst Teil der ersten 100 Gründer — für immer')}
Luna 14 Tage kostenlos testen

Mit deiner Bewerbung schalten wir dir sofort den vollen Zugang zu Luna frei — unserem KI-Assistenten für Social-Media-Posts. Probiere ihn einfach aus, bevor du dich entscheidest.

${trialStatus?.active ? `
Dein Probezugang läuft noch ${trialStatus.remaining_days} Tage
` : ''}

Wen wir suchen

  • Du hast einen Hund — und liebst ihn sehr 🐕
  • Du bist auf Instagram oder TikTok zuhause (nicht professionell, aber aktiv)
  • Du schreibst gerne und authentisch auf Deutsch
  • Du hast Lust, eine junge App bekannt zu machen — aus Überzeugung
  • Kein Lebenslauf nötig. Kein Bewerbungs-Anschreiben. Einfach du.
${existingApp ? _renderStatus(existingApp) : _renderForm()}
`; if (!existingApp) { _bindForm(); } } function _infoRow(icon, label, text) { return `
${icon}
${label}
${text}
`; } function _renderStatus(app) { const statusMap = { pending: { icon: 'clock', text: 'Deine Bewerbung ist eingegangen — wir melden uns bald!', color: 'var(--c-text-secondary)' }, reviewing: { icon: 'magnifying-glass', text: 'Wir schauen uns deine Bewerbung gerade genauer an.', color: '#0284c7' }, accepted: { icon: 'check-circle', text: 'Herzlichen Glückwunsch — du bist dabei!', color: 'var(--c-success)' }, rejected: { icon: 'x', text: 'Es hat diesmal leider nicht geklappt.', color: 'var(--c-danger)' }, }; const s = statusMap[app.status] || statusMap.pending; return `
${s.text}
Bewerbung eingereicht: ${app.created_at?.slice(0,10)}
${app.admin_note ? `
${UI.escape(app.admin_note)}
` : ''}
`; } function _renderForm() { const u = _appState.user; return `

Jetzt bewerben

@

Dein öffentliches Profil auf Instagram oder TikTok

Mindestens 80 Zeichen

Beispiel-Posts, Portfolio, kurzes Video von dir und deinem Hund — max. 3 Dateien, je 10 MB. PDF, Bild oder Video.

${!u ? `
💡 Tipp: Wenn du dich vorher anmeldest oder registrierst, bekommst du sofort den 14-tägigen Luna-Probezugang.
` : ''}
`; } function _bindForm() { document.getElementById('jobs-login-link')?.addEventListener('click', e => { e.preventDefault(); if (window.App) App.navigate('settings'); }); document.getElementById('jobs-form')?.addEventListener('submit', async e => { e.preventDefault(); const btn = e.target.querySelector('[type="submit"]'); const fd = new FormData(e.target); // Dateien aus file-input übernehmen const fileInput = document.getElementById('jobs-files'); if (fileInput?.files?.length) { fd.delete('files'); for (const f of fileInput.files) fd.append('files', f); } await UI.asyncButton(btn, async () => { const resp = await fetch('/api/jobs/apply', { method: 'POST', body: fd, headers: { 'Authorization': `Bearer ${localStorage.getItem('by_token') || ''}` }, credentials: 'include', }); if (!resp.ok) { const err = await resp.json().catch(() => ({})); throw new Error(err.detail || 'Fehler beim Absenden.'); } const result = await resp.json(); if (result.luna_trial) { UI.toast.success('🎉 Bewerbung eingegangen! Dein Luna-Probezugang ist jetzt aktiv.'); // User-State aktualisieren damit Luna sofort zugänglich ist if (_appState.user && window.API) { try { _appState.user = await API.auth.me(); } catch { /* ignore */ } } } else { UI.toast.success('Bewerbung eingegangen! Wir melden uns bald.'); } await _render(); }); }); } return { init }; })();