@timurtekb/tekjobs 0.41.0 → 0.42.0
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/app/dist/index.html
CHANGED
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
<link rel="icon" href="/brand/tekjobs-avatar-192.png" type="image/png" sizes="192x192" />
|
|
9
9
|
<link rel="apple-touch-icon" href="/brand/tekjobs-avatar-192.png" />
|
|
10
10
|
<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Bricolage+Grotesque:wght@500;600&family=Hanken+Grotesk:wght@400;500;600&family=Azeret+Mono:wght@400;500&display=swap" data-zengin="fonts" />
|
|
11
|
-
<script type="module" crossorigin src="/assets/index-
|
|
11
|
+
<script type="module" crossorigin src="/assets/index-BMA7bilO.js"></script>
|
|
12
12
|
<link rel="stylesheet" crossorigin href="/assets/index-CHQPdodQ.css">
|
|
13
13
|
</head>
|
|
14
14
|
<body>
|
package/app/server/mcp.mjs
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
// TekJobs MCP server (stdio, JSON-RPC 2.0). Lets Claude Code / Claude Desktop run the job search without the UI:
|
|
3
3
|
// search and read matches, move them through the pipeline, add notes, edit criteria, add boards, trigger a scan,
|
|
4
4
|
// and pull the materials needed to tailor an application. Hand-rolled: no SDK dependency.
|
|
5
|
+
import fs from 'node:fs';
|
|
5
6
|
import path from 'node:path';
|
|
6
7
|
import { fileURLToPath } from 'node:url';
|
|
7
8
|
import * as store from './store.mjs';
|
|
@@ -11,6 +12,9 @@ import * as mail from './mail-check.mjs';
|
|
|
11
12
|
import * as people from './people.mjs';
|
|
12
13
|
import * as linkedin from './linkedin-import.mjs';
|
|
13
14
|
|
|
15
|
+
// The version a client shows beside the server is the package's, not a constant that goes stale.
|
|
16
|
+
const VERSION = (() => { try { return JSON.parse(fs.readFileSync(new URL('../../package.json', import.meta.url), 'utf8')).version; } catch { return '0.0.0'; } })();
|
|
17
|
+
|
|
14
18
|
export const TOOLS = [
|
|
15
19
|
{ name: 'list_snippets', description: 'The copy panel: the person\'s standard answers for application forms (name, email, phone, links, availability, salary answer, anything they added), grouped, from Profile/Snippets.md. Use these verbatim when drafting form answers; never invent a value that is empty here.', inputSchema: { type: 'object', properties: {} } },
|
|
16
20
|
{ name: 'list_people', description: 'The people in the search: recruiters, hiring managers, interviewers and referrals, one note each under People/, with role, company, email, last contact and the job notes they are on. Newest contact first.', inputSchema: { type: 'object', properties: {} } },
|
|
@@ -132,7 +136,7 @@ if (isMain) process.stdin.on('data', (chunk) => {
|
|
|
132
136
|
});
|
|
133
137
|
function handle(msg) {
|
|
134
138
|
const { id, method, params = {} } = msg;
|
|
135
|
-
if (method === 'initialize') return write({ jsonrpc: '2.0', id, result: { protocolVersion: params.protocolVersion || '2025-06-18', capabilities: { tools: {} }, serverInfo: { name: 'tekjobs', version:
|
|
139
|
+
if (method === 'initialize') return write({ jsonrpc: '2.0', id, result: { protocolVersion: params.protocolVersion || '2025-06-18', capabilities: { tools: {} }, serverInfo: { name: 'tekjobs', version: VERSION } } });
|
|
136
140
|
if (method === 'notifications/initialized' || method?.startsWith('notifications/')) return;
|
|
137
141
|
if (method === 'ping') return write({ jsonrpc: '2.0', id, result: {} });
|
|
138
142
|
if (method === 'tools/list') return write({ jsonrpc: '2.0', id, result: { tools: TOOLS } });
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@timurtekb/tekjobs",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.42.0",
|
|
4
4
|
"description": "A local-first job-search machine: watches hundreds of company job boards, scores every posting against your profile, and files matches into a folder of markdown notes you own. Bring your own LLM through MCP.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|
|
@@ -29,13 +29,14 @@
|
|
|
29
29
|
"pdf-parse": "^2.4.5"
|
|
30
30
|
},
|
|
31
31
|
"devDependencies": {
|
|
32
|
-
"@commitlint/cli": "^
|
|
33
|
-
"@commitlint/config-conventional": "^
|
|
34
|
-
"@semantic-release/changelog": "^
|
|
35
|
-
"@semantic-release/git": "^
|
|
32
|
+
"@commitlint/cli": "^21.2.3",
|
|
33
|
+
"@commitlint/config-conventional": "^21.2.3",
|
|
34
|
+
"@semantic-release/changelog": "^7.0.0",
|
|
35
|
+
"@semantic-release/git": "^11.0.1",
|
|
36
36
|
"@semantic-release/npm": "^13.2.0",
|
|
37
|
+
"conventional-changelog-conventionalcommits": "^8.0.0",
|
|
37
38
|
"husky": "^9.1.7",
|
|
38
|
-
"semantic-release": "^
|
|
39
|
+
"semantic-release": "^25.0.9"
|
|
39
40
|
},
|
|
40
41
|
"repository": {
|
|
41
42
|
"type": "git",
|