@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.
- package/README.md +68 -1
- 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:
|
|
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.
|
|
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"
|