sharpapi/laravel-resume-parser
A Laravel package for parsing resumes and CVs into structured candidate data using SharpAPI. Upload PDF or Word documents and extract contact details, work history, education, skills, and other key fields to streamline recruitment and applicant-tracking workflows.
SharpApiJob instead of throwing a TypeError, while a missing API key raises a clear InvalidArgumentException. These are the difference between "unpredictable production failures" and "diagnosable error states" — relevant to SLA commitments and on-call burden.sharpapi-resume-parser skill) means AI coding assistants in a Laravel codebase get package-specific guidance. That is a tangible onboarding-cost reduction for teams already using Boost-assisted workflows.Retry-After pacing and fixed-interval polling — a direct lever on throughput, rate-limit behavior, and perceived responsiveness in async UX (e.g., "we're still parsing your resume" states).Adopt when:
Look elsewhere or defer when:
sharpapi/php-core version, so you inherit a transitive dependency's behavior; verify the core package's release cadence and support policy before standardizing.For executives (one paragraph): This release turns a promising integration into a supportable one. We can add resume parsing to our Laravel product without building or maintaining a document-extraction pipeline ourselves — the vendor handles parsing, we own the experience. The v1.1.0 changes are mostly about trust: configuration we expose now actually takes effect, failures surface as clear, handleable errors instead of crashes, and the package ships with an automated test suite. Combined with built-in guidance for AI-assisted development, it lowers both our initial build cost and our ongoing on-call risk. Recommendation: green-light a bounded pilot behind a feature flag, with the vendor API treated as an external dependency in our architecture and a documented exit path.
For engineering (summary): Upgrade to v1.1.0 and pin sharpapi/php-core ^1.4.1. Two behavioral changes to design around: (1) SHARP_API_JOB_STATUS_USE_POLLING_INTERVAL=true now genuinely switches fetchResults() to poll at SHARP_API_JOB_STATUS_POLLING_INTERVAL rather than honoring the API's Retry-After — audit any polling config you assumed was inert, and pick one pacing strategy deliberately; (2) failure handling is now typed — a failed job with a null result returns a SharpApiJob rather than raising a TypeError, and a missing API key throws InvalidArgumentException. Update job handlers and tests to branch on job state and catch the configuration exception at startup rather than relying on generic error handling. New Pest + Orchestra Testbench coverage and Laravel Boost resources (core guideline plus the sharpapi-resume-parser skill) give us a testable baseline and better AI-assistant context; verify the suite runs clean in our CI before rollout, and confirm secret management so the missing-key path never reaches production.
How can I help you explore Laravel packages today?