import os import random from django.core.management.base import BaseCommand from faker import Faker from recruitment.models import Job, Candidate fake = Faker() class Command(BaseCommand): help = 'Generate 20 fake jobs and 50 fake candidates' def handle(self, *args, **kwargs): # Clear existing fake data (optional) Job.objects.filter(title__startswith='Fake Job').delete() Candidate.objects.filter(name__startswith='Candidate ').delete() self.stdout.write("Creating fake jobs...") jobs = [] for i in range(20): job = Job.objects.create( title=f"Fake Job {i+1}", description_en=fake.paragraph(nb_sentences=5), description_ar=fake.text(max_nb_chars=200), is_published=True, posted_to_linkedin=random.choice([True, False]) ) jobs.append(job) self.stdout.write("Creating fake candidates...") for i in range(50): job = random.choice(jobs) resume_path = f"resumes/fake_resume_{i+1}.pdf" parsed = { 'name': fake.name(), 'skills': [fake.job() for _ in range(5)], 'summary': fake.text(max_nb_chars=300) } Candidate.objects.create( job=job, name=f"Candidate {i+1}", email=fake.email(), resume=resume_path, # You can create dummy files if needed parsed_summary=str(parsed), applied=random.choice([True, False]) ) self.stdout.write(self.style.SUCCESS("✔️ Successfully generated 20 jobs and 50 candidates"))