sivan26 commited on
Commit
721df7c
·
verified ·
1 Parent(s): af9900a

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +224 -134
app.py CHANGED
@@ -1,139 +1,229 @@
1
- import random
2
- from typing import List, Dict
3
- import pandas as pd
4
  import gradio as gr
 
 
5
  from sentence_transformers import SentenceTransformer
6
  from sklearn.metrics.pairwise import cosine_similarity
 
 
 
7
 
8
- # ------------------------------
9
- # 1. Generate synthetic job database
10
- # ------------------------------
11
- def generate_job_database() -> List[Dict]:
12
- job_templates = {
13
- "Technology": [
14
- {"title": "Software Engineer", "desc": "Design and develop software applications",
15
- "skills": ["Python", "Java", "JavaScript", "Git", "Agile", "Problem Solving"]},
16
- {"title": "Data Scientist", "desc": "Analyze complex data to extract business insights",
17
- "skills": ["Python", "R", "Machine Learning", "SQL", "Statistics", "Pandas"]},
18
- ],
19
- "Healthcare": [
20
- {"title": "Registered Nurse", "desc": "Provide patient care and medical support",
21
- "skills": ["Patient Care", "Medical Knowledge", "CPR", "Communication", "Compassion"]},
22
- {"title": "Medical Doctor", "desc": "Diagnose and treat medical conditions",
23
- "skills": ["Medical Diagnosis", "Patient Care", "Clinical Skills", "Medical Ethics", "Communication"]},
24
- ],
25
- "Finance": [
26
- {"title": "Financial Analyst", "desc": "Analyze financial data and market trends",
27
- "skills": ["Financial Modeling", "Excel", "Data Analysis", "Financial Reporting", "Market Research"]},
28
- {"title": "Accountant", "desc": "Manage financial records and tax preparation",
29
- "skills": ["Accounting", "QuickBooks", "Tax Preparation", "Financial Reporting", "Attention to Detail"]},
30
- ],
31
- "Marketing": [
32
- {"title": "Digital Marketing Manager", "desc": "Develop and execute digital marketing strategies",
33
- "skills": ["Digital Marketing", "SEO", "Social Media", "Google Analytics", "Content Strategy"]},
34
- {"title": "Content Marketing Specialist", "desc": "Create engaging content for marketing campaigns",
35
- "skills": ["Content Creation", "SEO", "Social Media", "Writing", "Brand Management"]},
36
- ],
37
- "Education": [
38
- {"title": "Elementary School Teacher", "desc": "Teach fundamental subjects to young students",
39
- "skills": ["Teaching", "Classroom Management", "Curriculum Development", "Student Assessment", "Communication"]},
40
- {"title": "High School Teacher", "desc": "Educate teenagers in specialized subjects",
41
- "skills": ["Subject Expertise", "Teaching", "Classroom Management", "Lesson Planning", "Student Mentoring"]},
42
- ],
43
- "Sales": [
44
- {"title": "Sales Representative", "desc": "Sell products and services to customers",
45
- "skills": ["Sales", "Customer Relations", "Communication", "Negotiation", "Product Knowledge"]},
46
- {"title": "Account Manager", "desc": "Manage relationships with key clients",
47
- "skills": ["Account Management", "Client Relations", "Sales", "Communication", "Problem Solving"]},
48
- ],
49
- "Operations": [
50
- {"title": "Operations Manager", "desc": "Oversee daily business operations",
51
- "skills": ["Operations Management", "Process Improvement", "Team Leadership", "Budget Management", "Problem Solving"]},
52
- {"title": "Project Manager", "desc": "Lead and coordinate project execution",
53
- "skills": ["Project Management", "PMP", "Agile", "Risk Management", "Communication"]},
54
- ],
55
- "Creative": [
56
- {"title": "Graphic Designer", "desc": "Create visual designs for various media",
57
- "skills": ["Adobe Creative Suite", "Graphic Design", "Typography", "Brand Design", "Creativity"]},
58
- {"title": "Content Writer", "desc": "Create written content for various platforms",
59
- "skills": ["Writing", "Content Creation", "SEO", "Research", "Editing"]},
60
- ]
61
- }
62
-
63
- experience_levels = ["Entry-level", "Mid-level", "Senior", "Lead/Principal"]
64
-
65
- jobs = []
66
- job_id = 1
67
- categories = list(job_templates.keys())
68
- jobs_per_category = 1000 // len(categories)
69
- remaining_jobs = 1000 % len(categories)
70
-
71
- for i, category in enumerate(categories):
72
- templates = job_templates[category]
73
- jobs_for_this_category = jobs_per_category + (1 if i < remaining_jobs else 0)
74
-
75
- for j in range(jobs_for_this_category):
76
- template = templates[j % len(templates)]
77
- title_variations = [
78
- template["title"],
79
- f"Senior {template['title']}",
80
- f"Junior {template['title']}",
81
- f"Lead {template['title']}",
82
- f"{template['title']} Specialist"
83
- ]
84
- title = title_variations[j % len(title_variations)]
85
- exp_level = random.choice(experience_levels)
86
- job = {
87
- "id": job_id,
88
- "title": title,
89
- "description": template["desc"],
90
- "requirements": template["skills"],
91
- "experience_level": exp_level,
92
- "category": category,
93
- "location": random.choice([
94
- "Remote", "New York, NY", "San Francisco, CA", "Chicago, IL",
95
- "Austin, TX", "Seattle, WA", "Boston, MA", "Los Angeles, CA"
96
- ])
97
- }
98
- jobs.append(job)
99
- job_id += 1
100
- return jobs
101
-
102
- # ------------------------------
103
- # 2. Prepare DataFrame and Embeddings
104
- # ------------------------------
105
- jobs = generate_job_database()
106
- df = pd.DataFrame(jobs)
107
- model = SentenceTransformer('sentence-transformers/all-MiniLM-L6-v2')
108
- job_embeddings = model.encode(df['requirements'].apply(lambda x: " ".join(x)).tolist())
109
-
110
- # ------------------------------
111
- # 3. Job Recommendation Function
112
- # ------------------------------
113
- def recommend_jobs(user_skills, top_k=5):
114
- user_embedding = model.encode([" ".join(user_skills)])
115
- similarities = cosine_similarity(user_embedding, job_embeddings)[0]
116
- top_indices = similarities.argsort()[-top_k:][::-1]
117
- top_jobs = df.iloc[top_indices]
118
- return top_jobs[['title', 'description', 'requirements', 'experience_level', 'category', 'location']]
119
-
120
- # ------------------------------
121
- # 4. Gradio Interface (v4.44.0 compatible)
122
- # ------------------------------
123
- def gradio_interface(skills_text):
124
- user_skills = [skill.strip() for skill in skills_text.split(",")]
125
- recommended = recommend_jobs(user_skills)
126
- return recommended.to_dict(orient="records")
127
-
128
- with gr.Blocks() as app:
129
- gr.Markdown("# AI Job Finder")
130
- gr.Markdown("Enter your skills (comma-separated) to find the best matching jobs!")
131
-
132
- skills_input = gr.Textbox(lines=2, placeholder="Python, SQL, Machine Learning")
133
- results_output = gr.Dataframe(headers=["Title", "Description", "Skills", "Experience", "Category", "Location"])
134
 
