sharpapi / laravel-resume-job-match-score
AI Resume & Job Description Matching for Laravel powered by SharpAPI.com
Installs: 13
Dependents: 0
Suggesters: 0
Security: 0
Stars: 4
Watchers: 0
Forks: 0
Open Issues: 0
pkg:composer/sharpapi/laravel-resume-job-match-score
Requires
- php: ^8.1
- ext-json: *
- guzzlehttp/guzzle: ^7.0
- laravel/framework: ^9.0|^10.0|^11.0|^12.0
- sharpapi/php-core: ^1.0.2
- spatie/url: ^2.4
Requires (Dev)
- laravel/pint: ^1.0
- pestphp/pest: ^2.0
- phpstan/phpstan: ^1.10
README
Resume/CV & Job Description Compatibility Scoring API for Laravel
🎯 Instantly evaluate how well a candidate's resume aligns with your job descriptions — powered by SharpAPI AI.
Check the full documentation on the Resume/CV Job Match Scoring API page.
Requirements
- PHP >= 8.1
- Laravel >= 9.0
Installation
composer require sharpapi/laravel-resume-job-match-score --prefer-dist
Then, in your .env file:
SHARP_API_KEY=your_api_key_here
Optionally, publish the config if you want to tweak the default settings:
php artisan vendor:publish --tag=sharpapi-resume-job-match-score
What it does
This package sends a resume file and a job description to the SharpAPI AI endpoint and returns a structured JSON scoring output based on 20+ compatibility factors:
- Skills match
- Experience and industry relevance
- Education and certifications
- Soft skills, language, cultural fit
- Stability score and more
Perfect for recruiters, ATS platforms, and job-matching tools.
Usage
Inject the ResumeMatchScoreService into your controller or command and call matchResumeToJob():
use SharpAPI\ResumeMatchScore\ResumeMatchScoreService; use GuzzleHttp\Exception\GuzzleException; $resumePath = storage_path('resume.pdf'); // make sure this file exists $jobDescription = 'We are hiring a PHP Developer with Laravel experience…'; $language = 'English'; $service = new ResumeMatchScoreService(); try { $statusUrl = $service->matchResumeToJob( $resumePath, $jobDescription, $language // optional – English is default ); $result = $service->fetchResults($statusUrl)->toArray(); print_r($result); } catch (GuzzleException $e) { // Handle SharpAPI or network errors echo $e->getMessage(); }
Example Response
{
  "data": {
    "type": "api_job_result",
    "id": "5a113c4d-38e9-43e5-80f4-ec3fdea3420e",
    "attributes": {
      "status": "success",
      "type": "hr_resume_job_match_score",
      "result": {
        "match_scores": {
          "overall_match": 88,
          "skills_match": 92,
          "experience_match": 85,
          "education_match": 80,
          "certifications_match": 70,
          "job_title_relevance": 84,
          "industry_experience_match": 75,
          "project_experience_match": 78,
          "technical_stack_match": 90,
          "soft_skills_match": 88,
          "methodologies_match": 82,
          "language_proficiency_match": 95,
          "location_preference_match": 100,
          "remote_work_flexibility": 90,
          "certifications_training_relevance": 70,
          "years_experience_weighting": 80,
          "recent_role_relevance": 83,
          "management_experience_match": 60,
          "cultural_fit_potential": 85,
          "stability_score": 77
        },
        "explanations": {
          "skills_match": "Candidate lists React, Node.js, and JavaScript with strong proficiency.",
          "experience_match": "5+ years experience in a similar role within a tech startup.",
          "education_match": "Bachelor's degree in Computer Science aligns with job requirements.",
          "certifications_match": "Has partial certification coverage (e.g., Scrum Master).",
          "language_proficiency_match": "Fluent in English as required."
        }
      }
    }
  }
}
Do you think our API is missing some obvious functionality?
Changelog
Please see CHANGELOG for more information on what has changed recently.
Credits
- A2Z WEB LTD
- Dawid Makowski
- Boost your Laravel AI capabilities!
License
The MIT License (MIT). Please see License File for more information.
Social Media
🚀 For the latest news, tutorials, and case studies, don't forget to follow us on: