[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-80451":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":8,"htmlUrl":8,"language":9,"languages":8,"totalLinesOfCode":8,"stars":10,"forks":11,"watchers":12,"openIssues":13,"contributorsCount":13,"subscribersCount":13,"size":13,"stars1d":13,"stars7d":14,"stars30d":15,"stars90d":13,"forks30d":13,"starsTrendScore":13,"compositeScore":16,"rankGlobal":8,"rankLanguage":8,"license":17,"archived":18,"fork":18,"defaultBranch":19,"hasWiki":18,"hasPages":18,"topics":20,"createdAt":8,"pushedAt":8,"updatedAt":21,"readmeContent":22,"aiSummary":23,"trendingCount":13,"starSnapshotCount":13,"syncStatus":24,"lastSyncTime":25,"discoverSource":26},80451,"careerbot","thoughtfulllc\u002Fcareerbot","thoughtfulllc",null,"TypeScript",64,8,53,0,1,6,40.96,"MIT License",false,"main",[],"2026-06-12 04:01:28","# Careerbot\n\nAn AI career assistant. It researches companies, finds open roles that match your preferences, and drafts personalized answers for each application's form, drawing from your Answer Bank of raw material. The same reusable answers get pulled across applications, so you stop rewriting the same \"Why us?\" essay every week. You review every draft and submit each application yourself.\n\n![Careerbot dashboard](.\u002Fdocs\u002Fdashboard.png)\n\n**CLI-first.** The actual work happens through slash commands in Claude Code (or any AI that supports skills): researching companies, scanning careers pages, drafting answers tailored to each role. The web dashboard is for browsing the same files in a friendlier view, with sorting, filtering, and quick edits for the moments when clicking is faster than typing into the AI. Both interfaces stay in sync because they read and write the same local markdown files.\n\nCareerbot stores **everything as local markdown files** under `applications\u002F`, `companies\u002F`, and `answer-bank\u002F`. One file per application, company, or saved answer. Status is encoded by the parent folder, so a status change is just a `git mv`. Your personal context (resume, preferences, background) lives in `context\u002F` and stays gitignored.\n\n\n## Two ways to use it\n\nBoth interfaces read and write the **same markdown files**. Use either, or both at the same time.\n\n| | **CLI (AI agent)** | **Web dashboard** |\n|---|---|---|\n| What it's for | Heavy lifting: research companies, find roles, draft application answers | Browsing, editing, and status changes you'd rather click than type |\n| How to run | Open the repo in Claude Code (or any agent that supports skills) and run `\u002Ffind-companies`, `\u002Ffind-roles`, etc. | `cd web && pnpm install && pnpm dev`, then open http:\u002F\u002Flocalhost:3000 |\n| What it edits | Markdown files under `applications\u002F`, `companies\u002F`, `answer-bank\u002F` | The same markdown files (via Server Actions) |\n\nYou don't have to pick one. Run `\u002Ffind-roles` in the CLI to draft new applications, then flip to the dashboard to read them, tweak the wording, and move the file from `in-review\u002F` to `applied\u002F`.\n\n\n## Setup\n\n1. Fill in `context\u002F`:\n   - Copy `context\u002Findex.example.md` → `index.md` and link to your background material.\n   - Copy `context\u002Fpreferences.example.md` → `preferences.md` and edit (titles, comp floor, locations, deal-breakers).\n   - Drop your `resume.pdf` in `context\u002F`.\n2. (Optional) Add companies you're curious about to `companies\u002Fideas.md` (copy from `ideas.example.md`).\n3. Pick how you want to drive it:\n   - **CLI:** open the repo in Claude Code (or another agent that supports skills) and run `\u002Fonboard` for a guided first-run setup, then `\u002Ffind-companies` to start populating `companies\u002Fin-review\u002F`.\n   - **Web:** `cd web && pnpm install && pnpm dev`, then open http:\u002F\u002Flocalhost:3000 to browse and edit the files in your browser.\n\nFirst time? Run `\u002Fonboard` in the CLI; it walks you through everything in step 1 interactively.\n\n\n## Skills (CLI)\n\nThese are the slash commands the AI agent exposes. Each one reads from and writes to the markdown tree.\n\n| Skill | What it does | Writes to |\n|---|---|---|\n| `\u002Fonboard` | First-run setup wizard. Walks you through preferences one section at a time. | `context\u002Fpreferences.md` |\n| `\u002Ffind-companies` | Finds companies matching your preferences and writes one profile per match. Bad matches go to a rejected\u002F folder so they never resurface. | `companies\u002Fin-review\u002F\u003Cslug>.md` + `companies\u002Fnot-interested\u002F\u003Cslug>.md` |\n| `\u002Fadd-company` | Lightweight single-target version of `\u002Ffind-companies`. Add one company you already know you want. | `companies\u002Finterested\u002F\u003Cslug>.md` |\n| `\u002Fadd-application` | Paste a job posting URL. Fetches the JD, drafts answers from your Answer Bank, auto-adds the company if not tracked. | `applications\u002Fin-review\u002F\u003Cco>\u002F\u003Cats-id>-\u003Ctitle-slug>.md` |\n| `\u002Ffind-roles` | Finds matching open roles across your tracked companies *and* companies you haven't researched yet (via title-wide ATS search and recent YC batches). Drafts one application per match and auto-stubs newly discovered companies into `companies\u002Fin-review\u002F`. Reuses Answer Bank entries. | `applications\u002Fin-review\u002F\u003Cco>\u002F\u003Cid>.md` + `companies\u002Fin-review\u002F\u003Cslug>.md` (stubs) |\n| `\u002Fseed-answer-bank` | Interactively fills any empty answer-bank stubs that `\u002Ffind-roles` flagged as gaps. | `answer-bank\u002F\u003Ctheme>\u002F\u003Cslug>.md` |\n| `\u002Fdraft-missing-answers` | Re-synthesizes application answers left as TODOs or `[partial - pending: ...]` placeholders, once their underlying stubs are filled. | Edits in place under `applications\u002Fin-review\u002F\u003Cco>\u002F\u003Cid>.md` |\n| `\u002Fapplicationstatus` | Moves an application between status folders and stamps the matching date field. | `git mv` between `applications\u002F\u003Cstatus>\u002F` folders |\n| `\u002Fcommitandpush` | Commits and pushes the public parts of the repo while keeping every instance file private. | (repo operation, no markdown writes) |\n\n\n## Dashboard (web)\n\nA glassy Next.js dashboard that reads and writes the same markdown tree. See [`web\u002FREADME.md`](.\u002Fweb\u002FREADME.md) for details.\n\n```bash\ncd web\npnpm install\npnpm dev      # http:\u002F\u002Flocalhost:3000\n```\n\nWhat you can do from the dashboard:\n\n- Browse applications, companies, and answer-bank entries as filterable lists.\n- Open any item and edit its frontmatter or body inline; saves write back to the same markdown file.\n- Change status by moving a file between folders (e.g. mark an application as `applied`).\n- **AI Skills** page: a quick reference for every CLI skill with copy-paste examples, for when you forget the exact phrasing.\n- **Configuration** page: edit `context\u002Fpreferences.md` (titles, comp floor, locations, deal-breakers) through a form instead of a text editor.\n\nBy default the dashboard auto-detects the repo by walking up from `process.cwd()`. To point at a different repo, set `CAREERBOT_DATA_ROOT` to an absolute path in `web\u002F.env.local`.\n\n\n## Workflow\n\n```\n                \u002Ffind-companies                    \u002Fadd-company\n                       │                                │\n                       ▼                                ▼\n        ┌──────────────────────────┐    companies\u002Finterested\u002F\u003Cslug>.md\n        │  companies\u002Fin-review\u002F    │◀╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┐\n        └──────────────────────────┘                    │   ╎\n                  │                                     │   ╎\n              (you decide; mv file                      │   ╎\n               or click in dashboard)                   │   ╎\n                  │                                     │   ╎\n        ┌─────────┴──────────┐                          │   ╎\n        ▼                    ▼                          │   ╎\n   ...\u002Finterested\u002F      ...\u002Fnot-interested\u002F             │   ╎ *\n        │                                               │   ╎\n        └────────────────┬──────────────────────────────┘   ╎\n                         │                                  ╎\n                         ▼                                  ╎\n                    \u002Ffind-roles ╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┘\n                         │\n                         ▼\n          applications\u002Fin-review\u002F\u003Cco>\u002F\u003Cid>.md\n                         │\n                \u002Fapplicationstatus\n              (or status change in dashboard)\n                         │\n                         ▼\n    applied\u002F → interview\u002F → offered\u002F  \u002F  rejected\u002F  \u002F  archived\u002F\n```\n\n\\* `\u002Ffind-roles` also auto-stubs newly discovered companies (from its title-wide ATS search and recent YC batches) back into `companies\u002Fin-review\u002F`, so anything it surfaces enters the same review loop.\n\nEvery status change is a `git mv` between status folders. The folder layout *is* the status column, whether you trigger the move from the CLI or by clicking in the dashboard.\n\n\n## License\n\nMIT. See [`LICENSE`](.\u002FLICENSE).\n","Careerbot 是一个基于AI的职业助手，旨在帮助用户研究公司、匹配合适的职位，并根据用户的答案库为每个申请表单草拟个性化的回答。其核心功能包括通过CLI命令与AI交互来完成公司调研、职位搜索和申请材料准备等任务，同时提供了一个直观的Web界面供用户浏览、编辑及管理状态。项目使用TypeScript开发，所有数据以本地Markdown文件形式存储，便于版本控制和个人信息的安全管理。适用于求职者高效地处理多个职位申请过程中的重复性工作，尤其适合需要频繁调整申请策略和个性化内容的场景。",2,"2026-06-11 04:00:47","CREATED_QUERY"]