Agent skill

Job Hunt Skill

by yanliudesign in yanliudesign/offer-toolkit-skill

批量发现、整理和持续维护求职岗位清单。根据用户的简历、目标方向或种子 JD,搜索 LinkedIn 与公开网页,去重并建立尽量完整的候选池,用证据区分已核验事实和方向性推断,最后生成可搜索、可筛选的单文件 HTML job-hunt-skill 报告。用户说‘帮我批量找岗位’、‘整理职位清单’、‘使用 job-hunt-skill’、‘根据简历搜工作’、‘把这些 LinkedIn…

MITAuto-check passedBusiness, Finance & HR

Install Job Hunt Skill

skills CLI
$ npx skills add yanliudesign/offer-toolkit-skill --skill job-hunt-skill -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install yanliudesign/offer-toolkit-skill job-hunt-skill --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/yanliudesign/offer-toolkit-skill.git skills-src && mkdir -p .claude/skills && cp -r skills-src/job-hunt-skill .claude/skills/job-hunt-skill && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
job-hunt-skill
GitHub stars
520
Token cost
~942 tokens
SKILL.md length
273 words
Files
17 (incl. references, assets)
Skills in repo
7
Repo updated
First seen
Licence
MIT

At a glance

批量发现、整理和持续维护求职岗位清单。根据用户的简历、目标方向或种子 JD,搜索 LinkedIn 与公开网页,去重并建立尽量完整的候选池,用证据区分已核验事实和方向性推断,最后生成可搜索、可筛选的单文件 HTML job-hunt-skill 报告。用户说‘帮我批量找岗位’、‘整理职位清单’、‘使用 job-hunt-skill’、‘根据简历搜工作’、‘把这些 LinkedIn…

  • Works in 9 steps: 判断输入是否足够 → 建立搜索画像 → 生成互补查询矩阵 → …
  • Business, Finance & HR work in your project
  • SKILL.md covers 职责边界, 0. 判断输入是否足够, 1. 建立搜索画像 and 2. 生成互补查询矩阵, plus 7 more sections
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md

What it does

Job Hunt Skill is an agent skill from yanliudesign/offer-toolkit-skill. 批量发现、整理和持续维护求职岗位清单。根据用户的简历、目标方向或种子 JD,搜索 LinkedIn 与公开网页,去重并建立尽量完整的候选池,用证据区分已核验事实和方向性推断,最后生成可搜索、可筛选的单文件 HTML job-hunt-skill 报告。用户说‘帮我批量找岗位’、‘整理职位清单’、‘使用 job-hunt-skill’、‘根据简历搜工作’、‘把这些 LinkedIn 职位做成表格’、‘持续跟踪岗位’时必须使用。只发现和分析岗位;绝不自动申请、处理登录凭据或绕过访问限制。

Its SKILL.md is about 940 tokens, which your agent loads only when the skill is triggered. The skill folder holds 21 other files, including reference files and assets (for example `README.md`, `README.zh.md` and `assets/report-spec.md`). Compatibility notes: 需要网页或浏览器工具以实时发现岗位;无法访问网页时可整理用户提供的链接,或输出可点击的搜索查询。生成报告需要本地文件写入能力。

It sits in Business, Finance & HR. It works with LinkedIn. The repository describes itself as: Full job-hunt Claude skill bundle — Job Description decoder + Resume builder (11 templates) + Behavioral Interview / story bank. Three self-contained sub-skills with a top-level… The licence is MIT.

When your agent uses it

  • Business, Finance & HR work in your project

Example prompts

  • “/job-hunt-skill”

Requirements

  • Compatibility (from SKILL.md): 需要网页或浏览器工具以实时发现岗位;无法访问网页时可整理用户提供的链接,或输出可点击的搜索查询。生成报告需要本地文件写入能力。

Workflow steps

9 steps, taken from the step headings in SKILL.md.

  1. 判断输入是否足够
  2. 建立搜索画像
  3. 生成互补查询矩阵
  4. 发现公开职位
  5. 严格区分事实与推断
  6. 排序,但不删掉完整候选池
  7. 生成单文件 HTML
  8. 验证后再交付
  9. 后续更新

What it can do on your machine

Read from SKILL.md and the folder at commit f66c4b7. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    No scripts in the folder and no shell commands in SKILL.md (its code samples are yaml).

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

  • Compatibility

    需要网页或浏览器工具以实时发现岗位;无法访问网页时可整理用户提供的链接,或输出可点击的搜索查询。生成报告需要本地文件写入能力。

    From compatibility in the SKILL.md frontmatter.

