@pranavraut033/ats-checker 1.0.1 → 1.0.3

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.
Files changed (2) hide show
  1. package/README.md +68 -1
  2. package/package.json +5 -4
package/README.md CHANGED
@@ -24,6 +24,32 @@ console.log(result.breakdown.skills); // 85
24
24
  console.log(result.suggestions); // ["Add more specific JavaScript frameworks", ...]
25
25
  ```
26
26
 
27
+ ### LLM (Async) Usage
28
+
29
+ For AI-enhanced suggestions while keeping scores deterministic, use the async API:
30
+
31
+ ```typescript
32
+ import { analyzeResumeAsync } from "@pranavraut033/ats-checker";
33
+
34
+ const myLLMClient = /* implement LLMClient (OpenAI/Anthropic/local) */;
35
+
36
+ const result = await analyzeResumeAsync({
37
+ resumeText: "...",
38
+ jobDescription: "...",
39
+ llm: {
40
+ client: myLLMClient,
41
+ models: { default: "gpt-4o-mini" },
42
+ limits: { maxCalls: 3, maxTokensPerCall: 1000, maxTotalTokens: 5000 },
43
+ enable: { suggestions: true }
44
+ }
45
+ });
46
+
47
+ console.log(result.score); // unchanged by LLM
48
+ console.log(result.suggestions); // enhanced wording/context
49
+ ```
50
+
51
+ Note: Passing `llm` to `analyzeResume` (sync) will add a warning and skip enhancement. Prefer `analyzeResumeAsync` for LLM features.
52
+
27
53
  ## Configuration
28
54
 
29
55
  Adjust scoring priorities, define skill synonyms, and add custom rules:
@@ -46,6 +72,43 @@ const result = analyzeResume({
46
72
 
47
73
  See [Configuration](docs/configuration.md) for complete options.
48
74
 
75
+ ### Configuration Defaults
76
+
77
+ - Weights: skills 0.3, experience 0.3, keywords 0.25, education 0.15 (normalized)
78
+ - Keyword density: min 0.0025, max 0.04, overusePenalty 5
79
+ - Section penalties: summary 4, experience 10, skills 8, education 6
80
+ - Partial matches: `allowPartialMatches: true`
81
+
82
+ All user config is merged via `resolveConfig()` and weights are normalized to sum to 1.0.
83
+
84
+ ### Custom Rules
85
+
86
+ Add penalties/warnings via rule conditions:
87
+
88
+ ```typescript
89
+ const result = analyzeResume({
90
+ resumeText: "...",
91
+ jobDescription: "...",
92
+ config: {
93
+ rules: [
94
+ {
95
+ id: "min-years",
96
+ penalty: 5,
97
+ warning: "Less than 3 years experience",
98
+ condition: (ctx) => (ctx.resume.experienceYears ?? 0) < 3
99
+ },
100
+ {
101
+ id: "require-contact",
102
+ penalty: 2,
103
+ warning: "Add phone/email to contact info",
104
+ condition: (ctx) => !ctx.resume.contactInfo?.phone || !ctx.resume.contactInfo?.email
105
+ }
106
+ ]
107
+ }
108
+ });
109
+ ```
110
+ See [Rules Engine](docs/rules.md) for default rules and context fields.
111
+
49
112
  ## Features
50
113
 
51
114
  - Deterministic scoring based on skills, experience, keywords, and education
@@ -80,11 +143,15 @@ Analyzes a resume against a job description.
80
143
  npm install
81
144
  npm run build # Build to dist/
82
145
  npm test # Run tests
83
- npm run dev # Start web UI at http://localhost:3000
146
+ npm run dev # Start web UI at http://localhost:3005
84
147
  ```
85
148
 
86
149
  ## Documentation
87
150
 
151
+ **Live Docs** (hosted on GitHub Pages):
152
+ - https://Pranavraut033.github.io/ats-checker/docs/
153
+
154
+ **Local Docs** (in repository):
88
155
  - [Configuration Guide](docs/configuration.md)
89
156
  - [LLM Integration](docs/llm-integration.md)
90
157
  - [Web Interface](docs/ui.md)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pranavraut033/ats-checker",
3
- "version": "1.0.1",
3
+ "version": "1.0.3",
4
4
  "description": "Deterministic, configurable ATS (Applicant Tracking System) compatibility checker with no external dependencies. Analyze resumes, generate scores, and get actionable suggestions.",
5
5
  "license": "MIT",
6
6
  "author": {
@@ -45,11 +45,12 @@
45
45
  "applicant-tracking"
46
46
  ],
47
47
  "scripts": {
48
- "build": "tsup",
48
+ "build": "tsup && npm run build:ui",
49
+ "build:ui": "mkdir -p ui/public/dist && cp dist/index.mjs ui/public/dist/ && cp dist/index.d.ts ui/public/dist/",
50
+ "serve": "npx http-server ui/public -p 3005",
49
51
  "test": "vitest run",
50
52
  "test:watch": "vitest",
51
- "type-check": "tsc --noEmit",
52
- "dev": "tsx ui/server.ts"
53
+ "type-check": "tsc --noEmit"
53
54
  },
54
55
  "publishConfig": {
55
56
  "access": "public"