hiresquire-cli 1.1.0 → 1.2.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/README.md +57 -0
- package/dist/api.d.ts +250 -0
- package/dist/api.d.ts.map +1 -0
- package/dist/api.js +689 -0
- package/dist/api.js.map +1 -0
- package/dist/config.d.ts +49 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +195 -0
- package/dist/config.js.map +1 -0
- package/dist/index.d.ts +24 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +1370 -0
- package/dist/index.js.map +1 -0
- package/dist/types.d.ts +353 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +49 -0
- package/dist/types.js.map +1 -0
- package/package.json +73 -62
- package/jest.config.js +0 -30
- package/tsconfig.tsbuildinfo +0 -1
package/README.md
CHANGED
|
@@ -15,6 +15,31 @@ HireSquire CLI enables AI agents and developers to screen candidates directly fr
|
|
|
15
15
|
- 📄 **JSON Output**: Machine-readable output for automation
|
|
16
16
|
- ⚙️ **Config Management**: Easy API token setup and storage
|
|
17
17
|
- 🔗 **Webhook Support**: Conditional webhooks for automated workflows
|
|
18
|
+
- 📄 **Resume Parsing**: Supports PDF, DOCX, DOC, TXT, and Markdown files
|
|
19
|
+
|
|
20
|
+
## Supported Resume Formats
|
|
21
|
+
|
|
22
|
+
The CLI automatically detects and parses the following resume formats:
|
|
23
|
+
|
|
24
|
+
| Format | Extension | Parser |
|
|
25
|
+
|--------|-----------|--------|
|
|
26
|
+
| PDF | `.pdf` | pdf-parse |
|
|
27
|
+
| Word DOCX | `.docx` | officeparser |
|
|
28
|
+
| Word DOC | `.doc` | officeparser |
|
|
29
|
+
| Plain Text | `.txt` | Native |
|
|
30
|
+
| Markdown | `.md` | Native |
|
|
31
|
+
|
|
32
|
+
No manual conversion needed - just point to your resume files or directory!
|
|
33
|
+
|
|
34
|
+
### Installation Notes
|
|
35
|
+
|
|
36
|
+
When installing from source, the parser dependencies will be included automatically:
|
|
37
|
+
|
|
38
|
+
```bash
|
|
39
|
+
npm install -g hiresquire-cli
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
The parsers are pure JavaScript with no native dependencies, making them suitable for all environments including Docker containers.
|
|
18
43
|
|
|
19
44
|
## Installation
|
|
20
45
|
|
|
@@ -87,6 +112,7 @@ hiresquire results --job 123
|
|
|
87
112
|
| [`candidate`](#candidate) | Get candidate details |
|
|
88
113
|
| [`set-status`](#set-status) | Update candidate status |
|
|
89
114
|
| [`schema`](#schema) | Get API schema |
|
|
115
|
+
| [`credits`](#credits) | Manage prepaid credits (balance, checkout, auto-reload) |
|
|
90
116
|
|
|
91
117
|
### init
|
|
92
118
|
|
|
@@ -195,6 +221,37 @@ Options:
|
|
|
195
221
|
- `-l, --leniency <number>` - Default leniency level
|
|
196
222
|
- `--clear` - Clear all configuration
|
|
197
223
|
|
|
224
|
+
### credits
|
|
225
|
+
|
|
226
|
+
Manage prepaid credits:
|
|
227
|
+
|
|
228
|
+
```bash
|
|
229
|
+
# Check current balance
|
|
230
|
+
hiresquire credits balance
|
|
231
|
+
|
|
232
|
+
# List available credit packs
|
|
233
|
+
hiresquire credits list-packs
|
|
234
|
+
|
|
235
|
+
# Create checkout session
|
|
236
|
+
hiresquire credits checkout --pack pouch
|
|
237
|
+
|
|
238
|
+
# View transaction history
|
|
239
|
+
hiresquire credits transactions
|
|
240
|
+
|
|
241
|
+
# Enable auto-reload (when balance drops below threshold)
|
|
242
|
+
hiresquire credits auto-reload-enable --threshold 10 --amount 25 --payment-method-id pm_12345
|
|
243
|
+
|
|
244
|
+
# Disable auto-reload
|
|
245
|
+
hiresquire credits auto-reload-disable
|
|
246
|
+
```
|
|
247
|
+
|
|
248
|
+
Options:
|
|
249
|
+
- `-a, --action <action>` - Action: balance, list-packs, checkout, transactions, auto-reload-enable, auto-reload-disable
|
|
250
|
+
- `-p, --pack <pack>` - Credit pack: pouch, satchel, chest
|
|
251
|
+
- `--threshold <number>` - Auto-reload threshold in dollars
|
|
252
|
+
- `--amount <number>` - Amount to reload each time
|
|
253
|
+
- `--payment-method-id <id>` - Stripe payment method ID
|
|
254
|
+
|
|
198
255
|
## Agent Integration Examples
|
|
199
256
|
|
|
200
257
|
### OpenClaw
|
package/dist/api.d.ts
ADDED
|
@@ -0,0 +1,250 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* HireSquire CLI - API Client
|
|
3
|
+
*
|
|
4
|
+
* HTTP client for interacting with the HireSquire API
|
|
5
|
+
* Handles authentication, request/response typing, and error handling
|
|
6
|
+
*/
|
|
7
|
+
import { Config, CreateJobParams, CreateJobResponse, JobStatusResponse, ResultsResponse, JobsListResponse, EmailParams, EmailResponse, Resume, CalendarConnection, CreateCalendarConnectionParams, Interview, CreateInterviewParams, MeetingLinkResponse, AvailableSlotsResponse } from './types';
|
|
8
|
+
export declare class ApiClient {
|
|
9
|
+
private client;
|
|
10
|
+
private config;
|
|
11
|
+
constructor(config: Config);
|
|
12
|
+
private shouldRetryRequest;
|
|
13
|
+
private handleError;
|
|
14
|
+
/**
|
|
15
|
+
* Generic GET request
|
|
16
|
+
*/
|
|
17
|
+
get<T = any>(url: string, config?: any): Promise<{
|
|
18
|
+
data: T;
|
|
19
|
+
}>;
|
|
20
|
+
/**
|
|
21
|
+
* Generic POST request
|
|
22
|
+
*/
|
|
23
|
+
post<T = any>(url: string, data?: any, config?: any): Promise<{
|
|
24
|
+
data: T;
|
|
25
|
+
}>;
|
|
26
|
+
/**
|
|
27
|
+
* Generic PUT request
|
|
28
|
+
*/
|
|
29
|
+
put<T = any>(url: string, data?: any, config?: any): Promise<{
|
|
30
|
+
data: T;
|
|
31
|
+
}>;
|
|
32
|
+
/**
|
|
33
|
+
* Generic DELETE request
|
|
34
|
+
*/
|
|
35
|
+
delete<T = any>(url: string, config?: any): Promise<{
|
|
36
|
+
data: T;
|
|
37
|
+
}>;
|
|
38
|
+
/**
|
|
39
|
+
* Create a new screening job
|
|
40
|
+
*/
|
|
41
|
+
createJob(params: CreateJobParams): Promise<CreateJobResponse>;
|
|
42
|
+
/**
|
|
43
|
+
* Upload a ZIP file containing resumes to create a new screening job
|
|
44
|
+
*/
|
|
45
|
+
uploadZip(params: Omit<CreateJobParams, 'resumes'> & {
|
|
46
|
+
zipPath: string;
|
|
47
|
+
}): Promise<CreateJobResponse>;
|
|
48
|
+
/**
|
|
49
|
+
* Get job status
|
|
50
|
+
*/
|
|
51
|
+
getJobStatus(jobId: number): Promise<JobStatusResponse>;
|
|
52
|
+
/**
|
|
53
|
+
* Get job results
|
|
54
|
+
*/
|
|
55
|
+
getResults(jobId: number, options?: {
|
|
56
|
+
min_score?: number;
|
|
57
|
+
only_top_n?: number;
|
|
58
|
+
}): Promise<ResultsResponse>;
|
|
59
|
+
/**
|
|
60
|
+
* List all jobs
|
|
61
|
+
*/
|
|
62
|
+
listJobs(options?: {
|
|
63
|
+
status?: string;
|
|
64
|
+
page?: number;
|
|
65
|
+
per_page?: number;
|
|
66
|
+
}): Promise<JobsListResponse>;
|
|
67
|
+
/**
|
|
68
|
+
* Generate an email for a candidate
|
|
69
|
+
*/
|
|
70
|
+
generateEmail(params: EmailParams): Promise<EmailResponse>;
|
|
71
|
+
/**
|
|
72
|
+
* Poll for job completion
|
|
73
|
+
*/
|
|
74
|
+
pollForCompletion(jobId: number, options?: {
|
|
75
|
+
interval?: number;
|
|
76
|
+
timeout?: number;
|
|
77
|
+
onProgress?: (status: JobStatusResponse) => void;
|
|
78
|
+
}): Promise<JobStatusResponse>;
|
|
79
|
+
/**
|
|
80
|
+
* Sleep for specified milliseconds
|
|
81
|
+
*/
|
|
82
|
+
private sleep;
|
|
83
|
+
/**
|
|
84
|
+
* Test API connection
|
|
85
|
+
*/
|
|
86
|
+
testConnection(): Promise<boolean>;
|
|
87
|
+
/**
|
|
88
|
+
* Get current config
|
|
89
|
+
*/
|
|
90
|
+
getConfig(): Config;
|
|
91
|
+
/**
|
|
92
|
+
* Cancel a running job
|
|
93
|
+
*/
|
|
94
|
+
cancelJob(jobId: number): Promise<{
|
|
95
|
+
job_id: number;
|
|
96
|
+
status: string;
|
|
97
|
+
message: string;
|
|
98
|
+
}>;
|
|
99
|
+
/**
|
|
100
|
+
* Compare multiple candidates side-by-side
|
|
101
|
+
*/
|
|
102
|
+
compareCandidates(jobId: number, candidateIds: number[]): Promise<{
|
|
103
|
+
job_id: number;
|
|
104
|
+
candidates: Array<{
|
|
105
|
+
id: number;
|
|
106
|
+
name: string;
|
|
107
|
+
score: number;
|
|
108
|
+
summary: string;
|
|
109
|
+
}>;
|
|
110
|
+
comparison: {
|
|
111
|
+
top_candidate: string;
|
|
112
|
+
score_diff: number;
|
|
113
|
+
};
|
|
114
|
+
}>;
|
|
115
|
+
/**
|
|
116
|
+
* Report hiring outcome to improve AI accuracy
|
|
117
|
+
*/
|
|
118
|
+
reportOutcome(jobId: number, candidateId: number, outcome: 'hired' | 'rejected' | 'withdrawn'): Promise<{
|
|
119
|
+
success: boolean;
|
|
120
|
+
message: string;
|
|
121
|
+
}>;
|
|
122
|
+
/**
|
|
123
|
+
* Test a webhook endpoint
|
|
124
|
+
*/
|
|
125
|
+
testWebhook(webhookUrl: string): Promise<{
|
|
126
|
+
success: boolean;
|
|
127
|
+
message: string;
|
|
128
|
+
response_code?: number;
|
|
129
|
+
}>;
|
|
130
|
+
/**
|
|
131
|
+
* Get current rate limit status
|
|
132
|
+
*/
|
|
133
|
+
getRateLimit(): Promise<{
|
|
134
|
+
limit: number;
|
|
135
|
+
remaining: number;
|
|
136
|
+
reset_at: string;
|
|
137
|
+
reset_in_seconds: number;
|
|
138
|
+
}>;
|
|
139
|
+
/**
|
|
140
|
+
* Get a specific candidate
|
|
141
|
+
*/
|
|
142
|
+
getCandidate(candidateId: number): Promise<any>;
|
|
143
|
+
/**
|
|
144
|
+
* Update candidate status
|
|
145
|
+
*/
|
|
146
|
+
updateCandidateStatus(candidateId: number, status: 'pending' | 'shortlisted' | 'rejected' | 'interviewed' | 'offered' | 'hired'): Promise<{
|
|
147
|
+
success: boolean;
|
|
148
|
+
candidate: any;
|
|
149
|
+
}>;
|
|
150
|
+
/**
|
|
151
|
+
* Get API schema for discovery
|
|
152
|
+
*/
|
|
153
|
+
getSchema(): Promise<any>;
|
|
154
|
+
/**
|
|
155
|
+
* List calendar connections
|
|
156
|
+
*/
|
|
157
|
+
listCalendarConnections(): Promise<{
|
|
158
|
+
success: boolean;
|
|
159
|
+
data: CalendarConnection[];
|
|
160
|
+
}>;
|
|
161
|
+
/**
|
|
162
|
+
* Create a calendar connection
|
|
163
|
+
*/
|
|
164
|
+
createCalendarConnection(params: CreateCalendarConnectionParams): Promise<{
|
|
165
|
+
success: boolean;
|
|
166
|
+
data: CalendarConnection;
|
|
167
|
+
message: string;
|
|
168
|
+
}>;
|
|
169
|
+
/**
|
|
170
|
+
* Delete a calendar connection
|
|
171
|
+
*/
|
|
172
|
+
deleteCalendarConnection(id: number): Promise<{
|
|
173
|
+
success: boolean;
|
|
174
|
+
message: string;
|
|
175
|
+
}>;
|
|
176
|
+
/**
|
|
177
|
+
* Get available slots from calendar
|
|
178
|
+
*/
|
|
179
|
+
getAvailableSlots(params: {
|
|
180
|
+
provider: string;
|
|
181
|
+
date: string;
|
|
182
|
+
duration?: number;
|
|
183
|
+
}): Promise<AvailableSlotsResponse>;
|
|
184
|
+
/**
|
|
185
|
+
* List interviews
|
|
186
|
+
*/
|
|
187
|
+
listInterviews(jobId?: number): Promise<{
|
|
188
|
+
success: boolean;
|
|
189
|
+
data: Interview[];
|
|
190
|
+
}>;
|
|
191
|
+
/**
|
|
192
|
+
* Create an interview
|
|
193
|
+
*/
|
|
194
|
+
createInterview(params: CreateInterviewParams): Promise<{
|
|
195
|
+
success: boolean;
|
|
196
|
+
data: Interview;
|
|
197
|
+
message: string;
|
|
198
|
+
}>;
|
|
199
|
+
/**
|
|
200
|
+
* Show a specific interview
|
|
201
|
+
*/
|
|
202
|
+
showInterview(id: number): Promise<{
|
|
203
|
+
success: boolean;
|
|
204
|
+
data: Interview;
|
|
205
|
+
}>;
|
|
206
|
+
/**
|
|
207
|
+
* Update an interview
|
|
208
|
+
*/
|
|
209
|
+
updateInterview(id: number, params: Partial<CreateInterviewParams>): Promise<{
|
|
210
|
+
success: boolean;
|
|
211
|
+
data: Interview;
|
|
212
|
+
message: string;
|
|
213
|
+
}>;
|
|
214
|
+
/**
|
|
215
|
+
* Delete/cancel an interview
|
|
216
|
+
*/
|
|
217
|
+
deleteInterview(id: number): Promise<{
|
|
218
|
+
success: boolean;
|
|
219
|
+
message: string;
|
|
220
|
+
}>;
|
|
221
|
+
/**
|
|
222
|
+
* Generate a meeting link
|
|
223
|
+
*/
|
|
224
|
+
generateMeetingLink(params: {
|
|
225
|
+
provider: string;
|
|
226
|
+
topic: string;
|
|
227
|
+
duration?: number;
|
|
228
|
+
}): Promise<MeetingLinkResponse>;
|
|
229
|
+
}
|
|
230
|
+
/**
|
|
231
|
+
* Create API client from config
|
|
232
|
+
*/
|
|
233
|
+
export declare function createApiClient(config: Config): ApiClient;
|
|
234
|
+
/**
|
|
235
|
+
* Create API client from token
|
|
236
|
+
*/
|
|
237
|
+
export declare function createApiClientFromToken(token: string, baseUrl?: string): ApiClient;
|
|
238
|
+
/**
|
|
239
|
+
* Read resume from file path (async - supports PDF, DOCX, DOC, TXT, MD)
|
|
240
|
+
*/
|
|
241
|
+
export declare function readResumeFromFile(filePath: string): Promise<Resume>;
|
|
242
|
+
/**
|
|
243
|
+
* Read resumes from directory (async)
|
|
244
|
+
*/
|
|
245
|
+
export declare function readResumesFromDirectory(dirPath: string, currentCount?: number): Promise<Resume[]>;
|
|
246
|
+
/**
|
|
247
|
+
* Read multiple resume files (async)
|
|
248
|
+
*/
|
|
249
|
+
export declare function readResumesFromPaths(paths: string[]): Promise<Resume[]>;
|
|
250
|
+
//# sourceMappingURL=api.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"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"}
|