Lab0ra utilise l'intelligence artificielle pour analyser en profondeur le potentiel de chaque candidat. Fini les mots-clés superficiels, place à la compréhension réelle des compétences et de la personnalité.
Les recruteurs découvrent des talents pré-qualifiés qui correspondent vraiment à leur culture d'entreprise, gagnant un temps précieux et réduisant les biais cognitifs.
Notre IA analyse votre profil, vos compétences et l'offre d'emploi pour générer
automatiquement un CV et une lettre de motivation parfaitement adaptés. Elle utilise des
algorithmes avancés pour optimiser vos chances de décrocher un entretien.
Absolument ! Nous utilisons un chiffrement de niveau bancaire et respectons le RGPD. Vos
données personnelles ne sont jamais partagées avec des tiers et sont stockées de manière
sécurisée sur nos serveurs.
Oui, vous pouvez annuler votre abonnement à tout moment depuis votre tableau de bord. Aucun
frais d'annulation ne vous sera facturé, et vous conserverez l'accès aux fonctionnalités
Premium jusqu'à la fin de votre période de facturation.
Avec le plan gratuit, vous pouvez générer 3 CV par mois. Les plans Premium offrent des
générations illimitées, vous permettant de postuler à autant d'offres que vous le souhaitez
sans restriction.
// Update dots
dots.forEach((dot, index) => {
dot.classList.remove('active');
dot.style.background = 'rgba(255, 255, 255, 0.3)';
});
if (dots[currentTestimonialSlide - 1]) {
dots[currentTestimonialSlide - 1].classList.add('active');
dots[currentTestimonialSlide - 1].style.background = '#00ccff';
}
}
function nextTestimonialSlide() {
currentTestimonialSlide++;
showTestimonialSlide(currentTestimonialSlide);
}
function startTestimonialAutoSlide() {
console.log('Starting testimonials auto-slide...');
if (testimonialAutoSlide) {
clearInterval(testimonialAutoSlide);
}
testimonialAutoSlide = setInterval(nextTestimonialSlide, 4000); // Change slide every 4 seconds
}
function stopTestimonialAutoSlide() {
console.log('Stopping testimonials auto-slide...');
if (testimonialAutoSlide) {
clearInterval(testimonialAutoSlide);
testimonialAutoSlide = null;
}
}
// Make functions globally available
window.startTestimonialAutoSlide = startTestimonialAutoSlide;
window.stopTestimonialAutoSlide = stopTestimonialAutoSlide;
// FAQ Toggle Function
function toggleFAQ(button) {
const answer = button.nextElementSibling;
const icon = button.querySelector('.faq-icon');
if (answer.style.maxHeight === '0px' || answer.style.maxHeight === '') {
// Close all other FAQs
document.querySelectorAll('.faq-answer').forEach(item => {
if (item !== answer) {
item.style.maxHeight = '0px';
item.style.padding = '0 1.5rem';
}
});
document.querySelectorAll('.faq-icon').forEach(item => {
if (item !== icon) {
item.textContent = '+';
item.style.transform = 'rotate(0deg)';
}
});
// Open this FAQ
answer.style.maxHeight = answer.scrollHeight + 'px';
answer.style.padding = '0 1.5rem 1.5rem 1.5rem';
icon.textContent = '−';
icon.style.transform = 'rotate(180deg)';
} else {
// Close this FAQ
answer.style.maxHeight = '0px';
answer.style.padding = '0 1.5rem';
icon.textContent = '+';
icon.style.transform = 'rotate(0deg)';
}
}
// Make toggleFAQ globally accessible
window.toggleFAQ = toggleFAQ;
// Navigate to premium checkout
function goToPremiumCheckout() {
// Check if user is logged in
const auth = firebase.auth();
const user = auth.currentUser;
if (user) {
// User is logged in, go directly to checkout
window.location.href = 'checkout.html';
} else {
// User not signed in, show login modal first
openLoginModal();
// Store intention to go to premium after login
localStorage.setItem('redirectToPremium', 'true');
// Add a message to indicate they need to login first
const loginMessage = document.getElementById('login-message');
if (loginMessage) {
loginMessage.innerHTML = 'Connectez-vous pour accéder à Lab0ra Premium';
}
}
}
// Clear form fields when modal closes
function closeLoginModal() {
document.getElementById('login-modal').classList.remove('active');
// Clear all form fields
document.getElementById('login-email').value = '';
document.getElementById('login-password').value = '';
document.getElementById('signup-email').value = '';
document.getElementById('signup-password').value = '';
document.getElementById('signup-password-confirm').value = '';
document.getElementById('user-type').value = '';
document.getElementById('reset-email').value = '';
window.laboraAuth.clearMessages();
}
// Newsletter functionality with EmailJS
document.getElementById('newsletter-form').addEventListener('submit', async function (e) {
e.preventDefault();
const email = document.getElementById('newsletter-email').value;
const messageDiv = document.getElementById('newsletter-message');
const submitButton = e.target.querySelector('button[type="submit"]');
// Disable button during submission
submitButton.disabled = true;
submitButton.innerHTML = ' Inscription...';
try {
// Save to Firestore
if (window.firebaseConfig && window.firebaseConfig.isFirebaseReady()) {
const db = window.firebaseConfig.db;
await db.collection('newsletter').add({
email: email,
subscribedAt: firebase.firestore.FieldValue.serverTimestamp(),
source: 'homepage'
});
}
// Send welcome email via EmailJS (if configured)
if (typeof emailjs !== 'undefined' && window.emailjsConfig) {
try {
await emailjs.send(
window.emailjsConfig.serviceId,
window.emailjsConfig.newsletterTemplate,
{
email: email,
date: new Date().toLocaleDateString('fr-FR'),
source: 'homepage'
}
);
} catch (emailError) {
console.log('EmailJS not configured or error:', emailError);
}
}
// Show success message
messageDiv.textContent = '✅ Inscription réussie ! Vérifiez votre email pour confirmer.';
messageDiv.style.color = '#00ff88';
messageDiv.style.display = 'block';
// Clear form
document.getElementById('newsletter-email').value = '';
// Hide message after 5 seconds
setTimeout(() => {
messageDiv.style.display = 'none';
}, 5000);
} catch (error) {
console.error('Newsletter error:', error);
messageDiv.textContent = "❌ Erreur lors de l'inscription. Veuillez réessayer.";
messageDiv.style.color = '#ff4444';
messageDiv.style.display = 'block';
} finally {
// Re-enable button
submitButton.disabled = false;
submitButton.innerHTML = "S'abonner ";
}
});
// Premium checkout with plan type
function goToPremiumCheckout(planType = 'monthly') {
const auth = firebase.auth();
const user = auth.currentUser;
if (user) {
// User is logged in, go to checkout with plan type
window.location.href = `checkout.html?plan=${planType}`;
} else {
// Store plan type for after login
localStorage.setItem('redirectToPremium', 'true');
localStorage.setItem('selectedPlan', planType);
openLoginModal();
}
}