An autonomous AI agent team that searches job portals daily, scores offers against your profile, and delivers a ranked email summary every morning.
Built on AgentCrew — open-source multi-agent AI orchestration platform.
Every day at 08:00 (configurable), four agents collaborate autonomously:
[Schedule 08:00]
↓
[coordinator] ← leader, orchestrates the workflow
↓
[scraper] ← browses InfoJobs, Indeed, LinkedIn via web search
↓
[analyst] ← scores each offer against your profile (threshold: 7/13)
↓
[reporter] ← composes and sends the daily email summary
Each offer in the email includes:
- 🏢 Title, company, location and modality
- 🎯 Score breakdown (X/13)
- 📝 2-3 line summary and key match reason
⚠️ Alerts (e.g. requires English C1, 100% on-site)- 🔗 Direct link to the offer
| Signal | Points |
|---|---|
| Team management (direct or indirect) | +3 |
| KPIs / metrics / reporting | +3 |
| Operations / process improvement | +3 |
| Cross-functional coordination / stakeholders | +2 |
| Compatible sector (BPO, telco, contact center, utilities) | +2 |
| Pure sales role (no management) | -3 |
| Pure technical role (no management) | -3 |
| Junior / Intern / Entry-level | -5 |
| CEO / C-Level / Director General | -5 |
Minimum threshold to appear in the report: 7/13
- AgentCrew installed and running
- Docker
- A Gmail account with App Password enabled (or any SMTP server)
curl -fsSL https://agentcrew.helmcode.com/install.sh | bashgit clone https://github.com/helmcode/agentcrew-job-search \
~/.agentcrew/teams/job-search
cd ~/.agentcrew/teams/job-searchThe scraper agent needs Playwright MCP. Build the custom image:
docker build -t helmcode/job-search-scraper:latest .AgentCrew pulls images from a registry. Run a local one:
# Start the registry
docker run -d -p 5000:5000 --name registry --restart always registry:2
# Tag and push
docker tag helmcode/job-search-scraper:latest localhost:5000/job-search-scraper:latest
docker push localhost:5000/job-search-scraper:latest
# Also tag with the Docker bridge gateway IP (used by AgentCrew containers)
# Check your gateway: docker network inspect agentcrew_default | grep Gateway
docker tag helmcode/job-search-scraper:latest 172.20.0.1:5000/job-search-scraper:latest
docker push 172.20.0.1:5000/job-search-scraper:latestConfigure Docker to trust the local registry (no HTTPS):
echo '{"insecure-registries": ["172.20.0.1:5000"]}' | sudo tee /etc/docker/daemon.json
sudo systemctl restart docker
⚠️ Replace172.20.0.1with your actual Docker bridge gateway IP.
cp .env.example .envEdit .env with your SMTP credentials. For Gmail, generate an App Password.
Open your AgentCrew UI and create a new team:
| Field | Value |
|---|---|
| Provider | Claude Code |
| Team Name | job-search |
| Workspace Path | /path/to/.agentcrew/teams/job-search |
| Custom Agent Image | 172.20.0.1:5000/job-search-scraper:latest |
In AgentCrew Settings → Sub-Agents, create the three workers using the files in agents/:
agents/coordinator.md→ name:coordinator(leader)agents/scraper.md→ name:scraperagents/analyst.md→ name:analystagents/reporter.md→ name:reporter
In AgentCrew → Schedules → New Schedule:
| Field | Value |
|---|---|
| Name | job-search-daily |
| Team | job-search |
| Frequency | Daily at 08:00 |
| Timezone | Your timezone |
| Prompt | Start the daily job search workflow. Search for job offers, score them and send the email report. |
Edit agents/coordinator.md to change the search queries and location.
Edit agents/analyst.md to adjust the scoring criteria and candidate profile.
Edit agents/reporter.md to change the email format.
If your agent starts, runs for ~30 seconds, exits with code 0 but produces no output, you are hitting a known issue:
- Root cause: AgentCrew API launches agent containers as
User: 0:0(root). Claude Code 2.1.92+ blocks--dangerously-skip-permissionswhen running as root. Even aftergosudrops to a non-root uid,HOMEstill points to/rootwhich is not writable by the agent user. Claude silently exits with code 0 when it cannot write~/.claude/. - Fix in this Dockerfile: We pin Claude Code to
2.1.90, setchmod 777 /home/agentcrew, and injectHOME=/home/agentcrewvia the sidecar. - Upstream fix: A PR is open on agent_crew_api to stop setting
User: "0:0"when launching agent containers.
Edit agents/scraper.md and add any portal to the search list. The rest of the pipeline does not need changes.
MIT