JobMatchingStrategy
Automated recruitment intelligence agent. Analyzes job postings against candidate profiles to calculate multi-dimensional compatibility scores (Skills, Location, Salary, Work Arrangement) and generate tailored application assets.
Category: Analysis
Model: GPT-4 Preferred
Output: Markdown Reports
⚙️ JobMatchingConfig.json
{
"user_experience": "10y Kotlin, AI/ML...",
"target_roles": ["Staff AI Engineer"],
"required_skills": ["Kotlin", "LLM", "Vector DBs"],
"preferred_locations": ["Remote", "NYC"],
"min_match_score": 0.75,
"min_salary": 185000,
"salary_currency": "USD",
"work_arrangement_preference": "remote",
"max_days_in_office": 0,
"willing_to_relocate": false,
"target_matches": 5
}
→
👁️ Session Transcript Output
✅ GOOD MATCH FOUND (Score: 88%)
Found at tech-careers.com/jobs/102
Found at tech-careers.com/jobs/102
- Position: Staff AI Engineer
- Company: Neural Systems Inc.
- Location: Remote
- Salary: USD 190,000 - 230,000
Compatibility Scores:
- Skills: 92%
- Location: 100%
- Salary: 100%
- Work Arrangement: 100%
- Company: Neural Systems Inc.
- Location: Remote
- Salary: USD 190,000 - 230,000
Compatibility Scores:
- Skills: 92%
- Location: 100%
- Salary: 100%
- Work Arrangement: 100%
Configuration Parameters (JobMatchingConfig)
| Field | Type | Description |
|---|---|---|
user_experience* |
String | Full resume text or detailed experience summary used for matching. |
target_roles* |
List<String> | List of job titles or keywords to filter for. |
required_skills |
List<String> | Specific technical or soft skills that must be present in the JD. |
min_match_score |
Double | Threshold (0.0-1.0) for considering a job a "Good Match". Default: 0.6. |
preferred_locations |
List<String> | Cities, states, or 'Remote'. Used for location scoring. |
acceptable_locations |
List<String> | Secondary locations that are acceptable but not preferred. |
min_salary |
Int | Minimum annual salary expectation in salary_currency. |
salary_currency |
String | ISO currency code. Default: USD. |
work_arrangement_preference |
String | One of: remote, hybrid, onsite, flexible. |
max_days_in_office |
Int | Maximum acceptable days in office per week for hybrid roles. |
travel_willingness |
String | 'none', 'occasional', or 'frequent'. |
willing_to_relocate |
Boolean | Whether the candidate is open to moving for the role. |
target_matches |
Int | Crawler terminates after finding N matches above min_match_score. |
Execution Lifecycle
- Detection: Uses a fast-pass LLM check to identify if a page is a job posting (confidence > 0.7).
- Multi-Dimensional Analysis: Extracts structured data including salary ranges, travel requirements, and relocation assistance.
- Scoring Engine: Calculates weighted scores for Skills, Location, Salary, and Work Arrangement compatibility.
- Asset Generation: Drafts a tailored 200-300 word cover letter and application strategy notes.
- Persistence: Saves detailed Markdown reports to
websearch/job_matches/with timestamps and company metadata.
Kotlin Implementation
// Registering the strategy in a Crawler Task
val task = CrawlerAgentTask(
params = CrawlerParams(
baseUrl = "https://linkedin.com/jobs/search",
strategy = JobMatchingStrategy(),
content_queries = JobMatchingConfig(
user_experience = myResumeText,
target_roles = listOf("Staff AI Engineer"),
required_skills = listOf("Kotlin", "OpenAI"),
preferred_locations = listOf("Remote"),
min_salary = 200000,
work_arrangement_preference = "remote",
min_match_score = 0.8
)
)
)