@linkedapi/mcp 2.0.1 → 2.1.1
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/linked-api-tools.d.ts.map +1 -1
- package/dist/linked-api-tools.js +24 -0
- package/dist/linked-api-tools.js.map +1 -1
- package/dist/tools/admin-cancel-connection-session.d.ts +16 -0
- package/dist/tools/admin-cancel-connection-session.d.ts.map +1 -0
- package/dist/tools/admin-cancel-connection-session.js +35 -0
- package/dist/tools/admin-cancel-connection-session.js.map +1 -0
- package/dist/tools/admin-cancel-subscription.d.ts +14 -0
- package/dist/tools/admin-cancel-subscription.d.ts.map +1 -0
- package/dist/tools/admin-cancel-subscription.js +27 -0
- package/dist/tools/admin-cancel-subscription.js.map +1 -0
- package/dist/tools/admin-create-reconnection-session.d.ts +16 -0
- package/dist/tools/admin-create-reconnection-session.d.ts.map +1 -0
- package/dist/tools/admin-create-reconnection-session.js +35 -0
- package/dist/tools/admin-create-reconnection-session.js.map +1 -0
- package/dist/tools/admin-delete-limits.d.ts +24 -0
- package/dist/tools/admin-delete-limits.d.ts.map +1 -0
- package/dist/tools/admin-delete-limits.js +58 -0
- package/dist/tools/admin-delete-limits.js.map +1 -0
- package/dist/tools/admin-get-billing-link.d.ts +14 -0
- package/dist/tools/admin-get-billing-link.d.ts.map +1 -0
- package/dist/tools/admin-get-billing-link.js +27 -0
- package/dist/tools/admin-get-billing-link.js.map +1 -0
- package/dist/tools/admin-get-connection-session.d.ts +16 -0
- package/dist/tools/admin-get-connection-session.d.ts.map +1 -0
- package/dist/tools/admin-get-connection-session.js +35 -0
- package/dist/tools/admin-get-connection-session.js.map +1 -0
- package/dist/tools/admin-get-limits-defaults.d.ts +18 -0
- package/dist/tools/admin-get-limits-defaults.d.ts.map +1 -0
- package/dist/tools/admin-get-limits-defaults.js +27 -0
- package/dist/tools/admin-get-limits-defaults.js.map +1 -0
- package/dist/tools/admin-get-limits.d.ts +20 -0
- package/dist/tools/admin-get-limits.d.ts.map +1 -0
- package/dist/tools/admin-get-limits.js +35 -0
- package/dist/tools/admin-get-limits.js.map +1 -0
- package/dist/tools/admin-get-subscription-pricing.d.ts +18 -0
- package/dist/tools/admin-get-subscription-pricing.d.ts.map +1 -0
- package/dist/tools/admin-get-subscription-pricing.js +27 -0
- package/dist/tools/admin-get-subscription-pricing.js.map +1 -0
- package/dist/tools/admin-reparse-account-info.d.ts +16 -0
- package/dist/tools/admin-reparse-account-info.d.ts.map +1 -0
- package/dist/tools/admin-reparse-account-info.js +35 -0
- package/dist/tools/admin-reparse-account-info.js.map +1 -0
- package/dist/tools/fetch-job.d.ts +13 -0
- package/dist/tools/fetch-job.d.ts.map +1 -0
- package/dist/tools/fetch-job.js +31 -0
- package/dist/tools/fetch-job.js.map +1 -0
- package/dist/tools/get-workflow-result.d.ts +2 -0
- package/dist/tools/get-workflow-result.d.ts.map +1 -1
- package/dist/tools/search-jobs.d.ts +54 -0
- package/dist/tools/search-jobs.d.ts.map +1 -0
- package/dist/tools/search-jobs.js +165 -0
- package/dist/tools/search-jobs.js.map +1 -0
- package/package.json +3 -3
- package/src/linked-api-tools.ts +24 -0
- package/src/tools/admin-cancel-connection-session.ts +42 -0
- package/src/tools/admin-cancel-subscription.ts +30 -0
- package/src/tools/admin-create-reconnection-session.ts +47 -0
- package/src/tools/admin-delete-limits.ts +65 -0
- package/src/tools/admin-get-billing-link.ts +30 -0
- package/src/tools/admin-get-connection-session.ts +46 -0
- package/src/tools/admin-get-limits-defaults.ts +33 -0
- package/src/tools/admin-get-limits.ts +39 -0
- package/src/tools/admin-get-subscription-pricing.ts +33 -0
- package/src/tools/admin-reparse-account-info.ts +47 -0
- package/src/tools/fetch-job.ts +32 -0
- package/src/tools/search-jobs.ts +172 -0
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import { LinkedApiAdmin, TDeleteLimitsParams } from '@linkedapi/node';
|
|
2
|
+
import { Tool } from '@modelcontextprotocol/sdk/types.js';
|
|
3
|
+
import z from 'zod';
|
|
4
|
+
|
|
5
|
+
import { AdminTool } from '../utils/admin-tool.js';
|
|
6
|
+
|
|
7
|
+
export class AdminDeleteLimitsTool extends AdminTool<TDeleteLimitsParams, void> {
|
|
8
|
+
public readonly name = 'admin_delete_limits';
|
|
9
|
+
protected readonly schema = z.object({
|
|
10
|
+
accountId: z.string(),
|
|
11
|
+
limits: z.array(
|
|
12
|
+
z.object({
|
|
13
|
+
category: z.string(),
|
|
14
|
+
period: z.enum(['daily', 'weekly', 'monthly']),
|
|
15
|
+
}),
|
|
16
|
+
),
|
|
17
|
+
});
|
|
18
|
+
|
|
19
|
+
public override async execute({
|
|
20
|
+
admin,
|
|
21
|
+
args,
|
|
22
|
+
}: {
|
|
23
|
+
admin: LinkedApiAdmin;
|
|
24
|
+
args: TDeleteLimitsParams;
|
|
25
|
+
}): Promise<void> {
|
|
26
|
+
await admin.limits.delete(args);
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
public override getTool(): Tool {
|
|
30
|
+
return {
|
|
31
|
+
name: this.name,
|
|
32
|
+
description:
|
|
33
|
+
'Delete specific rate limits for an account. Deleted limits fall back to system defaults.',
|
|
34
|
+
inputSchema: {
|
|
35
|
+
type: 'object',
|
|
36
|
+
properties: {
|
|
37
|
+
accountId: {
|
|
38
|
+
type: 'string',
|
|
39
|
+
description: 'Account UUID',
|
|
40
|
+
},
|
|
41
|
+
limits: {
|
|
42
|
+
type: 'array',
|
|
43
|
+
description: 'Array of limit keys to delete',
|
|
44
|
+
items: {
|
|
45
|
+
type: 'object',
|
|
46
|
+
properties: {
|
|
47
|
+
category: {
|
|
48
|
+
type: 'string',
|
|
49
|
+
description: 'Limit category',
|
|
50
|
+
},
|
|
51
|
+
period: {
|
|
52
|
+
type: 'string',
|
|
53
|
+
enum: ['daily', 'weekly', 'monthly'],
|
|
54
|
+
description: 'Limit period',
|
|
55
|
+
},
|
|
56
|
+
},
|
|
57
|
+
required: ['category', 'period'],
|
|
58
|
+
},
|
|
59
|
+
},
|
|
60
|
+
},
|
|
61
|
+
required: ['accountId', 'limits'],
|
|
62
|
+
},
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { LinkedApiAdmin, TBillingLinkResult } from '@linkedapi/node';
|
|
2
|
+
import { Tool } from '@modelcontextprotocol/sdk/types.js';
|
|
3
|
+
import z from 'zod';
|
|
4
|
+
|
|
5
|
+
import { AdminTool } from '../utils/admin-tool.js';
|
|
6
|
+
|
|
7
|
+
export class AdminGetBillingLinkTool extends AdminTool<Record<string, never>, TBillingLinkResult> {
|
|
8
|
+
public readonly name = 'admin_get_billing_link';
|
|
9
|
+
protected readonly schema = z.object({});
|
|
10
|
+
|
|
11
|
+
public override async execute({
|
|
12
|
+
admin,
|
|
13
|
+
}: {
|
|
14
|
+
admin: LinkedApiAdmin;
|
|
15
|
+
args: Record<string, never>;
|
|
16
|
+
}): Promise<TBillingLinkResult> {
|
|
17
|
+
return await admin.subscription.getBillingLink();
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
public override getTool(): Tool {
|
|
21
|
+
return {
|
|
22
|
+
name: this.name,
|
|
23
|
+
description: 'Get a Stripe billing portal link for the current workspace.',
|
|
24
|
+
inputSchema: {
|
|
25
|
+
type: 'object',
|
|
26
|
+
properties: {},
|
|
27
|
+
},
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import {
|
|
2
|
+
LinkedApiAdmin,
|
|
3
|
+
TConnectionSessionResult,
|
|
4
|
+
TGetConnectionSessionParams,
|
|
5
|
+
} from '@linkedapi/node';
|
|
6
|
+
import { Tool } from '@modelcontextprotocol/sdk/types.js';
|
|
7
|
+
import z from 'zod';
|
|
8
|
+
|
|
9
|
+
import { AdminTool } from '../utils/admin-tool.js';
|
|
10
|
+
|
|
11
|
+
export class AdminGetConnectionSessionTool extends AdminTool<
|
|
12
|
+
TGetConnectionSessionParams,
|
|
13
|
+
TConnectionSessionResult
|
|
14
|
+
> {
|
|
15
|
+
public readonly name = 'admin_get_connection_session';
|
|
16
|
+
protected readonly schema = z.object({
|
|
17
|
+
sessionId: z.string(),
|
|
18
|
+
});
|
|
19
|
+
|
|
20
|
+
public override async execute({
|
|
21
|
+
admin,
|
|
22
|
+
args,
|
|
23
|
+
}: {
|
|
24
|
+
admin: LinkedApiAdmin;
|
|
25
|
+
args: TGetConnectionSessionParams;
|
|
26
|
+
}): Promise<TConnectionSessionResult> {
|
|
27
|
+
return await admin.accounts.getConnectionSession(args);
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
public override getTool(): Tool {
|
|
31
|
+
return {
|
|
32
|
+
name: this.name,
|
|
33
|
+
description: 'Get connection or reconnection session status by session ID.',
|
|
34
|
+
inputSchema: {
|
|
35
|
+
type: 'object',
|
|
36
|
+
properties: {
|
|
37
|
+
sessionId: {
|
|
38
|
+
type: 'string',
|
|
39
|
+
description: 'Connection session UUID',
|
|
40
|
+
},
|
|
41
|
+
},
|
|
42
|
+
required: ['sessionId'],
|
|
43
|
+
},
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { LinkedApiAdmin, TLimit } from '@linkedapi/node';
|
|
2
|
+
import { Tool } from '@modelcontextprotocol/sdk/types.js';
|
|
3
|
+
import z from 'zod';
|
|
4
|
+
|
|
5
|
+
import { AdminTool } from '../utils/admin-tool.js';
|
|
6
|
+
|
|
7
|
+
export class AdminGetLimitsDefaultsTool extends AdminTool<
|
|
8
|
+
Record<string, never>,
|
|
9
|
+
{ limits: Array<TLimit> }
|
|
10
|
+
> {
|
|
11
|
+
public readonly name = 'admin_get_limits_defaults';
|
|
12
|
+
protected readonly schema = z.object({});
|
|
13
|
+
|
|
14
|
+
public override async execute({
|
|
15
|
+
admin,
|
|
16
|
+
}: {
|
|
17
|
+
admin: LinkedApiAdmin;
|
|
18
|
+
args: Record<string, never>;
|
|
19
|
+
}): Promise<{ limits: Array<TLimit> }> {
|
|
20
|
+
return await admin.limits.getDefaults();
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
public override getTool(): Tool {
|
|
24
|
+
return {
|
|
25
|
+
name: this.name,
|
|
26
|
+
description: 'Get system default rate limits.',
|
|
27
|
+
inputSchema: {
|
|
28
|
+
type: 'object',
|
|
29
|
+
properties: {},
|
|
30
|
+
},
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { LinkedApiAdmin, TGetLimitsParams, TLimit } from '@linkedapi/node';
|
|
2
|
+
import { Tool } from '@modelcontextprotocol/sdk/types.js';
|
|
3
|
+
import z from 'zod';
|
|
4
|
+
|
|
5
|
+
import { AdminTool } from '../utils/admin-tool.js';
|
|
6
|
+
|
|
7
|
+
export class AdminGetLimitsTool extends AdminTool<TGetLimitsParams, { limits: Array<TLimit> }> {
|
|
8
|
+
public readonly name = 'admin_get_limits';
|
|
9
|
+
protected readonly schema = z.object({
|
|
10
|
+
accountId: z.string(),
|
|
11
|
+
});
|
|
12
|
+
|
|
13
|
+
public override async execute({
|
|
14
|
+
admin,
|
|
15
|
+
args,
|
|
16
|
+
}: {
|
|
17
|
+
admin: LinkedApiAdmin;
|
|
18
|
+
args: TGetLimitsParams;
|
|
19
|
+
}): Promise<{ limits: Array<TLimit> }> {
|
|
20
|
+
return await admin.limits.get(args);
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
public override getTool(): Tool {
|
|
24
|
+
return {
|
|
25
|
+
name: this.name,
|
|
26
|
+
description: 'Get configured rate limits for an account.',
|
|
27
|
+
inputSchema: {
|
|
28
|
+
type: 'object',
|
|
29
|
+
properties: {
|
|
30
|
+
accountId: {
|
|
31
|
+
type: 'string',
|
|
32
|
+
description: 'Account UUID',
|
|
33
|
+
},
|
|
34
|
+
},
|
|
35
|
+
required: ['accountId'],
|
|
36
|
+
},
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { LinkedApiAdmin, TSubscriptionProduct } from '@linkedapi/node';
|
|
2
|
+
import { Tool } from '@modelcontextprotocol/sdk/types.js';
|
|
3
|
+
import z from 'zod';
|
|
4
|
+
|
|
5
|
+
import { AdminTool } from '../utils/admin-tool.js';
|
|
6
|
+
|
|
7
|
+
export class AdminGetSubscriptionPricingTool extends AdminTool<
|
|
8
|
+
Record<string, never>,
|
|
9
|
+
{ products: Array<TSubscriptionProduct> }
|
|
10
|
+
> {
|
|
11
|
+
public readonly name = 'admin_get_subscription_pricing';
|
|
12
|
+
protected readonly schema = z.object({});
|
|
13
|
+
|
|
14
|
+
public override async execute({
|
|
15
|
+
admin,
|
|
16
|
+
}: {
|
|
17
|
+
admin: LinkedApiAdmin;
|
|
18
|
+
args: Record<string, never>;
|
|
19
|
+
}): Promise<{ products: Array<TSubscriptionProduct> }> {
|
|
20
|
+
return await admin.subscription.getPricing();
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
public override getTool(): Tool {
|
|
24
|
+
return {
|
|
25
|
+
name: this.name,
|
|
26
|
+
description: 'Get available subscription products and prices.',
|
|
27
|
+
inputSchema: {
|
|
28
|
+
type: 'object',
|
|
29
|
+
properties: {},
|
|
30
|
+
},
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import {
|
|
2
|
+
LinkedApiAdmin,
|
|
3
|
+
TReparseAccountInfoParams,
|
|
4
|
+
TReparseAccountInfoResult,
|
|
5
|
+
} from '@linkedapi/node';
|
|
6
|
+
import { Tool } from '@modelcontextprotocol/sdk/types.js';
|
|
7
|
+
import z from 'zod';
|
|
8
|
+
|
|
9
|
+
import { AdminTool } from '../utils/admin-tool.js';
|
|
10
|
+
|
|
11
|
+
export class AdminReparseAccountInfoTool extends AdminTool<
|
|
12
|
+
TReparseAccountInfoParams,
|
|
13
|
+
TReparseAccountInfoResult
|
|
14
|
+
> {
|
|
15
|
+
public readonly name = 'admin_reparse_account_info';
|
|
16
|
+
protected readonly schema = z.object({
|
|
17
|
+
accountId: z.string(),
|
|
18
|
+
});
|
|
19
|
+
|
|
20
|
+
public override async execute({
|
|
21
|
+
admin,
|
|
22
|
+
args,
|
|
23
|
+
}: {
|
|
24
|
+
admin: LinkedApiAdmin;
|
|
25
|
+
args: TReparseAccountInfoParams;
|
|
26
|
+
}): Promise<TReparseAccountInfoResult> {
|
|
27
|
+
return await admin.accounts.reparseAccountInfo(args);
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
public override getTool(): Tool {
|
|
31
|
+
return {
|
|
32
|
+
name: this.name,
|
|
33
|
+
description:
|
|
34
|
+
'Refresh stored profile information for a connected account. Starts a background reparse workflow and returns workflowId.',
|
|
35
|
+
inputSchema: {
|
|
36
|
+
type: 'object',
|
|
37
|
+
properties: {
|
|
38
|
+
accountId: {
|
|
39
|
+
type: 'string',
|
|
40
|
+
description: 'UUID of the account to refresh',
|
|
41
|
+
},
|
|
42
|
+
},
|
|
43
|
+
required: ['accountId'],
|
|
44
|
+
},
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { OPERATION_NAME, TBaseFetchJobParams } from '@linkedapi/node';
|
|
2
|
+
import { Tool } from '@modelcontextprotocol/sdk/types.js';
|
|
3
|
+
import { z } from 'zod';
|
|
4
|
+
|
|
5
|
+
import { OperationTool } from '../utils/linked-api-tool.js';
|
|
6
|
+
|
|
7
|
+
export class FetchJobTool extends OperationTool<TBaseFetchJobParams, unknown> {
|
|
8
|
+
public override readonly name = 'fetch_job';
|
|
9
|
+
public override readonly operationName = OPERATION_NAME.fetchJob;
|
|
10
|
+
protected override readonly schema = z.object({
|
|
11
|
+
jobUrl: z.string(),
|
|
12
|
+
});
|
|
13
|
+
|
|
14
|
+
public override getTool(): Tool {
|
|
15
|
+
return {
|
|
16
|
+
name: this.name,
|
|
17
|
+
description:
|
|
18
|
+
'Open a LinkedIn job and retrieve its details such as company, location, salary, and description (st.openJob action).',
|
|
19
|
+
inputSchema: {
|
|
20
|
+
type: 'object',
|
|
21
|
+
properties: {
|
|
22
|
+
jobUrl: {
|
|
23
|
+
type: 'string',
|
|
24
|
+
description:
|
|
25
|
+
"LinkedIn URL of the job. (e.g., 'https://www.linkedin.com/jobs/view/4416248954/')",
|
|
26
|
+
},
|
|
27
|
+
},
|
|
28
|
+
required: ['jobUrl'],
|
|
29
|
+
},
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
}
|
|
@@ -0,0 +1,172 @@
|
|
|
1
|
+
import { OPERATION_NAME, TSearchJobsParams } from '@linkedapi/node';
|
|
2
|
+
import { Tool } from '@modelcontextprotocol/sdk/types.js';
|
|
3
|
+
import { z } from 'zod';
|
|
4
|
+
|
|
5
|
+
import { OperationTool } from '../utils/linked-api-tool.js';
|
|
6
|
+
|
|
7
|
+
export class SearchJobsTool extends OperationTool<TSearchJobsParams, unknown> {
|
|
8
|
+
public override readonly name = 'search_jobs';
|
|
9
|
+
public override readonly operationName = OPERATION_NAME.searchJobs;
|
|
10
|
+
protected override readonly schema = z.object({
|
|
11
|
+
term: z.string().optional(),
|
|
12
|
+
limit: z.number().min(1).max(1000).optional(),
|
|
13
|
+
filter: z
|
|
14
|
+
.object({
|
|
15
|
+
location: z.string().optional(),
|
|
16
|
+
datePosted: z.enum(['anyTime', 'past24Hours', 'pastWeek', 'pastMonth']).optional(),
|
|
17
|
+
experienceLevels: z
|
|
18
|
+
.array(
|
|
19
|
+
z.enum([
|
|
20
|
+
'internship',
|
|
21
|
+
'entryLevel',
|
|
22
|
+
'associate',
|
|
23
|
+
'midSeniorLevel',
|
|
24
|
+
'director',
|
|
25
|
+
'executive',
|
|
26
|
+
]),
|
|
27
|
+
)
|
|
28
|
+
.optional(),
|
|
29
|
+
employmentTypes: z
|
|
30
|
+
.array(
|
|
31
|
+
z.enum([
|
|
32
|
+
'fullTime',
|
|
33
|
+
'partTime',
|
|
34
|
+
'contract',
|
|
35
|
+
'temporary',
|
|
36
|
+
'volunteer',
|
|
37
|
+
'internship',
|
|
38
|
+
'other',
|
|
39
|
+
]),
|
|
40
|
+
)
|
|
41
|
+
.optional(),
|
|
42
|
+
workplaceTypes: z.array(z.enum(['onSite', 'remote', 'hybrid'])).optional(),
|
|
43
|
+
companies: z.array(z.string()).optional(),
|
|
44
|
+
industries: z.array(z.string()).optional(),
|
|
45
|
+
jobFunctions: z.array(z.string()).optional(),
|
|
46
|
+
easyApply: z.boolean().optional(),
|
|
47
|
+
hasVerifications: z.boolean().optional(),
|
|
48
|
+
under10Applicants: z.boolean().optional(),
|
|
49
|
+
inYourNetwork: z.boolean().optional(),
|
|
50
|
+
fairChanceEmployer: z.boolean().optional(),
|
|
51
|
+
})
|
|
52
|
+
.optional(),
|
|
53
|
+
customSearchUrl: z.string().optional(),
|
|
54
|
+
});
|
|
55
|
+
|
|
56
|
+
public override getTool(): Tool {
|
|
57
|
+
return {
|
|
58
|
+
name: this.name,
|
|
59
|
+
description:
|
|
60
|
+
'Allows you to search jobs applying various filtering criteria (st.searchJobs action).',
|
|
61
|
+
inputSchema: {
|
|
62
|
+
type: 'object',
|
|
63
|
+
properties: {
|
|
64
|
+
term: {
|
|
65
|
+
type: 'string',
|
|
66
|
+
description: 'Optional. Keyword or phrase to search.',
|
|
67
|
+
},
|
|
68
|
+
limit: {
|
|
69
|
+
type: 'number',
|
|
70
|
+
description:
|
|
71
|
+
'Optional. Number of search results to return. Defaults to 10, with a maximum value of 1000.',
|
|
72
|
+
},
|
|
73
|
+
filter: {
|
|
74
|
+
type: 'object',
|
|
75
|
+
description:
|
|
76
|
+
'Optional. Object that specifies filtering criteria for jobs. When multiple filter fields are specified, they are combined using AND logic.',
|
|
77
|
+
properties: {
|
|
78
|
+
location: {
|
|
79
|
+
type: 'string',
|
|
80
|
+
description: 'Optional. Free-form location string.',
|
|
81
|
+
},
|
|
82
|
+
datePosted: {
|
|
83
|
+
type: 'string',
|
|
84
|
+
enum: ['anyTime', 'past24Hours', 'pastWeek', 'pastMonth'],
|
|
85
|
+
description: 'Optional. How recently the job was posted.',
|
|
86
|
+
},
|
|
87
|
+
experienceLevels: {
|
|
88
|
+
type: 'array',
|
|
89
|
+
description: 'Optional. Array of experience levels.',
|
|
90
|
+
items: {
|
|
91
|
+
type: 'string',
|
|
92
|
+
enum: [
|
|
93
|
+
'internship',
|
|
94
|
+
'entryLevel',
|
|
95
|
+
'associate',
|
|
96
|
+
'midSeniorLevel',
|
|
97
|
+
'director',
|
|
98
|
+
'executive',
|
|
99
|
+
],
|
|
100
|
+
},
|
|
101
|
+
},
|
|
102
|
+
employmentTypes: {
|
|
103
|
+
type: 'array',
|
|
104
|
+
description: 'Optional. Array of employment types.',
|
|
105
|
+
items: {
|
|
106
|
+
type: 'string',
|
|
107
|
+
enum: [
|
|
108
|
+
'fullTime',
|
|
109
|
+
'partTime',
|
|
110
|
+
'contract',
|
|
111
|
+
'temporary',
|
|
112
|
+
'volunteer',
|
|
113
|
+
'internship',
|
|
114
|
+
'other',
|
|
115
|
+
],
|
|
116
|
+
},
|
|
117
|
+
},
|
|
118
|
+
workplaceTypes: {
|
|
119
|
+
type: 'array',
|
|
120
|
+
description: 'Optional. Array of workplace types.',
|
|
121
|
+
items: {
|
|
122
|
+
type: 'string',
|
|
123
|
+
enum: ['onSite', 'remote', 'hybrid'],
|
|
124
|
+
},
|
|
125
|
+
},
|
|
126
|
+
companies: {
|
|
127
|
+
type: 'array',
|
|
128
|
+
description: 'Optional. Array of company names.',
|
|
129
|
+
items: { type: 'string' },
|
|
130
|
+
},
|
|
131
|
+
industries: {
|
|
132
|
+
type: 'array',
|
|
133
|
+
description: 'Optional. Array of industry names.',
|
|
134
|
+
items: { type: 'string' },
|
|
135
|
+
},
|
|
136
|
+
jobFunctions: {
|
|
137
|
+
type: 'array',
|
|
138
|
+
description: 'Optional. Array of job function names.',
|
|
139
|
+
items: { type: 'string' },
|
|
140
|
+
},
|
|
141
|
+
easyApply: {
|
|
142
|
+
type: 'boolean',
|
|
143
|
+
description: 'Optional. When true, only jobs with Easy Apply.',
|
|
144
|
+
},
|
|
145
|
+
hasVerifications: {
|
|
146
|
+
type: 'boolean',
|
|
147
|
+
description: 'Optional. When true, only jobs with verification signals.',
|
|
148
|
+
},
|
|
149
|
+
under10Applicants: {
|
|
150
|
+
type: 'boolean',
|
|
151
|
+
description: 'Optional. When true, only jobs with fewer than 10 applicants.',
|
|
152
|
+
},
|
|
153
|
+
inYourNetwork: {
|
|
154
|
+
type: 'boolean',
|
|
155
|
+
description: 'Optional. When true, only jobs from your network.',
|
|
156
|
+
},
|
|
157
|
+
fairChanceEmployer: {
|
|
158
|
+
type: 'boolean',
|
|
159
|
+
description: 'Optional. When true, only fair chance employer jobs.',
|
|
160
|
+
},
|
|
161
|
+
},
|
|
162
|
+
},
|
|
163
|
+
customSearchUrl: {
|
|
164
|
+
type: 'string',
|
|
165
|
+
description:
|
|
166
|
+
'Optional. URL copied from a LinkedIn jobs search page. When specified, overrides term and filter.',
|
|
167
|
+
},
|
|
168
|
+
},
|
|
169
|
+
},
|
|
170
|
+
};
|
|
171
|
+
}
|
|
172
|
+
}
|