العروض

للمسؤولين

العرض هو خطاب العرض الصادر على طلب. يُصدره فريق التوظيف من التطبيق عند نقل المرشح إلى العرض مع قالب عرض، فيُنشئ جدارون الخطاب بصيغة 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قالب العرض الذي أُنشئ منه الخطاب.
issuedAtISO 8601 أو nullوقت إصدار الخطاب.
hasFileقيمة منطقيةملف الخطاب جاهز؛ يُنشأ بعد النقل إلى العرض بقليل.
externalRefsمصفوفة[{ system, externalId }] روابط إلى أنظمتك.
createdAt، updatedAtISO 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"
}