Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Laravel Resume Parser Laravel Package

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.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Architecture fit. This is a thin Laravel wrapper around sharpapi/php-core that exposes an async job pattern (fetchResults()) for resume parsing. The v1.1.0 changes are overwhelmingly corrective and tooling-oriented rather than architectural: a config propagation bug fix (polling interval was silently ignored), a dependency bump to sharpapi/php-core ^1.4.1, Boost/AI-assist resources, and a test suite. Nothing here introduces new surface area that would reshape how the package sits in our codebase. Fit is therefore unchanged from a baseline evaluation: suitable for teams already on Laravel who need resume/CV ingestion with async result retrieval, and unsuitable where synchronous or fully self-hosted parsing is required.

Integration feasibility. Straightforward. Config keys are now actually honored, which removes a class of "why is my queue hammering the API / why is my polling interval ignored" support tickets we would otherwise absorb. The ^1.4.1 floor on php-core is the one hard constraint: confirm no transitive conflicts in composer.json. The new Testbench suite is a meaningful signal — it implies the package can be exercised in CI without a live SharpAPI account, which materially de-risks our own integration testing.

Technical risk. Low-to-moderate. The polling fix changes runtime behavior for anyone who had set use_polling_interval=true and was unknowingly falling back to Retry-After — expect a shift in call volume and latency characteristics on upgrade, even though the intent is "no change." The php-core bump changes failure semantics in two places: failed jobs with null results now return a SharpApiJob rather than throwing TypeError, and a missing API key now throws InvalidArgumentException. Both are improvements, but the first silently changes the shape of a previously-exceptional path — any catch (TypeError ...) or null-check logic in our callers must be reviewed.

Key questions.

  • What is the full prior version history, and are there breaking changes between our pinned version and v1.1.0?
  • Is the SHARP_API_JOB_STATUS_USE_POLLING_INTERVAL=true path the intended default for our workload, or an escape hatch?
  • Does SharpApiJob-on-failure carry enough diagnostic detail (error code, message, retry-ability) for our alerting?
  • What exactly does the sharpapi-resume-parser Boost skill encode — is it documentation, or does it generate code we'd then own?
  • What is the support/maintenance posture of sharpapi/php-core itself?

Integration Approach

Stack fit. Laravel-native, Composer-distributed, config-driven. It slots into the standard config/*.php + .env + service-container idiom with no custom bootstrapping. Teams on Laravel 10/11 with queue workers already running will find the async job model familiar. It is a poor fit for non-Laravel PHP services or serverless/edge runtimes where a long-lived polling loop is undesirable.

Migration path. From a no-prior-assessment baseline, treat this as a greenfield adoption rather than an upgrade: pin ^1.1.0, pin sharpapi/php-core ^1.4.1, and publish config. If adopting incrementally on an existing internal wrapper, the sequence is: (1) bump php-core, (2) audit all failure-path handling for the TypeError → SharpApiJob change, (3) verify API-key-missing behavior surfaces InvalidArgumentException at boot rather than mid-job, (4) enable the polling-interval config and observe call volume for one full business cycle before locking it in.

Compatibility. The php-core ^1.4.1 constraint is the only meaningful coupling; run composer why-not sharpapi/php-core 1.4.1 before commit. The Boost resources are additive and inert at runtime — they only matter if the team uses Laravel Boost, in which case they should be reviewed as documentation, not trusted as specification.

Sequencing. Config and key management first (fail-fast at boot), then a single happy-path job in staging with the new polling behavior enabled, then failure-path validation (null result, bad key, expired token), then the CI suite lifted into our own integration tests. Do not enable polling-interval mode in production until the staging volume curve is understood.

Operational Impact

Maintenance. Low. Small package, small dependency surface, and the arrival of a Pest + Testbench suite shifts us from "we own the verification burden" to "we own the integration layer only." Budget a recurring check on the php-core release cadence, since this package's release notes are largely downstream of it.

Support. The polling fix removes a real source of confusion, but it also invalidates any internal runbook that says "set the flag and walk away." Update internal docs to describe Retry-After as the fallback and the polling interval as an explicit override. The clearer InvalidArgumentException for a missing key is a support win — misconfiguration fails at startup instead of manifesting as an opaque job failure hours later.

Scaling. Polling behavior is now deterministic and tunable, which is the difference between predictable and unpredictable API consumption at volume. With use_polling_interval=false (presumably default), throughput is governed by the API's Retry-After; with it true, by our configured interval. For bursty resume-ingestion batches, the override gives us a lever; for steady-state, the default is safer. Set the interval conservatively and alert on sustained 429s.

Failure modes. Three to watch: (1) null-result jobs now return a SharpApiJob object — any caller assuming an exception will instead receive an object that must be inspected for success/failure; (2) missing/rotated API key now throws at construction and can take down a queue worker boot loop if unhandled; (3) misconfigured polling interval can produce either API throttling or pathological latency with no error surface. The new test suite helps us detect regressions in 1 and 2 upstream, but 3 is a config-governance issue we own.

Ramp-up. Half a day for a Laravel-fluent engineer to wire config, run a staging job, and validate failure paths. The Boost guideline and skill reduce discovery time for AI-assisted development but should be treated as onboarding material, not authoritative reference — verify against the package source and php-core behavior before encoding assumptions.

Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
uni-method/symfony-lib
tacticmedia/scim-server-bundle
neika-ai/symfony-bundle
mattleads/agent-publishing-bundle
glavweb/framework-bundle
glavweb/extra-bundle
glavweb/api-bundle
glavweb/admin-bundle
adachsoft/api-version-bundle
elsayed85/laravel-api-exceptions
ouhssini/laravel-demo-mode
daworks/ncloud-outbound-mailer-driver
gp247/cms
ignibyte/aic-gates
nexa-merchant/blog
novasa/laravel-language-center
opencage/geocode
adolfoholzer/parameters
livenetworks/ln-starter
shitoudev/permissionmanager