Job Tracker Student Mcp

io.github.AnonymousOnyx22由 GitHub 账号 AnonymousOnyx22 发布v0.1.1更新于 Nov 1, 2026

Job application tracker MCP server. Track jobs, interviews and deadlines offline.

已验证STDIO仅桌面效率与工作流文件与存储

概览

AI 生成的概览

离线求职申请追踪服务器,让助手添加、更新、筛选并导出实习与求职记录,数据保存在本地一个 JSON 文件中。

可以做什么
  • 添加申请,记录公司、职位、截止日期、来源、类型、状态和备注
  • 在已投递、面试、录用、拒绝之间切换状态,并记录面试时间与备注
  • 按 id 修改或删除已有申请
  • 按状态、公司、文本关键词和截止日期范围列出与筛选申请
  • 按日期列出即将到来的截止日期和面试,并附提醒
  • 把列表导出为 CSV 或 Markdown 文本
适用场景
适合申请大量实习或工作的学生和求职者:希望助手维护一份离线清单、跟踪面试与截止日期,并随时生成可分享的 CSV 或 Markdown 汇总。
运行要求
通过 npx 以 stdio 在本地运行,需要 Node.js 20 或更高版本;无需账号、登录、API 密钥,运行时不联网。数据默认保存在用户主目录下的 JSON 文件,可用环境变量 JOB_TRACKER_FILE 指定其他路径。
安装前请注意
有四个工具会写入本地 JSON 文件,delete_application 会永久删除记录且无法恢复。文件为明文 JSON,能访问该文件的人即可读取申请信息;README 提醒不要在两台电脑上同时使用同一个同步文件。聊天内容由宿主应用处理,而非本服务器。

安装

在 SourceWeft 中

  1. 打开 控制台中的 Job Tracker Student Mcp,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。

其他 MCP 客户端

参照 仓库 中的启动说明。

README

Job Application Tracker MCP

[npm] [license] [Star on GitHub]

Too many job applications spread across tabs and notes. Track them in one place offline.

bash
npx -y job-tracker-student-mcp

Try these prompts:

  1. "Add a Software Intern role at Shopify with a deadline of 2026-11-15, found on LinkedIn."
  2. "Move application 1 to interview on 2026-11-20 at 14:30."
  3. "What deadlines and interviews do I have in the next two weeks?"

A free, open source MCP server named job-tracker-student-mcp on npm. Track internships, jobs, interviews and deadlines, see what is coming up, and export your list as CSV or Markdown. Runs on your computer with Claude Desktop, Claude Code, Cursor, VS Code and Windsurf. No internet, no login, no API keys. Your applications are saved in one JSON file that you can open, back up or delete.

Install

Run it straight from npm with npx. You need Node.js 20 or newer, see Node version for the details. There is nothing else to install and no account to make.

bash
npx -y job-tracker-student-mcp

Add it to your app's MCP config so the app can start it for you. Every app reads its config from its own file, so pick yours:

All of them start the same server the same way. The only difference is where the config goes.

Claude Desktop

Add this to claude_desktop_config.json:

json
{  "mcpServers": {    "job-tracker": {      "command": "npx",      "args": ["-y", "job-tracker-student-mcp"]    }  }}

Restart Claude Desktop after you save the file.

Claude Code

Run this in a terminal:

bash
claude mcp add job-tracker -- npx -y job-tracker-student-mcp

Cursor

Cursor reads .cursor/mcp.json from the project folder, or ~/.cursor/mcp.json from your home folder if you want the server in every project.

json
{  "mcpServers": {    "job-tracker": {      "type": "stdio",      "command": "npx",      "args": ["-y", "job-tracker-student-mcp"]    }  }}

Restart Cursor after you save the file.

VS Code

Put this in .vscode/mcp.json in your project folder, or in the mcp.json file in your user profile:

json
{  "servers": {    "job-tracker": {      "type": "stdio",      "command": "npx",      "args": ["-y", "job-tracker-student-mcp"]    }  }}

Restart VS Code after you save the file.

Windsurf

Add this to ~/.codeium/windsurf/mcp_config.json:

json
{  "mcpServers": {    "job-tracker": {      "command": "npx",      "args": ["-y", "job-tracker-student-mcp"]    }  }}

Refresh the plugins list in Windsurf after you save the file.

After any of these, try one of the prompts below.

Try these three prompts

  1. Add an application

    "Add a Software Intern role at Shopify with a deadline of 2026-11-15, found on LinkedIn."

    The assistant calls add_application with company "Shopify", role "Software Intern", deadline "2026-11-15" and source "LinkedIn". It is saved as application 1 in the applied stage.

  2. Move it along

    "Move application 1 to interview on 2026-11-20 at 14:30."

    update_status sets the status to interview and keeps the interview date, so it shows up in your reminders.

  3. See what is coming

    "What deadlines and interviews do I have in the next two weeks?"

    list_upcoming lists deadlines of open applications and interview dates, earliest first, with a reminder such as "due tomorrow" or "overdue by 2 days".

