careermate 0.0.12 → 0.0.13
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/dist/doctor.mjs +4 -4
- package/dist/mcp.mjs +4 -4
- package/dist/web.mjs +3 -3
- package/package.json +1 -1
- package/packages/core/src/jobsearch.ts +7 -3
package/dist/doctor.mjs
CHANGED
|
@@ -86991,7 +86991,7 @@ var ApplicationContextSchema = external_exports.object({
|
|
|
86991
86991
|
});
|
|
86992
86992
|
|
|
86993
86993
|
// packages/shared/src/build-info.ts
|
|
86994
|
-
var APP_VERSION = true ? "0.0.
|
|
86994
|
+
var APP_VERSION = true ? "0.0.13" : "0.0.0-dev";
|
|
86995
86995
|
var BUNDLED = true;
|
|
86996
86996
|
|
|
86997
86997
|
// packages/shared/src/index.ts
|
|
@@ -89181,7 +89181,7 @@ var wanted = {
|
|
|
89181
89181
|
const url2 = `https://www.wanted.co.kr/api/v4/jobs?country=kr&locations=all&years=-1&job_sort=job.latest_order&limit=${limit}&offset=0&query=${encodeURIComponent(query)}`;
|
|
89182
89182
|
const j = wantedSchema.parse(await getJson(url2, timeoutMs));
|
|
89183
89183
|
return j.data.map((r) => {
|
|
89184
|
-
const annual = r.annual_from || r.annual_to ? `${r.annual_from ?? 0}
|
|
89184
|
+
const annual = r.annual_from || r.annual_to ? r.annual_to == null || r.annual_to >= 100 ? `${r.annual_from ?? 0}\uB144 \uC774\uC0C1` : `${r.annual_from ?? 0}~${r.annual_to}\uB144` : void 0;
|
|
89185
89185
|
return {
|
|
89186
89186
|
source: "wanted",
|
|
89187
89187
|
company: r.company.name,
|
|
@@ -89201,7 +89201,7 @@ var jumpit = {
|
|
|
89201
89201
|
async search(query, limit, timeoutMs) {
|
|
89202
89202
|
const positions = [];
|
|
89203
89203
|
for (let page = 1; positions.length < limit && page <= Math.ceil(limit / 16); page++) {
|
|
89204
|
-
const url2 = `https://jumpit-api.saramin.co.kr/api/positions?sort=
|
|
89204
|
+
const url2 = `https://jumpit-api.saramin.co.kr/api/positions?sort=relation&page=${page}&keyword=${encodeURIComponent(query)}`;
|
|
89205
89205
|
const got = jumpitSchema.parse(await getJson(url2, timeoutMs)).result.positions;
|
|
89206
89206
|
positions.push(...got);
|
|
89207
89207
|
if (got.length < 16) break;
|
|
@@ -89425,7 +89425,7 @@ async function searchJobs(query, opts = {}) {
|
|
|
89425
89425
|
...filtered_out !== void 0 ? { filtered_out } : {}
|
|
89426
89426
|
};
|
|
89427
89427
|
}
|
|
89428
|
-
var normCompany = (s) => s.replace(/\(
|
|
89428
|
+
var normCompany = (s) => s.replace(/\([^)]*\)|㈜|주식회사/g, "").toLowerCase().replace(/[^\p{L}\p{N}]/gu, "");
|
|
89429
89429
|
var normTitle = (title, company) => {
|
|
89430
89430
|
const c = normCompany(company);
|
|
89431
89431
|
return title.replace(/\[([^\]]*)\]/g, (tag, inner) => {
|
package/dist/mcp.mjs
CHANGED
|
@@ -103447,7 +103447,7 @@ var ApplicationContextSchema = external_exports.object({
|
|
|
103447
103447
|
});
|
|
103448
103448
|
|
|
103449
103449
|
// packages/shared/src/build-info.ts
|
|
103450
|
-
var APP_VERSION = true ? "0.0.
|
|
103450
|
+
var APP_VERSION = true ? "0.0.13" : "0.0.0-dev";
|
|
103451
103451
|
var BUNDLED = true;
|
|
103452
103452
|
|
|
103453
103453
|
// packages/shared/src/index.ts
|
|
@@ -105637,7 +105637,7 @@ var wanted = {
|
|
|
105637
105637
|
const url2 = `https://www.wanted.co.kr/api/v4/jobs?country=kr&locations=all&years=-1&job_sort=job.latest_order&limit=${limit}&offset=0&query=${encodeURIComponent(query)}`;
|
|
105638
105638
|
const j = wantedSchema.parse(await getJson(url2, timeoutMs));
|
|
105639
105639
|
return j.data.map((r) => {
|
|
105640
|
-
const annual = r.annual_from || r.annual_to ? `${r.annual_from ?? 0}
|
|
105640
|
+
const annual = r.annual_from || r.annual_to ? r.annual_to == null || r.annual_to >= 100 ? `${r.annual_from ?? 0}\uB144 \uC774\uC0C1` : `${r.annual_from ?? 0}~${r.annual_to}\uB144` : void 0;
|
|
105641
105641
|
return {
|
|
105642
105642
|
source: "wanted",
|
|
105643
105643
|
company: r.company.name,
|
|
@@ -105657,7 +105657,7 @@ var jumpit = {
|
|
|
105657
105657
|
async search(query, limit, timeoutMs) {
|
|
105658
105658
|
const positions = [];
|
|
105659
105659
|
for (let page = 1; positions.length < limit && page <= Math.ceil(limit / 16); page++) {
|
|
105660
|
-
const url2 = `https://jumpit-api.saramin.co.kr/api/positions?sort=
|
|
105660
|
+
const url2 = `https://jumpit-api.saramin.co.kr/api/positions?sort=relation&page=${page}&keyword=${encodeURIComponent(query)}`;
|
|
105661
105661
|
const got = jumpitSchema.parse(await getJson(url2, timeoutMs)).result.positions;
|
|
105662
105662
|
positions.push(...got);
|
|
105663
105663
|
if (got.length < 16) break;
|
|
@@ -105881,7 +105881,7 @@ async function searchJobs(query, opts = {}) {
|
|
|
105881
105881
|
...filtered_out !== void 0 ? { filtered_out } : {}
|
|
105882
105882
|
};
|
|
105883
105883
|
}
|
|
105884
|
-
var normCompany = (s) => s.replace(/\(
|
|
105884
|
+
var normCompany = (s) => s.replace(/\([^)]*\)|㈜|주식회사/g, "").toLowerCase().replace(/[^\p{L}\p{N}]/gu, "");
|
|
105885
105885
|
var normTitle = (title, company) => {
|
|
105886
105886
|
const c = normCompany(company);
|
|
105887
105887
|
return title.replace(/\[([^\]]*)\]/g, (tag, inner) => {
|
package/dist/web.mjs
CHANGED
|
@@ -55283,7 +55283,7 @@ var ApplicationContextSchema = external_exports.object({
|
|
|
55283
55283
|
});
|
|
55284
55284
|
|
|
55285
55285
|
// packages/shared/src/build-info.ts
|
|
55286
|
-
var APP_VERSION = true ? "0.0.
|
|
55286
|
+
var APP_VERSION = true ? "0.0.13" : "0.0.0-dev";
|
|
55287
55287
|
var BUNDLED = true;
|
|
55288
55288
|
|
|
55289
55289
|
// packages/shared/src/index.ts
|
|
@@ -57491,7 +57491,7 @@ var wanted = {
|
|
|
57491
57491
|
const url2 = `https://www.wanted.co.kr/api/v4/jobs?country=kr&locations=all&years=-1&job_sort=job.latest_order&limit=${limit}&offset=0&query=${encodeURIComponent(query)}`;
|
|
57492
57492
|
const j = wantedSchema.parse(await getJson(url2, timeoutMs));
|
|
57493
57493
|
return j.data.map((r) => {
|
|
57494
|
-
const annual = r.annual_from || r.annual_to ? `${r.annual_from ?? 0}
|
|
57494
|
+
const annual = r.annual_from || r.annual_to ? r.annual_to == null || r.annual_to >= 100 ? `${r.annual_from ?? 0}\uB144 \uC774\uC0C1` : `${r.annual_from ?? 0}~${r.annual_to}\uB144` : void 0;
|
|
57495
57495
|
return {
|
|
57496
57496
|
source: "wanted",
|
|
57497
57497
|
company: r.company.name,
|
|
@@ -57511,7 +57511,7 @@ var jumpit = {
|
|
|
57511
57511
|
async search(query, limit, timeoutMs) {
|
|
57512
57512
|
const positions = [];
|
|
57513
57513
|
for (let page = 1; positions.length < limit && page <= Math.ceil(limit / 16); page++) {
|
|
57514
|
-
const url2 = `https://jumpit-api.saramin.co.kr/api/positions?sort=
|
|
57514
|
+
const url2 = `https://jumpit-api.saramin.co.kr/api/positions?sort=relation&page=${page}&keyword=${encodeURIComponent(query)}`;
|
|
57515
57515
|
const got = jumpitSchema.parse(await getJson(url2, timeoutMs)).result.positions;
|
|
57516
57516
|
positions.push(...got);
|
|
57517
57517
|
if (got.length < 16) break;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "careermate",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.13",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "CareerMate — an MCP-first, local-first career workspace. Your career database and documents stay on your machine; optional discovery and update features may use the internet without sending stored career data.",
|
|
6
6
|
"license": "MIT",
|
|
@@ -170,9 +170,12 @@ const wanted: Provider = {
|
|
|
170
170
|
`&job_sort=job.latest_order&limit=${limit}&offset=0&query=${encodeURIComponent(query)}`;
|
|
171
171
|
const j = wantedSchema.parse(await getJson(url, timeoutMs));
|
|
172
172
|
return j.data.map((r) => {
|
|
173
|
+
// Wanted uses 100 for "no upper bound".
|
|
173
174
|
const annual =
|
|
174
175
|
r.annual_from || r.annual_to
|
|
175
|
-
?
|
|
176
|
+
? r.annual_to == null || r.annual_to >= 100
|
|
177
|
+
? `${r.annual_from ?? 0}년 이상`
|
|
178
|
+
: `${r.annual_from ?? 0}~${r.annual_to}년`
|
|
176
179
|
: undefined;
|
|
177
180
|
return {
|
|
178
181
|
source: 'wanted',
|
|
@@ -196,7 +199,7 @@ const jumpit: Provider = {
|
|
|
196
199
|
const positions: z.infer<typeof jumpitSchema>['result']['positions'] = [];
|
|
197
200
|
for (let page = 1; positions.length < limit && page <= Math.ceil(limit / 16); page++) {
|
|
198
201
|
const url =
|
|
199
|
-
`https://jumpit-api.saramin.co.kr/api/positions?sort=
|
|
202
|
+
`https://jumpit-api.saramin.co.kr/api/positions?sort=relation&page=${page}&keyword=${encodeURIComponent(query)}`;
|
|
200
203
|
const got = jumpitSchema.parse(await getJson(url, timeoutMs)).result.positions;
|
|
201
204
|
positions.push(...got);
|
|
202
205
|
if (got.length < 16) break;
|
|
@@ -461,8 +464,9 @@ export async function searchJobs(query: string, opts: JobSearchOptions = {}): Pr
|
|
|
461
464
|
};
|
|
462
465
|
}
|
|
463
466
|
|
|
467
|
+
// Any "(...)" goes: "(주)" and brand notes like "힐링페이퍼(강남언니)" vs "(주)힐링페이퍼".
|
|
464
468
|
const normCompany = (s: string) =>
|
|
465
|
-
s.replace(/\(
|
|
469
|
+
s.replace(/\([^)]*\)|㈜|주식회사/g, '').toLowerCase().replace(/[^\p{L}\p{N}]/gu, '');
|
|
466
470
|
/** Drop only a "[company]" tag (Remember prefixes titles with it); "[신입]", "[서울]" and the like stay. */
|
|
467
471
|
const normTitle = (title: string, company: string) => {
|
|
468
472
|
const c = normCompany(company);
|