Install
$ agentstack add skill-galiprandi-job-seeker-daily ✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
Verified badge
Passed review? Show it. Paste this badge into your README, it links to the public security report.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.
We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.
How agent discovery & health will work →About
Daily
Trigger
Keyword: daily
The user says daily (or variants: "routine", "check and apply", "check everything") and the full routine is triggered.
Purpose
Compose the news and apply flows with decision logic to keep the job search active without manual intervention. Designed to run 1-2 times per day.
Pre-flight
- [ ] Verify active LinkedIn and Gmail sessions. If session closed → open browser with wrapper (see AGENTS.md "Browser session"):
node scripts/browser.js open --headed(Gold Rule 5) → notify user → wait for confirmation - [ ] Browser: always use
node scripts/browser.jsfor open/close/goto. See AGENTS.md "Browser session" for details. Never callplaywright-cli opendirectly, never open Chrome directly - [ ] Load active preferences (see
memoryskill):
``bash node scripts/db.js "SELECT category, key, value, confidence, source FROM preferences WHERE user_id = 1 AND status = 'active' ORDER BY category, key" ``
- [ ] Load strategy (see AGENTS.md "Strategy levels"):
``bash node scripts/db.js "SELECT data->'strategy' AS strategy FROM users WHERE id = 1" ` Respect: dailyfrequency (on-demand / 1x/day / 2x/day), sourcesactive (which pillars to activate), applybatchsize and targetsbatchsize (passed to sub-flows). If daily not in sources_active`, warn the user
Flow
1. News (check updates)
Run the full news flow:
- Review Gmail inbox + Job Alerts folder + LinkedIn messages/notifications
- Classify by fit (Must/Strong/Nice)
- If there are messages that require a response:
- Prepare drafts (Gold Rule 6)
- Present executive summary by priority
- Wait for user validation
- Send
- If no relevant updates: continue to step 2
2. Cleanup inbox
- Archive processed job emails (old alerts, read newsletters)
- Mark obvious spam as spam
- Don't archive unanswered recruiter messages
3. Decide whether to apply
Query DB via db CLI:
node scripts/db.js "SELECT max(applied_at) AS last_application FROM applications WHERE user_id = 1"
Decision logic respects strategy:
- If
strategy.daily_frequency = on-demand→ don't auto-run apply/targets, only run news - If
strategy.daily_frequency = 1x/day→ run apply/targets if last application > 2 days ago - If
strategy.daily_frequency = 2x/day→ run apply/targets if last application > 1 day ago - Which pillar to run depends on
strategy.sources_active: - If
applyin sources_active andapply_batch_size > 0→ runapplywith N =apply_batch_size - If
targetsin sources_active andtargets_batch_size > 0→ runtargetswith batch =targets_batch_size - Note:
applyandtargetsinternally runreferralsas step 0 (warm sourcing pre-check) ifreferralsis insources_active. No separatedailystep is needed for referrals — it is embedded. Staged referral/outreach drafts are surfaced by thenewsstep above. - If
last_applicationis recent enough → done. Report: "Last application: X. No need to apply today."
4. Final summary
Present the user with a consolidated session summary:
- Updates found and actions taken (replies sent, pending drafts)
- Inbox cleanup: how many emails archived
- Applications: how many new applications, table with company/role/URL
- If no applications: reason (recent activity)
- Pipeline overview: run
node scripts/pipeline.js --funneland include the funnel summary so the user sees the current state of all applications/contacts at a glance
Dependencies
- Depends on
news(check updates, surface staged referral/outreach drafts) - Depends on
apply(apply if no recent activity) - Depends on
targets(alternative to apply for direct sourcing) - Depends on
referrals(embedded as step 0 ofapply/targetswhen insources_active) - Depends on
onboarding(DB to query last_application) - Depends on
profile(Must-haves for apply)
Automation notes
This flow is designed to eventually be automated via cron (GitHub Action scheduled or local cron that triggers a Devin cloud session with prompt daily). In the meantime, the user triggers it manually by saying daily.
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: galiprandi
- Source: galiprandi/job-seeker
- License: MIT
- Homepage: https://galiprandi.github.io/job-seeker/
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet, be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.