Why I used Claude instead of a fine-tuned model for job description parsing
I tried three approaches before shipping JD Intelligence:
1. Regex + spaCy — worked for clean JDs, fell apart on real ones. "We're looking for a senior-ish dev" doesn't parse to seniority: senior.
2. Fine-tuned BERT — expensive to train, brittle to update, needed retraining every time a new field was needed.
3. Claude with a structured prompt — handles ambiguity correctly, easy to add fields, costs a few cents per call, 1-3s latency.
For a job board use case (parse when a JD is submitted, not on page load), latency doesn't matter. Cost per parse at $29/mo for 500 calls is totally predictable.
The tradeoff people don't talk about: LLMs give you flexibility at the cost of determinism. For parsing, I'll take that trade every time.
Demo: jdintelligence.dev/demo