More things you can ask:

  • "Export all my applications as a CSV."
  • "Show only my offers as a Markdown table."
  • "Which deadlines have already passed?"
  • "Delete application 3, it was a duplicate."
  • "Which applications mention a referral?"
  • "Which applications have a deadline in November 2026?"

Tools

There are seven tools. list_applications, list_upcoming and export_report are read only. add_application, update_application, update_status and delete_application write to the local JSON file and nothing else.

ToolWhat it doesParametersExample prompt
add_applicationAdd a job or internship with company, role, deadline and source.company, role, deadline, source, type, status, notes"Add a Software Intern role at Shopify with a deadline of 2026-11-15, found on LinkedIn."
update_statusMove an application between applied, interview, offer and rejected.id, status, interview_date, note"Move application 1 to interview on 2026-11-20 at 14:30."
update_applicationUpdate the deadline, notes, role or company of an existing application.id, company, role, deadline, notes"Update application 1 to set the deadline to 2026-11-20 and add a note about the referral."
delete_applicationRemove a duplicate or mistaken application for good.id"Delete application 3, it was a duplicate."
list_applicationsList applications with optional status, company, text query and deadline range filters to see ids. The query searches role, notes and source.status, company, query, deadline_after, deadline_before"Which applications have a deadline in November 2026?"
list_upcomingShow upcoming deadlines and interviews sorted by date, with reminders.days, include_overdue, today"What deadlines and interviews do I have in the next two weeks?"
export_reportExport applications as CSV or Markdown.format, status"Export all my applications as a CSV."

Dates are written as YYYY-MM-DD. An interview can also have a time, written as YYYY-MM-DDTHH:MM.

Where your data lives

Applications are saved in ~/.job-tracker-student-mcp/applications.json. Set the JOB_TRACKER_FILE environment variable to use another path. Add it in the env part of your MCP config:

json
{  "mcpServers": {    "job-tracker": {      "command": "npx",      "args": ["-y", "job-tracker-student-mcp"],      "env": { "JOB_TRACKER_FILE": "C:\\Users\\you\\Documents\\applications.json" }    }  }}

Comparison

This tracker is built for job applications. Some servers focus on course or learning management systems, and some are general task trackers.

Compared with course focused servers, this one works offline with no login to a learning system and no keys. It is job specific, with statuses for applied, interview, offer and rejected, and it tracks deadlines and interview dates with reminders.

Compared with generic task MCP servers, it is focused on job applications rather than general todos. It keeps applications in a simple local JSON file, has read only and write tools for this specific workflow, and can export as CSV or Markdown. Everything runs locally with no account or network calls.

Privacy

The server makes no network calls and has no API keys, passwords or accounts. It reads and writes the one JSON file above and nothing else. There is no telemetry. What you tell the assistant in a chat is handled by the app you use, not by this server.

FAQ

Does it send reminders on its own? No. MCP servers answer when asked. list_upcoming gives you the reminders when you ask, so a good habit is to start the week with "what is coming up?".

Which applications show up in list_upcoming? Deadlines of applications in the applied stage, and interview dates of applications in the interview stage. Offers and rejected applications are left out.

Can I use it on two computers? Point JOB_TRACKER_FILE at a file in a folder you already sync, and both computers read the same list. Do not use both at the same moment.

Troubleshooting

If npx -y job-tracker-student-mcp fails or hangs:

  • Check your Node.js version with node --version. The server needs Node.js 20 or newer, see Node version.
  • Delete the folder where npx keeps its downloads, then try again. On Windows it is %LocalAppData%\npm-cache\_npx, and on macOS and Linux it is ~/.npm/_npx.
  • Make sure your computer can reach registry.npmjs.org. On a school or work network, npm may need proxy settings from the network's owner.
  • If node or npx is not found on Windows, reinstall Node.js with "Add to PATH" checked, then restart your terminal.

If a tool says the file is not valid JSON, open the file named in the message and fix it, or move it away to start a fresh list.

Node version

There are two floors here, and they are not the same number.

What you are doingNode.js
Running the published server20 or newer
Building and testing a clone22.12 or newer, on the 22 and 24 release lines or 26 and later

The server itself is happy on Node.js 20, and that is what engines in package.json says. The test runner wants a newer Node.js, so the development floor lives in devEngines in the same file. npm checks devEngines before install, run and test, so a clone on Node.js 20 stops with a clear message instead of a strange failure part way through the test suite. The 23 and 25 release lines are left out on purpose, because the test runner does not run on them.

Both numbers live in package.json, and a test in tests/node-version.test.ts keeps them in step with the README and with the range the test runner asks for.

Development

bash
npm installnpm run buildnpm test

The tests call every tool through a real MCP client and save to a temporary folder, so they need no account or network. They need the newer Node.js from the Node version section above, because of the test runner.

More free student MCP servers

All free, open source and read only where they touch your accounts. Browse the full list at brightspacemcp.com/more-mcps.

ServerWhat it does
Brightspace MCPD2L Brightspace for AI. Due dates with real submission status, grades, a target grade calculator and course files.
Canvas MCPCanvas LMS for AI, read only. Due dates, missing work, grades and announcements.
Moodle MCPMoodle for AI, read only. Due dates, overdue work, grades and announcements.
Google Classroom MCPGoogle Classroom for AI, read only. Todos, due dates, missing work and grades.
GPA Calculator MCPGPA, grade conversion and the grade you need on the final, for AI. Works offline, no account.
Citations MCPAPA, MLA and Chicago citations from a DOI, an ISBN or typed details. No account.
Study Planner MCPExam study schedules, spaced repetition dates, pomodoro plans and assignment milestones. Works offline.
Paper Finder MCPSearch scholarly papers, find open access copies and related work through OpenAlex. No key needed.
BibTeX Reference Manager MCPClean, convert, dedupe and lint BibTeX, RIS and CSL JSON reference lists, and make cite keys. Works offline.
Open Textbook Finder MCPFind free legal copies of textbooks on OpenStax, DOAB and Open Library, look up editions by ISBN and suggest cheaper older ones.
STEM Calculator MCPChemistry and physics homework math: molar mass, balancing equations, grams to moles, unit conversion and significant figures. Works offline.
Essay Stats MCPOffline writing metrics for essays. Word and page counts, readability scores, passive voice, repeated openers, filler words, long sentences and word limit checks, so students can check their work against assignment requirements. No account, no network.
Syllabus to Calendar MCPSyllabus to calendar MCP server. Extract dates from syllabus text, build an ics calendar, expand recurring classes and merge calendars. Works offline, no account.

License

MIT

来源:README.md,提交 e04711c

工具

7

add_application

Add application

Add a job or internship to the tracker. It starts in the applied stage unless you pass another status. Inputs: company and role (both required), an optional deadline as YYYY-MM-DD, an optional source such as LinkedIn or a career fair, an optional type of job or internship, an optional status and optional notes. The tool saves the application on this computer and returns its id, which update_status needs. Example prompt: "Add a Software Intern role at Shopify with a deadline of 2026-11-15, found on LinkedIn."

输入参数role必填typenotessourcestatuscompany必填deadline

update_status

Update status

Move an application to another stage: applied, interview, offer or rejected. Inputs: id of the application (from add_application or list_applications), the new status, an optional interview_date as YYYY-MM-DD or YYYY-MM-DDTHH:MM, and an optional note that is added to the notes. When the status is interview, pass interview_date so list_upcoming can remind you. Example prompt: "Move application 1 to interview on 2026-11-20 at 14:30."

输入参数id必填notestatus必填interview_date

update_application

Update application

Update the deadline, notes, role or company of an existing application. Inputs: id of the application (from add_application or list_applications), and any of company, role, deadline as YYYY-MM-DD and notes. Only the fields you pass are changed; the rest stay the same. Pass an empty deadline to clear it. Example prompt: "Update application 1 to set the deadline to 2026-11-20 and add a note about the referral."

输入参数id必填rolenotescompanydeadline

delete_application

Delete application

Remove an application from the tracker, for example a duplicate or a mistaken entry. Inputs: id of the application (from add_application or list_applications). The application is deleted from the local file and cannot be brought back, and the ids of the other applications do not change. Example prompt: "Delete application 3, it was a duplicate."

输入参数id必填

list_applications

List applications

List applications with optional status and company filters, an optional text query and an optional deadline range. Inputs: optional status to filter by stage, an optional company substring to match (case insensitive), an optional query that searches the role, notes and source text (case insensitive), for example referral or LinkedIn, and optional deadline_after and deadline_before as YYYY-MM-DD. Both dates are included, and applications without a deadline are left out when you pass either one. Returns all matching applications as a structured list with their ids, so you can see application ids without exporting a full report. Example prompt: "Which applications have a deadline in November 2026?"

输入参数querystatuscompanydeadline_afterdeadline_before

list_upcoming

List upcoming

Show upcoming deadlines and interviews sorted by date, with a reminder for each one. Deadlines come from applications still in the applied stage, and interviews come from applications in the interview stage that have an interview_date. Rejected applications and offers are left out. Inputs: optional days, how far ahead to look (default 14), include_overdue (default true) to also show deadlines that already passed, and an optional today as YYYY-MM-DD to ask as if it were another day. Example prompt: "What deadlines and interviews do I have in the next two weeks?"

输入参数daystodayinclude_overdue

export_report

Export report

Export your applications as CSV or Markdown so you can share them or open them in a spreadsheet. Inputs: format, either csv or markdown (default markdown), and an optional status to export only that stage. The report is returned as text and nothing is written to disk. In CSV, a cell that starts with =, +, - or @ gets a leading apostrophe so spreadsheets do not run it as a formula. Example prompt: "Export all my applications as a CSV."

输入参数formatstatus

版本历史

2
  1. v0.1.1最新Nov 1, 2026
  2. v0.1.0Oct 30, 2026

评分

已满足适用检查项的 90%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通25 分
  • 已声明认证方式10 分

    请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。

  • 已列出工具必需15 分
  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分