135
- btn = gr.Button("Find Jobs")
136
- btn.click(fn=gradio_interface, inputs=skills_input, outputs=results_output)
137
-
138
- if __name__ == "__main__":
139
- app.launch()
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
  import gradio as gr
2
+ import pandas as pd
3
+ import numpy as np
4
  from sentence_transformers import SentenceTransformer
5
  from sklearn.metrics.pairwise import cosine_similarity
6
+ import random
7
+ from typing import List, Dict
8
+ import os
9
 
10
+ class JobRecommendationSystem:
11
+ def __init__(self):
12
+ # Load a lightweight sentence transformer model for CPU
13
+ print("🤖 Loading AI model...")
14
+ self.model = SentenceTransformer('all-MiniLM-L6-v2')
15
+
16
+ # Generate comprehensive job database
17
+ print("📊 Generating job database...")
18
+ self.jobs_data = self._generate_job_database()
19
+
20
+ # Pre-compute job embeddings for efficiency
21
+ print("🧠 Computing job embeddings... This may take a moment.")
22
+ self.job_descriptions = [f"{job['title']} {job['description']} {' '.join(job['requirements'])}"
23
+ for job in self.jobs_data]
24
+
25
+ try:
26
+ self.job_embeddings = self.model.encode(self.job_descriptions, show_progress_bar=False)
27
+ print(f" Successfully loaded {len(self.jobs_data)} jobs!")
28
+ except Exception as e:
29
+ print(f"⚠️ Warning: Error computing embeddings: {e}")
30
+ # Fallback: compute embeddings in smaller batches
31
+ batch_size = 50
32
+ embeddings_list = []
33
+ for i in range(0, len(self.job_descriptions), batch_size):
34
+ batch = self.job_descriptions[i:i+batch_size]
35
+ batch_embeddings = self.model.encode(batch, show_progress_bar=False)
36
+ embeddings_list.append(batch_embeddings)
37
+ self.job_embeddings = np.vstack(embeddings_list)
38
+ print(f"✅ Successfully loaded {len(self.jobs_data)} jobs with batch processing!")
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
39
 
40
+ def _generate_job_database(self) -> List[Dict]:
41
+ """Generate a comprehensive database of 1000 jobs across various industries"""
42
+
43
+ # Job templates by category
44
+ job_templates = {
45
+ "Technology": [
46
+ {"title": "Software Engineer", "desc": "Design and develop software applications",
47
+ "skills": ["Python", "Java", "JavaScript", "Git", "Agile", "Problem Solving"]},
48
+ {"title": "Data Scientist", "desc": "Analyze complex data to extract business insights",
49
+ "skills": ["Python", "R", "Machine Learning", "SQL", "Statistics", "Pandas"]},
50
+ {"title": "DevOps Engineer", "desc": "Manage infrastructure and deployment pipelines",
51
+ "skills": ["AWS", "Docker", "Kubernetes", "Linux", "Python", "Terraform"]},
52
+ {"title": "Frontend Developer", "desc": "Create user interfaces and web experiences",
53
+ "skills": ["JavaScript", "React", "CSS", "HTML", "TypeScript", "Responsive Design"]},
54
+ {"title": "Backend Developer", "desc": "Build server-side applications and APIs",
55
+ "skills": ["Python", "Node.js", "Django", "PostgreSQL", "REST APIs", "MongoDB"]},
56
+ {"title": "Mobile Developer", "desc": "Develop applications for mobile platforms",
57
+ "skills": ["React Native", "Swift", "Kotlin", "Flutter", "iOS", "Android"]},
58
+ {"title": "QA Engineer", "desc": "Test software and ensure quality standards",
59
+ "skills": ["Selenium", "Test Automation", "Python", "Manual Testing", "JIRA"]},
60
+ {"title": "UI/UX Designer", "desc": "Design user interfaces and experiences",
61
+ "skills": ["Figma", "Adobe XD", "User Research", "Prototyping", "Design Systems"]},
62
+ {"title": "Machine Learning Engineer", "desc": "Deploy and maintain ML models in production",
63
+ "skills": ["Python", "TensorFlow", "PyTorch", "MLOps", "Docker", "Scikit-learn"]},
64
+ {"title": "Cybersecurity Analyst", "desc": "Monitor and protect against security threats",
65
+ "skills": ["Network Security", "Python", "SIEM", "Incident Response", "Penetration Testing"]},
66
+ {"title": "Database Administrator", "desc": "Manage and optimize database systems",
67
+ "skills": ["SQL", "MySQL", "PostgreSQL", "Database Design", "Performance Tuning"]},
68
+ {"title": "Cloud Architect", "desc": "Design scalable cloud infrastructure solutions",
69
+ "skills": ["AWS", "Azure", "GCP", "Cloud Architecture", "Microservices", "Serverless"]},
70
+ {"title": "Product Manager", "desc": "Define product strategy and roadmap",
71
+ "skills": ["Product Strategy", "Analytics", "Agile", "User Stories", "Market Research"]},
72
+ {"title": "Systems Administrator", "desc": "Maintain IT infrastructure and systems",
73
+ "skills": ["Linux", "Windows Server", "Network Administration", "Virtualization", "Shell Scripting"]},
74
+ {"title": "Full Stack Developer", "desc": "Work on both frontend and backend development",
75
+ "skills": ["JavaScript", "Python", "React", "Node.js", "SQL", "Git"]}
76
+ ],
77
+ "Healthcare": [
78
+ {"title": "Registered Nurse", "desc": "Provide patient care and medical support",
79
+ "skills": ["Patient Care", "Medical Knowledge", "CPR", "Communication", "Compassion"]},
80
+ {"title": "Medical Doctor", "desc": "Diagnose and treat medical conditions",
81
+ "skills": ["Medical Diagnosis", "Patient Care", "Clinical Skills", "Medical Ethics", "Communication"]},
82
+ {"title": "Physical Therapist", "desc": "Help patients recover from injuries",
83
+ "skills": ["Rehabilitation", "Exercise Therapy", "Patient Assessment", "Anatomy", "Communication"]},
84
+ {"title": "Medical Technologist", "desc": "Perform laboratory tests and analysis",
85
+ "skills": ["Laboratory Skills", "Medical Testing", "Quality Control", "Attention to Detail", "Safety Protocols"]},
86
+ {"title": "Pharmacist", "desc": "Dispense medications and provide drug information",
87
+ "skills": ["Pharmaceutical Knowledge", "Patient Counseling", "Drug Interactions", "Attention to Detail", "Regulatory Compliance"]},
88
+ {"title": "Medical Assistant", "desc": "Support healthcare providers with patient care",
89
+ "skills": ["Medical Procedures", "Patient Communication", "Medical Records", "Scheduling", "Basic Clinical Skills"]},
90
+ {"title": "Healthcare Administrator", "desc": "Manage healthcare facility operations",
91
+ "skills": ["Healthcare Management", "Budget Management", "Regulatory Compliance", "Leadership", "Strategic Planning"]},
92
+ {"title": "Radiologic Technologist", "desc": "Perform diagnostic imaging procedures",
93
+ "skills": ["Radiology", "Medical Imaging", "Patient Safety", "Equipment Operation", "Anatomy Knowledge"]}
94
+ ],
95
+ "Finance": [
96
+ {"title": "Financial Analyst", "desc": "Analyze financial data and market trends",
97
+ "skills": ["Financial Modeling", "Excel", "Data Analysis", "Financial Reporting", "Market Research"]},
98
+ {"title": "Investment Banker", "desc": "Provide financial advisory services",
99
+ "skills": ["Financial Analysis", "Valuation", "Excel", "Presentation Skills", "Client Relations"]},
100
+ {"title": "Accountant", "desc": "Manage financial records and tax preparation",
101
+ "skills": ["Accounting", "QuickBooks", "Tax Preparation", "Financial Reporting", "Attention to Detail"]},
102
+ {"title": "Risk Analyst", "desc": "Assess and manage financial risks",
103
+ "skills": ["Risk Assessment", "Statistical Analysis", "Financial Modeling", "Regulatory Knowledge", "Problem Solving"]},
104
+ {"title": "Portfolio Manager", "desc": "Manage investment portfolios",
105
+ "skills": ["Investment Strategy", "Portfolio Analysis", "Market Research", "Risk Management", "Client Communication"]},
106
+ {"title": "Credit Analyst", "desc": "Evaluate creditworthiness of borrowers",
107
+ "skills": ["Credit Analysis", "Financial Modeling", "Risk Assessment", "Banking Regulations", "Excel"]},
108
+ {"title": "Insurance Underwriter", "desc": "Evaluate insurance applications and risks",
109
+ "skills": ["Risk Assessment", "Insurance Knowledge", "Data Analysis", "Decision Making", "Attention to Detail"]},
110
+ {"title": "Tax Consultant", "desc": "Provide tax planning and preparation services",
111
+ "skills": ["Tax Law", "Tax Preparation", "Client Consultation", "Attention to Detail", "Regulatory Compliance"]}
112
+ ],
113
+ "Marketing": [
114
+ {"title": "Digital Marketing Manager", "desc": "Develop and execute digital marketing strategies",
115
+ "skills": ["Digital Marketing", "SEO", "Social Media", "Google Analytics", "Content Strategy"]},
116
+ {"title": "Content Marketing Specialist", "desc": "Create engaging content for marketing campaigns",
117
+ "skills": ["Content Creation", "SEO", "Social Media", "Writing", "Brand Management"]},
118
+ {"title": "Social Media Manager", "desc": "Manage social media presence and engagement",
119
+ "skills": ["Social Media", "Content Creation", "Community Management", "Analytics", "Brand Voice"]},
120
+ {"title": "SEO Specialist", "desc": "Optimize websites for search engine visibility",
121
+ "skills": ["SEO", "Google Analytics", "Content Optimization", "Keyword Research", "Technical SEO"]},
122
+ {"title": "Marketing Analyst", "desc": "Analyze marketing data and campaign performance",
123
+ "skills": ["Data Analysis", "Google Analytics", "Marketing Metrics", "Excel", "Reporting"]},
124
+ {"title": "Brand Manager", "desc": "Develop and maintain brand identity and strategy",
125
+ "skills": ["Brand Strategy", "Marketing", "Creative Direction", "Market Research", "Communication"]},
126
+ {"title": "Email Marketing Specialist", "desc": "Create and manage email marketing campaigns",
127
+ "skills": ["Email Marketing", "Automation", "A/B Testing", "Analytics", "Copywriting"]},
128
+ {"title": "PPC Specialist", "desc": "Manage pay-per-click advertising campaigns",
129
+ "skills": ["Google Ads", "PPC", "Campaign Management", "Analytics", "Budget Management"]}
130
+ ],
131
+ "Education": [
132
+ {"title": "Elementary School Teacher", "desc": "Teach fundamental subjects to young students",
133
+ "skills": ["Teaching", "Classroom Management", "Curriculum Development", "Student Assessment", "Communication"]},
134
+ {"title": "High School Teacher", "desc": "Educate teenagers in specialized subjects",
135
+ "skills": ["Subject Expertise", "Teaching", "Classroom Management", "Lesson Planning", "Student Mentoring"]},
136
+ {"title": "Special Education Teacher", "desc": "Work with students with special needs",
137
+ "skills": ["Special Education", "IEP Development", "Adaptive Teaching", "Patience", "Communication"]},
138
+ {"title": "School Counselor", "desc": "Provide academic and personal guidance to students",
139
+ "skills": ["Counseling", "Student Support", "Academic Planning", "Crisis Intervention", "Communication"]},
140
+ {"title": "Principal", "desc": "Lead and manage school operations",
141
+ "skills": ["Educational Leadership", "Staff Management", "Budget Management", "Policy Development", "Communication"]},
142
+ {"title": "Librarian", "desc": "Manage library resources and assist patrons",
143
+ "skills": ["Information Management", "Research Skills", "Library Systems", "Customer Service", "Organization"]},
144
+ {"title": "Educational Technology Specialist", "desc": "Integrate technology into educational environments",
145
+ "skills": ["Educational Technology", "Training", "Technical Support", "Curriculum Integration", "Problem Solving"]},
146
+ {"title": "Instructional Designer", "desc": "Design educational programs and materials",
147
+ "skills": ["Instructional Design", "Curriculum Development", "Learning Theory", "Educational Technology", "Project Management"]}
148
+ ],
149
+ "Sales": [
150
+ {"title": "Sales Representative", "desc": "Sell products and services to customers",
151
+ "skills": ["Sales", "Customer Relations", "Communication", "Negotiation", "Product Knowledge"]},
152
+ {"title": "Account Manager", "desc": "Manage relationships with key clients",
153
+ "skills": ["Account Management", "Client Relations", "Sales", "Communication", "Problem Solving"]},
154
+ {"title": "Sales Manager", "desc": "Lead sales teams and develop strategies",
155
+ "skills": ["Sales Management", "Team Leadership", "Strategic Planning", "Performance Management", "Communication"]},
156
+ {"title": "Business Development Manager", "desc": "Identify and develop new business opportunities",
157
+ "skills": ["Business Development", "Sales", "Market Research", "Relationship Building", "Strategic Thinking"]},
158
+ {"title": "Inside Sales Representative", "desc": "Conduct sales activities remotely",
159
+ "skills": ["Phone Sales", "CRM", "Lead Generation", "Communication", "Product Knowledge"]},
160
+ {"title": "Real Estate Agent", "desc": "Help clients buy and sell properties",
161
+ "skills": ["Real Estate", "Customer Service", "Negotiation", "Market Knowledge", "Communication"]},
162
+ {"title": "Retail Sales Associate", "desc": "Assist customers in retail environments",
163
+ "skills": ["Customer Service", "Sales", "Product Knowledge", "Cash Handling", "Communication"]},
164
+ {"title": "Territory Sales Manager", "desc": "Manage sales activities in specific geographic areas",
165
+ "skills": ["Territory Management", "Sales", "Travel", "Customer Relations", "Strategic Planning"]}
166
+ ],
167
+ "Operations": [
168
+ {"title": "Operations Manager", "desc": "Oversee daily business operations",
169
+ "skills": ["Operations Management", "Process Improvement", "Team Leadership", "Budget Management", "Problem Solving"]},
170
+ {"title": "Supply Chain Manager", "desc": "Manage supply chain and logistics operations",
171
+ "skills": ["Supply Chain", "Logistics", "Vendor Management", "Process Optimization", "Analytics"]},
172
+ {"title": "Project Manager", "desc": "Lead and coordinate project execution",
173
+ "skills": ["Project Management", "PMP", "Agile", "Risk Management", "Communication"]},
174
+ {"title": "Quality Assurance Manager", "desc": "Ensure product and service quality standards",
175
+ "skills": ["Quality Management", "Process Improvement", "ISO Standards", "Auditing", "Problem Solving"]},
176
+ {"title": "Logistics Coordinator", "desc": "Coordinate transportation and distribution",
177
+ "skills": ["Logistics", "Transportation", "Inventory Management", "Coordination", "Problem Solving"]},
178
+ {"title": "Business Analyst", "desc": "Analyze business processes and requirements",
179
+ "skills": ["Business Analysis", "Requirements Gathering", "Process Mapping", "Data Analysis", "Communication"]},
180
+ {"title": "Warehouse Manager", "desc": "Manage warehouse operations and staff",
181
+ "skills": ["Warehouse Management", "Inventory Control", "Team Leadership", "Safety Management", "Logistics"]},
182
+ {"title": "Production Manager", "desc": "Oversee manufacturing and production processes",
183
+ "skills": ["Production Management", "Manufacturing", "Process Optimization", "Quality Control", "Team Leadership"]}
184
+ ],
185
+ "Creative": [
186
+ {"title": "Graphic Designer", "desc": "Create visual designs for various media",
187
+ "skills": ["Adobe Creative Suite", "Graphic Design", "Typography", "Brand Design", "Creativity"]},
188
+ {"title": "Web Designer", "desc": "Design websites and digital interfaces",
189
+ "skills": ["Web Design", "HTML", "CSS", "Adobe Creative Suite", "User Experience"]},
190
+ {"title": "Video Editor", "desc": "Edit and produce video content",
191
+ "skills": ["Video Editing", "Adobe Premiere", "Final Cut Pro", "Motion Graphics", "Storytelling"]},
192
+ {"title": "Content Writer", "desc": "Create written content for various platforms",
193
+ "skills": ["Writing", "Content Creation", "SEO", "Research", "Editing"]},
194
+ {"title": "Art Director", "desc": "Lead creative vision for projects",
195
+ "skills": ["Creative Direction", "Team Leadership", "Brand Strategy", "Visual Design", "Project Management"]},
196
+ {"title": "Photographer", "desc": "Capture and edit professional photographs",
197
+ "skills": ["Photography", "Photo Editing", "Adobe Lightroom", "Photoshop", "Composition"]},
198
+ {"title": "Animator", "desc": "Create animated content and motion graphics",
199
+ "skills": ["Animation", "After Effects", "3D Animation", "Motion Graphics", "Storytelling"]},
200
+ {"title": "Copywriter", "desc": "Write compelling marketing and advertising copy",
201
+ "skills": ["Copywriting", "Marketing", "Brand Voice", "Persuasive Writing", "Creative Thinking"]}
202
+ ]
203
+ }
204
+
205
+ # Experience levels and salary ranges
206
+ experience_levels = ["Entry-level", "Mid-level", "Senior", "Lead/Principal"]
207
+
208
+ salary_ranges = {
209
+ "Entry-level": ["$35k-$50k", "$40k-$55k", "$45k-$60k", "$50k-$65k"],
210
+ "Mid-level": ["$55k-$75k", "$60k-$80k", "$65k-$85k", "$70k-$90k"],
211
+ "Senior": ["$80k-$110k", "$90k-$120k", "$100k-$130k", "$110k-$140k"],
212
+ "Lead/Principal": ["$120k-$150k", "$130k-$160k", "$140k-$170k", "$150k-$180k"]
213
+ }
214
+
215
+ # Additional skills by category
216
+ additional_skills = {
217
+ "Technology": ["Problem Solving", "Debugging", "Code Review", "System Design", "API Development", "Database Design"],
218
+ "Healthcare": ["HIPAA Compliance", "Medical Ethics", "Electronic Health Records", "Patient Safety", "Clinical Documentation"],
219
+ "Finance": ["Financial Regulations", "Risk Management", "Excel Advanced", "Bloomberg Terminal", "Financial Compliance"],
220
+ "Marketing": ["Brand Strategy", "Customer Acquisition", "Marketing Automation", "CRM", "Market Analysis"],
221
+ "Education": ["Student Engagement", "Assessment", "Educational Psychology", "Classroom Technology", "Differentiated Instruction"],
222
+ "Sales": ["CRM Systems", "Lead Qualification", "Sales Forecasting", "Territory Planning", "Customer Retention"],
223
+ "Operations": ["Lean Six Sigma", "Process Documentation", "KPI Management", "Vendor Relations", "Cost Reduction"],
224
+ "Creative": ["Brand Identity", "Design Thinking", "Client Presentation", "Creative Strategy", "Visual Communication"]
225
+ }
226
+
227
+ # Generate 1000 jobs
228
+ jobs = []
229
+ job_id = 1