hirekit 0.1.0__tar.gz
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.
- hirekit-0.1.0/.env.example +12 -0
- hirekit-0.1.0/.github/ISSUE_TEMPLATE/bug_report.md +25 -0
- hirekit-0.1.0/.github/ISSUE_TEMPLATE/feature_request.md +18 -0
- hirekit-0.1.0/.github/PULL_REQUEST_TEMPLATE.md +17 -0
- hirekit-0.1.0/.gitignore +18 -0
- hirekit-0.1.0/CONTRIBUTING.md +53 -0
- hirekit-0.1.0/LICENSE +21 -0
- hirekit-0.1.0/PKG-INFO +332 -0
- hirekit-0.1.0/PROJECT_PLAN.md +252 -0
- hirekit-0.1.0/README.ko.md +266 -0
- hirekit-0.1.0/README.md +279 -0
- hirekit-0.1.0/demo.cast +46 -0
- hirekit-0.1.0/docs/AGENT_PROMPTS.md +863 -0
- hirekit-0.1.0/docs/REPORT_QUALITY_GUIDE.md +879 -0
- hirekit-0.1.0/docs/index.html +819 -0
- hirekit-0.1.0/examples/config.toml +22 -0
- hirekit-0.1.0/examples/profile.yaml +39 -0
- hirekit-0.1.0/pyproject.toml +93 -0
- hirekit-0.1.0/scripts/demo.sh +48 -0
- hirekit-0.1.0/src/hirekit/__init__.py +3 -0
- hirekit-0.1.0/src/hirekit/cli/__init__.py +1 -0
- hirekit-0.1.0/src/hirekit/cli/app.py +442 -0
- hirekit-0.1.0/src/hirekit/core/__init__.py +1 -0
- hirekit-0.1.0/src/hirekit/core/cache.py +68 -0
- hirekit-0.1.0/src/hirekit/core/config.py +63 -0
- hirekit-0.1.0/src/hirekit/core/parallel.py +47 -0
- hirekit-0.1.0/src/hirekit/core/scoring.py +22 -0
- hirekit-0.1.0/src/hirekit/engine/__init__.py +1 -0
- hirekit-0.1.0/src/hirekit/engine/company_analyzer.py +336 -0
- hirekit-0.1.0/src/hirekit/engine/cover_letter.py +517 -0
- hirekit-0.1.0/src/hirekit/engine/interview_prep.py +249 -0
- hirekit-0.1.0/src/hirekit/engine/jd_matcher.py +378 -0
- hirekit-0.1.0/src/hirekit/engine/resume_advisor.py +300 -0
- hirekit-0.1.0/src/hirekit/engine/scorer.py +63 -0
- hirekit-0.1.0/src/hirekit/llm/__init__.py +1 -0
- hirekit-0.1.0/src/hirekit/llm/base.py +61 -0
- hirekit-0.1.0/src/hirekit/output/__init__.py +1 -0
- hirekit-0.1.0/src/hirekit/sources/__init__.py +1 -0
- hirekit-0.1.0/src/hirekit/sources/base.py +93 -0
- hirekit-0.1.0/src/hirekit/sources/global_/__init__.py +1 -0
- hirekit-0.1.0/src/hirekit/sources/global_/brave_search.py +116 -0
- hirekit-0.1.0/src/hirekit/sources/global_/credible_news.py +157 -0
- hirekit-0.1.0/src/hirekit/sources/global_/exa_search.py +102 -0
- hirekit-0.1.0/src/hirekit/sources/global_/github.py +138 -0
- hirekit-0.1.0/src/hirekit/sources/global_/google_news.py +107 -0
- hirekit-0.1.0/src/hirekit/sources/kr/__init__.py +1 -0
- hirekit-0.1.0/src/hirekit/sources/kr/dart.py +330 -0
- hirekit-0.1.0/src/hirekit/sources/kr/naver_news.py +84 -0
- hirekit-0.1.0/src/hirekit/sources/kr/naver_search.py +121 -0
- hirekit-0.1.0/src/hirekit/sources/us/__init__.py +1 -0
- hirekit-0.1.0/tests/__init__.py +0 -0
- hirekit-0.1.0/tests/conftest.py +25 -0
- hirekit-0.1.0/tests/test_config.py +38 -0
- hirekit-0.1.0/tests/test_engine/__init__.py +0 -0
- hirekit-0.1.0/tests/test_engine/test_cover_letter.py +130 -0
- hirekit-0.1.0/tests/test_engine/test_interview_prep.py +48 -0
- hirekit-0.1.0/tests/test_engine/test_jd_matcher.py +90 -0
- hirekit-0.1.0/tests/test_engine/test_resume_advisor.py +102 -0
- hirekit-0.1.0/tests/test_output/__init__.py +0 -0
- hirekit-0.1.0/tests/test_scorer.py +71 -0
- hirekit-0.1.0/tests/test_sources/__init__.py +0 -0
- hirekit-0.1.0/tests/test_sources/test_base.py +81 -0
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
# HireKit API Keys
|
|
2
|
+
# Get your DART API key at: https://opendart.fss.or.kr/
|
|
3
|
+
DART_API_KEY=
|
|
4
|
+
|
|
5
|
+
# Naver Search API (optional)
|
|
6
|
+
# Get keys at: https://developers.naver.com/
|
|
7
|
+
NAVER_CLIENT_ID=
|
|
8
|
+
NAVER_CLIENT_SECRET=
|
|
9
|
+
|
|
10
|
+
# LLM API Keys (optional — HireKit works without these)
|
|
11
|
+
# OPENAI_API_KEY=
|
|
12
|
+
# ANTHROPIC_API_KEY=
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: Bug Report
|
|
3
|
+
about: Report a bug to help us improve
|
|
4
|
+
title: "[Bug] "
|
|
5
|
+
labels: bug
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
**Describe the bug**
|
|
9
|
+
A clear description of what the bug is.
|
|
10
|
+
|
|
11
|
+
**To Reproduce**
|
|
12
|
+
Steps to reproduce:
|
|
13
|
+
1. Run `hirekit ...`
|
|
14
|
+
2. See error
|
|
15
|
+
|
|
16
|
+
**Expected behavior**
|
|
17
|
+
What you expected to happen.
|
|
18
|
+
|
|
19
|
+
**Environment:**
|
|
20
|
+
- OS: [e.g., macOS, Ubuntu]
|
|
21
|
+
- Python version: [e.g., 3.11]
|
|
22
|
+
- HireKit version: [e.g., 0.1.0]
|
|
23
|
+
|
|
24
|
+
**Additional context**
|
|
25
|
+
Any other context about the problem.
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: Feature Request
|
|
3
|
+
about: Suggest a new feature or data source
|
|
4
|
+
title: "[Feature] "
|
|
5
|
+
labels: enhancement
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
**Is your feature request related to a problem?**
|
|
9
|
+
A clear description of the problem.
|
|
10
|
+
|
|
11
|
+
**Describe the solution you'd like**
|
|
12
|
+
What you want to happen.
|
|
13
|
+
|
|
14
|
+
**Data source plugin?**
|
|
15
|
+
If this is a new data source, which region (kr/us/global) and what data does it provide?
|
|
16
|
+
|
|
17
|
+
**Additional context**
|
|
18
|
+
Any other context or screenshots.
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
## Summary
|
|
2
|
+
|
|
3
|
+
Brief description of changes.
|
|
4
|
+
|
|
5
|
+
## Type
|
|
6
|
+
|
|
7
|
+
- [ ] Bug fix
|
|
8
|
+
- [ ] New feature
|
|
9
|
+
- [ ] New data source plugin
|
|
10
|
+
- [ ] Documentation
|
|
11
|
+
- [ ] Refactoring
|
|
12
|
+
|
|
13
|
+
## Checklist
|
|
14
|
+
|
|
15
|
+
- [ ] Tests added/updated
|
|
16
|
+
- [ ] Linting passes (`ruff check`)
|
|
17
|
+
- [ ] Documentation updated (if needed)
|
hirekit-0.1.0/.gitignore
ADDED
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
# Contributing to HireKit
|
|
2
|
+
|
|
3
|
+
Thank you for your interest in contributing! Here's how to get started.
|
|
4
|
+
|
|
5
|
+
## Development Setup
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
# Clone the repo
|
|
9
|
+
git clone https://github.com/ziho/hirekit.git
|
|
10
|
+
cd hirekit
|
|
11
|
+
|
|
12
|
+
# Create virtual environment
|
|
13
|
+
python3 -m venv .venv
|
|
14
|
+
source .venv/bin/activate
|
|
15
|
+
|
|
16
|
+
# Install in development mode
|
|
17
|
+
pip install -e ".[dev]"
|
|
18
|
+
|
|
19
|
+
# Run tests
|
|
20
|
+
pytest
|
|
21
|
+
|
|
22
|
+
# Run linter
|
|
23
|
+
ruff check src/ tests/
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
## Adding a Data Source Plugin
|
|
27
|
+
|
|
28
|
+
1. Create a new file in `src/hirekit/sources/{region}/`
|
|
29
|
+
2. Implement the `BaseSource` protocol
|
|
30
|
+
3. Register with `@SourceRegistry.register`
|
|
31
|
+
4. Add entry point in `pyproject.toml`
|
|
32
|
+
5. Write tests in `tests/test_sources/`
|
|
33
|
+
|
|
34
|
+
See `src/hirekit/sources/base.py` for the full protocol documentation.
|
|
35
|
+
|
|
36
|
+
## Code Style
|
|
37
|
+
|
|
38
|
+
- We use `ruff` for linting and formatting
|
|
39
|
+
- Type hints are required for all public functions
|
|
40
|
+
- Tests are required for new features
|
|
41
|
+
|
|
42
|
+
## Pull Request Process
|
|
43
|
+
|
|
44
|
+
1. Fork the repo and create your branch from `main`
|
|
45
|
+
2. Add tests for any new functionality
|
|
46
|
+
3. Ensure all tests pass (`pytest`)
|
|
47
|
+
4. Ensure linting passes (`ruff check`)
|
|
48
|
+
5. Update documentation if needed
|
|
49
|
+
6. Submit a PR with a clear description
|
|
50
|
+
|
|
51
|
+
## Reporting Issues
|
|
52
|
+
|
|
53
|
+
Use GitHub Issues with the provided templates (bug report or feature request).
|
hirekit-0.1.0/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 ziho
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
hirekit-0.1.0/PKG-INFO
ADDED
|
@@ -0,0 +1,332 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: hirekit
|
|
3
|
+
Version: 0.1.0
|
|
4
|
+
Summary: AI-powered company analysis and interview preparation CLI for job seekers
|
|
5
|
+
Project-URL: Homepage, https://github.com/ziho/hirekit
|
|
6
|
+
Project-URL: Documentation, https://github.com/ziho/hirekit/docs
|
|
7
|
+
Project-URL: Repository, https://github.com/ziho/hirekit
|
|
8
|
+
Project-URL: Issues, https://github.com/ziho/hirekit/issues
|
|
9
|
+
Author: ziho
|
|
10
|
+
License: MIT
|
|
11
|
+
License-File: LICENSE
|
|
12
|
+
Keywords: ai,career,company-analysis,dart,interview-prep,job-search
|
|
13
|
+
Classifier: Development Status :: 3 - Alpha
|
|
14
|
+
Classifier: Environment :: Console
|
|
15
|
+
Classifier: Intended Audience :: End Users/Desktop
|
|
16
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
17
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
18
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
19
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
20
|
+
Classifier: Topic :: Office/Business
|
|
21
|
+
Requires-Python: >=3.11
|
|
22
|
+
Requires-Dist: beautifulsoup4>=4.12
|
|
23
|
+
Requires-Dist: httpx>=0.25
|
|
24
|
+
Requires-Dist: jinja2>=3.1
|
|
25
|
+
Requires-Dist: lxml>=5.0
|
|
26
|
+
Requires-Dist: pydantic>=2.0
|
|
27
|
+
Requires-Dist: python-dotenv>=1.0
|
|
28
|
+
Requires-Dist: rich>=13.0
|
|
29
|
+
Requires-Dist: typer>=0.9
|
|
30
|
+
Provides-Extra: all
|
|
31
|
+
Requires-Dist: litellm>=1.0; extra == 'all'
|
|
32
|
+
Requires-Dist: notion-client>=2.0; extra == 'all'
|
|
33
|
+
Requires-Dist: pykrx>=1.0; extra == 'all'
|
|
34
|
+
Provides-Extra: anthropic
|
|
35
|
+
Requires-Dist: anthropic>=0.20; extra == 'anthropic'
|
|
36
|
+
Provides-Extra: dev
|
|
37
|
+
Requires-Dist: mypy>=1.0; extra == 'dev'
|
|
38
|
+
Requires-Dist: pytest-asyncio>=0.23; extra == 'dev'
|
|
39
|
+
Requires-Dist: pytest>=7.0; extra == 'dev'
|
|
40
|
+
Requires-Dist: respx>=0.20; extra == 'dev'
|
|
41
|
+
Requires-Dist: ruff>=0.1; extra == 'dev'
|
|
42
|
+
Provides-Extra: kr
|
|
43
|
+
Requires-Dist: pykrx>=1.0; extra == 'kr'
|
|
44
|
+
Provides-Extra: llm
|
|
45
|
+
Requires-Dist: litellm>=1.0; extra == 'llm'
|
|
46
|
+
Provides-Extra: notion
|
|
47
|
+
Requires-Dist: notion-client>=2.0; extra == 'notion'
|
|
48
|
+
Provides-Extra: ollama
|
|
49
|
+
Requires-Dist: ollama>=0.1; extra == 'ollama'
|
|
50
|
+
Provides-Extra: openai
|
|
51
|
+
Requires-Dist: openai>=1.0; extra == 'openai'
|
|
52
|
+
Description-Content-Type: text/markdown
|
|
53
|
+
|
|
54
|
+
<p align="center">
|
|
55
|
+
<h1 align="center">HireKit</h1>
|
|
56
|
+
<p align="center">
|
|
57
|
+
<strong>AI-powered company analysis and interview preparation CLI for job seekers</strong>
|
|
58
|
+
</p>
|
|
59
|
+
<p align="center">
|
|
60
|
+
Research companies. Match jobs. Ace interviews.
|
|
61
|
+
</p>
|
|
62
|
+
</p>
|
|
63
|
+
|
|
64
|
+
<p align="center">
|
|
65
|
+
<a href="https://pypi.org/project/hirekit/"><img src="https://img.shields.io/pypi/v/hirekit" alt="PyPI"></a>
|
|
66
|
+
<a href="https://github.com/zihoshin-dev/hirekit/blob/main/LICENSE"><img src="https://img.shields.io/badge/license-MIT-blue.svg" alt="License"></a>
|
|
67
|
+
<a href="https://www.python.org/downloads/"><img src="https://img.shields.io/badge/python-3.11+-blue.svg" alt="Python"></a>
|
|
68
|
+
<a href="https://github.com/zihoshin-dev/hirekit"><img src="https://img.shields.io/github/stars/zihoshin-dev/hirekit?style=social" alt="Stars"></a>
|
|
69
|
+
</p>
|
|
70
|
+
|
|
71
|
+
---
|
|
72
|
+
|
|
73
|
+
## Why It Matters
|
|
74
|
+
|
|
75
|
+
You're in an interview. Your interviewer asks: **"Why do you want to work here?"**
|
|
76
|
+
|
|
77
|
+
You pause. You didn't research the company beyond the job posting.
|
|
78
|
+
|
|
79
|
+
**90% of rejected candidates cite "unprepared" as feedback.**
|
|
80
|
+
|
|
81
|
+
Meanwhile, company research takes **4-8 hours** across fragmented sources:
|
|
82
|
+
- DART filings (Korean finance jargon, hard to parse)
|
|
83
|
+
- News articles (biased, scattered across 10+ sites)
|
|
84
|
+
- Glassdoor reviews (complaint-focused, outdated)
|
|
85
|
+
- GitHub (tech only, no culture insights)
|
|
86
|
+
- LinkedIn, internal wikis, salary data
|
|
87
|
+
|
|
88
|
+
No tool combines these into one actionable intelligence report.
|
|
89
|
+
|
|
90
|
+
**HireKit solves this:** One command, 2 minutes, 8 data sources, 1 decision-ready report.
|
|
91
|
+
|
|
92
|
+
---
|
|
93
|
+
|
|
94
|
+
## How It Works
|
|
95
|
+
|
|
96
|
+
```bash
|
|
97
|
+
# Step 1: Install (30 seconds)
|
|
98
|
+
$ pip install hirekit
|
|
99
|
+
|
|
100
|
+
# Step 2: Configure API keys (1 minute, one-time)
|
|
101
|
+
$ hirekit configure
|
|
102
|
+
> DART API Key: [paste]
|
|
103
|
+
> Naver Client ID: [paste]
|
|
104
|
+
|
|
105
|
+
# Step 3: Analyze a company (2 minutes)
|
|
106
|
+
$ hirekit analyze 카카오
|
|
107
|
+
|
|
108
|
+
# Output: 12-section decision report
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
**Total time: 3 minutes vs. 4-8 hours of manual research**
|
|
112
|
+
|
|
113
|
+
---
|
|
114
|
+
|
|
115
|
+
## What You Get
|
|
116
|
+
|
|
117
|
+
**Single Actionable Score: 0-100 Job Fit Rating**
|
|
118
|
+
|
|
119
|
+
```
|
|
120
|
+
82/100 = Strong Opportunity (Go for it)
|
|
121
|
+
75/100 = Competitive (Worth applying with prep)
|
|
122
|
+
60/100 = Caution (Red flags exist — investigate)
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
**12-Section Report covering:**
|
|
126
|
+
- Executive summary with key reasons
|
|
127
|
+
- Financial health (salary negotiation potential)
|
|
128
|
+
- Tech stack & interview depth questions
|
|
129
|
+
- Recent news & company trajectory
|
|
130
|
+
- Culture & team dynamics
|
|
131
|
+
- Risk flags & mitigation strategies
|
|
132
|
+
- Interview prep tips specific to this company
|
|
133
|
+
|
|
134
|
+
**Multi-source cross-validation:**
|
|
135
|
+
- 8+ data sources collected in parallel
|
|
136
|
+
- Conflicts highlighted ("News says growing, DART shows debt spike — investigate")
|
|
137
|
+
- Evidence-based scoring, not gut feeling
|
|
138
|
+
- All sources cited with dates
|
|
139
|
+
|
|
140
|
+
---
|
|
141
|
+
|
|
142
|
+
## Quick Start
|
|
143
|
+
|
|
144
|
+
```bash
|
|
145
|
+
# Install
|
|
146
|
+
pip install hirekit
|
|
147
|
+
|
|
148
|
+
# Configure (set up API keys)
|
|
149
|
+
hirekit configure
|
|
150
|
+
|
|
151
|
+
# Analyze a company
|
|
152
|
+
hirekit analyze 카카오
|
|
153
|
+
|
|
154
|
+
# View available data sources
|
|
155
|
+
hirekit sources
|
|
156
|
+
```
|
|
157
|
+
|
|
158
|
+
---
|
|
159
|
+
|
|
160
|
+
## What's Next?
|
|
161
|
+
|
|
162
|
+
After analyzing a company, you can:
|
|
163
|
+
|
|
164
|
+
```bash
|
|
165
|
+
# Compare companies side-by-side
|
|
166
|
+
$ hirekit compare 카카오 네이버 --focus salary,growth
|
|
167
|
+
|
|
168
|
+
# Match your resume to a job posting
|
|
169
|
+
$ hirekit match https://wanted.co.kr/job-123 resume.pdf
|
|
170
|
+
|
|
171
|
+
# Prepare interview questions specific to this company
|
|
172
|
+
$ hirekit interview 카카오 --role backend-engineer
|
|
173
|
+
|
|
174
|
+
# Get interview feedback on your resume
|
|
175
|
+
$ hirekit resume review resume.pdf --company 카카오
|
|
176
|
+
```
|
|
177
|
+
|
|
178
|
+
👉 **[Full Tutorial](docs/tutorial.md)** | **[CLI Reference](docs/cli-reference.md)** | **[FAQ](docs/faq.md)**
|
|
179
|
+
|
|
180
|
+
---
|
|
181
|
+
|
|
182
|
+
## Features
|
|
183
|
+
|
|
184
|
+
- **8-source parallel collection** — DART financials, Google/Naver/Brave/Exa news, Reuters, Korean biz press, GitHub tech scoring, Glassdoor reviews (all collected simultaneously)
|
|
185
|
+
- **12-section structured reports** — Executive summary, financial health, tech stack, news/trajectory, culture, compensation, growth potential, risks, interview prep, scorecard, similar companies, action items
|
|
186
|
+
- **Weighted 5-dimension scorecard** — Job Fit (30%), Career Leverage (20%), Growth Potential (20%), Compensation (15%), Culture Fit (15%) — 100-point decision score, not subjective rating
|
|
187
|
+
- **LLM-optional** — Works without any AI (template mode for offline use), enhanced with OpenAI/Anthropic/Ollama for deeper analysis
|
|
188
|
+
- **Plugin architecture** — Add custom data sources in 20 lines of Python, no core changes needed
|
|
189
|
+
- **Privacy-first** — All data stays local, no external tracking, no cloud uploads
|
|
190
|
+
|
|
191
|
+
## Quick Start
|
|
192
|
+
|
|
193
|
+
```bash
|
|
194
|
+
# Install
|
|
195
|
+
pip install hirekit
|
|
196
|
+
|
|
197
|
+
# Configure (set up API keys)
|
|
198
|
+
hirekit configure
|
|
199
|
+
|
|
200
|
+
# Analyze a company
|
|
201
|
+
hirekit analyze 카카오
|
|
202
|
+
|
|
203
|
+
# View available data sources
|
|
204
|
+
hirekit sources
|
|
205
|
+
```
|
|
206
|
+
|
|
207
|
+
## Demo
|
|
208
|
+
|
|
209
|
+
```
|
|
210
|
+
$ hirekit analyze 카카오 --no-llm -o terminal
|
|
211
|
+
|
|
212
|
+
╭──────────────────── HireKit Analysis ────────────────────╮
|
|
213
|
+
│ Analyzing: 카카오 │
|
|
214
|
+
│ Region: kr Tier: 1 LLM: off │
|
|
215
|
+
╰──────────────────────────────────────────────────────────╯
|
|
216
|
+
|
|
217
|
+
카카오 Scorecard
|
|
218
|
+
┌─────────────────────┬────────┬────────┬──────────────────┐
|
|
219
|
+
│ Dimension │ Weight │ Score │ Evidence │
|
|
220
|
+
├─────────────────────┼────────┼────────┼──────────────────┤
|
|
221
|
+
│ Job Fit │ 30% │ 3.5/5 │ Tech stack data │
|
|
222
|
+
│ Career Leverage │ 20% │ 4.6/5 │ 15 data points │
|
|
223
|
+
│ Growth Potential │ 20% │ 4.5/5 │ Financials + │
|
|
224
|
+
│ │ │ │ active news │
|
|
225
|
+
│ Compensation │ 15% │ 3.5/5 │ DART salary data │
|
|
226
|
+
│ Culture Fit │ 15% │ 4.5/5 │ Reviews + Exa │
|
|
227
|
+
│ Total │ │ 82/100 │ Grade S │
|
|
228
|
+
└─────────────────────┴────────┴────────┴──────────────────┘
|
|
229
|
+
```
|
|
230
|
+
|
|
231
|
+
> 8 data sources collected 15 results in parallel — DART financials, Google/Naver/Brave/Exa news, Reuters, Korean biz press, GitHub tech scoring, Glassdoor reviews.
|
|
232
|
+
|
|
233
|
+
## Data Sources
|
|
234
|
+
|
|
235
|
+
| Source | Region | Data | API Key |
|
|
236
|
+
|--------|--------|------|---------|
|
|
237
|
+
| DART | KR | Financial filings, employee data | `DART_API_KEY` |
|
|
238
|
+
| Naver News | KR | Recent news articles | `NAVER_CLIENT_ID` |
|
|
239
|
+
| Naver Search | KR | Blog, cafe, web (culture/interview) | `NAVER_CLIENT_ID` |
|
|
240
|
+
| GitHub | Global | Tech maturity scoring | gh CLI |
|
|
241
|
+
| Google News | Global | RSS news (no key needed) | - |
|
|
242
|
+
| Credible News | Global | Reuters, Bloomberg, FT, WSJ + Korean biz press | - |
|
|
243
|
+
| Brave Search | Global | Web + news semantic search | `BRAVE_API_KEY` |
|
|
244
|
+
| Exa Search | Global | AI semantic deep search | `EXA_API_KEY` |
|
|
245
|
+
|
|
246
|
+
### Adding Custom Sources
|
|
247
|
+
|
|
248
|
+
```python
|
|
249
|
+
from hirekit.sources.base import BaseSource, SourceRegistry, SourceResult
|
|
250
|
+
|
|
251
|
+
@SourceRegistry.register
|
|
252
|
+
class MySource(BaseSource):
|
|
253
|
+
name = "my_source"
|
|
254
|
+
region = "global"
|
|
255
|
+
sections = ["tech"]
|
|
256
|
+
|
|
257
|
+
def is_available(self) -> bool:
|
|
258
|
+
return True
|
|
259
|
+
|
|
260
|
+
def collect(self, company, **kwargs):
|
|
261
|
+
# Your data collection logic here
|
|
262
|
+
return [SourceResult(
|
|
263
|
+
source_name=self.name,
|
|
264
|
+
section="tech",
|
|
265
|
+
data={"key": "value"},
|
|
266
|
+
)]
|
|
267
|
+
```
|
|
268
|
+
|
|
269
|
+
## Configuration
|
|
270
|
+
|
|
271
|
+
Config lives in `~/.hirekit/config.toml`:
|
|
272
|
+
|
|
273
|
+
```toml
|
|
274
|
+
[analysis]
|
|
275
|
+
default_region = "kr"
|
|
276
|
+
cache_ttl_hours = 168 # 7 days
|
|
277
|
+
|
|
278
|
+
[llm]
|
|
279
|
+
provider = "none" # openai, anthropic, ollama, none
|
|
280
|
+
model = "gpt-4o-mini"
|
|
281
|
+
|
|
282
|
+
[sources]
|
|
283
|
+
enabled = ["dart", "github", "naver_news"]
|
|
284
|
+
|
|
285
|
+
[output]
|
|
286
|
+
format = "markdown"
|
|
287
|
+
directory = "./reports"
|
|
288
|
+
```
|
|
289
|
+
|
|
290
|
+
## LLM Support
|
|
291
|
+
|
|
292
|
+
HireKit works without any LLM (template-based reports). For AI-enhanced analysis:
|
|
293
|
+
|
|
294
|
+
```bash
|
|
295
|
+
# OpenAI
|
|
296
|
+
pip install hirekit[openai]
|
|
297
|
+
# Set OPENAI_API_KEY in ~/.hirekit/.env
|
|
298
|
+
|
|
299
|
+
# Anthropic
|
|
300
|
+
pip install hirekit[anthropic]
|
|
301
|
+
|
|
302
|
+
# Local models via Ollama
|
|
303
|
+
pip install hirekit[ollama]
|
|
304
|
+
|
|
305
|
+
# Or use litellm for 100+ providers
|
|
306
|
+
pip install hirekit[llm]
|
|
307
|
+
```
|
|
308
|
+
|
|
309
|
+
## Roadmap
|
|
310
|
+
|
|
311
|
+
- [x] **Phase 1:** DART + GitHub + News analysis, scorecard, Markdown reports
|
|
312
|
+
- [x] **Phase 2:** JD matching (`hirekit match`), interview prep (`hirekit interview`), resume review (`hirekit resume`)
|
|
313
|
+
- [ ] **Phase 3:** US companies (SEC Edgar), web UI, community plugins, PyPI publish
|
|
314
|
+
|
|
315
|
+
## Contributing
|
|
316
|
+
|
|
317
|
+
Contributions are welcome! See [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines.
|
|
318
|
+
|
|
319
|
+
**Good first issues:**
|
|
320
|
+
- Add a new data source plugin
|
|
321
|
+
- Improve report templates
|
|
322
|
+
- Add i18n support
|
|
323
|
+
|
|
324
|
+
## License
|
|
325
|
+
|
|
326
|
+
MIT License. See [LICENSE](LICENSE) for details.
|
|
327
|
+
|
|
328
|
+
---
|
|
329
|
+
|
|
330
|
+
<p align="center">
|
|
331
|
+
<sub>Built with care for every job seeker out there.</sub>
|
|
332
|
+
</p>
|