Context cost

Job Hunt Skill loads about 942 tokens when it runs, and up to ~1.5k if it reads all its reference files. Until then it costs about 65 tokens; SKILL.md has 273 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~65
When it runs · the whole SKILL.md, loaded when a task matches
~942
With references · SKILL.md plus every file in references/, read only if the agent opens them
~1.5k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from yanliudesign/offer-toolkit-skill at commit f66c4b7, republished under its MIT licence (© yanliudesign). 273 words, ~942 tokens.

Download SKILL.mdSave it as .claude/skills/job-hunt-skill/SKILL.md (or your agent's skills folder). This skill also uses 16 other files; get the full folder from GitHub.
name
job-hunt-skill
description
批量发现、整理和持续维护求职岗位清单。根据用户的简历、目标方向或种子 JD,搜索 LinkedIn 与公开网页,去重并建立尽量完整的候选池,用证据区分已核验事实和方向性推断,最后生成可搜索、可筛选的单文件 HTML job-hunt-skill 报告。用户说‘帮我批量找岗位’、‘整理职位清单’、‘使用 job-hunt-skill’、‘根据简历搜工作’、‘把这些 LinkedIn 职位做成表格’、‘持续跟踪岗位’时必须使用。只发现和分析岗位;绝不自动申请、处理登录凭据或绕过访问限制。
compatibility
需要网页或浏览器工具以实时发现岗位;无法访问网页时可整理用户提供的链接,或输出可点击的搜索查询。生成报告需要本地文件写入能力。

job-hunt-skill

把“帮我看看有哪些工作”变成一份可以持续搜索、比较和更新的职位数据库,而不是一次性的推荐答案。

text
简历 / 目标方向 / 种子 JD
          ↓
搜索画像 → 查询矩阵 → 公开候选池 → 去重与证据分层
          ↓
完整 job-hunt-skill HTML 报告 → 搜索 / 筛选 / 打开职位 → 选择深评对象

职责边界

  • 负责批量发现、采集公开信息、去重、初筛、证据分层、排序和生成职位清单。
  • 默认保留所有通过硬条件的唯一职位;不要擅自压缩成 5–10 个 shortlist。
  • 不自动点击 Apply,不填写表单,不发送消息,不代表用户投递。
  • 不索取或处理密码、验证码、Cookie、session token 或其他登录凭据。
  • 遇到登录墙、验证码、HTTP 429、robots 限制时停止该访问路径;切换到公开公司招聘页、公开搜索结果或可点击查询链接,不尝试绕过。
  • 不把职位发现扩写成完整单岗位 Offer Strategy。用户选中岗位后再交给 job-description-skill。

0. 判断输入是否足够

优先使用用户已经提供的材料,不重复索取:

  1. 简历:PDF、Word、HTML 或纯文本均可。
  2. 目标:title、level、领域、地点、工作方式。
  3. 可选种子 JD:用于补充岗位语义,不得反向伪造简历能力。
  4. 可选已有链接:用于合并、补充或更新旧清单。

若缺少会显著改变结果集的信息,一次只问一个问题,顺序如下:

  1. 目标 title / level
  2. 地点与 remote / hybrid / relocation
  3. 时间范围
  4. 必须排除的行业、公司、合同类型或签证门槛

默认值为最近 30 天、full-time、目标 level 上下浮动一级。最终报告必须显式写出默认值。

1. 建立搜索画像

只从用户材料提取有证据的能力,形成:

yaml
target_titles: []
adjacent_titles: []
level: ""
locations: []
workplace: []
date_posted: "30d"
employment_types: ["full-time"]
core_capabilities: []
domains: []
company_preferences: []
exclusions: []
seed_signals: []

向用户回显不超过 8 行的画像。若用户没有纠正,继续执行,不要求二次确认。

2. 生成互补查询矩阵

生成 6–12 组短查询,每组只放 1–2 个判别词:

  1. Exact title:目标 title + 地点
  2. Adjacent title:相邻 title + 地点
  3. Capability-led:title + 核心能力
  4. Domain-led:title + 领域
  5. Scope-led:title + platform / growth / 0-to-1 / enterprise 等 scope
  6. Company-led:用户偏好公司或相邻公司 + title

记录每组 query、URL、执行时间和来源。不要把所有同义词塞进一个查询,否则会系统性漏岗。

3. 发现公开职位

按以下优先级使用可访问来源:

  1. 具体职位页或公司官方招聘页
  2. LinkedIn 可公开访问的职位页与搜索结果
  3. 搜索引擎中的 site:linkedin.com/jobs/view 结果
  4. 其他公开招聘页面

每条候选尽可能采集:

  • title
  • company
  • canonical URL / job id
  • location 与 workplace
  • posted date / age
  • salary,仅页面明确展示时记录
  • JD 可见程度:full / partial / unavailable
  • source 与 checked_at

按 canonical job id / URL 去重。没有 id 时,使用 normalized company + title + location,并保留证据更完整、更新时间更新的记录。

停止条件:

  • 查询矩阵全部跑完;或
  • 每组已查看前 2 页 / 前 25 条;或
  • 当前来源触发访问限制。

不要为了凑数量保留明显违反地点、level、employment type 或硬门槛的岗位。

4. 严格区分事实与推断

读取 references/evidence-ranking.md,为每条字段标记证据状态:

  • verified:职位页或官方页直接出现
  • partial:公开摘要可见,但完整 JD 不可见
  • inferred:根据 title、公司或邻近信号推断
  • unknown:没有可靠信息

未知字段留空或显示“待核验”。绝不补写薪资、发布时间、工作方式、签证政策、岗位状态或 JD 要求。

5. 排序,但不删掉完整候选池

先通过硬条件,再按两个层次排序:

  1. 已读取完整 JD 的岗位:用 0.60 Must Have + 0.20 Nice to Have + 0.20 Hidden Signal Fit 计算匹配区间。
  2. JD 不完整的岗位:只做方向性排序,不显示伪精确 match score。

排序顺序:证据完整度 → 匹配强度 → 发布时间 → 与目标方向的接近度。缺失发布时间不能自动视为旧岗位。

内部可保留优先级字段用于排序和筛选,但默认不要在职位行显示 Tier A / Tier B 标签。用户要求显示时才显示。

6. 生成单文件 HTML

默认生成 HTML,而不是 Markdown。读取 assets/report-spec.md 并遵守其数据、表格和交互契约。

文件名:job-hunt-skill-{candidate-or-topic}-{YYYYMMDD}.html

默认保存到用户指定目录;未指定时保存到当前工作目录。生成后打开本地文件供用户检查。

报告必须包含:

  • 搜索画像、生成时间、来源与证据说明
  • 完整唯一职位数、深度核验数
  • 搜索框和快速筛选
  • 职位、公司、领域标签、推荐理由、主要 Gap
  • 可核验的发布日期、地点 / 工作方式、薪资、匹配度
  • 指向具体职位的打开链接
  • 查询日志和访问限制说明

不要在页面里暴露本地简历全文、登录信息或无关个人数据。

7. 验证后再交付

至少完成以下检查:

  1. HTML 内联 JavaScript 语法有效。
  2. 渲染职位行数等于去重后的数据行数。
  3. 每行表格列数一致,具体职位链接有效成形。
  4. 搜索能命中 title、company、domain、reason 与 gap。
  5. “待核验”字段没有被自动补成事实。
  6. 若有领域标签,标签紧邻公司名并可被搜索。
  7. 页面不显示 Tier A / Tier B badge,除非用户明确要求。

有浏览器测试工具时,实际加载页面并验证 DOM;没有时至少做脚本语法检查和静态结构检查。

8. 后续更新

用户提供旧 job-hunt-skill 报告时:

  1. 解析现有职位 id / URL。
  2. 只新增新发现职位,合并更完整证据。
  3. 不因为暂时访问不到就断言岗位关闭。
  4. 保留原始 first_seen,更新 last_checked。
  5. 在报告中列出新增、更新、待复核数量。

交付口径

简要告诉用户:保存路径、唯一职位数、深评数量、访问限制和验证结果。不要把整张职位表复制回聊天。

© yanliudesign, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 16 other files (references, assets) in job-hunt-skill of yanliudesign/offer-toolkit-skill.

  • SKILL.md
  • README.md
  • README.zh.md
  • assets/report-spec.md
  • evals/evals.json
  • examples/cn/job-search-01.png
  • examples/cn/job-search-02.png
  • examples/cn/job-search-03.png
  • examples/cn/job-search-04.png
  • examples/cn/job-search-05.png
  • examples/en/job-search-01.png
  • examples/en/job-search-02.png
  • examples/en/job-search-03.png
  • examples/en/job-search-04.png
  • examples/en/job-search-05.png
  • references
  • … and 1 more

Open the folder on GitHubat commit f66c4b7

Compare with similar skills

Job Hunt Skill next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Job Hunt Skill compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Job Hunt Skill this skillyanliudesign/offer-toolkit-skill520—~942Automated safety check: PassMIT
Network Scanproficientlyjobs/proficiently-claude-skills4111 repos~2.6kAutomated safety check: PassNone
Apify Buying Signal Detectionapify/awesome-skills266—~5.1kAutomated safety check: NotesApache-2.0
Candidate Briefyc-software/recruiting115—~1.1kAutomated safety check: NotesNone
Outreachandrew-shwetzer/career-ops-plugin-do-not-fork-currently-updating-v2-502—~939Automated safety check: PassMIT
Setupproficientlyjobs/proficiently-claude-skills411—~1.4kAutomated safety check: PassNone

Similar skills

  • Network Scan

    proficientlyjobs/proficiently-claude-skills

    Scan your LinkedIn contacts' companies for matching job openings

    411 GitHub starsUsed in 1 repo~2.6k tokens
    Business, Finance & HRAuto-check passed
  • Apify Buying Signal Detection

    apify/awesome-skills

    Official

    Set up a recurring buying-signal detection pipeline that finds companies showing buying intent across three signal types — job postings (hiring for the persona), fundraising events (recent raises)…

    266 GitHub stars~5.1k tokensUpdated 18 days ago
    Business, Finance & HRAuto-check: notes
  • Candidate Brief

    yc-software/recruiting

    Generate a quick one-paragraph brief on a candidate by pulling from all available sources.

    115 GitHub stars~1.1k tokensUpdated 1 mo ago
    Business, Finance & HRAuto-check: notes
  • Outreach

    andrew-shwetzer/career-ops-plugin-do-not-fork-currently-updating-v2-

    Draft personalized outreach messages for LinkedIn connections, hiring managers, or recruiters.

    502 GitHub stars~939 tokensUpdated 2 mo ago
    Business, Finance & HRAuto-check passed
  • Setup

    proficientlyjobs/proficiently-claude-skills

    One-time onboarding - upload resume, set preferences, and do a work history interview

    411 GitHub stars~1.4k tokensUpdated 7 mo ago
    Business, Finance & HRAuto-check passed
  • Company Hiring Intelligence

    tinyfish-io/tinyfish-cookbook

    Reverse-engineer what a company is building by scraping their job postings, careers page, LinkedIn Jobs, and engineering blog using TinyFish web agents.

    2.2k GitHub stars~3.6k tokensUpdated 2 days ago
    Business, Finance & HRAuto-check passed

More from yanliudesign/offer-toolkit-skill

  • Bq Skill

    yanliudesign/offer-toolkit-skill

    行为面试 skill。帮求职者挖掘真实经历、用 STAR/CAR 结构化、映射能力标签、构建可复用的中英双语故事库(Story Bank);并能接入 JD + 简历,针对具体岗位生成 Top 20 BQ 选题 + 基于真实经历的 STAR 准备模板(HTML 报告)。不是背答案,而是建立可复用的职业叙事体系,让任何行为面试题都能自然作答。关键词:behavioral question, BQ…

    520 GitHub stars~985 tokensUpdated 12 days ago
    Auto-check passed
  • Linkedin Job Search Skill

    yanliudesign/offer-toolkit-skill

    LinkedIn 岗位发现与匹配排序。根据用户给的一份种子 JD 和简历,提取目标岗位画像,自动生成多组 LinkedIn Jobs 搜索,采集、去重并按证据给岗位分层,最终输出可直接投递的 shortlist。用户说‘帮我找工作’、‘在 LinkedIn 搜适合我的岗位’、‘找相似职位’、‘根据简历推荐岗位’、‘job search’、‘find jobs like…

    520 GitHub stars~1k tokensUpdated 12 days ago
    Auto-check passed
  • Offer Compare Skill

    yanliudesign/offer-toolkit-skill

    Offer 对比决策器。用户同时拿到两份(或多份)offer 纠结怎么选时,扮演 Senior Career Decision Advisor:结构化对比 comp / 成长 / AI 敞口 / 公司强度 / 团队风险 / 晋升速度 / 生活方式,识别 front-loaded vs long-term upside、resume value、switch-out 难度、hidden…

    520 GitHub stars~1.8k tokensUpdated 12 days ago
    Auto-check passed
  • Offer Toolkit Skill

    yanliudesign/offer-toolkit-skill

    求职工具包。把「找岗位 → 签 offer」拆成六个独立子 skill:⓪ Job Hunt 批量发现岗位,① Job Description 解码具体 JD,② Resume 定向简历,③ BQ 准备行为面试,④ Offer Compare 对比多份 offer,⑤ Salary Negotiation 谈 package。任何求职相关请求(找工作、该不该投、改简历、准备面试、选…

    520 GitHub stars~1.2k tokensUpdated 12 days ago
    Auto-check passed
  • Resume Skill

    yanliudesign/offer-toolkit-skill

    简历生成与美化。两种入口:把已有简历(PDF/Word/文本)解析、诊断、套用模板美化;或者还没有简历时,通过 LinkedIn 导入或一问一答的对话帮你从零建出一份。输出单页打印优化的 HTML(浏览器里 Cmd+P 直接存成 PDF),提供 12 套模板,覆盖 ATS 友好、侧栏、衬线、编辑、时间轴与头像版式。关键词:resume, CV, 简历, 美化简历, 做简历, 简历模板…

    520 GitHub stars~1.1k tokensUpdated 12 days ago
    Auto-check passed
  • Salary Negotiation Skill

    yanliudesign/offer-toolkit-skill

    薪资谈判教练。模拟前 FAANG 招聘官 + 薪酬策略师,把「拿到 offer → 签字」这一步拆成 6 个动作:Offer 诊断(Base / RSU / Sign-on / Bonus 每项标 LOW/MED/HIGH leverage)→ 谈判杠杆图(我的力量 / 招聘官的力量 / 弱点)→ 策略排序(Base → RSU → Sign-on → Bonus,按 context 调整)→…

    520 GitHub stars~2.1k tokensUpdated 12 days ago
    Auto-check passed

Works with

Questions about Job Hunt Skill

What does Job Hunt Skill do?

批量发现、整理和持续维护求职岗位清单。根据用户的简历、目标方向或种子 JD,搜索 LinkedIn 与公开网页,去重并建立尽量完整的候选池,用证据区分已核验事实和方向性推断,最后生成可搜索、可筛选的单文件 HTML job-hunt-skill 报告。用户说‘帮我批量找岗位’、‘整理职位清单’、‘使用 job-hunt-skill’、‘根据简历搜工作’、‘把这些 LinkedIn…. Job Hunt Skill is an agent skill from yanliudesign/offer-toolkit-skill.

When should I use Job Hunt Skill?

Job Hunt Skill fits situations like: business, Finance & HR work in your project.

How do I install Job Hunt Skill in Claude Code?

Run `npx skills add yanliudesign/offer-toolkit-skill --skill job-hunt-skill -a claude-code`. Or copy the skill folder (job-hunt-skill in yanliudesign/offer-toolkit-skill) into .claude/skills/job-hunt-skill in your project. Claude Code loads it when a task matches its description.

How do I install Job Hunt Skill in Codex?

Run `npx skills add yanliudesign/offer-toolkit-skill --skill job-hunt-skill -a codex`. Or copy the skill folder (job-hunt-skill in yanliudesign/offer-toolkit-skill) into .agents/skills/job-hunt-skill in your project. Codex loads it when a task matches its description.

Can I use Job Hunt Skill in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add yanliudesign/offer-toolkit-skill --skill job-hunt-skill -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/job-hunt-skill, .gemini/skills/job-hunt-skill, .github/skills/job-hunt-skill and .opencode/skills/job-hunt-skill in your project.

What does Job Hunt Skill need to run?

SKILL.md names no scripts, command-line tools or credentials: Job Hunt Skill is instructions for the agent only. Compatibility (from SKILL.md): 需要网页或浏览器工具以实时发现岗位;无法访问网页时可整理用户提供的链接,或输出可点击的搜索查询。生成报告需要本地文件写入能力。.

Does Job Hunt Skill access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Job Hunt Skill safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Job Hunt Skill use?

Job Hunt Skill is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Job Hunt Skill use?

About 942 tokens (SKILL.md is roughly 3.8k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 570 tokens, read only when the agent opens those files.

What are the alternatives to Job Hunt Skill?

Skills that share tags, products or a category with Job Hunt Skill: Network Scan (proficientlyjobs/proficiently-claude-skills, 411 stars), Apify Buying Signal Detection (apify/awesome-skills, 266 stars), Candidate Brief (yc-software/recruiting, 115 stars) and Outreach (andrew-shwetzer/career-ops-plugin-do-not-fork-currently-updating-v2-, 502 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Job Hunt Skill?

yanliudesign (a GitHub user) maintains it in yanliudesign/offer-toolkit-skill, which has 520 GitHub stars. The repository holds 7 skills in this directory. The repository was last updated on September 29, 2026.

Source: yanliudesign/offer-toolkit-skill on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.