sharpapi/laravel-resume-job-match-score

AI Resume & Job Description Matching for Laravel powered by SharpAPI.com

v1.0.0 2025-05-01 11:17 UTC

This package is auto-updated.

Last update: 2025-05-01 11:19:46 UTC


README

SharpAPI GitHub cover

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.

Latest Version on Packagist Total Downloads

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

License

License: MIT

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: