Not in the top 1,000 by GitHub stars

jennifer88huang/interview-skills

AI mock interview coach for FAANG, Big Tech, and startup job seekers. Generate personalized interview questions from JD + resume.

History

Review weekly changes to SKILL.md before updating. Dates mark the weeks in which we observed each version; checks apply to the recorded commits.

View weekly changes

SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

8f72957468e1 → 8f72957468e1

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 8f72957468e1

No earlier version was observed for comparison.

Compare on GitHub

View on GitHubAdd to my skills

Verified commit 8f72957468e1a05225c20aaf7239dce514c181f7

398GitHub stars
12stars in 7 days
1skill in this repository
0commits in 30 days

Heat

4.0
  • Star growth, last 7 daysNot available
  • Star growth, last 24 hoursNot available
  • Rank movement, last 7 daysNot available
  • Commits, last 30 daysNot available
  • Accounts asking about it through MCP, last 7 daysNot available
  • Hot votes this weekNot available

Heat never changes the order by stars, and sponsorship never touches it. How heat works

Stars over time

Oct 25, 2026Nov 5, 2026398

30-day change not yet available: not enough history.

Individual skills in this repository

How it works

interview-skills

When your agent uses it

大厂 AI 模拟面试官。覆盖阿里、腾讯、字节跳动、百度、美团、京东、华为、滴滴、拼多多、Google、Meta、Amazon、Microsoft 等国内外头部互联网/科技公司。用户输入目标公司名、岗位名和 JD 内容,上传简历后,Agent 扮演大厂面试官,结合 JD 要求与简历情况,输出 10 道高质量面试题(含难度、参考答案提示、追问方向),并支持生成「好答案 vs 差答案」对比示例、HR 面专项训练、薪资谈判话术指引与多轮完整面试连贯模拟。触发词:大厂面试、海外大厂面试、模拟面试、面试官、帮我面试、面试准备、interview practice、mock interview、我要面字节、阿里面试题、Google 面试、Meta 面试、Amazon 面试、AWS 面试、Microsoft 面试、帮我出10道面试题、好答案 vs 差答案、示范回答、回答对比、模拟HR面、离职原因、薪资谈判、职业规划、offer谈判、薪资话术、完整面试流程、多轮模拟、一面二面三面。

What it loads into context

Frontmatter

343 tokens

Always available to the agent

SKILL.md

7,019 tokens

When the skill is activated

Reference documents

45,763 tokens

Loaded on request

Token counts are estimates. Scripts run separately; they are not counted as reference context.

The playbook

  1. 触发条件
  2. 工作原理
  3. 主流程
  4. 题目难度说明
  5. 面试轮次说明
  6. 各公司特色面试提醒
  7. 管理命令
  8. 参考资料

Scripts executed separately

  • extensions/export-md/export-md.js
  • extensions/mic-input/mic-input.js
  • extensions/model-config/model-config.js
  • extensions/reference-answer/reference-answer.js
  • extensions/server.js
  • extensions/start.bat
  • extensions/storage-sync/storage-sync.js
  • install-skill.sh
  • ui/app.js
  • ui/lib/pdf.min.js
  • ui/lib/pdf.worker.min.js
  • ui/storage.js

Files

  • .clawhubignoreasset237 bytes
  • .gitignoreasset68 bytes
  • 64d09621e8b2a9947c426773235c1ecc.txtdoc32 bytes
  • CONTRIBUTING.mddoc1,779 bytes
  • FAQ.mddoc3,523 bytes
  • INSTALL.mddoc943 bytes
  • PRD.mddoc21,934 bytes
  • README-en.mddoc15,808 bytes
  • README.mddoc33,807 bytes
  • SKILL.mdcore28,405 bytes
  • assets/ali-JD.jpgasset50,632 bytes
  • assets/interview-banner.pngasset1,205,237 bytes
  • assets/interview-banner1.pngasset1,193,387 bytes
  • assets/liang-JD-analysis.jpgasset49,924 bytes
  • assets/mock-interview-ui-en.pngasset166,501 bytes
  • assets/mock-interview-ui.pngasset165,817 bytes
  • assets/readme-banner.pngasset1,821,025 bytes
  • docs/geo-article.mddoc14,179 bytes
  • extensions/export-md/export-md.cssasset445 bytes
  • extensions/export-md/export-md.jsruns13,067 bytes
  • extensions/mic-input/mic-input.cssasset1,108 bytes
  • extensions/mic-input/mic-input.jsruns12,704 bytes
  • extensions/model-config/model-config.jsruns4,947 bytes
  • extensions/model-config/model-config.jsonasset547 bytes
  • extensions/reference-answer/reference-answer.cssasset1,285 bytes
  • extensions/reference-answer/reference-answer.jsruns15,119 bytes
  • extensions/server.jsruns8,414 bytes
  • extensions/start.batruns260 bytes
  • extensions/storage-sync/storage-sync.jsruns6,613 bytes
  • google808d46955510017e.htmlasset53 bytes
  • index.htmlasset13,133 bytes
  • install-skill.shruns1,780 bytes
  • llms.txtdoc2,046 bytes
  • references/bei-framework.mddoc3,390 bytes
  • references/chatbox-senior-ai-chatbot.mddoc55,167 bytes
  • references/company-profiles.mddoc12,080 bytes
  • references/github-similar-repos-research.mddoc5,424 bytes
  • references/jd-parser.mddoc2,352 bytes
  • references/question-design.mddoc6,898 bytes
  • references/resume-parser.mddoc2,704 bytes
  • robots.txtdoc96 bytes
  • sitemap.txtdoc107 bytes
  • sitemap.xmlasset479 bytes
  • ui/README.mddoc3,104 bytes
  • ui/app.jsruns118,445 bytes
  • ui/index.htmlasset21,769 bytes
  • ui/lib/pdf.min.jsruns377,116 bytes
  • ui/lib/pdf.worker.min.jsruns1,133,660 bytes
  • ui/storage.jsruns7,176 bytes
  • ui/styles.cssasset32,154 bytes

No excerpt is shown for this license. Read the source on GitHub.

View the complete source on GitHub

Skills included

  • interview-skills

Repository facts

License
No license detected
Created
Apr 5, 2026
Last pushed
Jul 10, 2026
Forks
17
Open issues
1
Project activity
Slowing

Before you install

Network or broad shell

Automated signals, not a guarantee

Checked Nov 5, 2026

Not fully analyzed: some files were too long, unreadable or missing. This never lowers the level.

Show 5 notes
  • ui/lib/pdf.min.js:22 [Credential-related source omitted]
  • ui/lib/pdf.min.js:20 Analysis incomplete: physical or joined line exceeds character limit
  • ui/lib/pdf.worker.min.js:1 Analysis incomplete: file exceeds text byte budget
  • ui/lib/pdf.worker.min.js:22 [Credential-related source omitted]
  • ui/lib/pdf.worker.min.js:20 Analysis incomplete: physical or joined line exceeds character limit
Show all 216 signals by file

.gitignore

  • Access to secretsline 4
    [Credential-related source omitted]

INSTALL.md

  • Network accessline 18
    # 在本仓库根目录运行 bash install-skill.sh https://github.com/jennifer88huang/interview-skills.git
  • Network accessline 19
    bash install-skill.sh https://github.com/jennifer88huang/interview-skills.git
  • Network accessline 25
    mkdir -p ~/.openclaw/skills git clone https://github.com/jennifer88huang/interview-skills.git ~/.openclaw/skills/interview-skills
  • Network accessline 26
    git clone https://github.com/jennifer88huang/interview-skills.git ~/.openclaw/skills/interview-skills

PRD.md

  • Network accessline 524
    # 1. 在本仓库根目录运行安装脚本 bash install-skill.sh https://github.com/jennifer88huang/interview-skills.git
  • Network accessline 525
    bash install-skill.sh https://github.com/jennifer88huang/interview-skills.git

