Skip to main content

Official Python SDK for AiondTech Resume Analyser API

Project description

AiondTech Resume Analyser SDK

Official Python SDK for the AiondTech Resume Analyser API.

PyPI version Python Versions License: MIT

Installation

pip install aiondtech

Quick Start

from aiondtech import ResumeAnalyser

# Initialize client
client = ResumeAnalyser(api_key="your-api-key")

# Or use environment variable
# export AIONDTECH_API_KEY="your-api-key"
client = ResumeAnalyser()

# Upload a resume (1 credit)
result = client.resumes.upload("resume.pdf")
print(f"Resume ID: {result.resume_id}")

# Upload and analyze (3 credits)
analysis = client.resumes.upload_and_analyze("resume.pdf")
print(f"Name: {analysis.full_name}")
print(f"Skills: {analysis.skills}")

# Create a job posting (1 credit)
job = client.jobs.create(
    title="Senior Python Developer",
    description="We are looking for an experienced Python developer..."
)
print(f"Job ID: {job.job_id}")

# Compare resume to job (3 credits)
comparison = client.matching.compare(
    resume_id=result.resume_id,
    job_id=job.job_id
)
print(f"Match Score: {comparison.comparison_score}%")
print(f"Reason: {comparison.comparison_reason}")

# Check credit balance (free)
balance = client.credits.balance()
print(f"Remaining: {balance['remaining_credits']}")

API Endpoints

Method Endpoint Credits Description
resumes.upload() POST /external/upload-resume 1 Upload PDF
resumes.upload_and_analyze() POST /external/upload-resume-analyze 3 Upload + AI parsing
resumes.upload_analyze_compare() POST /external/upload-resume-analyze-compare 5 Upload + parse + compare
resumes.analyze() POST /external/analyze-resume-by-id 2 Parse existing resume
resumes.list() GET /external/list-resumes 0 List all resumes
jobs.create() POST /external/create-job 1 Create job posting
jobs.list() GET /external/list-jobs 0 List all jobs
matching.compare() POST /external/compare-resumes 3 Compare resume to job
credits.balance() GET /external/credits/balance 0 Check balance
credits.usage() GET /external/credits/usage 0 View history

Detailed Examples

Upload and Analyze Resume

from aiondtech import ResumeAnalyser

client = ResumeAnalyser(api_key="your-api-key")

# Upload and get structured data
analysis = client.resumes.upload_and_analyze("john_doe_resume.pdf")

print(f"Name: {analysis.full_name}")
print(f"Email: {analysis.email}")
print(f"Skills: {', '.join(analysis.skills)}")
print(f"Experience: {analysis.total_experience}")
print(f"Job Titles: {', '.join(analysis.job_titles)}")

# Access raw parsed data
print(analysis.parsed_data)

Full Recruitment Workflow

from aiondtech import ResumeAnalyser

client = ResumeAnalyser(api_key="your-api-key")

# 1. Create a job posting
job = client.jobs.create(
    title="Senior Python Developer",
    description="""
    Requirements:
    - 5+ years Python experience
    - FastAPI or Django expertise
    - PostgreSQL knowledge
    - AWS experience preferred
    """
)

# 2. Upload and compare multiple resumes
resumes = ["candidate1.pdf", "candidate2.pdf", "candidate3.pdf"]
results = []

for resume_path in resumes:
    result = client.resumes.upload_analyze_compare(
        file_path=resume_path,
        job_id=job.job_id
    )
    results.append({
        "resume_id": result.resume_id,
        "name": result.parsed_data.get("full_name"),
        "score": result.comparison_score,
        "matched": result.matched_keywords,
        "missing": result.missing_keywords
    })

# 3. Rank candidates by score
ranked = sorted(results, key=lambda x: x["score"], reverse=True)

for i, candidate in enumerate(ranked, 1):
    print(f"{i}. {candidate['name']} - {candidate['score']}% match")

Error Handling

from aiondtech import (
    ResumeAnalyser,
    AuthenticationError,
    RateLimitError,
    InsufficientCreditsError,
    ValidationError,
    NotFoundError,
)

client = ResumeAnalyser(api_key="your-api-key")

try:
    result = client.resumes.upload_and_analyze("resume.pdf")
except AuthenticationError:
    print("Invalid API key")
except InsufficientCreditsError as e:
    print(f"Not enough credits. Remaining: {e.credits_remaining}")
except RateLimitError as e:
    print(f"Rate limited. Retry after {e.retry_after} seconds")
except ValidationError as e:
    print(f"Invalid input: {e.message}")
except NotFoundError:
    print("Resource not found")

Using Environment Variables

# Set your API key
export AIONDTECH_API_KEY="your-api-key"

# Optional: Use production URL
export AIONDTECH_BASE_URL="https://api.aiondtech.com"
from aiondtech import ResumeAnalyser

# Client automatically uses environment variables
client = ResumeAnalyser()

Production vs Development

from aiondtech import ResumeAnalyser

# Development (default)
client = ResumeAnalyser(api_key="your-key")
# Uses: https://api.dev.aiondtech.com

# Production
client = ResumeAnalyser(api_key="your-key", production=True)
# Uses: https://api.aiondtech.com

# Custom URL
client = ResumeAnalyser(api_key="your-key", base_url="https://custom.api.com")

Response Models

All API responses are converted to typed Python objects:

# ResumeUploadResult
result.resume_id      # int
result.message        # str
result.credits_used   # int

# ResumeAnalysisResult
analysis.resume_id    # int
analysis.parsed_data  # dict
analysis.full_name    # str (shortcut)
analysis.email        # str (shortcut)
analysis.skills       # List[str] (shortcut)

# ResumeComparisonResult
comparison.resume_id         # int
comparison.job_id            # int
comparison.comparison_score  # float (0-100)
comparison.comparison_reason # str
comparison.matched_keywords  # List[str]
comparison.missing_keywords  # List[str]
comparison.is_good_match     # bool (score >= 70)
comparison.match_level       # str ("excellent", "good", "fair", "poor")

# JobResult
job.job_id       # int
job.title        # str
job.description  # str
job.created_at   # str

Rate Limits

Tier Per Minute Per Day
Starter 50 500
Growth 100 1,000
Enterprise 500 Unlimited

Support

License

MIT License - see LICENSE for details.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

aiondtech-2.0.0.tar.gz (13.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

aiondtech-2.0.0-py3-none-any.whl (12.2 kB view details)

Uploaded Python 3

File details

Details for the file aiondtech-2.0.0.tar.gz.

File metadata

  • Download URL: aiondtech-2.0.0.tar.gz
  • Upload date:
  • Size: 13.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.5

File hashes

Hashes for aiondtech-2.0.0.tar.gz
Algorithm Hash digest
SHA256 d48f92d5f2ad3bb48caa82b090c86de5708662ebcb0a149981ebec744749142e
MD5 4644550e384d8258daf875b20234196c
BLAKE2b-256 7491eeae8f791b5609fac2ddbb1c454671cbd449475ec6ad9226df225044614e

See more details on using hashes here.

File details

Details for the file aiondtech-2.0.0-py3-none-any.whl.

File metadata

  • Download URL: aiondtech-2.0.0-py3-none-any.whl
  • Upload date:
  • Size: 12.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.5

File hashes

Hashes for aiondtech-2.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 b7f201a9411372ac51658a53238583f827a86150436745a390fb82ecc2cb9412
MD5 2d2adbe1012e16031d219016f185b227
BLAKE2b-256 266e6b9442936620942c99ebb00f1d91e9e1ddf9dba336e7fdec633604f79f26

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page