hirify-cli 0.5.1 → 0.5.2
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 +4 -0
- package/bin/lib/cli.js +4 -2
- package/bin/lib/commands.js +31 -0
- package/npm-shrinkwrap.json +2 -2
- package/package.json +1 -1
- package/skills/hirify/SKILL.md +1 -0
package/README.md
CHANGED
|
@@ -68,6 +68,8 @@ hirify filter guide
|
|
|
68
68
|
hirify vacancy search "senior go"
|
|
69
69
|
hirify vacancy read <slug>
|
|
70
70
|
hirify vacancy reveal <slug>
|
|
71
|
+
hirify vacancy hide <slug>...
|
|
72
|
+
hirify company hide "<name>"
|
|
71
73
|
hirify profile list
|
|
72
74
|
hirify vacancy apply <slug> --profile <id> --cover-file cover.txt
|
|
73
75
|
```
|
|
@@ -76,6 +78,8 @@ Lists and searches are free. Reading a vacancy in full, revealing its contact, a
|
|
|
76
78
|
have a separate allowance. `hirify account show` supplies the current values. Shortlist from cards,
|
|
77
79
|
read to assess fit, then reveal what fits. Applying sends a real application and cannot be recalled:
|
|
78
80
|
get the person's approval first. External vacancies are applied to through the destination from `reveal`.
|
|
81
|
+
Hiding a vacancy or a company is free and has no limit: it stops coming back in search and feeds,
|
|
82
|
+
here and on the website. `--undo` brings it back.
|
|
79
83
|
|
|
80
84
|
The server defines search filters. Read `hirify filter guide`, preview with `filters.preview`, refine,
|
|
81
85
|
and then run the final search. Do not infer filter names from an old example.
|
package/bin/lib/cli.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { CliError, redact, safeText } from './errors.js'
|
|
2
|
-
const ARGUMENTS = { auth: '[<key>]', update: '[<version>]', 'vacancy search': '[<query>]', 'vacancy read': '<slug>', 'vacancy reveal': '<slug>', 'vacancy apply': '<slug>', 'feed show': '<id>', 'feed create': '<name>', 'feed deliver': '<id>', 'webhook create': '<name> <url>', 'feedback send': '<bug|feature> <title>', 'api call': '<capability>', 'capabilities show': '<capability>' }
|
|
2
|
+
const ARGUMENTS = { auth: '[<key>]', update: '[<version>]', 'vacancy search': '[<query>]', 'vacancy read': '<slug>', 'vacancy reveal': '<slug>', 'vacancy apply': '<slug>', 'vacancy hide': '<slug>...', 'company hide': '[<name>...]', 'feed show': '<id>', 'feed create': '<name>', 'feed deliver': '<id>', 'webhook create': '<name> <url>', 'feedback send': '<bug|feature> <title>', 'api call': '<capability>', 'capabilities show': '<capability>' }
|
|
3
3
|
const GLOBAL = ['json', 'fields', 'error-format', 'debug', 'timeout', 'help']
|
|
4
|
-
export const BOOLEAN_FLAGS = new Set(['json', 'debug', 'help', 'force', 'no-browser', 'stdin', 'telegram', 'no-telegram', 'no-webhook', 'check', 'rollback'])
|
|
4
|
+
export const BOOLEAN_FLAGS = new Set(['json', 'debug', 'help', 'force', 'no-browser', 'stdin', 'telegram', 'no-telegram', 'no-webhook', 'check', 'rollback', 'undo'])
|
|
5
5
|
export const COMMANDS = {
|
|
6
6
|
intro: { args: [0, 0], description: 'what this can do, and in what order' },
|
|
7
7
|
version: { args: [0, 0], description: 'installed version' },
|
|
@@ -17,6 +17,8 @@ export const COMMANDS = {
|
|
|
17
17
|
'vacancy read': { args: [1, 1], description: 'read one vacancy in full; uses a vacancy open' },
|
|
18
18
|
'vacancy reveal': { args: [1, 1], description: 'get the contact or link to apply; uses a reveal' },
|
|
19
19
|
'vacancy apply': { args: [1, 1], flags: ['profile', 'cover', 'cover-file'], description: 'send a real application; ask the person first' },
|
|
20
|
+
'vacancy hide': { args: [1, 100], flags: ['undo'], description: 'hide vacancies from your search and feeds; free, no limit' },
|
|
21
|
+
'company hide': { args: [0, 100], flags: ['vacancy', 'undo'], description: 'hide a company by name, or by --vacancy <slug>; free, no limit' },
|
|
20
22
|
'feed list': { args: [0, 0], description: 'your saved feeds' },
|
|
21
23
|
'feed show': { args: [1, 1], flags: ['limit', 'page'], description: 'vacancies in a feed' },
|
|
22
24
|
'feed create': { args: [1, 1], flags: ['filters', 'telegram', 'no-telegram', 'webhook'], description: 'save a search and its delivery settings' },
|
package/bin/lib/commands.js
CHANGED
|
@@ -290,6 +290,36 @@ async function cmdVacancyReveal(args, words) {
|
|
|
290
290
|
})
|
|
291
291
|
}
|
|
292
292
|
|
|
293
|
+
/**
|
|
294
|
+
* Hide vacancies or whole companies so they stop coming back in search and feeds. The same
|
|
295
|
+
* list the website's "Hide" button writes, so it works in both directions. Free and not
|
|
296
|
+
* limited; --undo brings them back. Up to 100 per call: the server takes them in one request.
|
|
297
|
+
*/
|
|
298
|
+
function printHidden(d, one, many, undo) {
|
|
299
|
+
const n = count(d.updated) ?? 0
|
|
300
|
+
const noun = n === 1 ? one : many
|
|
301
|
+
console.log(undo
|
|
302
|
+
? `${n} ${noun} unhidden.`
|
|
303
|
+
: `${n} ${noun} hidden. ${n === 1 ? 'It no longer appears' : 'They no longer appear'} in your search and feeds.`)
|
|
304
|
+
if (Array.isArray(d.not_found) && d.not_found.length) console.log(`not found: ${d.not_found.join(', ')}`)
|
|
305
|
+
}
|
|
306
|
+
|
|
307
|
+
async function cmdVacancyHide(args, words) {
|
|
308
|
+
if (!words.length) die('at least one vacancy slug is required: hirify vacancy hide <slug>...')
|
|
309
|
+
const undo = args.includes('--undo')
|
|
310
|
+
const body = await callCapability('vacancies.hide', { payload: { slugs: words, hidden: !undo } })
|
|
311
|
+
out(body, () => printHidden(body?.data ?? {}, 'vacancy', 'vacancies', undo))
|
|
312
|
+
}
|
|
313
|
+
|
|
314
|
+
async function cmdCompanyHide(args, words) {
|
|
315
|
+
const vacancy = flag(args, '--vacancy')
|
|
316
|
+
if (!words.length && !vacancy) die('name the company, or pass one of its vacancies: hirify company hide "<name>" | --vacancy <slug>')
|
|
317
|
+
const undo = args.includes('--undo')
|
|
318
|
+
const payload = { hidden: !undo, ...(words.length ? { names: words } : {}), ...(vacancy ? { slugs: [vacancy] } : {}) }
|
|
319
|
+
const body = await callCapability('companies.hide', { payload })
|
|
320
|
+
out(body, () => printHidden(body?.data ?? {}, 'company', 'companies', undo))
|
|
321
|
+
}
|
|
322
|
+
|
|
293
323
|
/**
|
|
294
324
|
* Report a bug or ask for a feature. Free: it does not touch the reveal limit.
|
|
295
325
|
*
|
|
@@ -818,6 +848,7 @@ return {
|
|
|
818
848
|
intro: cmdIntro, skill: cmdSkill,
|
|
819
849
|
'account show': cmdAccountShow,
|
|
820
850
|
'vacancy search': cmdVacancySearch, 'vacancy read': cmdVacancyRead, 'vacancy reveal': cmdVacancyReveal, 'vacancy apply': cmdVacancyApply,
|
|
851
|
+
'vacancy hide': cmdVacancyHide, 'company hide': cmdCompanyHide,
|
|
821
852
|
'feed list': cmdFeedList, 'feed show': cmdFeedShow, 'feed create': cmdFeedCreate, 'feed deliver': cmdFeedDeliver,
|
|
822
853
|
'profile list': cmdProfileList, 'webhook list': cmdWebhookList, 'webhook create': cmdWebhookCreate,
|
|
823
854
|
'feedback send': cmdFeedbackSend, 'filter guide': cmdFilterGuide, 'api call': cmdApiCall,
|
package/npm-shrinkwrap.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "hirify-cli",
|
|
3
|
-
"version": "0.5.
|
|
3
|
+
"version": "0.5.2",
|
|
4
4
|
"lockfileVersion": 3,
|
|
5
5
|
"requires": true,
|
|
6
6
|
"packages": {
|
|
7
7
|
"": {
|
|
8
8
|
"name": "hirify-cli",
|
|
9
|
-
"version": "0.5.
|
|
9
|
+
"version": "0.5.2",
|
|
10
10
|
"license": "Apache-2.0",
|
|
11
11
|
"dependencies": {
|
|
12
12
|
"cross-spawn": "7.0.6",
|
package/package.json
CHANGED
package/skills/hirify/SKILL.md
CHANGED
|
@@ -49,6 +49,7 @@ no permission. Sending, saving and configuring do.
|
|
|
49
49
|
3. `vacancy read <slug>` to assess fit from the full text rather than a headline.
|
|
50
50
|
4. `vacancy reveal <slug>` only for vacancies that still fit after reading.
|
|
51
51
|
5. Apply only after the person's approval and the rules below.
|
|
52
|
+
6. `vacancy hide` / `company hide` what the user rejected; free, unlimited.
|
|
52
53
|
|
|
53
54
|
## Searching
|
|
54
55
|
|