Daily
SkillDev toolsPeriodic routine that runs news, cleans up inbox and applies if there's no recent activity. Designed to run 1-2 times per day.
Available today. Use it from your connected AI after setup.
No other account needed.
Connect ahel once, and every AI you use reads what you have installed.
Then ask your AI: use the Daily skill
What this skill tells your AI
The instructions your AI receives, as published by galiprandi/job-seeker in .agents/skills/daily/SKILL.md and read by ahel’s review.
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 <url> --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):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"):
Respect:node scripts/db.js "SELECT data->'strategy' AS strategy FROM users WHERE id = 1"daily_frequency(on-demand / 1x/day / 2x/day),sources_active(which pillars to activate),apply_batch_sizeandtargets_batch_size(passed to sub-flows). Ifdailynot insources_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
- 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.
Signals
- GitHub stars
- 26
- Forks
- 1
- Last commit
- Sep 2026
Advanced
- Catalog kind
- skill
- Gateway key
daily-galiprandi- Source
- github.com/galiprandi/job-seeker