An intelligent job search automation system that extracts skills from your CV and finds visa sponsorship opportunities tailored to your background.
- 🎯 CV-Driven Skill Extraction: Automatically extracts skills from your resume's skills section
- 🌍 Visa Sponsorship Priority: Prioritizes jobs that explicitly mention visa sponsorship
- 🔍 Smart Job Matching: Scores jobs based on skill relevance and visa potential
- 📊 Comprehensive Reports: Generates detailed Excel reports with job details and application links
- 🛠️ User-Friendly Setup: Interactive prompts for easy configuration
- 🌐 Global Coverage: Searches across sponsor-friendly countries (US, Canada, Germany, etc.)
- Python 3.7+
- SerpAPI account (free tier available)
- CV in PDF format
-
Clone or download the script
git clone <repository-url> cd job-search-system
-
Install required packages
pip install requests pandas pdfplumber openpyxl
-
Get your SerpAPI key
- Visit SerpAPI.com
- Sign up for a free account
- Navigate to your dashboard to get your API key
- Free tier includes 100 searches/month
python job_search.pyThe system will guide you through:
-
API Configuration
Enter your SerpAPI key: your_api_key_here -
CV File Path
Enter the path to your CV PDF file: /path/to/your/cv.pdf -
Skills Section Identification
Enter the name of your skills section (default: 'Skills'): Skills -
Skill Validation
- Review extracted skills
- Add/remove skills if needed
- Confirm final skills list
-
Search Preferences Choose your priority:
- Visa sponsorship opportunities (default)
- Specific countries/regions
- Remote work opportunities
- Focus on specific skills
The system will:
- Search for relevant jobs using your skills
- Score jobs based on your preferences
- Generate a comprehensive Excel report
- Display top matches in the terminal
The generated Excel file includes:
| Column | Description |
|---|---|
| Relevance Score | Job relevance score (higher = better match) |
| Score Reasons | Why the job scored well (skill matches, visa mentions) |
| Job Title | Position title |
| Company | Company name |
| Location | Job location |
| Salary | Salary range (if available) |
| Posting Date | When the job was posted |
| Job Description | Brief job description |
| Application Link | Direct application URL |
| Visa Sponsorship Mentioned | Yes/Maybe/Unknown |
| Company Glassdoor | Glassdoor company review link |
Skills
• Programming Languages: JavaScript, Java, Go, C#, Node.js
• Database: PostgreSQL, MongoDB, MySQL
• DevOps & Tools: Docker, AWS, Git
↓ Extracts to: JavaScript, Java, Go, C#, Node.js, PostgreSQL, MongoDB, MySQL, Docker, AWS, Git
- Basic skill searches:
"JavaScript","PostgreSQL" - Visa-focused searches:
"JavaScript visa sponsorship","Java h1b sponsor" - Location-specific:
"software developer Canada"
- Skill Matches: +10 points per matching skill
- Explicit Visa Sponsorship: +100 points
- Sponsor-Friendly Location: +50 points
- Target Country: +75 points
- Remote Work: +30 points
Edit the preferences section in the script:
preferences = {
"visa_priority": True,
"target_countries": ["canada", "germany"],
"remote_only": False,
"skill_focus": ["python", "react"]
}Update the VISA_KEYWORDS list:
VISA_KEYWORDS = [
"visa sponsorship", "h1b", "work visa",
"your custom keywords here"
]Add to SPONSOR_FRIENDLY_LOCATIONS:
SPONSOR_FRIENDLY_LOCATIONS = [
"united states", "canada", "germany",
"your target countries here"
]The system works best with clearly structured skills sections:
Skills
• Programming Languages: JavaScript, Python, Java, TypeScript
• Frontend: React, Vue.js, HTML5, CSS3, Bootstrap
• Backend: Node.js, Express.js, Django, Flask
• Databases: PostgreSQL, MongoDB, Redis, MySQL
• Cloud & DevOps: AWS, Docker, Kubernetes, Git, Jenkins
• Tools: VS Code, Postman, Jira, Slack
❌ "CV file not found"
- Ensure the file path is correct
- Use forward slashes (/) or escape backslashes (