qiksy 1.3.1 → 1.4.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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "qiksy",
3
- "version": "1.3.1",
3
+ "version": "1.4.0",
4
4
  "description": "Qiksy \u2014 one local engine for every Qiksy tool (Work Finder, Travel Assistant, Client Finder). Runs on your own Claude; nothing leaves your machine.",
5
5
  "type": "module",
6
6
  "bin": {
@@ -54,7 +54,16 @@ export function searchPrompt(position, profile, excludeCompanies, settings, pass
54
54
  POSITION: ${position.title}
55
55
  KEYWORDS / STACK: ${position.keywords || '—'}
56
56
  ENGAGEMENT: ${ENGAGEMENT_TEXT[position.engagement] || ENGAGEMENT_TEXT.both}
57
- CANDIDATE LOCATION: ${profile?.location || 'Ukraine'} — works remotely from there (or B2B contract)
57
+ CANDIDATE LOCATION: ${profile?.location || 'Ukraine'}
58
+ WHERE THEY CAN WORK: ${
59
+ settings.workMode === 'onsite'
60
+ ? `ON SITE, in or near ${profile?.location || 'Ukraine'}. Look for office roles there — commuting distance, not another country. A remote-only posting is NOT a match unless it also offers an office in that area.`
61
+ : settings.workMode === 'hybrid'
62
+ ? `HYBRID — an office in or near ${profile?.location || 'Ukraine'} with some days from home. Fully remote is acceptable only if the company also has an office there.`
63
+ : settings.workMode === 'any'
64
+ ? `EITHER — remote from ${profile?.location || 'Ukraine'} (or B2B contract), or an office role in or near ${profile?.location || 'Ukraine'}. Both count; say which one each posting is.`
65
+ : `REMOTELY from ${profile?.location || 'Ukraine'} (or B2B contract).`
66
+ }
58
67
  ${settings.searchExtra ? `EXTRA INSTRUCTIONS FROM USER: ${settings.searchExtra}\n` : ''}
59
68
  CANDIDATE (for relevance filtering):
60
69
  ${resumeExcerpt(profile, 1200)}
@@ -22,6 +22,11 @@ function defaults() {
22
22
  model: 'sonnet',
23
23
  autoSubmit: false,
24
24
  searchViaBrowser: false,
25
+ /* Where the person can actually work: 'remote' (default, what the agent always
26
+ silently assumed) | 'onsite' | 'hybrid' | 'any'. Not everyone can work from
27
+ home — some need an office in their own city, and until now the product had
28
+ nothing to offer them (owner, 2026-07-26). */
29
+ workMode: 'remote',
25
30
  searchExtra: '',
26
31
  /* Per SWEEP, and a FLOOR, not a ceiling — the search runs sweep after sweep
27
32
  until one turns up nothing new (server.mjs startSearch). It used to be a