@dolusoft/hirebase-mcp 1.3.3 → 1.3.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +42 -27
- package/dist/interface/dashboard/public/200.html +1 -1
- package/dist/interface/dashboard/public/404.html +1 -1
- package/dist/interface/dashboard/public/_nuxt/builds/latest.json +1 -1
- package/dist/interface/dashboard/public/_nuxt/builds/meta/06577f62-6940-42a3-95cb-624eaa96780c.json +1 -0
- package/dist/interface/dashboard/public/_nuxt/builds/meta/2a8ca100-98d8-45c9-b817-b0b9abdf8ca0.json +1 -0
- package/dist/interface/dashboard/public/_nuxt/builds/meta/3fceff57-2d70-4d5c-ba88-1467a2270c62.json +1 -0
- package/dist/interface/dashboard/public/_nuxt/builds/meta/78347e98-d8f5-4182-9650-f32c797f6401.json +1 -0
- package/dist/interface/dashboard/public/_nuxt/builds/meta/ce9c76e0-e5c5-4053-8c6f-bac3f5a81936.json +1 -0
- package/dist/interface/dashboard/public/index.html +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -171,41 +171,32 @@ LanceDB tables:
|
|
|
171
171
|
|
|
172
172
|
## Installation
|
|
173
173
|
|
|
174
|
-
### npm (recommended)
|
|
175
|
-
|
|
176
|
-
```bash
|
|
177
|
-
npm install -g @dolusoft/hirebase-mcp
|
|
178
|
-
```
|
|
179
|
-
|
|
180
|
-
### From source
|
|
181
|
-
|
|
182
|
-
```bash
|
|
183
|
-
git clone https://github.com/dolusoft/hirebase.git
|
|
184
|
-
cd hirebase
|
|
185
|
-
pnpm install
|
|
186
|
-
pnpm build
|
|
187
|
-
```
|
|
188
|
-
|
|
189
174
|
### Prerequisites
|
|
190
175
|
|
|
191
|
-
- Node.js >= 22
|
|
192
|
-
- OpenAI API Key
|
|
176
|
+
- **Node.js >= 22** ([download](https://nodejs.org/))
|
|
177
|
+
- **OpenAI API Key** — required for CV extraction and embeddings. Get one at [platform.openai.com/api-keys](https://platform.openai.com/api-keys)
|
|
178
|
+
|
|
179
|
+
> **Important:** HireBase will not start without a valid `OPENAI_API_KEY`. If you see `OPENAI_API_KEY environment variable is required`, make sure the key is set in your MCP configuration (see below).
|
|
193
180
|
|
|
194
|
-
|
|
181
|
+
### Claude Code (recommended)
|
|
195
182
|
|
|
196
|
-
|
|
183
|
+
No global install needed — `npx` downloads and runs the latest version automatically:
|
|
197
184
|
|
|
198
185
|
```bash
|
|
199
186
|
claude mcp add hirebase -s user \
|
|
200
187
|
-e OPENAI_API_KEY=sk-your-key \
|
|
201
|
-
-e EMBEDDING_MODEL=text-embedding-3-small \
|
|
202
188
|
-e DASHBOARD_ENABLED=true \
|
|
203
189
|
-- npx -y @dolusoft/hirebase-mcp
|
|
204
190
|
```
|
|
205
191
|
|
|
192
|
+
That's it. Restart Claude Code and HireBase tools will be available.
|
|
193
|
+
|
|
206
194
|
### Claude Desktop
|
|
207
195
|
|
|
208
|
-
Add to your
|
|
196
|
+
Add to your config file:
|
|
197
|
+
|
|
198
|
+
- **macOS:** `~/Library/Application Support/Claude/claude_desktop_config.json`
|
|
199
|
+
- **Windows:** `%APPDATA%\Claude\claude_desktop_config.json`
|
|
209
200
|
|
|
210
201
|
```json
|
|
211
202
|
{
|
|
@@ -215,23 +206,47 @@ Add to your Claude Desktop config (`claude_desktop_config.json`):
|
|
|
215
206
|
"args": ["-y", "@dolusoft/hirebase-mcp"],
|
|
216
207
|
"env": {
|
|
217
208
|
"OPENAI_API_KEY": "sk-your-key",
|
|
218
|
-
"
|
|
209
|
+
"DASHBOARD_ENABLED": "true"
|
|
219
210
|
}
|
|
220
211
|
}
|
|
221
212
|
}
|
|
222
213
|
}
|
|
223
214
|
```
|
|
224
215
|
|
|
216
|
+
### Other MCP Clients
|
|
217
|
+
|
|
218
|
+
Any MCP-compatible client can use HireBase. The key requirement is passing `OPENAI_API_KEY` as an environment variable:
|
|
219
|
+
|
|
220
|
+
```bash
|
|
221
|
+
# Run directly
|
|
222
|
+
OPENAI_API_KEY=sk-your-key npx -y @dolusoft/hirebase-mcp
|
|
223
|
+
|
|
224
|
+
# Or install globally
|
|
225
|
+
npm install -g @dolusoft/hirebase-mcp
|
|
226
|
+
OPENAI_API_KEY=sk-your-key hirebase-mcp
|
|
227
|
+
```
|
|
228
|
+
|
|
229
|
+
### From Source
|
|
230
|
+
|
|
231
|
+
```bash
|
|
232
|
+
git clone https://github.com/dolusoft/hirebase.git
|
|
233
|
+
cd hirebase
|
|
234
|
+
pnpm install
|
|
235
|
+
pnpm build
|
|
236
|
+
cp .env.example .env # edit .env and add your OPENAI_API_KEY
|
|
237
|
+
pnpm start
|
|
238
|
+
```
|
|
239
|
+
|
|
225
240
|
### Environment Variables
|
|
226
241
|
|
|
227
242
|
| Variable | Default | Description |
|
|
228
243
|
|---|---|---|
|
|
229
|
-
| `OPENAI_API_KEY` |
|
|
230
|
-
| `LANCEDB_PATH` | `./data/lancedb` | LanceDB storage path |
|
|
231
|
-
| `EMBEDDING_MODEL` | `text-embedding-3-small` |
|
|
232
|
-
| `EXTRACTION_MODEL` | `gpt-5-mini` | CV extraction
|
|
244
|
+
| `OPENAI_API_KEY` | — | **Required.** OpenAI API key for embeddings and CV extraction |
|
|
245
|
+
| `LANCEDB_PATH` | `./data/lancedb` | LanceDB storage path (relative to CWD) |
|
|
246
|
+
| `EMBEDDING_MODEL` | `text-embedding-3-small` | OpenAI embedding model |
|
|
247
|
+
| `EXTRACTION_MODEL` | `gpt-5-mini` | OpenAI model for structured CV extraction |
|
|
233
248
|
| `DASHBOARD_ENABLED` | `true` | Enable real-time dashboard |
|
|
234
|
-
| `DASHBOARD_PORT` | `0` (random) | Dashboard server port |
|
|
249
|
+
| `DASHBOARD_PORT` | `0` (random) | Dashboard server port (0 = auto-assign) |
|
|
235
250
|
|
|
236
251
|
## Key Design Decisions
|
|
237
252
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
<!DOCTYPE html><html><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><link rel="stylesheet" href="/_nuxt/entry.Cjj6Q9Tz.css" crossorigin><link rel="modulepreload" as="script" crossorigin href="/_nuxt/FR49ZCl_.js"><script type="module" src="/_nuxt/FR49ZCl_.js" crossorigin></script><script>"use strict";(()=>{const t=window,e=document.documentElement,c=["dark","light"],n=getStorageValue("localStorage","nuxt-color-mode")||"system";let i=n==="system"?u():n;const r=e.getAttribute("data-color-mode-forced");r&&(i=r),l(i),t["__NUXT_COLOR_MODE__"]={preference:n,value:i,getColorScheme:u,addColorScheme:l,removeColorScheme:d};function l(o){const s=""+o+"",a="";e.classList?e.classList.add(s):e.className+=" "+s,a&&e.setAttribute("data-"+a,o)}function d(o){const s=""+o+"",a="";e.classList?e.classList.remove(s):e.className=e.className.replace(new RegExp(s,"g"),""),a&&e.removeAttribute("data-"+a)}function f(o){return t.matchMedia("(prefers-color-scheme"+o+")")}function u(){if(t.matchMedia&&f("").media!=="not all"){for(const o of c)if(f(":"+o).matches)return o}return"light"}})();function getStorageValue(t,e){switch(t){case"localStorage":return window.localStorage.getItem(e);case"sessionStorage":return window.sessionStorage.getItem(e);case"cookie":return getCookie(e);default:return null}}function getCookie(t){const c=("; "+window.document.cookie).split("; "+t+"=");if(c.length===2)return c.pop()?.split(";").shift()}</script></head><body><div id="__nuxt" class="isolate"></div><div id="teleports"></div><script>window.__NUXT__={};window.__NUXT__.config={public:{},app:{baseURL:"/",buildId:"
|
|
1
|
+
<!DOCTYPE html><html><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><link rel="stylesheet" href="/_nuxt/entry.Cjj6Q9Tz.css" crossorigin><link rel="modulepreload" as="script" crossorigin href="/_nuxt/FR49ZCl_.js"><script type="module" src="/_nuxt/FR49ZCl_.js" crossorigin></script><script>"use strict";(()=>{const t=window,e=document.documentElement,c=["dark","light"],n=getStorageValue("localStorage","nuxt-color-mode")||"system";let i=n==="system"?u():n;const r=e.getAttribute("data-color-mode-forced");r&&(i=r),l(i),t["__NUXT_COLOR_MODE__"]={preference:n,value:i,getColorScheme:u,addColorScheme:l,removeColorScheme:d};function l(o){const s=""+o+"",a="";e.classList?e.classList.add(s):e.className+=" "+s,a&&e.setAttribute("data-"+a,o)}function d(o){const s=""+o+"",a="";e.classList?e.classList.remove(s):e.className=e.className.replace(new RegExp(s,"g"),""),a&&e.removeAttribute("data-"+a)}function f(o){return t.matchMedia("(prefers-color-scheme"+o+")")}function u(){if(t.matchMedia&&f("").media!=="not all"){for(const o of c)if(f(":"+o).matches)return o}return"light"}})();function getStorageValue(t,e){switch(t){case"localStorage":return window.localStorage.getItem(e);case"sessionStorage":return window.sessionStorage.getItem(e);case"cookie":return getCookie(e);default:return null}}function getCookie(t){const c=("; "+window.document.cookie).split("; "+t+"=");if(c.length===2)return c.pop()?.split(";").shift()}</script></head><body><div id="__nuxt" class="isolate"></div><div id="teleports"></div><script>window.__NUXT__={};window.__NUXT__.config={public:{},app:{baseURL:"/",buildId:"06577f62-6940-42a3-95cb-624eaa96780c",buildAssetsDir:"/_nuxt/",cdnURL:""}}</script><script type="application/json" data-nuxt-data="nuxt-app" data-ssr="false" id="__NUXT_DATA__">[{"prerenderedAt":1,"serverRendered":2},1773751115020,false]</script></body></html>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
<!DOCTYPE html><html><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><link rel="stylesheet" href="/_nuxt/entry.Cjj6Q9Tz.css" crossorigin><link rel="modulepreload" as="script" crossorigin href="/_nuxt/FR49ZCl_.js"><script type="module" src="/_nuxt/FR49ZCl_.js" crossorigin></script><script>"use strict";(()=>{const t=window,e=document.documentElement,c=["dark","light"],n=getStorageValue("localStorage","nuxt-color-mode")||"system";let i=n==="system"?u():n;const r=e.getAttribute("data-color-mode-forced");r&&(i=r),l(i),t["__NUXT_COLOR_MODE__"]={preference:n,value:i,getColorScheme:u,addColorScheme:l,removeColorScheme:d};function l(o){const s=""+o+"",a="";e.classList?e.classList.add(s):e.className+=" "+s,a&&e.setAttribute("data-"+a,o)}function d(o){const s=""+o+"",a="";e.classList?e.classList.remove(s):e.className=e.className.replace(new RegExp(s,"g"),""),a&&e.removeAttribute("data-"+a)}function f(o){return t.matchMedia("(prefers-color-scheme"+o+")")}function u(){if(t.matchMedia&&f("").media!=="not all"){for(const o of c)if(f(":"+o).matches)return o}return"light"}})();function getStorageValue(t,e){switch(t){case"localStorage":return window.localStorage.getItem(e);case"sessionStorage":return window.sessionStorage.getItem(e);case"cookie":return getCookie(e);default:return null}}function getCookie(t){const c=("; "+window.document.cookie).split("; "+t+"=");if(c.length===2)return c.pop()?.split(";").shift()}</script></head><body><div id="__nuxt" class="isolate"></div><div id="teleports"></div><script>window.__NUXT__={};window.__NUXT__.config={public:{},app:{baseURL:"/",buildId:"
|
|
1
|
+
<!DOCTYPE html><html><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><link rel="stylesheet" href="/_nuxt/entry.Cjj6Q9Tz.css" crossorigin><link rel="modulepreload" as="script" crossorigin href="/_nuxt/FR49ZCl_.js"><script type="module" src="/_nuxt/FR49ZCl_.js" crossorigin></script><script>"use strict";(()=>{const t=window,e=document.documentElement,c=["dark","light"],n=getStorageValue("localStorage","nuxt-color-mode")||"system";let i=n==="system"?u():n;const r=e.getAttribute("data-color-mode-forced");r&&(i=r),l(i),t["__NUXT_COLOR_MODE__"]={preference:n,value:i,getColorScheme:u,addColorScheme:l,removeColorScheme:d};function l(o){const s=""+o+"",a="";e.classList?e.classList.add(s):e.className+=" "+s,a&&e.setAttribute("data-"+a,o)}function d(o){const s=""+o+"",a="";e.classList?e.classList.remove(s):e.className=e.className.replace(new RegExp(s,"g"),""),a&&e.removeAttribute("data-"+a)}function f(o){return t.matchMedia("(prefers-color-scheme"+o+")")}function u(){if(t.matchMedia&&f("").media!=="not all"){for(const o of c)if(f(":"+o).matches)return o}return"light"}})();function getStorageValue(t,e){switch(t){case"localStorage":return window.localStorage.getItem(e);case"sessionStorage":return window.sessionStorage.getItem(e);case"cookie":return getCookie(e);default:return null}}function getCookie(t){const c=("; "+window.document.cookie).split("; "+t+"=");if(c.length===2)return c.pop()?.split(";").shift()}</script></head><body><div id="__nuxt" class="isolate"></div><div id="teleports"></div><script>window.__NUXT__={};window.__NUXT__.config={public:{},app:{baseURL:"/",buildId:"06577f62-6940-42a3-95cb-624eaa96780c",buildAssetsDir:"/_nuxt/",cdnURL:""}}</script><script type="application/json" data-nuxt-data="nuxt-app" data-ssr="false" id="__NUXT_DATA__">[{"prerenderedAt":1,"serverRendered":2},1773751115020,false]</script></body></html>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"id":"
|
|
1
|
+
{"id":"06577f62-6940-42a3-95cb-624eaa96780c","timestamp":1773751106115}
|
package/dist/interface/dashboard/public/_nuxt/builds/meta/06577f62-6940-42a3-95cb-624eaa96780c.json
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"id":"06577f62-6940-42a3-95cb-624eaa96780c","timestamp":1773751106115,"prerendered":[]}
|
package/dist/interface/dashboard/public/_nuxt/builds/meta/2a8ca100-98d8-45c9-b817-b0b9abdf8ca0.json
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"id":"2a8ca100-98d8-45c9-b817-b0b9abdf8ca0","timestamp":1773751021479,"prerendered":[]}
|
package/dist/interface/dashboard/public/_nuxt/builds/meta/3fceff57-2d70-4d5c-ba88-1467a2270c62.json
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"id":"3fceff57-2d70-4d5c-ba88-1467a2270c62","timestamp":1773751038030,"prerendered":[]}
|
package/dist/interface/dashboard/public/_nuxt/builds/meta/78347e98-d8f5-4182-9650-f32c797f6401.json
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"id":"78347e98-d8f5-4182-9650-f32c797f6401","timestamp":1773751085325,"prerendered":[]}
|
package/dist/interface/dashboard/public/_nuxt/builds/meta/ce9c76e0-e5c5-4053-8c6f-bac3f5a81936.json
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"id":"ce9c76e0-e5c5-4053-8c6f-bac3f5a81936","timestamp":1773750853931,"prerendered":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
<!DOCTYPE html><html><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><link rel="stylesheet" href="/_nuxt/entry.Cjj6Q9Tz.css" crossorigin><link rel="modulepreload" as="script" crossorigin href="/_nuxt/FR49ZCl_.js"><script type="module" src="/_nuxt/FR49ZCl_.js" crossorigin></script><script>"use strict";(()=>{const t=window,e=document.documentElement,c=["dark","light"],n=getStorageValue("localStorage","nuxt-color-mode")||"system";let i=n==="system"?u():n;const r=e.getAttribute("data-color-mode-forced");r&&(i=r),l(i),t["__NUXT_COLOR_MODE__"]={preference:n,value:i,getColorScheme:u,addColorScheme:l,removeColorScheme:d};function l(o){const s=""+o+"",a="";e.classList?e.classList.add(s):e.className+=" "+s,a&&e.setAttribute("data-"+a,o)}function d(o){const s=""+o+"",a="";e.classList?e.classList.remove(s):e.className=e.className.replace(new RegExp(s,"g"),""),a&&e.removeAttribute("data-"+a)}function f(o){return t.matchMedia("(prefers-color-scheme"+o+")")}function u(){if(t.matchMedia&&f("").media!=="not all"){for(const o of c)if(f(":"+o).matches)return o}return"light"}})();function getStorageValue(t,e){switch(t){case"localStorage":return window.localStorage.getItem(e);case"sessionStorage":return window.sessionStorage.getItem(e);case"cookie":return getCookie(e);default:return null}}function getCookie(t){const c=("; "+window.document.cookie).split("; "+t+"=");if(c.length===2)return c.pop()?.split(";").shift()}</script></head><body><div id="__nuxt" class="isolate"></div><div id="teleports"></div><script>window.__NUXT__={};window.__NUXT__.config={public:{},app:{baseURL:"/",buildId:"
|
|
1
|
+
<!DOCTYPE html><html><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><link rel="stylesheet" href="/_nuxt/entry.Cjj6Q9Tz.css" crossorigin><link rel="modulepreload" as="script" crossorigin href="/_nuxt/FR49ZCl_.js"><script type="module" src="/_nuxt/FR49ZCl_.js" crossorigin></script><script>"use strict";(()=>{const t=window,e=document.documentElement,c=["dark","light"],n=getStorageValue("localStorage","nuxt-color-mode")||"system";let i=n==="system"?u():n;const r=e.getAttribute("data-color-mode-forced");r&&(i=r),l(i),t["__NUXT_COLOR_MODE__"]={preference:n,value:i,getColorScheme:u,addColorScheme:l,removeColorScheme:d};function l(o){const s=""+o+"",a="";e.classList?e.classList.add(s):e.className+=" "+s,a&&e.setAttribute("data-"+a,o)}function d(o){const s=""+o+"",a="";e.classList?e.classList.remove(s):e.className=e.className.replace(new RegExp(s,"g"),""),a&&e.removeAttribute("data-"+a)}function f(o){return t.matchMedia("(prefers-color-scheme"+o+")")}function u(){if(t.matchMedia&&f("").media!=="not all"){for(const o of c)if(f(":"+o).matches)return o}return"light"}})();function getStorageValue(t,e){switch(t){case"localStorage":return window.localStorage.getItem(e);case"sessionStorage":return window.sessionStorage.getItem(e);case"cookie":return getCookie(e);default:return null}}function getCookie(t){const c=("; "+window.document.cookie).split("; "+t+"=");if(c.length===2)return c.pop()?.split(";").shift()}</script></head><body><div id="__nuxt" class="isolate"></div><div id="teleports"></div><script>window.__NUXT__={};window.__NUXT__.config={public:{},app:{baseURL:"/",buildId:"06577f62-6940-42a3-95cb-624eaa96780c",buildAssetsDir:"/_nuxt/",cdnURL:""}}</script><script type="application/json" data-nuxt-data="nuxt-app" data-ssr="false" id="__NUXT_DATA__">[{"prerenderedAt":1,"serverRendered":2},1773751115020,false]</script></body></html>
|