Job Auto Apply
by @veeky-kumar
Automated job search and application system for Clawdbot. Use when the user wants to search for jobs and automatically apply to positions matching their criteria. Handles job searching across LinkedIn, Indeed, Glassdoor, ZipRecruiter, and Wellfound, generates tailored cover letters, fills application forms, and tracks application status. Use when user says things like "find and apply to jobs", "auto-apply for [job title]", "search for [position] jobs and apply", or "help me apply to multiple job
clawhub install job-auto-applyπ About This Skill
name: job-auto-apply description: Automated job search and application system for Clawdbot. Use when the user wants to search for jobs and automatically apply to positions matching their criteria. Handles job searching across LinkedIn, Indeed, Glassdoor, ZipRecruiter, and Wellfound, generates tailored cover letters, fills application forms, and tracks application status. Use when user says things like "find and apply to jobs", "auto-apply for [job title]", "search for [position] jobs and apply", or "help me apply to multiple jobs automatically".
Job Auto-Apply Skill
Automate job searching and application submission across multiple job platforms using Clawdbot.
Overview
This skill enables automated job search and application workflows. It searches for jobs matching user criteria, analyzes compatibility, generates tailored cover letters, and submits applications automatically or with user confirmation.
Supported Platforms:
Quick Start
1. Set Up User Profile
First, create a user profile using the template:
# Copy the profile template
cp profile_template.json ~/job_profile.jsonEdit with user's information
Fill in: name, email, phone, resume path, skills, preferences
2. Run Job Search and Apply
# Basic usage - search and apply (dry run)
python job_search_apply.py \
--title "Software Engineer" \
--location "San Francisco, CA" \
--remote \
--max-applications 10 \
--dry-runWith profile file
python job_search_apply.py \
--profile ~/job_profile.json \
--title "Backend Engineer" \
--platforms linkedin,indeed \
--auto-applyProduction mode (actual applications)
python job_search_apply.py \
--profile ~/job_profile.json \
--title "Senior Developer" \
--no-dry-run \
--require-confirmation
Workflow Steps
Step 1: Profile Configuration
Load the user's profile from the template or create programmatically:
from job_search_apply import ApplicantProfileprofile = ApplicantProfile(
full_name="Jane Doe",
email="jane@example.com",
phone="+1234567890",
resume_path="~/Documents/resume.pdf",
linkedin_url="https://linkedin.com/in/janedoe",
years_experience=5,
authorized_to_work=True,
requires_sponsorship=False
)
Step 2: Define Search Parameters
from job_search_apply import JobSearchParams, JobPlatformsearch_params = JobSearchParams(
title="Software Engineer",
location="Remote",
remote=True,
experience_level="mid",
job_type="full-time",
salary_min=100000,
platforms=[JobPlatform.LINKEDIN, JobPlatform.INDEED]
)
Step 3: Run Automated Application
from job_search_apply import auto_apply_workflowresults = auto_apply_workflow(
search_params=search_params,
profile=profile,
max_applications=10,
min_match_score=0.75,
dry_run=False,
require_confirmation=True
)
Integration with Clawdbot
Using as a Clawdbot Tool
When installed as a Clawdbot skill, invoke via natural language:
Example prompts:
The skill will: 1. Parse the user's intent and extract search parameters 2. Load the user's profile from saved configuration 3. Search across specified platforms 4. Analyze job compatibility 5. Generate tailored cover letters 6. Submit applications (with confirmation if enabled) 7. Report results and track applications
Configuration in Clawdbot
Add to your Clawdbot configuration:
{
"skills": {
"job-auto-apply": {
"enabled": true,
"profile_path": "~/job_profile.json",
"default_platforms": ["linkedin", "indeed"],
"max_daily_applications": 10,
"require_confirmation": true,
"dry_run": false
}
}
}
Features
1. Multi-Platform Search
2. Smart Matching
3. Application Customization
4. Safety Features
5. Form Automation
Automatically fills common application fields:Advanced Usage
Custom Cover Letter Templates
Create a template with placeholders:
Dear Hiring Manager at {company},I am excited to apply for the {position} role. With {years} years of
experience in {skills}, I believe I would be an excellent fit.
{custom_paragraph}
I look forward to discussing how I can contribute to {company}'s success.
Best regards,
{name}
Application Tracking
Results are automatically saved in JSON format with details on each application submitted, including timestamps, match scores, and status.
Bundled Resources
Scripts
job_search_apply.py - Main automation script with search, matching, and application logicReferences
platform_integration.md - Technical documentation for API integration, web scraping, form automation, and platform-specific detailsAssets
profile_template.json - Comprehensive profile template with all required and optional fieldsSafety and Ethics
Important Guidelines
1. Truthfulness: Never misrepresent qualifications or experience 2. Genuine Interest: Only apply to jobs you're actually interested in 3. Rate Limiting: Respect platform limits and terms of service 4. Manual Review: Consider enabling confirmation mode for quality control 5. Privacy: Secure storage of personal information and credentials
Best Practices
π‘ Examples
1. Set Up User Profile
First, create a user profile using the template:
# Copy the profile template
cp profile_template.json ~/job_profile.jsonEdit with user's information
Fill in: name, email, phone, resume path, skills, preferences
2. Run Job Search and Apply
# Basic usage - search and apply (dry run)
python job_search_apply.py \
--title "Software Engineer" \
--location "San Francisco, CA" \
--remote \
--max-applications 10 \
--dry-runWith profile file
python job_search_apply.py \
--profile ~/job_profile.json \
--title "Backend Engineer" \
--platforms linkedin,indeed \
--auto-applyProduction mode (actual applications)
python job_search_apply.py \
--profile ~/job_profile.json \
--title "Senior Developer" \
--no-dry-run \
--require-confirmation