@dolusoft/hirebase-mcp 1.1.15 → 1.1.17
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 +1 -20
- package/dist/application/dto/filter-input.d.ts +1 -0
- package/dist/application/use-cases/bulk-add-cvs.d.ts +14 -0
- package/dist/application/use-cases/bulk-add-cvs.js +32 -0
- package/dist/application/use-cases/bulk-add-cvs.js.map +1 -0
- package/dist/application/use-cases/filter-candidates.js +3 -0
- package/dist/application/use-cases/filter-candidates.js.map +1 -1
- package/dist/infrastructure/config/app-config.d.ts +0 -2
- package/dist/infrastructure/config/app-config.js +0 -2
- package/dist/infrastructure/config/app-config.js.map +1 -1
- package/dist/interface/cli/index.js +0 -0
- package/dist/interface/dashboard/html.d.ts +1 -0
- package/dist/interface/dashboard/html.js +1007 -0
- package/dist/interface/dashboard/html.js.map +1 -0
- package/dist/interface/dashboard/public/200.html +1 -1
- package/dist/interface/dashboard/public/404.html +1 -1
- package/dist/interface/dashboard/public/_nuxt/{0AdCNZ2r.js → BTmld7lv.js} +1 -1
- package/dist/interface/dashboard/public/_nuxt/BtFgTcXQ.js +30 -0
- package/dist/interface/dashboard/public/_nuxt/{BLxpBE0v.js → BwTYWIW-.js} +1 -1
- package/dist/interface/dashboard/public/_nuxt/{CWPXgICh.js → CdJZeyak.js} +3 -3
- package/dist/interface/dashboard/public/_nuxt/{BMfODfbX.js → D9vxbU2B.js} +1 -1
- package/dist/interface/dashboard/public/_nuxt/{QW9Ku0B8.js → DHg6ig_T.js} +1 -1
- package/dist/interface/dashboard/public/_nuxt/DhFk2_Al.js +1 -0
- package/dist/interface/dashboard/public/_nuxt/{BTjyj6yg.js → DtX-aPBA.js} +1 -1
- package/dist/interface/dashboard/public/_nuxt/{Bq8olVvK.js → DvCMYK3d.js} +1 -1
- package/dist/interface/dashboard/public/_nuxt/{iHi62RBH.js → FR49ZCl_.js} +3 -3
- package/dist/interface/dashboard/public/_nuxt/builds/latest.json +1 -1
- package/dist/interface/dashboard/public/_nuxt/builds/meta/027020ec-4e7d-4fc7-8447-19800f7d0bac.json +1 -0
- package/dist/interface/dashboard/public/_nuxt/builds/meta/149e5d62-f8be-402c-b0cc-2efe0560d9d2.json +1 -0
- package/dist/interface/dashboard/public/_nuxt/builds/meta/18e19101-a96b-41dc-b602-f9a8f013a036.json +1 -0
- package/dist/interface/dashboard/public/_nuxt/builds/meta/1c51a4c0-5c2f-4100-97d3-01a1a9c5e5b9.json +1 -0
- package/dist/interface/dashboard/public/_nuxt/builds/meta/2fd3d0d3-6004-4659-9055-d27aa6656fd3.json +1 -0
- package/dist/interface/dashboard/public/_nuxt/builds/meta/32cf8bd4-f9b8-477d-bcff-75df710335e1.json +1 -0
- package/dist/interface/dashboard/public/_nuxt/builds/meta/3b25d236-f3cd-4770-94da-08dd37064dec.json +1 -0
- package/dist/interface/dashboard/public/_nuxt/builds/meta/4d9b8de6-1292-42ca-8f07-c47ba5f61768.json +1 -0
- package/dist/interface/dashboard/public/_nuxt/builds/meta/54792d4b-ca55-4b5d-b0dd-1d7dc34de344.json +1 -0
- package/dist/interface/dashboard/public/_nuxt/builds/meta/5959a14b-2494-4e0d-be28-fef9adfd889d.json +1 -0
- package/dist/interface/dashboard/public/_nuxt/builds/meta/60cda583-d704-4d4e-b37e-7ab337e3b6cc.json +1 -0
- package/dist/interface/dashboard/public/_nuxt/builds/meta/64d05a43-99ec-4c22-934e-071b310b968f.json +1 -0
- package/dist/interface/dashboard/public/_nuxt/builds/meta/6c1632a5-f0af-41e3-9d88-12294e03a0b9.json +1 -0
- package/dist/interface/dashboard/public/_nuxt/builds/meta/6c80982c-5e2c-446c-aaf6-7000a976e493.json +1 -0
- package/dist/interface/dashboard/public/_nuxt/builds/meta/79161adb-748c-4d36-a031-a71899a56ecd.json +1 -0
- package/dist/interface/dashboard/public/_nuxt/builds/meta/7aef47ca-0757-4b22-af19-6003a977fe0c.json +1 -0
- package/dist/interface/dashboard/public/_nuxt/builds/meta/84e5a87d-4ae5-48dd-8d5e-5b1fe89f7243.json +1 -0
- package/dist/interface/dashboard/public/_nuxt/builds/meta/86082677-a11d-4acf-ab04-c3c067a71622.json +1 -0
- package/dist/interface/dashboard/public/_nuxt/builds/meta/8892e611-c2b4-425b-a6a5-988314d8da4d.json +1 -0
- package/dist/interface/dashboard/public/_nuxt/builds/meta/9bfe6b22-73f8-4584-b13d-ed1df5600e12.json +1 -0
- package/dist/interface/dashboard/public/_nuxt/builds/meta/a39bf957-ddae-41a6-a183-08292363098b.json +1 -0
- package/dist/interface/dashboard/public/_nuxt/builds/meta/aba3eed8-dd4e-4a25-a13d-7dd320288af5.json +1 -0
- package/dist/interface/dashboard/public/_nuxt/builds/meta/b0bf7fc4-02c1-46fd-acca-f4458feed978.json +1 -0
- package/dist/interface/dashboard/public/_nuxt/builds/meta/b2847d83-b695-45d4-9dca-d7498158a501.json +1 -0
- package/dist/interface/dashboard/public/_nuxt/builds/meta/c73136b0-98f2-4b13-bce6-b2c2bffada81.json +1 -0
- package/dist/interface/dashboard/public/_nuxt/builds/meta/c8382eda-1354-4f92-b6d0-5b5b9f43354a.json +1 -0
- package/dist/interface/dashboard/public/_nuxt/builds/meta/e3abaa8f-1b4f-440f-8aa0-ad466815fcb3.json +1 -0
- package/dist/interface/dashboard/public/_nuxt/builds/meta/e707aa44-7202-413d-bcd5-1538b5b56570.json +1 -0
- package/dist/interface/dashboard/public/_nuxt/builds/meta/ea661002-05ab-4bfb-b02f-c91bb721c5e9.json +1 -0
- package/dist/interface/dashboard/public/_nuxt/builds/meta/ec2a9f02-6137-4473-bc4f-0e48df1e085b.json +1 -0
- package/dist/interface/dashboard/public/_nuxt/builds/meta/f2125e1d-c0bd-469a-a543-5f766f310d69.json +1 -0
- package/dist/interface/dashboard/public/_nuxt/builds/meta/f2f23a12-a792-480e-922a-ee8b73dc0310.json +1 -0
- package/dist/interface/dashboard/public/_nuxt/builds/meta/f4e23d88-bf4b-4110-976f-4e7a2c538e98.json +1 -0
- package/dist/interface/dashboard/public/_nuxt/builds/meta/f6503b83-d731-40f8-9110-c1599663b3ba.json +1 -0
- package/dist/interface/dashboard/public/_nuxt/builds/meta/fb00efc4-219c-4174-8827-fe876fe21945.json +1 -0
- package/dist/interface/dashboard/public/_nuxt/builds/meta/feac6d04-6bc5-4fa4-a241-79e897d7f8c1.json +1 -0
- package/dist/interface/dashboard/public/_nuxt/entry.BSUaoqsu.css +1 -0
- package/dist/interface/dashboard/public/_nuxt/index.BH5Gbe6q.css +1 -0
- package/dist/interface/dashboard/public/_nuxt/{index.CYscfxlP.css → index.CEZKOBlO.css} +1 -1
- package/dist/interface/dashboard/public/_nuxt/index.TQmbXYdV.css +1 -0
- package/dist/interface/dashboard/public/_nuxt/{B7h8tXDC.js → iov8YEuI.js} +1 -1
- package/dist/interface/dashboard/public/_nuxt/{C2IKXOYU.js → qq1iUjth.js} +1 -1
- package/dist/interface/dashboard/public/index.html +1 -1
- package/dist/interface/mcp/server.js +0 -12
- package/dist/interface/mcp/server.js.map +1 -1
- package/dist/interface/mcp/tools/{add-contact.d.ts → bulk-add-cvs.d.ts} +1 -1
- package/dist/interface/mcp/tools/bulk-add-cvs.js +28 -0
- package/dist/interface/mcp/tools/bulk-add-cvs.js.map +1 -0
- package/dist/interface/mcp/tools/filter-candidates.js +4 -2
- package/dist/interface/mcp/tools/filter-candidates.js.map +1 -1
- package/dist/interface/mcp/types.d.ts +0 -2
- package/package.json +71 -72
- package/dist/application/ports/calendar-service.d.ts +0 -42
- package/dist/application/ports/calendar-service.js +0 -2
- package/dist/application/ports/calendar-service.js.map +0 -1
- package/dist/infrastructure/calendar/google-calendar.service.d.ts +0 -24
- package/dist/infrastructure/calendar/google-calendar.service.js +0 -353
- package/dist/infrastructure/calendar/google-calendar.service.js.map +0 -1
- package/dist/infrastructure/calendar/index.d.ts +0 -1
- package/dist/infrastructure/calendar/index.js +0 -2
- package/dist/infrastructure/calendar/index.js.map +0 -1
- package/dist/interface/dashboard/public/_nuxt/-_rMc6Se.js +0 -401
- package/dist/interface/dashboard/public/_nuxt/B4WYmHkq.js +0 -1
- package/dist/interface/dashboard/public/_nuxt/BeosaLTc.js +0 -1
- package/dist/interface/dashboard/public/_nuxt/BgeIs7YY.js +0 -412
- package/dist/interface/dashboard/public/_nuxt/Br9ERNIk.js +0 -401
- package/dist/interface/dashboard/public/_nuxt/CMEleUsa.js +0 -1
- package/dist/interface/dashboard/public/_nuxt/CVllyrh5.js +0 -1
- package/dist/interface/dashboard/public/_nuxt/CXsAVqtn.js +0 -1
- package/dist/interface/dashboard/public/_nuxt/D0GfmhnA.js +0 -412
- package/dist/interface/dashboard/public/_nuxt/D6QLZU2u.js +0 -1
- package/dist/interface/dashboard/public/_nuxt/D7CcqX9g.js +0 -412
- package/dist/interface/dashboard/public/_nuxt/DGNE26xE.js +0 -1
- package/dist/interface/dashboard/public/_nuxt/DP7mgmwO.js +0 -1
- package/dist/interface/dashboard/public/_nuxt/DPvkvsJV.js +0 -1
- package/dist/interface/dashboard/public/_nuxt/DxJl84Er.js +0 -1
- package/dist/interface/dashboard/public/_nuxt/JwuJcHj8.js +0 -1
- package/dist/interface/dashboard/public/_nuxt/XEtfQxBf.js +0 -1
- package/dist/interface/dashboard/public/_nuxt/bQmPafrB.js +0 -1
- package/dist/interface/dashboard/public/_nuxt/builds/meta/055843bb-5e41-4bc3-b42b-417d89074bec.json +0 -1
- package/dist/interface/dashboard/public/_nuxt/builds/meta/0887dec6-b9e4-4d5c-aa20-c4d3743164d1.json +0 -1
- package/dist/interface/dashboard/public/_nuxt/builds/meta/131e7c46-6af5-4dbc-a481-1e187b75e916.json +0 -1
- package/dist/interface/dashboard/public/_nuxt/builds/meta/20776565-55f5-45a5-9256-34c44a89cabb.json +0 -1
- package/dist/interface/dashboard/public/_nuxt/builds/meta/270f5a83-1457-4ae7-9cc9-e677a3d11f3f.json +0 -1
- package/dist/interface/dashboard/public/_nuxt/builds/meta/359e6b85-6a49-4c04-9d61-55b27d691ee2.json +0 -1
- package/dist/interface/dashboard/public/_nuxt/builds/meta/3d499c69-a6ad-40af-aa0f-3de728bce182.json +0 -1
- package/dist/interface/dashboard/public/_nuxt/builds/meta/4a4130b0-8c3a-45a8-b0ec-75fb365382a4.json +0 -1
- package/dist/interface/dashboard/public/_nuxt/builds/meta/5b1398f2-12db-4829-bd27-8f6bea84da51.json +0 -1
- package/dist/interface/dashboard/public/_nuxt/builds/meta/5f5dc585-4404-4cc1-aed7-f41e599fa82b.json +0 -1
- package/dist/interface/dashboard/public/_nuxt/builds/meta/6288f3fe-6fd0-4910-840f-965365a82bbe.json +0 -1
- package/dist/interface/dashboard/public/_nuxt/builds/meta/7d22d81c-6f64-4bbf-95cc-7bfaaa0a4e40.json +0 -1
- package/dist/interface/dashboard/public/_nuxt/builds/meta/88c871e1-0450-4184-8097-9b16d5055c91.json +0 -1
- package/dist/interface/dashboard/public/_nuxt/builds/meta/8d4cac7e-e9ef-4e89-9b6e-f688d6c878c0.json +0 -1
- package/dist/interface/dashboard/public/_nuxt/builds/meta/a6dffe72-f4cc-4c31-aa18-893d6b1f925a.json +0 -1
- package/dist/interface/dashboard/public/_nuxt/builds/meta/ac99623a-06e9-4b63-975f-d2bdc89c09c0.json +0 -1
- package/dist/interface/dashboard/public/_nuxt/builds/meta/ae588cf0-9aba-4273-90ff-7dba058efdbb.json +0 -1
- package/dist/interface/dashboard/public/_nuxt/builds/meta/b2c71ec3-fe3e-4002-8e4c-c70c755ffa47.json +0 -1
- package/dist/interface/dashboard/public/_nuxt/builds/meta/b5e2b874-04ff-45e9-812e-19ff99dedd2b.json +0 -1
- package/dist/interface/dashboard/public/_nuxt/builds/meta/b66d956d-5fb7-4cb6-a107-1ff18fa416e8.json +0 -1
- package/dist/interface/dashboard/public/_nuxt/builds/meta/bb377d8b-070b-490b-89de-8b16bf942832.json +0 -1
- package/dist/interface/dashboard/public/_nuxt/builds/meta/bce1d1a3-5447-4650-a9d7-0ef8860fe4cd.json +0 -1
- package/dist/interface/dashboard/public/_nuxt/builds/meta/c0c615e1-5140-47a4-b69b-45cd18b1bd53.json +0 -1
- package/dist/interface/dashboard/public/_nuxt/builds/meta/c8f77a43-342e-4c12-b54f-a5a303d0bfc1.json +0 -1
- package/dist/interface/dashboard/public/_nuxt/builds/meta/dcd6fa82-0beb-4b20-a2e0-bc4e6105f567.json +0 -1
- package/dist/interface/dashboard/public/_nuxt/builds/meta/dd11345e-76cc-4eda-8846-6955403f11f4.json +0 -1
- package/dist/interface/dashboard/public/_nuxt/builds/meta/e0401d8c-cb34-406e-b220-bbb78db509ed.json +0 -1
- package/dist/interface/dashboard/public/_nuxt/builds/meta/e3b88d80-27cc-46a4-aa8c-5eb9f2b1afe4.json +0 -1
- package/dist/interface/dashboard/public/_nuxt/builds/meta/edf56071-c990-47a9-adea-2c94846f4652.json +0 -1
- package/dist/interface/dashboard/public/_nuxt/builds/meta/f2781c1c-3867-4fd2-a6bb-b35695221f0d.json +0 -1
- package/dist/interface/dashboard/public/_nuxt/builds/meta/f2cd9466-7680-4df3-88a7-7b7428a61966.json +0 -1
- package/dist/interface/dashboard/public/_nuxt/entry.BdLSmlNR.css +0 -1
- package/dist/interface/dashboard/public/_nuxt/entry.CCPYWN-f.css +0 -1
- package/dist/interface/dashboard/public/_nuxt/entry.u_d2fXHa.css +0 -1
- package/dist/interface/dashboard/public/_nuxt/index.B4sfIgIL.css +0 -1
- package/dist/interface/dashboard/public/_nuxt/index.C1uHm-Vo.css +0 -1
- package/dist/interface/dashboard/public/_nuxt/index.DCAZalej.css +0 -1
- package/dist/interface/dashboard/public/_nuxt/index.Dj1j62L8.css +0 -1
- package/dist/interface/dashboard/public/_nuxt/index.xroKz4Z7.css +0 -1
- package/dist/interface/mcp/tools/add-contact.js +0 -43
- package/dist/interface/mcp/tools/add-contact.js.map +0 -1
- package/dist/interface/mcp/tools/authorize-calendar.d.ts +0 -3
- package/dist/interface/mcp/tools/authorize-calendar.js +0 -20
- package/dist/interface/mcp/tools/authorize-calendar.js.map +0 -1
- package/dist/interface/mcp/tools/create-calendar-event.d.ts +0 -3
- package/dist/interface/mcp/tools/create-calendar-event.js +0 -46
- package/dist/interface/mcp/tools/create-calendar-event.js.map +0 -1
package/README.md
CHANGED
|
@@ -30,9 +30,8 @@ src/
|
|
|
30
30
|
| unpdf | PDF text extraction |
|
|
31
31
|
| mammoth | DOCX text extraction |
|
|
32
32
|
| Tesseract.js | OCR for image-based PDFs |
|
|
33
|
-
| Google Calendar + Contacts API | Interview scheduling & contact sync (OAuth2, zero dependencies) |
|
|
34
33
|
|
|
35
|
-
## MCP Tools (
|
|
34
|
+
## MCP Tools (27)
|
|
36
35
|
|
|
37
36
|
### CV Management
|
|
38
37
|
|
|
@@ -80,16 +79,6 @@ src/
|
|
|
80
79
|
|
|
81
80
|
**Pipeline statuses:** `new` → `contacted` → `unreachable` · `not_interested` · `interview_scheduled` → `no_show` · `interviewed` → `rejected` · `offer_sent` → `hired`
|
|
82
81
|
|
|
83
|
-
### Google Integration
|
|
84
|
-
|
|
85
|
-
| Tool | Description |
|
|
86
|
-
|---|---|
|
|
87
|
-
| `authorize_google` | OAuth2 authorization flow — opens browser for Google consent (one-time, covers Calendar + Contacts) |
|
|
88
|
-
| `create_calendar_event` | Create events for interviews, meetings, and follow-ups |
|
|
89
|
-
| `add_contact` | Save candidate contact info to Google Contacts with optional group/label |
|
|
90
|
-
|
|
91
|
-
> Google tools only appear when `GOOGLE_CLIENT_ID` and `GOOGLE_CLIENT_SECRET` are configured. Enable **People API** and **Calendar API** in Google Cloud Console.
|
|
92
|
-
|
|
93
82
|
### System
|
|
94
83
|
|
|
95
84
|
| Tool | Description |
|
|
@@ -201,7 +190,6 @@ pnpm build
|
|
|
201
190
|
|
|
202
191
|
- Node.js >= 22
|
|
203
192
|
- OpenAI API Key
|
|
204
|
-
- Google Cloud OAuth2 credentials (optional, for calendar integration)
|
|
205
193
|
|
|
206
194
|
## MCP Configuration
|
|
207
195
|
|
|
@@ -212,8 +200,6 @@ claude mcp add hirebase -s user \
|
|
|
212
200
|
-e OPENAI_API_KEY=sk-your-key \
|
|
213
201
|
-e EMBEDDING_MODEL=text-embedding-3-small \
|
|
214
202
|
-e DASHBOARD_ENABLED=true \
|
|
215
|
-
-e GOOGLE_CLIENT_ID=your-client-id \
|
|
216
|
-
-e GOOGLE_CLIENT_SECRET=your-client-secret \
|
|
217
203
|
-- npx -y @dolusoft/hirebase-mcp
|
|
218
204
|
```
|
|
219
205
|
|
|
@@ -230,8 +216,6 @@ Add to your Claude Desktop config (`claude_desktop_config.json`):
|
|
|
230
216
|
"env": {
|
|
231
217
|
"OPENAI_API_KEY": "sk-your-key",
|
|
232
218
|
"LANCEDB_PATH": "./data/lancedb",
|
|
233
|
-
"GOOGLE_CLIENT_ID": "your-client-id",
|
|
234
|
-
"GOOGLE_CLIENT_SECRET": "your-client-secret"
|
|
235
219
|
}
|
|
236
220
|
}
|
|
237
221
|
}
|
|
@@ -248,8 +232,6 @@ Add to your Claude Desktop config (`claude_desktop_config.json`):
|
|
|
248
232
|
| `EXTRACTION_MODEL` | `gpt-5-mini` | CV extraction model |
|
|
249
233
|
| `DASHBOARD_ENABLED` | `true` | Enable real-time dashboard |
|
|
250
234
|
| `DASHBOARD_PORT` | `0` (random) | Dashboard server port |
|
|
251
|
-
| `GOOGLE_CLIENT_ID` | — | Google OAuth2 client ID (for calendar) |
|
|
252
|
-
| `GOOGLE_CLIENT_SECRET` | — | Google OAuth2 client secret (for calendar) |
|
|
253
235
|
|
|
254
236
|
## Key Design Decisions
|
|
255
237
|
|
|
@@ -261,7 +243,6 @@ Add to your Claude Desktop config (`claude_desktop_config.json`):
|
|
|
261
243
|
- **Section-level chunking** — each work experience is a separate chunk for granular matching
|
|
262
244
|
- **OCR fallback** — image-based PDFs automatically processed with Tesseract.js
|
|
263
245
|
- **Composite scoring** — matching combines semantic, skill-based, and loyalty signals
|
|
264
|
-
- **Google Calendar** — zero-dependency OAuth2 + Calendar API using Node.js built-in `fetch`
|
|
265
246
|
|
|
266
247
|
## License
|
|
267
248
|
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { Candidate } from '../../domain/entities/candidate.js';
|
|
2
|
+
import { AddCvUseCase } from './add-cv.js';
|
|
3
|
+
export interface BulkAddResult {
|
|
4
|
+
succeeded: Candidate[];
|
|
5
|
+
failed: {
|
|
6
|
+
file: string;
|
|
7
|
+
error: string;
|
|
8
|
+
}[];
|
|
9
|
+
}
|
|
10
|
+
export declare class BulkAddCvsUseCase {
|
|
11
|
+
private addCvUseCase;
|
|
12
|
+
constructor(addCvUseCase: AddCvUseCase);
|
|
13
|
+
execute(directoryPath: string): Promise<BulkAddResult>;
|
|
14
|
+
}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { readdir } from 'node:fs/promises';
|
|
2
|
+
import { join } from 'node:path';
|
|
3
|
+
export class BulkAddCvsUseCase {
|
|
4
|
+
addCvUseCase;
|
|
5
|
+
constructor(addCvUseCase) {
|
|
6
|
+
this.addCvUseCase = addCvUseCase;
|
|
7
|
+
}
|
|
8
|
+
async execute(directoryPath) {
|
|
9
|
+
const entries = await readdir(directoryPath);
|
|
10
|
+
const cvFiles = entries.filter((f) => {
|
|
11
|
+
const ext = f.toLowerCase().split('.').pop();
|
|
12
|
+
return ext === 'pdf' || ext === 'docx';
|
|
13
|
+
});
|
|
14
|
+
const succeeded = [];
|
|
15
|
+
const failed = [];
|
|
16
|
+
for (const file of cvFiles) {
|
|
17
|
+
const filePath = join(directoryPath, file);
|
|
18
|
+
try {
|
|
19
|
+
const candidate = await this.addCvUseCase.execute(filePath);
|
|
20
|
+
succeeded.push(candidate);
|
|
21
|
+
}
|
|
22
|
+
catch (error) {
|
|
23
|
+
failed.push({
|
|
24
|
+
file,
|
|
25
|
+
error: error instanceof Error ? error.message : String(error),
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
return { succeeded, failed };
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=bulk-add-cvs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bulk-add-cvs.js","sourceRoot":"","sources":["../../../src/application/use-cases/bulk-add-cvs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AASjC,MAAM,OAAO,iBAAiB;IACR;IAApB,YAAoB,YAA0B;QAA1B,iBAAY,GAAZ,YAAY,CAAc;IAAG,CAAC;IAElD,KAAK,CAAC,OAAO,CAAC,aAAqB;QACjC,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,aAAa,CAAC,CAAC;QAC7C,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE;YACnC,MAAM,GAAG,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;YAC7C,OAAO,GAAG,KAAK,KAAK,IAAI,GAAG,KAAK,MAAM,CAAC;QACzC,CAAC,CAAC,CAAC;QAEH,MAAM,SAAS,GAAgB,EAAE,CAAC;QAClC,MAAM,MAAM,GAAsC,EAAE,CAAC;QAErD,KAAK,MAAM,IAAI,IAAI,OAAO,EAAE,CAAC;YAC3B,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;YAC3C,IAAI,CAAC;gBACH,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;gBAC5D,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAC5B,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,CAAC,IAAI,CAAC;oBACV,IAAI;oBACJ,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;iBAC9D,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC;IAC/B,CAAC;CACF"}
|
|
@@ -6,6 +6,9 @@ export class FilterCandidatesUseCase {
|
|
|
6
6
|
}
|
|
7
7
|
async execute(input) {
|
|
8
8
|
const conditions = [];
|
|
9
|
+
if (input.name) {
|
|
10
|
+
conditions.push(`name LIKE '%${escapeFilterValue(input.name)}%'`);
|
|
11
|
+
}
|
|
9
12
|
if (input.skills && input.skills.length > 0) {
|
|
10
13
|
for (const skill of input.skills) {
|
|
11
14
|
conditions.push(`skills LIKE '%${escapeFilterValue(skill)}%'`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"filter-candidates.js","sourceRoot":"","sources":["../../../src/application/use-cases/filter-candidates.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAE/D,MAAM,OAAO,uBAAuB;IACd;IAApB,YAAoB,aAAmC;QAAnC,kBAAa,GAAb,aAAa,CAAsB;IAAG,CAAC;IAE3D,KAAK,CAAC,OAAO,CAAC,KAAkB;QAC9B,MAAM,UAAU,GAAa,EAAE,CAAC;QAEhC,IAAI,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC5C,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;gBACjC,UAAU,CAAC,IAAI,CAAC,iBAAiB,iBAAiB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACjE,CAAC;QACH,CAAC;QAED,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;YACnB,UAAU,CAAC,IAAI,CAAC,mBAAmB,iBAAiB,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC5E,CAAC;QAED,IAAI,KAAK,CAAC,kBAAkB,KAAK,SAAS,EAAE,CAAC;YAC3C,UAAU,CAAC,IAAI,CAAC,uBAAuB,KAAK,CAAC,kBAAkB,EAAE,CAAC,CAAC;QACrE,CAAC;QAED,IAAI,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAClD,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;gBACnC,UAAU,CAAC,IAAI,CAAC,oBAAoB,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACnE,CAAC;QACH,CAAC;QAED,IAAI,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxC,KAAK,MAAM,GAAG,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;gBAC7B,UAAU,CAAC,IAAI,CAAC,eAAe,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAC7D,CAAC;QACH,CAAC;QAED,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC5B,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC;YAC/C,OAAO,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACjC,CAAC;QAED,MAAM,WAAW,GAAG,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC7C,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;QAChE,OAAO,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACxC,CAAC;IAEO,SAAS,CAAC,CAA8J;QAC9K,OAAO;YACL,EAAE,EAAE,CAAC,CAAC,EAAE;YACR,IAAI,EAAE,CAAC,CAAC,IAAI;YACZ,KAAK,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK;YACtB,QAAQ,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ;YAC5B,MAAM,EAAE,CAAC,CAAC,MAAM;YAChB,eAAe,EAAE,CAAC,CAAC,eAAe;YAClC,IAAI,EAAE,CAAC,CAAC,IAAI;YACZ,SAAS,EAAE,CAAC,CAAC,SAAS;SACvB,CAAC;IACJ,CAAC;CACF"}
|
|
1
|
+
{"version":3,"file":"filter-candidates.js","sourceRoot":"","sources":["../../../src/application/use-cases/filter-candidates.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAE/D,MAAM,OAAO,uBAAuB;IACd;IAApB,YAAoB,aAAmC;QAAnC,kBAAa,GAAb,aAAa,CAAsB;IAAG,CAAC;IAE3D,KAAK,CAAC,OAAO,CAAC,KAAkB;QAC9B,MAAM,UAAU,GAAa,EAAE,CAAC;QAEhC,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;YACf,UAAU,CAAC,IAAI,CAAC,eAAe,iBAAiB,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACpE,CAAC;QAED,IAAI,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC5C,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;gBACjC,UAAU,CAAC,IAAI,CAAC,iBAAiB,iBAAiB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACjE,CAAC;QACH,CAAC;QAED,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;YACnB,UAAU,CAAC,IAAI,CAAC,mBAAmB,iBAAiB,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC5E,CAAC;QAED,IAAI,KAAK,CAAC,kBAAkB,KAAK,SAAS,EAAE,CAAC;YAC3C,UAAU,CAAC,IAAI,CAAC,uBAAuB,KAAK,CAAC,kBAAkB,EAAE,CAAC,CAAC;QACrE,CAAC;QAED,IAAI,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAClD,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;gBACnC,UAAU,CAAC,IAAI,CAAC,oBAAoB,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACnE,CAAC;QACH,CAAC;QAED,IAAI,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxC,KAAK,MAAM,GAAG,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;gBAC7B,UAAU,CAAC,IAAI,CAAC,eAAe,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAC7D,CAAC;QACH,CAAC;QAED,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC5B,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC;YAC/C,OAAO,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACjC,CAAC;QAED,MAAM,WAAW,GAAG,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC7C,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;QAChE,OAAO,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACxC,CAAC;IAEO,SAAS,CAAC,CAA8J;QAC9K,OAAO;YACL,EAAE,EAAE,CAAC,CAAC,EAAE;YACR,IAAI,EAAE,CAAC,CAAC,IAAI;YACZ,KAAK,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK;YACtB,QAAQ,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ;YAC5B,MAAM,EAAE,CAAC,CAAC,MAAM;YAChB,eAAe,EAAE,CAAC,CAAC,eAAe;YAClC,IAAI,EAAE,CAAC,CAAC,IAAI;YACZ,SAAS,EAAE,CAAC,CAAC,SAAS;SACvB,CAAC;IACJ,CAAC;CACF"}
|
|
@@ -10,8 +10,6 @@ export function loadConfig() {
|
|
|
10
10
|
extractionModel: process.env.EXTRACTION_MODEL ?? 'gpt-5-mini',
|
|
11
11
|
dashboardEnabled: process.env.DASHBOARD_ENABLED !== 'false',
|
|
12
12
|
dashboardPort: parseInt(process.env.DASHBOARD_PORT ?? '0', 10),
|
|
13
|
-
googleClientId: process.env.GOOGLE_CLIENT_ID,
|
|
14
|
-
googleClientSecret: process.env.GOOGLE_CLIENT_SECRET,
|
|
15
13
|
};
|
|
16
14
|
}
|
|
17
15
|
//# sourceMappingURL=app-config.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app-config.js","sourceRoot":"","sources":["../../../src/infrastructure/config/app-config.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"app-config.js","sourceRoot":"","sources":["../../../src/infrastructure/config/app-config.ts"],"names":[],"mappings":"AASA,MAAM,UAAU,UAAU;IACxB,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC;IAChD,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;IACrE,CAAC;IAED,OAAO;QACL,YAAY;QACZ,WAAW,EAAE,OAAO,CAAC,GAAG,CAAC,YAAY,IAAI,gBAAgB;QACzD,cAAc,EAAE,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,wBAAwB,EAAE,gCAAgC;QACzG,eAAe,EAAE,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,YAAY;QAC7D,gBAAgB,EAAE,OAAO,CAAC,GAAG,CAAC,iBAAiB,KAAK,OAAO;QAC3D,aAAa,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,GAAG,EAAE,EAAE,CAAC;KAC/D,CAAC;AACJ,CAAC"}
|
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function getDashboardHtml(port: number): string;
|