# Daily

> Periodic routine that runs news, cleans up inbox and applies if there's no recent activity. Designed to run 1-2 times per day.

- **Type:** Skill
- **Install:** `agentstack add skill-galiprandi-job-seeker-daily`
- **Verified:** Yes — security-reviewed for prompt injection and unsafe behavior
- **Seller:** [galiprandi](https://agentstack.voostack.com/s/galiprandi)
- **Installs:** 0
- **Category:** [Databases](https://agentstack.voostack.com/c/databases)
- **Latest version:** 0.1.0
- **License:** MIT
- **Upstream author:** [galiprandi](https://github.com/galiprandi)
- **Source:** https://github.com/galiprandi/job-seeker/tree/main/.agents/skills/daily
- **Website:** https://galiprandi.github.io/job-seeker/

## Install

```sh
agentstack add skill-galiprandi-job-seeker-daily
```

Requires the [AgentStack CLI](https://agentstack.voostack.com/docs/cli). Works with Claude Code, Cursor, and any MCP-compatible agent.

## 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.js` for open/close/goto. See AGENTS.md "Browser session" for details. Never call `playwright-cli open` directly, never open Chrome directly
- [ ] Load active preferences (see `memory` skill):
  ```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: `daily_frequency` (on-demand / 1x/day / 2x/day), `sources_active` (which pillars to activate), `apply_batch_size` and `targets_batch_size` (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:

```bash
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 `apply` in sources_active and `apply_batch_size > 0` → run `apply` with N = `apply_batch_size`
  - If `targets` in sources_active and `targets_batch_size > 0` → run `targets` with batch = `targets_batch_size`
  - **Note:** `apply` and `targets` internally run `referrals` as step 0 (warm sourcing pre-check) if `referrals` is in `sources_active`. No separate `daily` step is needed for referrals — it is embedded. Staged referral/outreach drafts are surfaced by the `news` step above.
- If `last_application` is 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 --funnel` and 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 of `apply`/`targets` when in `sources_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](https://github.com/galiprandi)
- **Source:** [galiprandi/job-seeker](https://github.com/galiprandi/job-seeker)
- **License:** MIT
- **Homepage:** https://galiprandi.github.io/job-seeker/

Install and usage instructions live in the source repository linked above.

## Pricing

- **Free** — Free

## Security capabilities

Automated source analysis of v0.1.0 — what this tool can access:

- **Network access:** no
- **Filesystem access:** no
- **Shell / process execution:** no
- **Environment & secrets:** no
- **Dynamic code execution:** no

*"Yes" means the capability is present in the source — more access means more to trust, not that it is unsafe.*


## Versions

- **0.1.0** — security scan: passed — Imported from the upstream source.

## Links

- Listing page: https://agentstack.voostack.com/l/skill-galiprandi-job-seeker-daily
- Seller: https://agentstack.voostack.com/s/galiprandi
- Browse the marketplace: https://agentstack.voostack.com/browse

---
Listed on AgentStack — the marketplace for AI agent skills and MCP servers. Every listing is security-reviewed. Creators keep 70%.