README-en.md

  • Network accessline 5
    [![Stars](https://img.shields.io/github/stars/jennifer88huang/interview-skills?style=social)](https://github.com/jennifer88huang/interview-skills/stargazers)
  • Network accessline 6
    [![Forks](https://img.shields.io/github/forks/jennifer88huang/interview-skills?style=social)](https://github.com/jennifer88huang/interview-skills/network/members)
  • Network accessline 7
    [![Last Commit](https://img.shields.io/github/last-commit/jennifer88huang/interview-skills)](https://github.com/jennifer88huang/interview-skills/commits/main)
  • Network accessline 8
    [![License](https://img.shields.io/badge/license-MIT-orange)](LICENSE)
  • Network accessline 9
    [![Version](https://img.shields.io/badge/version-1.0.0-green)]()
  • Network accessline 15
    **Live Demo:** [Interview Skills AI Mock Interview Coach](https://jennifer88huang.github.io/interview-skills/)
  • Network accessline 16
    **Web App:** [Start a mock interview from JD and resume](https://jennifer88huang.github.io/interview-skills/ui/?lang=en)
  • Network accessline 107
    https://jennifer88huang.github.io/interview-skills/ui/?lang=en
  • Network accessline 132
    bash install-skill.sh https://github.com/jennifer88huang/interview-skills.git
  • Network accessline 138
    mkdir -p ~/.openclaw/skills git clone https://github.com/jennifer88huang/interview-skills.git ~/.openclaw/skills/interview-skills
  • Network accessline 139
    git clone https://github.com/jennifer88huang/interview-skills.git ~/.openclaw/skills/interview-skills
  • Network accessline 238
    Yes. Interview Skills is fully open-source under the MIT license and free to use. The browser UI at [jennifer88huang.github.io/interview-skills/ui/](https://jennifer88huang.github.io/interview-skills/ui/) requires no account. The OpenClaw S

README.md

  • Network accessline 6
    [![Stars](https://img.shields.io/github/stars/jennifer88huang/interview-skills?style=social)](https://github.com/jennifer88huang/interview-skills/stargazers)
  • Network accessline 7
    [![Forks](https://img.shields.io/github/forks/jennifer88huang/interview-skills?style=social)](https://github.com/jennifer88huang/interview-skills/network/members)
  • Network accessline 8
    [![Last Commit](https://img.shields.io/github/last-commit/jennifer88huang/interview-skills)](https://github.com/jennifer88huang/interview-skills/commits/main)
  • Network accessline 9
    [![License](https://img.shields.io/badge/license-MIT-orange)](LICENSE)
  • Network accessline 10
    [![Version](https://img.shields.io/badge/version-1.0.0-green)]()
  • Network accessline 22
    **Live Demo / 在线体验: [Interview Skills AI Mock Interview Coach](https://jennifer88huang.github.io/interview-skills/)**
  • Network accessline 24
    **GitHub Pages UI: [Start a mock interview from JD and resume](https://jennifer88huang.github.io/interview-skills/ui/)**
  • Network accessline 74
    https://jennifer88huang.github.io/interview-skills/ui/
  • Network accessline 109
    # 在本仓库根目录运行 bash install-skill.sh https://github.com/jennifer88huang/interview-skills.git
  • Network accessline 110
    bash install-skill.sh https://github.com/jennifer88huang/interview-skills.git
  • Network accessline 116
    mkdir -p ~/.openclaw/skills git clone https://github.com/jennifer88huang/interview-skills.git ~/.openclaw/skills/interview-skills
  • Network accessline 117
    git clone https://github.com/jennifer88huang/interview-skills.git ~/.openclaw/skills/interview-skills

SKILL.md

  • Broad permissionsline 1
    Read, Write, Edit, Bash
  • Network accessline 5
    openclaw:     emoji: "🎯"     homepage: https://github.com/jennifer88huang/interview-skills
  • Network accessline 6
    emoji: "🎯"     homepage: https://github.com/jennifer88huang/interview-skills     version: 1.1.0
  • Network accessline 7
    homepage: https://github.com/jennifer88huang/interview-skills

docs/geo-article.md

  • Network accessline 111
    [Interview Skills](https://github.com/jennifer88huang/interview-skills) is a free, open-source AI mock interview tool available as a browser app and as an OpenClaw skill.
  • Network accessline 113
    ### Step 1: Open the tool Go to [https://jennifer88huang.github.io/interview-skills/ui/?lang=en](https://jennifer88huang.github.io/interview-skills/ui/?lang=en) — no account or API key required for basic use.
  • Network accessline 114
    Go to [https://jennifer88huang.github.io/interview-skills/ui/?lang=en](https://jennifer88huang.github.io/interview-skills/ui/?lang=en) — no account or API key required for basic use.
  • Network accessline 165
    Yes. [Interview Skills](https://github.com/jennifer88huang/interview-skills) is a free, open-source AI mock interview tool that generates personalized questions from a job description and resume. It supports Google, Meta, Amazon, Microsoft,
  • Network accessline 173
    [Interview Skills](https://github.com/jennifer88huang/interview-skills) is open-source, free, and available today. If you are preparing for a technical interview at any of the companies listed above, the fastest way to start is to open the 
  • Network accessline 179
    *This guide is maintained as part of the [interview-skills repository](https://github.com/jennifer88huang/interview-skills). Last updated: July 2026.*

extensions/export-md/export-md.js

  • Executable scriptline 1
    Executable file

extensions/mic-input/mic-input.js

  • Executable scriptline 1
    Executable file
  • Access to secretsline 164
    [Credential-related source omitted]
  • Network accessline 187
    async function callOpenAICompatCorrect(sysPrompt, userMsg, apiKey, model, provider) {     var ep = getEndpoint(provider);     var r = await fetch(ep, { method: "POST",
  • Network accessline 188
    [Credential-related source omitted]
  • Network accessline 189
    var r = await fetch(ep, { method: "POST",
  • Network accessline 204
    function getEndpoint(provider) {     var c = getEl("#customEndpointInput"); if (c) return c;     var m = { openai: "https://api.openai.com/v1/chat/completions", deepseek: "https://api.deepseek.com/chat/completions", qwen: "https://dashscope
  • Network accessline 205
    var c = getEl("#customEndpointInput"); if (c) return c;     var m = { openai: "https://api.openai.com/v1/chat/completions", deepseek: "https://api.deepseek.com/chat/completions", qwen: "https://dashscope.aliyuncs.com/compatible-mode/v1/chat
  • Network accessline 206
    var m = { openai: "https://api.openai.com/v1/chat/completions", deepseek: "https://api.deepseek.com/chat/completions", qwen: "https://dashscope.aliyuncs.com/compatible-mode/v1/chat/completions", kimi: "https://api.moonshot.cn/v1/chat/comple
  • Network accessline 207
    return m[provider] || "https://api.openai.com/v1/chat/completions";
  • Network accessline 210
    async function callAnthropicCorrect(sysPrompt, userMsg, apiKey, model) {     var r = await fetch("https://api.anthropic.com/v1/messages", { method: "POST",
  • Network accessline 211
    var r = await fetch("https://api.anthropic.com/v1/messages", { method: "POST",
  • Network accessline 222
    async function callGeminiCorrect(sysPrompt, userMsg, apiKey, model) {     var r = await fetch("https://generativelanguage.googleapis.com/v1beta/models/" + model + ":generateContent?key=" + encodeURIComponent(apiKey), {
  • Network accessline 223
    var r = await fetch("https://generativelanguage.googleapis.com/v1beta/models/" + model + ":generateContent?key=" + encodeURIComponent(apiKey), {

extensions/model-config/model-config.js

  • Executable scriptline 1
    Executable file
  • Network accessline 13
    function loadConfig() {     return fetch(CONFIG_URL).then(function (r) { return r.json(); }).then(function (cfg) {
  • Network accessline 14
    return fetch(CONFIG_URL).then(function (r) { return r.json(); }).then(function (cfg) {

extensions/reference-answer/reference-answer.js

  • Executable scriptline 1
    Executable file
  • Access to secretsline 210
    [Credential-related source omitted]
  • Access to secretsline 283
    [Credential-related source omitted]
  • Network accessline 294
    [Credential-related source omitted]
  • Network accessline 295
    [Credential-related source omitted]
  • Network accessline 296
    [Credential-related source omitted]
  • Network accessline 307
    function getEndpoint(provider) {     var c = getEl("#customEndpointInput"); if (c) return c;     var m = { openai: "https://api.openai.com/v1/chat/completions", deepseek: "https://api.deepseek.com/chat/completions", qwen: "https://dashscope
  • Network accessline 308
    var c = getEl("#customEndpointInput"); if (c) return c;     var m = { openai: "https://api.openai.com/v1/chat/completions", deepseek: "https://api.deepseek.com/chat/completions", qwen: "https://dashscope.aliyuncs.com/compatible-mode/v1/chat
  • Network accessline 309
    var m = { openai: "https://api.openai.com/v1/chat/completions", deepseek: "https://api.deepseek.com/chat/completions", qwen: "https://dashscope.aliyuncs.com/compatible-mode/v1/chat/completions", kimi: "https://api.moonshot.cn/v1/chat/comple
  • Network accessline 310
    return m[provider] || "https://api.openai.com/v1/chat/completions";
  • Network accessline 313
    async function callAnthropic(prompt, apiKey, model) {     var r = await fetch("https://api.anthropic.com/v1/messages", { method: "POST",
  • Network accessline 314
    var r = await fetch("https://api.anthropic.com/v1/messages", { method: "POST",
  • Network accessline 327
    async function callGemini(prompt, apiKey, model) {     var r = await fetch("https://generativelanguage.googleapis.com/v1beta/models/" + model + ":generateContent?key=" + encodeURIComponent(apiKey), {
  • Network accessline 328
    var r = await fetch("https://generativelanguage.googleapis.com/v1beta/models/" + model + ":generateContent?key=" + encodeURIComponent(apiKey), {

extensions/server.js

  • Executable scriptline 1
    Executable file
  • Network accessline 18
    const INJECT_HEAD = '\n<link rel="stylesheet" href="/extensions/export-md/export-md.css">\n<link rel="stylesheet" href="/extensions/mic-input/mic-input.css">\n<link rel="stylesheet" href="/extensions/reference-answer/reference-answer.css">\
  • Network accessline 19
    const INJECT_BODY = '\n<script src="/extensions/model-config/model-config.js"></script>\n<script src="/extensions/export-md/export-md.js"></script>\n<script src="/extensions/mic-input/mic-input.js"></script>\n<script src="/extensions/refere
  • Network accessline 144
    server.listen(PORT, () => {   console.log(`Server: http://localhost:${PORT}/`);
  • Network accessline 145
    console.log(`Server: http://localhost:${PORT}/`);
  • Network accessline 146
    console.log(`Interview: http://localhost:${PORT}/ui/`);

extensions/start.bat

  • Executable scriptline 1
    Executable file
  • Network accessline 5
    cscript //nologo %TEMP%\start-interview.vbs del %TEMP%\start-interview.vbs start http://localhost:3000/ui/
  • Network accessline 6
    del %TEMP%\start-interview.vbs start http://localhost:3000/ui/ exit
  • Network accessline 7
    start http://localhost:3000/ui/

extensions/storage-sync/storage-sync.js

  • Executable scriptline 1
    Executable file
  • Network accessline 7
    var API = "http://localhost:3000";
  • Network accessline 10
    var ctrl = new AbortController();     var timer = setTimeout(function () { ctrl.abort(); }, 2000);     return fetch(API + path, { signal: ctrl.signal })
  • Network accessline 11
    var timer = setTimeout(function () { ctrl.abort(); }, 2000);     return fetch(API + path, { signal: ctrl.signal })       .then(function (r) { clearTimeout(timer); return r.ok ? r.json() : null; })
  • Network accessline 12
    return fetch(API + path, { signal: ctrl.signal })
  • Network accessline 17
    var ctrl = new AbortController();     var timer = setTimeout(function () { ctrl.abort(); }, 2000);     return fetch(API + path, { method: "POST", headers: { "Content-Type": "application/json" }, body: JSON.stringify(body), signal: ctrl.sign
  • Network accessline 18
    var timer = setTimeout(function () { ctrl.abort(); }, 2000);     return fetch(API + path, { method: "POST", headers: { "Content-Type": "application/json" }, body: JSON.stringify(body), signal: ctrl.signal })       .catch(function () { retur
  • Network accessline 19
    return fetch(API + path, { method: "POST", headers: { "Content-Type": "application/json" }, body: JSON.stringify(body), signal: ctrl.signal })
  • Network accessline 24
    var ctrl = new AbortController();     var timer = setTimeout(function () { ctrl.abort(); }, 2000);     return fetch(API + path, { method: "DELETE", signal: ctrl.signal })
  • Network accessline 25
    var timer = setTimeout(function () { ctrl.abort(); }, 2000);     return fetch(API + path, { method: "DELETE", signal: ctrl.signal })       .catch(function () { return null; })
  • Network accessline 26
    return fetch(API + path, { method: "DELETE", signal: ctrl.signal })

index.html

  • Network accessline 12
    <meta name="google-site-verification" content="uXRhX5gesFoxwUtMh2J5TXwFEmEUhVI5hMuk_DImKas" />     <meta name="robots" content="index,follow" />     <link rel="canonical" href="https://jennifer88huang.github.io/interview-skills/" />
  • Network accessline 13
    <meta name="robots" content="index,follow" />     <link rel="canonical" href="https://jennifer88huang.github.io/interview-skills/" />     <meta property="og:title" content="Interview Skills - AI Mock Interview Coach" />
  • Network accessline 14
    <link rel="canonical" href="https://jennifer88huang.github.io/interview-skills/" />
  • Network accessline 19
    />     <meta property="og:type" content="website" />     <meta property="og:url" content="https://jennifer88huang.github.io/interview-skills/" />
  • Network accessline 20
    <meta property="og:type" content="website" />     <meta property="og:url" content="https://jennifer88huang.github.io/interview-skills/" />     <meta property="og:image" content="https://jennifer88huang.github.io/interview-skills/assets/mock
  • Network accessline 21
    <meta property="og:url" content="https://jennifer88huang.github.io/interview-skills/" />
  • Network accessline 22
    <meta property="og:image" content="https://jennifer88huang.github.io/interview-skills/assets/mock-interview-ui-en.png" />
  • Network accessline 27
    content="AI mock interview coach for JD and resume-based Big Tech interview practice."     />     <meta name="twitter:image" content="https://jennifer88huang.github.io/interview-skills/assets/mock-interview-ui-en.png" />
  • Network accessline 28
    />     <meta name="twitter:image" content="https://jennifer88huang.github.io/interview-skills/assets/mock-interview-ui-en.png" />     <link rel="alternate" type="text/plain" href="https://jennifer88huang.github.io/interview-skills/llms.txt"
  • Network accessline 29
    <meta name="twitter:image" content="https://jennifer88huang.github.io/interview-skills/assets/mock-interview-ui-en.png" />
  • Network accessline 30
    <link rel="alternate" type="text/plain" href="https://jennifer88huang.github.io/interview-skills/llms.txt" title="LLMs.txt" />
  • Network accessline 31
    <script type="application/ld+json">       {         "@context": "https://schema.org",
  • Network accessline 32
    {         "@context": "https://schema.org",         "@type": ["WebApplication", "SoftwareApplication"],
  • Network accessline 33
    "@context": "https://schema.org",
  • Network accessline 37
    "applicationCategory": "EducationalApplication",         "operatingSystem": "Web",         "url": "https://jennifer88huang.github.io/interview-skills/",
  • Network accessline 38
    "operatingSystem": "Web",         "url": "https://jennifer88huang.github.io/interview-skills/",         "sameAs": "https://github.com/jennifer88huang/interview-skills",
  • Network accessline 39
    "url": "https://jennifer88huang.github.io/interview-skills/",
  • Network accessline 40
    "sameAs": "https://github.com/jennifer88huang/interview-skills",
  • Network accessline 41
    "image": "https://jennifer88huang.github.io/interview-skills/assets/mock-interview-ui-en.png",
  • Network accessline 42
    "screenshot": "https://jennifer88huang.github.io/interview-skills/assets/mock-interview-ui-en.png",
  • Network accessline 289
    <div class="actions">             <a class="button" href="./ui/">Start Mock Interview</a>             <a class="button secondary" href="https://github.com/jennifer88huang/interview-skills">GitHub Repository</a>
  • Network accessline 290
    <a class="button" href="./ui/">Start Mock Interview</a>             <a class="button secondary" href="https://github.com/jennifer88huang/interview-skills">GitHub Repository</a>             <a class="button secondary" href="https://github.co
  • Network accessline 291
    <a class="button secondary" href="https://github.com/jennifer88huang/interview-skills">GitHub Repository</a>
  • Network accessline 292
    <a class="button secondary" href="https://github.com/jennifer88huang/interview-skills/blob/main/README-en.md">English README</a>
  • Network accessline 368
    <article class="card repo">             <h3>Read the Source</h3>             <p><a href="https://github.com/jennifer88huang/interview-skills">View interview-skills on GitHub</a></p>
  • Network accessline 369
    <h3>Read the Source</h3>             <p><a href="https://github.com/jennifer88huang/interview-skills">View interview-skills on GitHub</a></p>           </article>
  • Network accessline 370
    <p><a href="https://github.com/jennifer88huang/interview-skills">View interview-skills on GitHub</a></p>
  • Network accessline 372
    <article class="card repo">             <h3>Install the Skill</h3>             <p><a href="https://github.com/jennifer88huang/interview-skills#-%E5%BF%AB%E9%80%9F%E5%BC%80%E5%A7%8B">Install from the README</a></p>
  • Network accessline 373
    <h3>Install the Skill</h3>             <p><a href="https://github.com/jennifer88huang/interview-skills#-%E5%BF%AB%E9%80%9F%E5%BC%80%E5%A7%8B">Install from the README</a></p>           </article>
  • Network accessline 374
    <p><a href="https://github.com/jennifer88huang/interview-skills#-%E5%BF%AB%E9%80%9F%E5%BC%80%E5%A7%8B">Install from the README</a></p>

install-skill.sh

  • Executable scriptline 1
    #!/usr/bin/env bash
  • Network accessline 9
    Example:   bash install-skill.sh https://github.com/jennifer88huang/interview-skills.git
  • Network accessline 10
    bash install-skill.sh https://github.com/jennifer88huang/interview-skills.git

llms.txt

  • Network accessline 7
    - Live demo: https://jennifer88huang.github.io/interview-skills/
  • Network accessline 8
    - Interactive web app: https://jennifer88huang.github.io/interview-skills/ui/
  • Network accessline 9
    - English web app: https://jennifer88huang.github.io/interview-skills/ui/?lang=en
  • Network accessline 10
    - GitHub repository: https://github.com/jennifer88huang/interview-skills
  • Network accessline 11
    - English README: https://github.com/jennifer88huang/interview-skills/blob/main/README-en.md

robots.txt

  • Network accessline 4
    Sitemap: https://jennifer88huang.github.io/interview-skills/sitemap.xml

sitemap.txt

  • Network accessline 1
    https://jennifer88huang.github.io/interview-skills/
  • Network accessline 2
    https://jennifer88huang.github.io/interview-skills/ui/

sitemap.xml

  • Network accessline 1
    <?xml version="1.0" encoding="UTF-8"?> <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
  • Network accessline 2
    <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
  • Network accessline 3
    <url>     <loc>https://jennifer88huang.github.io/interview-skills/</loc>     <lastmod>2026-06-05</lastmod>
  • Network accessline 4
    <loc>https://jennifer88huang.github.io/interview-skills/</loc>
  • Network accessline 8
    </url>   <url>     <loc>https://jennifer88huang.github.io/interview-skills/ui/</loc>
  • Network accessline 9
    <url>     <loc>https://jennifer88huang.github.io/interview-skills/ui/</loc>     <lastmod>2026-06-05</lastmod>
  • Network accessline 10
    <loc>https://jennifer88huang.github.io/interview-skills/ui/</loc>

ui/app.js

  • Executable scriptline 1
    Executable file
  • Network accessline 192
    }; const providerConfig = {   deepseek: { type: "openai-compatible", endpoint: "https://api.deepseek.com/chat/completions" },
  • Network accessline 193
    const providerConfig = {   deepseek: { type: "openai-compatible", endpoint: "https://api.deepseek.com/chat/completions" },   qwen: { type: "openai-compatible", endpoint: "https://dashscope.aliyuncs.com/compatible-mode/v1/chat/completions" }
  • Network accessline 194
    deepseek: { type: "openai-compatible", endpoint: "https://api.deepseek.com/chat/completions" },
  • Network accessline 195
    qwen: { type: "openai-compatible", endpoint: "https://dashscope.aliyuncs.com/compatible-mode/v1/chat/completions" },
  • Network accessline 196
    kimi: { type: "openai-compatible", endpoint: "https://api.moonshot.cn/v1/chat/completions" },
  • Network accessline 197
    glm: { type: "openai-compatible", endpoint: "https://open.bigmodel.cn/api/paas/v4/chat/completions" },
  • Network accessline 198
    minimax: { type: "openai-compatible", endpoint: "https://api.minimax.chat/v1/chat/completions" },
  • Network accessline 199
    mimo: { type: "openai-compatible", needsEndpoint: true },   xai: { type: "openai-compatible", endpoint: "https://api.x.ai/v1/chat/completions" },   mistral: { type: "openai-compatible", endpoint: "https://api.mistral.ai/v1/chat/completions"
  • Network accessline 200
    xai: { type: "openai-compatible", endpoint: "https://api.x.ai/v1/chat/completions" },
  • Network accessline 201
    mistral: { type: "openai-compatible", endpoint: "https://api.mistral.ai/v1/chat/completions" },
  • Network accessline 202
    perplexity: { type: "openai-compatible", endpoint: "https://api.perplexity.ai/chat/completions" },
  • Network accessline 203
    openrouter: { type: "openai-compatible", endpoint: "https://openrouter.ai/api/v1/chat/completions" },
  • Network accessline 354
    apiKeyInput: ["sk-", "sk-"],   customModelInput: ["例如:provider/model-name", "e.g. provider/model-name"],   customEndpointInput: ["https://.../v1/chat/completions", "https://.../v1/chat/completions"],
  • Network accessline 355
    customModelInput: ["例如:provider/model-name", "e.g. provider/model-name"],   customEndpointInput: ["https://.../v1/chat/completions", "https://.../v1/chat/completions"],   jdLink: ["https://...", "https://..."],
  • Network accessline 356
    customEndpointInput: ["https://.../v1/chat/completions", "https://.../v1/chat/completions"],
  • Network accessline 357
    jdLink: ["https://...", "https://..."],
  • Network accessline 1604
    try {       const response = await fetch(workerUrl);
  • Network accessline 1605
    const response = await fetch(workerUrl);
  • Network accessline 1936
    async function callOpenAICompatible(prompt, endpoint, apiKey, model, extraHeaders = {}) {   const response = await fetch(endpoint, {
  • Network accessline 1937
    const response = await fetch(endpoint, {
  • Network accessline 1977
    if (provider === "anthropic") {     const response = await fetch("https://api.anthropic.com/v1/messages", {
  • Network accessline 1978
    const response = await fetch("https://api.anthropic.com/v1/messages", {
  • Network accessline 2002
    if (provider === "gemini") {     const response = await fetch(`https://generativelanguage.googleapis.com/v1beta/models/${model}:generateContent?key=${encodeURIComponent(apiKey)}`, {
  • Network accessline 2003
    const response = await fetch(`https://generativelanguage.googleapis.com/v1beta/models/${model}:generateContent?key=${encodeURIComponent(apiKey)}`, {
  • Network accessline 2022
    const response = await fetch("https://api.openai.com/v1/responses", {

ui/index.html

  • Network accessline 12
    <meta name="google-site-verification" content="uXRhX5gesFoxwUtMh2J5TXwFEmEUhVI5hMuk_DImKas" />     <meta name="robots" content="index,follow" />     <link rel="canonical" href="https://jennifer88huang.github.io/interview-skills/ui/" />
  • Network accessline 13
    <meta name="robots" content="index,follow" />     <link rel="canonical" href="https://jennifer88huang.github.io/interview-skills/ui/" />     <meta property="og:title" content="Interview Skills - AI Mock Interview Coach" />
  • Network accessline 14
    <link rel="canonical" href="https://jennifer88huang.github.io/interview-skills/ui/" />
  • Network accessline 19
    />     <meta property="og:type" content="website" />     <meta property="og:url" content="https://jennifer88huang.github.io/interview-skills/ui/" />
  • Network accessline 20
    <meta property="og:type" content="website" />     <meta property="og:url" content="https://jennifer88huang.github.io/interview-skills/ui/" />     <meta property="og:image" content="https://jennifer88huang.github.io/interview-skills/assets/m
  • Network accessline 21
    <meta property="og:url" content="https://jennifer88huang.github.io/interview-skills/ui/" />
  • Network accessline 22
    <meta property="og:image" content="https://jennifer88huang.github.io/interview-skills/assets/mock-interview-ui-en.png" />
  • Network accessline 27
    content="AI mock interview coach for JD and resume-based Big Tech interview practice."     />     <meta name="twitter:image" content="https://jennifer88huang.github.io/interview-skills/assets/mock-interview-ui-en.png" />
  • Network accessline 28
    />     <meta name="twitter:image" content="https://jennifer88huang.github.io/interview-skills/assets/mock-interview-ui-en.png" />     <script type="application/ld+json">
  • Network accessline 29
    <meta name="twitter:image" content="https://jennifer88huang.github.io/interview-skills/assets/mock-interview-ui-en.png" />
  • Network accessline 30
    <script type="application/ld+json">       {         "@context": "https://schema.org",
  • Network accessline 31
    {         "@context": "https://schema.org",         "@type": "WebApplication",
  • Network accessline 32
    "@context": "https://schema.org",
  • Network accessline 36
    "applicationCategory": "EducationalApplication",         "operatingSystem": "Web",         "url": "https://jennifer88huang.github.io/interview-skills/ui/",
  • Network accessline 37
    "operatingSystem": "Web",         "url": "https://jennifer88huang.github.io/interview-skills/ui/",         "sameAs": "https://github.com/jennifer88huang/interview-skills",
  • Network accessline 38
    "url": "https://jennifer88huang.github.io/interview-skills/ui/",
  • Network accessline 39
    "sameAs": "https://github.com/jennifer88huang/interview-skills",
  • Network accessline 46
    }     </script>     <link rel="preconnect" href="https://fonts.googleapis.com" />
  • Network accessline 47
    </script>     <link rel="preconnect" href="https://fonts.googleapis.com" />     <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
  • Network accessline 48
    <link rel="preconnect" href="https://fonts.googleapis.com" />
  • Network accessline 49
    <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
  • Network accessline 50
    <link href="https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,600;9..144,700&family=IBM+Plex+Sans+SC:wght@400;500;600;700&display=swap" rel="stylesheet" />
  • Network accessline 189
    <label id="customEndpointField" class="conditional-field hidden">               API 地址               <input id="customEndpointInput" type="url" placeholder="https://.../v1/chat/completions" />
  • Network accessline 190
    API 地址               <input id="customEndpointInput" type="url" placeholder="https://.../v1/chat/completions" />             </label>
  • Network accessline 191
    <input id="customEndpointInput" type="url" placeholder="https://.../v1/chat/completions" />
  • Network accessline 222
    <label>                 JD 链接                 <input id="jdLink" type="url" placeholder="https://..." />
  • Network accessline 223
    JD 链接                 <input id="jdLink" type="url" placeholder="https://..." />               </label>
  • Network accessline 224
    <input id="jdLink" type="url" placeholder="https://..." />
  • Network accessline 443
    <script src="./lib/pdf.min.js"></script>     <script src="https://unpkg.com/mammoth@1.8.0/mammoth.browser.min.js"></script>
  • Network accessline 444
    <script src="https://unpkg.com/mammoth@1.8.0/mammoth.browser.min.js"></script>

ui/lib/pdf.min.js

  • Executable scriptline 1
    Executable file
  • Network accessline 9
    * You may obtain a copy of the License at  *  *     http://www.apache.org/licenses/LICENSE-2.0
  • Network accessline 10
    *  *     http://www.apache.org/licenses/LICENSE-2.0  *
  • Network accessline 11
    *     http://www.apache.org/licenses/LICENSE-2.0
  • Network accessline 20
    * JavaScript code in this page  */ !function webpackUniversalModuleDefinition(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=t.pdfjsLib=e():"function"==typeof define&&define.amd?define("pdfjs-dist/build/pdf",[],(()=>t
  • Network accessline 22
    [Credential-related source omitted]
  • Possible obfuscationline 22
    [Credential-related source omitted]

ui/lib/pdf.worker.min.js

  • Executable scriptline 1
    Executable file
  • Network accessline 9
    * You may obtain a copy of the License at  *  *     http://www.apache.org/licenses/LICENSE-2.0
  • Network accessline 10
    *  *     http://www.apache.org/licenses/LICENSE-2.0  *
  • Network accessline 11
    *     http://www.apache.org/licenses/LICENSE-2.0
  • Possible obfuscationline 22
    [Credential-related source omitted]

ui/storage.js

  • Executable scriptline 1
    Executable file
  • Access to secretsline 7
    [Credential-related source omitted]
  • Access to secretsline 50
    [Credential-related source omitted]
  • Access to secretsline 55
    [Credential-related source omitted]
  • Access to secretsline 57
    [Credential-related source omitted]
  • Possible obfuscationline 114
    const binary = atob(base64);
  • Access to secretsline 229
    [Credential-related source omitted]

How the signals fit together

Facts from a static read of the files at the pinned commit. They describe what the code does, not why.

Some files could not be read; the facts below still hold.

Declared and executed: 36 facts
Signal confidence: 143 facts

and 93 more

Works with

Agent compatibility, from the files in this repository
AgentStatusEvidenceInstall to
Claude CodeCompatibleStandard SKILL.md SKILL.md.claude/skills/<skill-name>/
CodexCompatibleStandard SKILL.md SKILL.md.agents/skills/<skill-name>/
CursorCompatibleStandard SKILL.md SKILL.md.cursor/skills/<skill-name>/
Gemini CLICompatibleStandard SKILL.md SKILL.md.gemini/skills/<skill-name>/
GitHub CopilotCompatibleStandard SKILL.md SKILL.md.github/skills/<skill-name>/
OpenCodeCompatibleStandard SKILL.md SKILL.md.opencode/skills/<skill-name>/
  • Native The repository ships a manifest, folder or frontmatter field for this agent.
  • Compatible A standard SKILL.md that this agent can read.
  • Unknown No evidence either way.

Derived automatically from paths, manifests and frontmatter. Not tested on each agent.