How it works Features Pricing In-house teams API Log in Start free
Aptly Intelligence API

Your ATS keeps the seat.
Aptly does the thinking.

Add AI CV screening and candidate scoring to the system you already run. For larger agencies and corporates on Bullhorn, Salesforce, Vincere, or anything with an API.

Under 5s
per candidate
200
CVs per request
Two modes
score or sync
Request / Response
POST https://api.aptly.pro/api/v1/screen X-API-Key: aptly_your_key_here Content-Type: application/json { "job_spec": "Senior Python Developer...", "candidates": [ { "candidate_ref": "your-internal-id-001", "cv_text": "7 years Python experience..." } ], "webhook_url": "https://yourapp.com/webhook" } → Returns job_id immediately. Results ready in seconds.
The problem

You do not need a new ATS. You need better answers inside the one you have.

Your ATS holds the records. What it does not do is read 200 CVs against a spec and tell you, with reasoning, which twelve deserve a human's time. Much of what lands in your inbox now was written by a model, and it all looks equally credible on paper. Aptly reads it properly, behind your existing screens, through a REST API.

Two modes

Two modes. Use either, or both.

Both modes authenticate with the same API key and share the same scoring engine. The difference is what gets written, and how long it lives.

Mode A

Stateless scoring

Submit a job spec and up to 200 CVs in one request. Processing runs in the background. Pull results or receive them by webhook.

Each candidate comes back with a 0 to 100 score, a verdict, the specific reasons they fit, and the specific gaps to probe at interview. Structured JSON, ready to write into your own fields.

Nothing is stored beyond the job. Results are retained for 72 hours, then purged. Your ATS remains the system of record.

Mode B

Integration sync

Push a job and its candidates from your ATS into Aptly. Your recruiters run screening, references, video introductions, and scorecards in Aptly, and you pull the intelligence back into your own records: scores, verdicts, reasoning, and artifact availability, keyed to your own ATS ids.

Records persist like any data created in the app.

The output

What you get on every candidate.

Every scored candidate returns the same predictable structure. No prompt engineering on your side required.

{ "candidate_ref": "your-internal-id", "score": 84, "verdict": "Strong shortlist", "match_reasons": [ "7 years Python meets the senior band", "FastAPI experience directly matches stack", "Led distributed teams of 6+ engineers" ], "gaps": [ "No AWS infrastructure experience mentioned", "No mention of system design at scale" ] }
score + verdict integer 0 to 100, enum
An absolute score against the spec, with a plain-English verdict: Strong shortlist, Borderline, or Do not progress.
match_reasons string[]
Up to 4 reasons this candidate fits, grounded in the CV, not generic praise. Every reason references something the candidate actually wrote.
gaps string[]
Up to 3 specific gaps, written to be used as interview prompts. Something concrete for your team to probe or act on.
Richer fields in sync mode
Integration sync results additionally carry a one-line score summary, AI-CV detection with a reason, scoring confidence, and pipeline stage, keyed to your ATS ids. See the API docs.
Built for production

The unglamorous parts, done properly.

The things you check before you let a third party near your pipeline.

Async by default
Submit a batch, get a job id back immediately. Poll for results or receive them by webhook, with documented retries if your endpoint is down.
Predictable limits
Per-organisation monthly quotas with clean 429 responses your integration can act on, and a usage dashboard so finance is never surprised.
Separate environments
Up to 5 API keys per organisation, so staging and production never share credentials and a leaked key is revoked without downtime.
EU-hosted, GDPR-ready
Hosted in Frankfurt with GDPR processor terms and a DPA available. Your data is never used to train models.
Ready-made tooling
A Postman collection and a .http request kit, both linked from the API docs, so your first scored candidate is minutes away.
Pricing

Pay for what you screen.

Every tier includes both modes. Unused CVs expire monthly. No rollover.

Build
$199/mo
Up to 1,250 CVs per month
  • Both modes included
  • Up to 200 CVs per request
  • Webhook delivery
  • 5 API keys per organisation
  • Standard support
Contact us →
Enterprise
Custom
Custom volume
  • Both modes included
  • Custom CV volume and pricing
  • SLA with uptime guarantee
  • Annual invoicing
  • Dedicated onboarding
  • Dedicated support
Contact us →

API plans require an active Aptly subscription. API access is enabled per organisation; email hello@aptly.pro and we will set you up, usually same day.

Common questions

Everything you need to know.

If something is not covered here, email us at hello@aptly.pro.

What is the difference between the two modes?
Stateless scoring (POST /api/v1/screen) writes nothing into your Aptly workspace, and results are purged after 72 hours. Integration sync (the /api/v1/ats/ endpoints) creates jobs, candidates, and applications in your workspace, which persist until deleted in the app.
What format do CVs need to be in?
For stateless scoring, plain text only; your application extracts text from PDFs or Word documents before submitting. Integration sync also accepts the original CV file as base64 (PDF or Word), and Aptly extracts the text on receipt.
How long do results take?
Single candidates typically score in 3 to 5 seconds. Batches of 50 candidates usually complete in under 60 seconds. Processing is parallel so larger batches do not scale linearly.
What happens to candidate data?
For stateless screening jobs, results are stored for 72 hours then permanently purged, and we do not retain CV text beyond what is required to generate the score. Records created through integration sync persist in your Aptly workspace until deleted in the app. In neither mode is your data used to train models.
Can I send duplicate candidate_ref values?
Not within a single request. All candidate_ref values must be unique per submission. Across separate requests to different jobs, the same ref is fine.
What is the maximum batch size?
200 candidates per request. For larger volumes, split into multiple requests and process them in parallel. There is no limit on the number of concurrent requests.
Do I need an Aptly account to use the API?
Yes. The Intelligence API is an add-on to the Aptly platform, not a standalone product. Contact us to set up API access for your account.
How does webhook delivery work?
If you provide a webhook_url in your request, we POST the completed results to that URL when processing finishes. We retry 3 times with exponential backoff if your endpoint is unavailable.
Is there a free tier or trial?
There is no standalone free tier for the API, but all Aptly accounts include the full screening UI which uses the same underlying scoring engine. This lets you evaluate quality before committing to the API product.

Talk to a person, not a funnel.

Email hello@aptly.pro with your volumes and your ATS, and you will be talking to the founder, who has worked in recruitment since 2013 and built on Bullhorn and Salesforce for agencies like yours.

Talk to us →