The Context: High Stakes, Low Reward
For Canadian employers to hire foreign talent, they must navigate the Labour Market Impact Assessment (LMIA). A critical, mandatory step in this months-long process is the "Job Match" task on the Government's Job Bank.
Firms must manually invite every eligible job seeker (anywhere from 10 to 500+ people) to apply. If a firm misses even one required invitation or fails to renew a posting on time, the government rejects the application. This forces the employer to restart the 30-day posting period from scratch, causing massive delays for both the business and the migrant worker.
The Problem: A "Brain-Melting" Manual Bottleneck
- The Time Drain: Large firms managing 100+ postings were spending upwards of 30 hours per week on repetitive clicking.
- The Risk Factor: The manual error rate sat at roughly 5%. In the world of immigration, a 5% error rate isn't just a typo—it's a month of lost progress and potential legal friction.
- The Burnout: Admin and HR staff were stuck in robotic workflows, preventing them from focusing on high-value tasks.
My Goal
- Eliminate Risk: Reduce the compliance error rate to 0%.
- Restore Human Capacity: Automate the "zero-value" clicking so staff could focus on actual immigration law.
- Frictionless Integration: Create a solution that required zero technical knowledge from the end user.
The Solution: GlobalTalents.ca
I developed a full-stack automation platform that acted as a "virtual compliance officer."
The Workflow:
- Onboarding: Users connected their Job Bank portal to the webapp (30-minute setup).
- Autonomous Execution: Every night, a Python-based RPA script would:
- Log in and audit all active job postings.
- Identify new eligible job seekers based on specific government criteria.
- Auto-send invitations and renew postings according to user preferences.
- Transparency: The system generated a daily Activity Report, giving users a paper trail of every action taken for their records.
The Tech Stack:
- Frontend: Bubble (for rapid UI iteration and user management).
- Backend: AWS (Lambda for execution, EC2 for hosting, S3 for data).
- Engine: Python-based RPA (custom scripts to navigate the Job Bank interface).
The Results: Impact by the Numbers
Over the course of three years, the platform evolved from a local script into a fully hosted SaaS serving 17 firms.
Key Metrics:
- Error Rate: Reduced from 5% (avg. 1 month delay) to 0%
- Time Spent: Reduced from 8.3 hours/week per client to 0 hours (fully automated)
- Total Ecosystem Savings: 141 hours/week reclaimed across 17 firms
- Setup Time: Transformed from continuous manual labor to 30-minute one-time setup
The software turned a task people used to spend 30+ hours on each week into a background process that required zero human supervision.