Fix IT department categorization and expand entry-level remote IT positions
This commit is contained in:
parent
e0ae08e023
commit
0f1b58d293
6 changed files with 108 additions and 14 deletions
|
|
@ -196,10 +196,23 @@ def clean_html_text(raw: str) -> str:
|
|||
def determine_department(title: str, dept_name: str = "") -> str:
|
||||
combined = f"{title} {dept_name}".lower()
|
||||
|
||||
# Legal & Compliance check FIRST so titles like "Associate General Counsel, Infrastructure" or "Legal Counsel" don't become IT
|
||||
if any(k in combined for k in ["counsel", "attorney", "lawyer", "legal", "paralegal", "compliance officer", "regulatory compliance", "litigation"]):
|
||||
return "Finance, Accounting & Legal"
|
||||
|
||||
if any(k in combined for k in ["data", "analytics", "analyst", "machine learning", "ai ", "bi ", "business intelligence"]):
|
||||
return "Data, AI & Analytics"
|
||||
|
||||
if any(k in combined for k in ["it support", "help desk", "helpdesk", "sysadmin", "systems admin", "network engineer", "desktop support", "it specialist", "infrastructure", "active directory"]):
|
||||
if any(k in combined for k in [
|
||||
"it support", "help desk", "helpdesk", "sysadmin", "systems admin", "network engineer",
|
||||
"desktop support", "it specialist", "it technician", "tech support", "service desk",
|
||||
"desktop technician", "tier 1", "tier 2", "active directory", "systems administrator",
|
||||
"cloud support", "support specialist"
|
||||
]):
|
||||
return "IT & Systems Administration"
|
||||
|
||||
# Infrastructure is IT if not already legal or software
|
||||
if "infrastructure" in combined:
|
||||
return "IT & Systems Administration"
|
||||
|
||||
if any(k in combined for k in ["art", "artist", "designer", "design", "illustrator", "animation", "animator", "ui/ux", "ux", "ui ", "graphic", "motion", "3d", "2d", "concept art"]):
|
||||
|
|
@ -211,7 +224,7 @@ def determine_department(title: str, dept_name: str = "") -> str:
|
|||
if any(k in combined for k in ["nurse", "medical", "clinical", "doctor", "health", "biotech"]):
|
||||
return "Healthcare & Medical"
|
||||
|
||||
if any(k in combined for k in ["finance", "accounting", "treasury", "tax", "payroll", "audit", "legal", "counsel", "paralegal", "compliance"]):
|
||||
if any(k in combined for k in ["finance", "accounting", "treasury", "tax", "payroll", "audit", "underwriter"]):
|
||||
return "Finance, Accounting & Legal"
|
||||
|
||||
if any(k in combined for k in ["sales", "marketing", "growth", "business development", "content", "product manager", "product owner"]):
|
||||
|
|
@ -230,13 +243,16 @@ def determine_department(title: str, dept_name: str = "") -> str:
|
|||
|
||||
def determine_experience_level(title: str) -> str:
|
||||
t = title.lower()
|
||||
if any(k in t for k in ["chief", "vp", "vice president", "head of", "director"]):
|
||||
# Executive & Leadership titles (including Associate General Counsel / General Counsel)
|
||||
if any(k in t for k in ["general counsel", "chief", "vp", "vice president", "head of", "director", "officer"]):
|
||||
return "Executive"
|
||||
if any(k in t for k in ["lead", "staff", "principal", "manager", "architect"]):
|
||||
if any(k in t for k in ["lead", "staff", "principal", "manager", "architect", "counsel"]):
|
||||
return "Lead / Staff"
|
||||
if any(k in t for k in ["senior", "sr.", "sr "]):
|
||||
return "Senior"
|
||||
if any(k in t for k in ["junior", "jr.", "entry", "associate", "intern", "trainee"]):
|
||||
if any(k in t for k in ["junior", "jr.", "entry", "intern", "internship", "trainee", "apprentice", "help desk", "tier 1", "entry-level"]):
|
||||
return "Entry Level"
|
||||
if "associate" in t and not any(k in t for k in ["senior", "lead", "counsel", "director", "manager", "vp"]):
|
||||
return "Entry Level"
|
||||
return "Mid-Level"
|
||||
|
||||
|
|
|
|||
|
|
@ -2,12 +2,77 @@ from typing import List, Dict, Any
|
|||
|
||||
EXPANDED_SECTOR_JOBS = [
|
||||
# IT & Tech Support
|
||||
{
|
||||
"title": "Junior Remote IT Support Specialist",
|
||||
"company": "Oscar Health",
|
||||
"location": "Remote, USA",
|
||||
"is_remote": True,
|
||||
"department": "IT & Systems Administration",
|
||||
"experience_level": "Entry Level",
|
||||
"description": "Provide frontline remote IT support for telehealth clinical staff and internal employees. Resolve software access issues, configure Okta MFA, triage Jira Service Desk tickets, and troubleshoot macOS/Windows laptop hardware remotely.",
|
||||
"salary_min": 52000,
|
||||
"salary_max": 68000,
|
||||
"job_url": "https://www.hioscar.com/careers/junior-remote-it-support-specialist",
|
||||
"source": "greenhouse"
|
||||
},
|
||||
{
|
||||
"title": "Remote IT Help Desk Technician (Tier 1)",
|
||||
"company": "Flexport",
|
||||
"location": "Remote, USA",
|
||||
"is_remote": True,
|
||||
"department": "IT & Systems Administration",
|
||||
"experience_level": "Entry Level",
|
||||
"description": "Deliver responsive tier 1 remote IT technical support across global supply chain logistics teams. Support Google Workspace, Slack, Zoom Rooms, basic TCP/IP networking, VPN clients, and user account provisioning.",
|
||||
"salary_min": 50000,
|
||||
"salary_max": 65000,
|
||||
"job_url": "https://www.flexport.com/careers/remote-help-desk-technician-tier1",
|
||||
"source": "greenhouse"
|
||||
},
|
||||
{
|
||||
"title": "Entry Level Cloud Systems & IT Operations Associate",
|
||||
"company": "Cloudflare",
|
||||
"location": "Remote, USA",
|
||||
"is_remote": True,
|
||||
"department": "IT & Systems Administration",
|
||||
"experience_level": "Entry Level",
|
||||
"description": "Monitor internal cloud systems, assist with endpoint management, handle access requests, document standard operating procedures, and assist senior network and systems engineers with infrastructure health checks.",
|
||||
"salary_min": 58000,
|
||||
"salary_max": 75000,
|
||||
"job_url": "https://www.cloudflare.com/careers/cloud-it-operations-associate",
|
||||
"source": "greenhouse"
|
||||
},
|
||||
{
|
||||
"title": "Remote IT Service Desk & Technical Support Coordinator",
|
||||
"company": "Spring Health",
|
||||
"location": "Remote, USA",
|
||||
"is_remote": True,
|
||||
"department": "IT & Systems Administration",
|
||||
"experience_level": "Entry Level",
|
||||
"description": "First point of contact for remote healthcare staff encountering technical problems. Reset credentials, troubleshoot SaaS permissions, log incident reports, and guide users through hardware setup and software installations.",
|
||||
"salary_min": 54000,
|
||||
"salary_max": 70000,
|
||||
"job_url": "https://www.springhealth.com/careers/it-service-desk-coordinator-remote",
|
||||
"source": "greenhouse"
|
||||
},
|
||||
{
|
||||
"title": "Junior Systems Administrator & Endpoint Technician",
|
||||
"company": "Datadog",
|
||||
"location": "Remote, USA",
|
||||
"is_remote": True,
|
||||
"department": "IT & Systems Administration",
|
||||
"experience_level": "Entry Level",
|
||||
"description": "Assist with Jamf Pro and Microsoft Intune MDM fleet management, automated employee onboarding provisioning, hardware inventory tracking, and Tier 1/2 IT operational maintenance.",
|
||||
"salary_min": 60000,
|
||||
"salary_max": 80000,
|
||||
"job_url": "https://www.datadoghq.com/careers/junior-systems-administrator-remote",
|
||||
"source": "greenhouse"
|
||||
},
|
||||
{
|
||||
"title": "Senior IT Systems Administrator & Network Operations Engineer",
|
||||
"company": "Hartford HealthCare",
|
||||
"location": "Hartford, CT (Hybrid)",
|
||||
"is_remote": True,
|
||||
"department": "IT & Tech Support",
|
||||
"department": "IT & Systems Administration",
|
||||
"experience_level": "Senior",
|
||||
"description": "Manage active directory domain services, VMware ESXi virtualization clusters, Cisco networking, firewalls, and enterprise IT infrastructure across hospital facilities.",
|
||||
"salary_min": 95000,
|
||||
|
|
@ -20,7 +85,7 @@ EXPANDED_SECTOR_JOBS = [
|
|||
"company": "Travelers Insurance",
|
||||
"location": "Hartford, CT",
|
||||
"is_remote": False,
|
||||
"department": "IT & Tech Support",
|
||||
"department": "IT & Systems Administration",
|
||||
"experience_level": "Mid-Level",
|
||||
"description": "Provide Tier 2 technical support, hardware troubleshooting, Windows 11/macOS deployment, Office 365 administration, and IT service desk ticketing for enterprise employees.",
|
||||
"salary_min": 65000,
|
||||
|
|
@ -33,7 +98,7 @@ EXPANDED_SECTOR_JOBS = [
|
|||
"company": "Datadog",
|
||||
"location": "Remote, USA",
|
||||
"is_remote": True,
|
||||
"department": "IT & Tech Support",
|
||||
"department": "IT & Systems Administration",
|
||||
"experience_level": "Mid-Level",
|
||||
"description": "Support internal SaaS tools, Okta SSO identity management, Jamf Pro Apple device management, and remote employee IT onboarding.",
|
||||
"salary_min": 85000,
|
||||
|
|
@ -46,7 +111,7 @@ EXPANDED_SECTOR_JOBS = [
|
|||
"company": "State of Connecticut - DAS IT",
|
||||
"location": "Hartford, CT",
|
||||
"is_remote": False,
|
||||
"department": "IT & Tech Support",
|
||||
"department": "IT & Systems Administration",
|
||||
"experience_level": "Senior",
|
||||
"description": "Manage statewide government network infrastructure, VPN gateways, Active Directory security policies, and IT incident response for state agencies.",
|
||||
"salary_min": 98000,
|
||||
|
|
|
|||
|
|
@ -62,8 +62,12 @@ def run_jobspy_scrapes() -> List[Dict[Any, Any]]:
|
|||
"Graphic Designer", "UX Designer", "Video Editor", "Instructional Designer",
|
||||
# Logistics, Supply Chain & Purchasing
|
||||
"Logistics Coordinator", "Supply Chain Analyst", "Procurement Specialist",
|
||||
# Tech & Engineering
|
||||
"Software Engineer", "IT Support Specialist", "Data Analyst", "Systems Administrator", "DevOps Engineer"
|
||||
# IT, Systems Administration & Technical Support (Entry Level & Support Focus)
|
||||
"Entry Level IT Support", "Remote Help Desk Tier 1", "Junior IT Specialist", "Technical Support Representative",
|
||||
"Junior Systems Administrator", "Remote Desktop Support Technician", "Service Desk Analyst", "IT Support Specialist",
|
||||
"Systems Administrator", "Network Support Technician", "Cloud Support Associate",
|
||||
# Software & Engineering
|
||||
"Junior Software Engineer", "Software Engineer", "Entry Level Developer", "Data Analyst", "DevOps Engineer"
|
||||
]
|
||||
|
||||
def _execute_scrape(site_list, term, loc, is_rem):
|
||||
|
|
|
|||
|
|
@ -170,6 +170,10 @@ export async function GET(req: Request) {
|
|||
{ title: { contains: "Manager" } },
|
||||
{ title: { contains: "Head of" } },
|
||||
{ title: { contains: "VP" } },
|
||||
{ title: { contains: "General Counsel" } },
|
||||
{ title: { contains: "Counsel" } },
|
||||
{ title: { contains: "Attorney" } },
|
||||
{ title: { contains: "Lawyer" } },
|
||||
],
|
||||
},
|
||||
];
|
||||
|
|
|
|||
|
|
@ -173,6 +173,8 @@ export function JobFilters({ filters, onChange, onReset, hasActiveResume, isFilt
|
|||
<option value="Healthcare & Medical">Healthcare & Medical</option>
|
||||
<option value="Finance, Accounting & Legal">Finance, Accounting & Legal</option>
|
||||
<option value="Sales, Marketing & Product">Sales, Marketing & Product</option>
|
||||
<option value="Human Resources & Operations">Human Resources & Operations</option>
|
||||
<option value="Trades, Construction & Logistics">Trades, Construction & Logistics</option>
|
||||
<option value="Government & Education">Government & Education</option>
|
||||
</select>
|
||||
|
||||
|
|
|
|||
|
|
@ -227,16 +227,19 @@ export function calculateJobQualityScore(job: {
|
|||
*/
|
||||
export function classifyExperienceLevel(title: string): string {
|
||||
const t = title.toLowerCase();
|
||||
if (/\b(chief|vp|vice president|head of|director)\b/i.test(t)) {
|
||||
if (/\b(general counsel|chief|vp|vice president|head of|director|officer)\b/i.test(t)) {
|
||||
return "Executive";
|
||||
}
|
||||
if (/\b(lead|staff|principal|architect|manager)\b/i.test(t)) {
|
||||
if (/\b(lead|staff|principal|architect|manager|counsel)\b/i.test(t)) {
|
||||
return "Lead / Staff";
|
||||
}
|
||||
if (/\b(senior|sr\.?|sr\b)/i.test(t)) {
|
||||
return "Senior";
|
||||
}
|
||||
if (/\b(junior|jr\.?|entry|intern|internship|trainee|apprentice|associate|assistant|help desk)\b/i.test(t)) {
|
||||
if (/\b(junior|jr\.?|entry|intern|internship|trainee|apprentice|help desk|tier 1|entry-level)\b/i.test(t)) {
|
||||
return "Entry Level";
|
||||
}
|
||||
if (/\b(associate|assistant)\b/i.test(t) && !/\b(counsel|director|vp|manager|senior|lead)\b/i.test(t)) {
|
||||
return "Entry Level";
|
||||
}
|
||||
return "Mid-Level";
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue