العرض هو خطاب العرض الصادر على طلب. يُصدره فريق التوظيف من التطبيق عند نقل المرشح إلى العرض مع قالب عرض، فيُنشئ جدارون الخطاب بصيغة PDF ويرسله إلى المرشح. استخدم هذه النقاط لقراءة العروض وتنزيل الخطابات إلى نظام الموارد البشرية أو نظام تخطيط الموارد لديك. العروض للقراءة فقط في الواجهة البرمجية.
جميع النقاط تحت /api/v1 وتتطلب مفتاح واجهة برمجية (Authorization: Bearer jdr_live_…) ينشئه مسؤول مساحة العمل من الإعدادات ← التكاملات.
النقاط
| الطريقة والمسار | ما تفعله | الصلاحية |
|---|---|---|
GET /api/v1/offers | عرض العروض (ترقيم بالمؤشر، وupdatedSince) | recruitment.view |
GET /api/v1/offers/{id} | عرض عرض واحد | recruitment.view |
GET /api/v1/offers/{id}/file | تنزيل خطاب العرض | recruitment.view وrecruitment.candidate.contact |
للعرض معرّف طلبه نفسه. والطلب الذي لم يصدر عليه عرض، أو المعرّف من مساحة عمل أخرى، يُعيد 404 not_found.
كائن العرض
| الحقل | النوع | ملاحظات |
|---|---|---|
id، applicationId | نص | معرّف الطلب. |
openingId، positionId، personId | نص | الشاغر والوظيفة والمرشح الخاصة بالطلب. |
templateId | نص أو null | قالب العرض الذي أُنشئ منه الخطاب. |
issuedAt | ISO 8601 أو null | وقت إصدار الخطاب. |
hasFile | قيمة منطقية | ملف الخطاب جاهز؛ يُنشأ بعد النقل إلى العرض بقليل. |
externalRefs | مصفوفة | [{ system, externalId }] روابط إلى أنظمتك. |
createdAt، updatedAt | ISO 8601 |
تنزيل الخطاب
يبث GET /api/v1/offers/{id}/file الملف نفسه مع Content-Disposition: attachment; filename="offer-<id>.pdf". ولا يُعاد موقع التخزين أبداً. والاستجابة 404 not_found ما دام الخطاب قيد الإنشاء.
قد يطبع الخطاب رقم هوية المرشح أو إقامته، لذا يحتاج التنزيل recruitment.candidate.contact إلى جانب recruitment.view. والمفتاح الذي لا يملكها يتلقى 403 forbidden مع details.reason بقيمة candidate_contact_required وdetails.required بقيمة ["recruitment.candidate.contact"]. ويظهر hasFile في كائن العرض لكل مفتاح يقرأ العروض. وتستطيع المفاتيح على مستوى النشر تنزيل الخطابات.
curl -o offer.pdf https://jadiroon.com/api/v1/offers/cmvm6j7ek000qkncrqplvazrv/file \
-H "Authorization: Bearer $JADIROON_KEY"
أحداث خطافات الويب
ليس للعروض أحداث خاصة بها في v1. تابع application.stage_changed عندما تكون stage للطلب OFFERED وhasOffer صحيحة، ثم اقرأ العرض.
الأخطاء
| الحالة والرمز | المعنى |
|---|---|
403 forbidden | المفتاح لا يملك recruitment.view، أو candidate_contact_required عند تنزيل الخطاب. |
404 not_found | لا يوجد عرض بهذا المعرّف في مساحة عملك، أو لم يُنشأ ملف الخطاب بعد. |
مثال
curl https://jadiroon.com/api/v1/offers/cmvm6j7ek000qkncrqplvazrv \
-H "Authorization: Bearer $JADIROON_KEY"
{
"id": "cmvm6j7ek000qkncrqplvazrv",
"applicationId": "cmvm6j7ek000qkncrqplvazrv",
"openingId": "cmvm6inad0002kncr1pytpf2x",
"positionId": "cmvikf8270086knoq85hjhu3u",
"personId": "cmvm6it4n000dkncrplgeongm",
"templateId": "cmvk1o2t50003kn9xq4w6e8rt",
"issuedAt": "2026-10-24T09:12:34.999Z",
"hasFile": true,
"externalRefs": [],
"createdAt": "2026-10-24T09:12:34.999Z",
"updatedAt": "2026-10-24T09:12:35.017Z"
}