ðŠŠ OCR āđāļāļāļŠāļēāļĢāļāļĢāļ°āļ§āļąāļāļīāļāļēāļĢāļāļģāļāļēāļ (CV) āđāļĨāļ°āļ§āļīāđāļāļĢāļēāļ°āļŦāđāļāļĢāļ°āđāļĄāļīāļāļāļļāļāļ āļēāļāļāļąāļāđāļāļĄāļąāļāļīāļāđāļ§āļĒ AI
API āļāļĩāđāļāļĢāļ°āļĄāļ§āļĨāļāļĨāđāļāļāļŠāļēāļĢ Curriculum Vitae (CV) (PDF, JPG, PNG) āđāļĨāļ°āļāļķāļāļāđāļāļĄāļđāļĨāļāļĩāđāļĄāļĩāđāļāļĢāļāļŠāļĢāđāļēāļ āļĢāļ§āļĄāļāļķāļāļĢāļēāļĒāļĨāļ°āđāļāļĩāļĒāļāļŠāđāļ§āļāļāļļāļāļāļĨ āļāļĢāļ°āļ§āļąāļāļīāļāļēāļĢāļĻāļķāļāļĐāļē āļāļĢāļ°āļŠāļāļāļēāļĢāļāđāļāļģāļāļēāļ āđāļĨāļ°āļāļąāļāļĐāļ°āļāđāļēāļāđ
āļāđāļāļāļāļēāļĢāļāļĢāļ°āđāļĄāļīāļ CV āđāļāļĒāđāļĄāđāļāđāļāļāđāļāļĩāļĒāļāđāļāđāļ? āļĨāļāļāđāļāđ āđāļāļĢāļ·āđāļāļāļĄāļ·āļāļāļĢāļ°āđāļĄāļīāļ CV āļāļĢāļĩ - āđāļĄāđāļāđāļāļāđāļāđ API key āļĢāļąāļāļāļĨāļĨāļąāļāļāđāļāļąāļāļāļĩāļāļĢāđāļāļĄāļāļ°āđāļāļāļĢāļēāļĒāļŠāđāļ§āļ āļāļĢāļ§āļāļŠāļāļ ATS āđāļĨāļ°āļāļģāđāļāļ°āļāļģāđāļāļāļēāļĢāļāļĢāļąāļāļāļĢāļļāļ
āđāļĢāļēāđāļāđāđāļāļīāđāļĄāļāļĩāđāļāļāļĢāđ āļāļēāļĢāļāļĢāļ°āđāļĄāļīāļ CV āđāļāļāļāļĢāļāļ§āļāļāļĢāđāļāļ·āđāļāļāđāļ§āļĒāļāļđāđāļŦāļēāļāļēāļāļāļĢāļąāļāļāļĢāļļāļāđāļĢāļāļđāđāļĄāđ:
- āļāļ°āđāļāļāļĢāļ§āļĄ (0-100) āļāļĢāđāļāļĄāļĢāļēāļĒāļĨāļ°āđāļāļĩāļĒāļāđāļāđāļĨāļ°āļŠāđāļ§āļ
- āļāļĢāļ§āļāļŠāļāļāļāļ§āļēāļĄāđāļāđāļēāļāļąāļāđāļāđāļāļąāļ ATS - āđāļŦāđāđāļāđāđāļāļ§āđāļē CV āļāļ āļāļāļļāļāļāđāļēāļāļĢāļ°āļāļāļāļąāļāļāļĢāļāļāļāļąāļāđāļāļĄāļąāļāļī
- āļ§āļīāđāļāļĢāļēāļ°āļŦāđāļāļļāļāđāļāđāļāđāļĨāļ°āļāļļāļāļāđāļāļ
- āļāļģāđāļāļ°āļāļģāļāļēāļĢāļāļĢāļąāļāļāļĢāļļāļāļāļēāļĄāļĨāļģāļāļąāļāļāļ§āļēāļĄāļŠāļģāļāļąāļ āļāļĢāđāļāļĄāļāļąāļ§āļāļĒāđāļēāļ
- āļāļĩāļĒāđāđāļ§āļīāļĢāđāļāļāļĩāđāđāļāļ°āļāļģ āļŠāļģāļŦāļĢāļąāļāļāļēāļĢāļāļąāļāļāļđāđāļāļēāļāļāļĩāđāļāļĩāļāļķāđāļ
- āđāļāļ°āļāļģāļāļļāļāļŠāļēāļŦāļāļĢāļĢāļĄāļāļĩāđāđāļŦāļĄāļēāļ°āļŠāļĄ
āļĨāļāļāđāļāđ API Demoâ
āđāļāđ demo āđāļāļāđāļāđāļāļāļāļāļĩāđāđāļāļ·āđāļāļāļāļŠāļāļ API āđāļĨāļ·āļāļ API key āļāļąāļāđāļŦāļĨāļāđāļāļāļŠāļēāļĢ CV āđāļĨāļ°āļāļđāļāļĨāļĨāļąāļāļāđ JSON āļāļīāļ
āļāļāļĨāļāļāđāļāđ AI Demo
āđāļāđāļēāļŠāļđāđāļĢāļ°āļāļāļŦāļĢāļ·āļāļŠāļĢāđāļēāļāļāļąāļāļāļĩāļāļĢāļĩāđāļāļ·āđāļāđāļāđāļāļēāļ AI Demo āđāļĨāļ°āļŠāļģāļĢāļ§āļ API āļāļĩāđāļāļĢāļāļāļĨāļąāļāļāļāļāđāļĢāļē
āļĢāļąāļ 50 āđāļāļĢāļāļīāļāļāļĢāļĩ (IC) āđāļĄāļ·āđāļāļŠāļĄāļąāļāļĢāļŠāļĄāļēāļāļīāļ!
āđāļāļĢāđāļĄāļāļąāļāļŦ āļĄāļāđāļāļ 31 āļāļąāļāļ§āļēāļāļĄ 2568
API Endpointsâ
| Endpoint | Method | āļāļģāļāļāļīāļāļēāļĒ | āļĢāļēāļāļē |
|---|---|---|---|
/v3/store/ocr/curriculum-vitae/ocr/cv, /ocr/cv-port | POST | āļāļķāļāļāđāļāļĄāļđāļĨāļāļĩāđāļĄāļĩāđāļāļĢāļāļŠāļĢāđāļēāļāļāļēāļ CV | 1 IC āļāđāļāļŦāļāđāļē |
āļāļąāļ§āļāļĒāđāļēāļāđāļāđāļâ
āļāļąāļ§āļāļĒāđāļēāļ CVâ
Request:â
curl -X POST https://api.iapp.co.th/ocr/cv
-H "apikey: YOUR_API_KEY"
-F "file=@/path/to/sample_cv_2.jpg"
Response:â
{
"personalInformation": {
"name": "āļāļēāļāļŠāļēāļ§āļāļļāđāļĢāļ§āļĢāļĢāļ āđāļāļĩāļĒāļĄāļāļļāļāļĻāļĢāļĩ",
"address": "317 āļ.āļāļāļĢāļ§āļĢāļĢāļāđ āđāļāļ§āļāļ§āļąāļāđāļŠāļĄ āļāļąāļŠ āđāļāļāļāđāļāļĄāļāļĢāļēāļĻāļąāļāļĢāļđāļāđāļēāļĒ āļāļāļĄ. 10100",
"phoneNumbers": ["082-996-5168"],
"email": "uraiwan91790@gmail.com",
"religion": "āļāļļāļāļ",
"nationality": "āđāļāļĒ",
"age": "43"
},
"education": [
{
"school": "āđāļĢāļāđāļĢāļĩāļĒāļāļĢāļēāļāļ§āļīāļāļīāļ āļĄāļąāļāļĒāļĄ",
"level": "āļĄāļąāļāļĒāļĄāļĻāļķāļāļĐāļēāļāļĩāļāļĩāđ 6",
"year": "2538-2540"
}
],
"workExperience": [
{
"title": "Recruitment officer",
"company": "Apex medical center",
"startDate": "May 2022",
"endDate": "December 2022",
"roles": ["āļŠāļĢāļĢāļŦāļēāļāļāļąāļāļāļēāļāļāļģāđāļŦāļāđāļ consultant, beauty therapist, nurse"]
},
{
"title": "Recruitment officer",
"company": "GMI Market",
"startDate": "April 2022",
"endDate": "June 2022",
"roles": ["āļŠāļĢāļĢāļŦāļēāļāļļāļāļĨāļēāļāļĢ āļāļģāđāļŦāļāđāļ sale āđāļāļĩāđāļĒāļ§āļāļąāļāļāļēāļĢāđāļāļĢāļāđāļāļāļĢāđ"]
},
{
"title": "Senior recruitment",
"company": "āļāļĢāļīāļĐāļąāļ āļĢāļąāļāļĐāļēāļāļ§āļēāļĄāļāļĨāļāļāļ āļąāļĒ RGH",
"startDate": "January 2022",
"endDate": "March 2022",
"roles": ["āļŠāļĢāļĢāļŦāļēāļāļāļąāļāļāļēāļāļāļģāđāļŦāļāđāļ āļĢāļāļ .,āđāļĄāđāļāđāļēāļ"]
}
],
"skillsAndQualifications": {
"languages": {
"english": "āļāļđāļ āđāļāļĩāļĒāļ āļŠāļ·āđāļāļŠāļēāļĢ āļ āļēāļĐāļēāļāļąāļāļāļĪāļĐāđāļāđāđāļāđāļāļāļĒāđāļēāļāļāļĩ"
},
"computerSkills": ["āļŠāļēāļĄāļēāļĢāļāđāļāđāđāļāļĢāđāļāļāļĄāļāļāļĄāļāļīāļ§āđāļāļāļĢāđ"],
"communicationSkills": []
},
"possibleSkillAndQualificationsByAI": [
"Recruiting",
"Applicant Tracking Systems (ATS)",
"Interviewing",
"Talent Acquisition",
"Onboarding",
"HRIS",
"Performance Management",
"Employee Relations",
"Sales",
"Trading",
"Security",
"Customer Service",
"Teamwork",
"Communication"
],
"additionalInformation": {
"customerServiceSkills": null,
"assessment": null
}
}
āļāļļāļāļŠāļĄāļāļąāļāļīâ
-
āļāļēāļĢāļāļĢāļ°āļĄāļ§āļĨāļāļĨ CV: āļāļķāļāļāđāļāļĄāļđāļĨāļāļĩāđāļĄāļĩāđāļāļĢāļāļŠāļĢāđāļēāļāļāļēāļ CV āļĢāļ§āļĄāļāļķāļāļĢāļēāļĒāļĨāļ°āđāļāļĩāļĒāļāļŠāđāļ§āļāļāļļāļāļāļĨ āļāļĢāļ°āļ§āļąāļāļīāļāļēāļĢāļĻāļķāļāļĐāļē āļāļĢāļ°āļŠāļāļāļēāļĢāļāđāļāļģāļāļēāļ āļāļąāļāļĐāļ° āđāļĨāļ°āļāļąāļāļĐāļ°āļāļĩāđāđāļāđāļāđāļāđāļāđāļāļĩāđ AI āđāļāļ°āļāļģ
-
āļāļēāļĢāļāļĢāļ°āđāļĄāļīāļāļāđāļ§āļĒ AI (āđāļŦāļĄāđ): āđāļŦāđāļāļēāļĢāļ§āļīāđāļāļĢāļēāļ°āļŦāđ CV āļāļĒāđāļēāļāļāļĢāļāļāđāļ§āļ:
- āļāļ°āđāļāļāļĢāļ§āļĄāđāļĨāļ°āļāļ°āđāļāļāđāļĒāļāļāļēāļĄāļŠāđāļ§āļ
- āļāļĢāļ§āļāļŠāļāļāļāļ§āļēāļĄāđāļāđāļēāļāļąāļāđāļāđāļāļąāļ ATS (āļĢāļ°āļāļāļāļąāļāļāļĢāļāļāļāļđāđāļŠāļĄāļąāļāļĢāļāļąāļāđāļāļĄāļąāļāļī)
- āļĢāļ°āļāļļāļāļļāļāđāļāđāļāđāļĨāļ°āļāļļāļāļāđāļāļ
- āļāļģāđāļāļ°āļāļģāļāļēāļĢāļāļĢāļąāļāļāļĢāļļāļāļāļēāļĄāļĨāļģāļāļąāļāļāļ§āļēāļĄāļŠāļģāļāļąāļāļāļĢāđāļāļĄāļāļąāļ§āļāļĒāđāļēāļ
- āļāļĩāļĒāđāđāļ§āļīāļĢāđāļāļāļĩ āđāđāļāļ°āļāļģāļŠāļģāļŦāļĢāļąāļāļāļēāļĢāļāļąāļāļāļđāđāļāļēāļāļāļĩāđāļāļĩāļāļķāđāļ
- āđāļāļ°āļāļģāļāļļāļāļŠāļēāļŦāļāļĢāļĢāļĄāļāļĩāđāđāļŦāļĄāļēāļ°āļŠāļĄ
-
āļĢāļđāļāđāļāļāļāļĩāđāļĢāļāļāļĢāļąāļ: āļĢāļąāļāđāļāļĨāđ PDF, JPG, PNG āđāļĨāļ° JPEG
āļāļĨāļĨāļąāļāļāđāļāļēāļĢāļāļĢāļ°āđāļĄāļīāļ CVâ
API āļāļ°āļŠāđāļāļāļĨāļąāļāļāļāļāđāļāđāļāļāđ evaluation āļāļĢāđāļāļĄāļāļēāļĢāļ§āļīāđāļāļĢāļēāļ°āļŦāđāđāļāļĒāļĨāļ°āđāļāļĩāļĒāļ:
āļŦāļĄāļ§āļāļŦāļĄāļđāđāļāļ°āđāļāļâ
| āļŦāļĄāļ§āļāļŦāļĄāļđāđ | āļāļģāļāļāļīāļāļēāļĒ |
|---|---|
| overall | āļāļ°āđāļāļāļāļļāļāļ āļēāļ CV āđāļāļĒāļĢāļ§āļĄ (0-100) |
| personalInfo | āļāļ§āļēāļĄāļāļĢāļāļāđāļ§āļāļāļāļāļāđāļāļĄāļđāļĨāļāļīāļāļāđāļ |
| education | āļāļēāļĢāļāļģāđāļŠāļāļāļāļĢāļ°āļ§āļąāļāļīāļāļēāļĢāļĻāļķāļāļĐāļē |
| workExperience | āļāļĢāļ°āļ§āļąāļāļīāļāļēāļĢāļāļģāļāļēāļāļāļĢāđāļāļĄāļāļĨāļāļēāļ |
| skills | āļāļēāļĢāļāļąāļāļĢāļ°āđāļāļĩāļĒāļāđāļĨāļ°āļāļ§āļēāļĄāđāļāļĩāđāļĒāļ§āļāđāļāļ āļāļāļāļāļąāļāļĐāļ° |
āļāļīāļĨāļāđāļāļēāļĢāļāļĢāļ°āđāļĄāļīāļâ
{
"evaluation": {
"scores": {
"overall": 72,
"personalInfo": { "score": 85, "feedback": "..." },
"education": { "score": 70, "feedback": "..." },
"workExperience": { "score": 65, "feedback": "..." },
"skills": { "score": 75, "feedback": "..." }
},
"experienceLevel": "mid",
"totalYearsOfExperience": 6,
"atsCompatibility": {
"score": 70,
"issues": ["āđāļĄāđāļĄāļĩāļāļĩāļĒāđāđāļ§āļīāļĢāđāļāđāļāļāļēāļ°āļāļēāļ", "..."],
"suggestions": ["āđāļāļīāđāļĄāļāļĩāļĒāđāđāļ§āļīāļĢāđāļāđāļāļāļēāļ°āļāļļāļāļŠāļēāļŦāļāļĢāļĢāļĄ", "..."]
},
"strengths": ["āļāļ§āļēāļĄāļāđāļēāļ§āļŦāļāđāļēāđāļāļāļēāļāļĩāļāļāļĩāđāļāļąāļāđāļāļ", "..."],
"weaknesses": ["āļāļēāļāļāļĨāļāļēāļāļāļĩāđāļ§āļąāļāđāļāđ", "..."],
"missingSections": ["āļŠāļĢāļļāļāļāļĢāļ°āļ§āļąāļāļī", "āđāļāļĢāļąāļāļĢāļāļ", "..."],
"improvements": [
{
"section": "workExperience",
"priority": "high",
"issue": "āļāļģāļāļāļīāļāļēāļĒāļāļēāļāļāļēāļāļāļĨāļāļēāļāļāļĩāđāļ§āļąāļāđāļāđ",
"suggestion": "āđāļāļīāđāļĄāļāļąāļ§āđāļĨāļāđāļĨāļ°āđāļāļāļĢāđāđāļāđāļāļāđāđāļāļāļēāļ°",
"example": "āļāļģāļāļĩāļĄ 8 āļāļ āļāļĢāļĢāļĨāļļāđāļāđāļēāļŦāļĄāļēāļĒāļĢāļēāļĒāđāļāļĢāļĄāļēāļŠ 125%"
}
],
"suggestedKeywords": ["āļāļēāļĢāđāļāļīāļāđāļāļāļāļāļĢāļēāļĒāđāļāđ", "āļāļēāļĢāļāļąāļāļāļēāļĢ pipeline", "..."],
"industryFitSuggestions": ["āļāļēāļĢāļāļĢāļīāļŦāļēāļĢāļāļēāļĢāļāļēāļĒ", "āļāļēāļĢāļāļąāļāļāļēāļāļļāļĢāļāļīāļ", "..."],
"executiveSummary": "CV āļāļĩāđ āļāļģāđāļŠāļāļāļāļđāđāđāļāļĩāđāļĒāļ§āļāļēāļāļĢāļ°āļāļąāļāļāļĨāļēāļ..."
}
}
āļāļąāļ§āļāļĒāđāļēāļāđāļāđāļâ
Curlâ
curl -X POST https://api.iapp.co.th/v3/store/ocr/curriculum-vitae \
-H "apikey: YOUR_API_KEY" \
-F "file=@/path/to/file.jpg"
Pythonâ
import requests
url = "https://api.iapp.co.th/ocr/cv"
payload = {}
files=[
('file',('sample_cv_2.jpg',open('sample_cv_2.jpg','rb'),'application/pdf'))
]
headers = {"apikey": "YOUR_API_KEY"}
response = requests.request("POST", url, headers=headers, data=payload, files=files)
print(response.text)
JavaScriptâ
const axios = require("axios")
const FormData = require("form-data")
const fs = require("fs")
let data = new FormData()
data.append("file", fs.createReadStream("sample_cv_2.jpg"))
let config = {
method: "post",
maxBodyLength: Infinity,
url: "https://api.iapp.co.th/ocr/cv",
headers: {
apikey: "YOUR_API_KEY",
...data.getHeaders(),
},
data: data,
}
axios
.request(config)
.then((response) => {
console.log(JSON.stringify(response.data))
})
.catch((error) => {
console.log(error)
})
PHPâ
<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => 'https://api.iapp.co.th/ocr/cv',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS => array('file'=> new CURLFILE('sample_cv_2.jpg')),
CURLOPT_HTTPHEADER => array(
'apikey: YOUR_API_KEY'
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
Swiftâ
let parameters = [
[
"key": "file",
"src": "sample_cv_2.jpg",
"type": "file"
]] as [[String: Any]]
let boundary = "Boundary-\(UUID().uuidString)"
var body = Data()
var error: Error? = nil
for param in parameters {
if param["disabled"] != nil { continue }
let paramName = param["key"]!
body += Data("--\(boundary)\r\n".utf8)
body += Data("Content-Disposition:form-data; name=\"\(paramName)\"".utf8)
if param["contentType"] != nil {
body += Data("\r\nContent-Type: \(param["contentType"] as! String)".utf8)
}
let paramType = param["type"] as! String
if paramType == "text" {
let paramValue = param["value"] as! String
body += Data("\r\n\r\n\(paramValue)\r\n".utf8)
} else {
let paramSrc = param["src"] as! String
let fileURL = URL(fileURLWithPath: paramSrc)
if let fileContent = try? Data(contentsOf: fileURL) {
body += Data("; filename=\"\(paramSrc)\"\r\n".utf8)
body += Data("Content-Type: \"content-type header\"\r\n".utf8)
body += Data("\r\n".utf8)
body += fileContent
body += Data("\r\n".utf8)
}
}
}
body += Data("--\(boundary)--\r\n".utf8);
let postData = body
var request = URLRequest(url: URL(string: "https://api.iapp.co.th/ocr/cv")!,timeoutInterval: Double.infinity)
request.addValue("YOUR_API_KEY", forHTTPHeaderField: "apikey")
request.addValue("multipart/form-data; boundary=\(boundary)", forHTTPHeaderField: "Content-Type")
request.httpMethod = "POST"
request.httpBody = postData
let task = URLSession.shared.dataTask(with: request) { data, response, error in
guard let data = data else {
print(String(describing: error))
return
}
print(String(data: data, encoding: .utf8)!)
}
task.resume()
Kotlinâ
val client = OkHttpClient()
val mediaType = "text/plain".toMediaType()
val body = MultipartBody.Builder().setType(MultipartBody.FORM)
.addFormDataPart("file","sample_cv_2.jpg",
File("sample_cv_2.jpg").asRequestBody("application/octet-stream".toMediaType()))
.build()
val request = Request.Builder()
.url("https://api.iapp.co.th/ocr/cv")
.post(body)
.addHeader("apikey", "YOUR_API_KEY")
.build()
val response = client.newCall(request).execute()
Javaâ
OkHttpClient client = new OkHttpClient().newBuilder()
.build();
MediaType mediaType = MediaType.parse("text/plain");
RequestBody body = new MultipartBody.Builder().setType(MultipartBody.FORM)
.addFormDataPart("file","sample_cv_2.jpg",
RequestBody.create(MediaType.parse("application/octet-stream"),
new File("sample_cv_2.jpg")))
.build();
Request request = new Request.Builder()
.url("https://api.iapp.co.th/ocr/cv")
.method("POST", body)
.addHeader("apikey", "YOUR_API_KEY")
.build();
Response response = client.newCall(request).execute();
Dartâ
var headers = {
'apikey': 'YOUR_API_KEY'
};
var request = http.MultipartRequest('POST', Uri.parse('https://api.iapp.co.th/ocr/cv'));
request.files.add(await http.MultipartFile.fromPath('file', 'sample_cv_2.jpg'));
request.headers.addAll(headers);
http.StreamedResponse response = await request.send();
if (response.statusCode == 200) {
print(await response.stream.bytesToString());
}
else {
print(response.reasonPhrase);
}
āļĢāļēāļāļēâ
| āļāļ·āđāļāļāļĢāļīāļāļēāļĢ AI API | Endpoint | IC āļāđāļāļŦāļāđāļē | On-Premise |
|---|---|---|---|
| API āļāļķāļāļāđāļāļĄāļđāļĨ CV āļāđāļ§āļĒ AI āđāļĨāļ°āļāđāļāļĄāļđāļĨ | iapp_cv_ocr | 1 IC/āļŦāļāđāļē | āļāļīāļāļāđāļ |