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 分