Extracts professional skills from a CV (in PDF format) using various OpenAI models and benchmarks their speed, token usage and estimated cost.
This tool provides a simple GUI file picker, processes the CV, queries multiple models, and prints a comparison table.
- 📂 Select CV as a PDF via file dialog (Tkinter)
- 🧠 Extract skills using multiple OpenAI models
- ⏱ Measure response time for each model
- 🔢 Count input & output tokens
- 💰 Estimate cost based on model pricing
- 📊 Display benchmark results in a formatted table
- 🧾 Clean bullet-point skill output
gpt-5-minigpt-5-nanogpt-4.1-minigpt-4.1-nano
You can modify the list in:
MODELS = [...]Pricing is hardcoded (updated 16.02.2026) and used for cost estimation.
PRICING = {
"model": {
"input_per_1m": ...,
"output_per_1m": ...
}
}To verify and/or update pricing visit https://developers.openai.com/api/docs/pricing
Install dependencies:
pip install openai pypdf tiktoken tabulateor
conda install openai pypdf tiktoken tabulateTkinter is included with most Python installations.
Set your OpenAI API key:
export OPENAI_API_KEY="your_api_key_here"or
setx OPENAI_API_KEY "your_api_key_here"Run the script:
python ./cv_parser_benchmark.py- File dialog opens
- Select a CV in PDF format
- Text is extracted
- Each model:
- Extracts skills
- Prints output (to compare with other models)
- Measures response time
- Counts tokens
- Estimates cost
- Result performance table is displayed
=== Benchmarking gpt-5-mini ===
Extracted skills:
• Python
• SQL
• Machine Learning
...
=== BENCHMARK RESULTS ===
+--------------+----------+--------------+---------------+-------------------+
| Model | Time (s) | Input Tokens | Output Tokens | Estimated Cost ($)|
+--------------+----------+--------------+---------------+-------------------+
| gpt-5-mini | 1.32 | 1450 | 120 | 0.00089 |
| gpt-5-nano | 0.98 | 1450 | 118 | 0.00021 |
+--------------+----------+--------------+---------------+-------------------+
Modify:
input = [...]MODELS = ["gpt-4.1-nano"]Update the PRICING dictionary.
Update MODELS and PRICING sections
- Token counts are estimated locally (may slightly differ from API billing).
- Very large CVs will increase cost and latency.
- Works with text-based PDFs (not scanned images).
- To work with scanned images it is recommended to execute text extraction on OpenAI side (will increase costs)