How File Upload Works
- Prepare an XML file using the supported schema.
- Upload via dashboard or programmatic endpoint.
- Processing starts immediately after upload.
- Jobs are deduplicated by
reference_number. - Upload history records jobs added, skipped, and errors.
Programmatic Upload (Example)
Raw XML body:
curl -X POST \
"https://<project-id>.supabase.co/functions/v1/upload-feed-file?filename=jobs-feb.xml" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/xml" \
--data-binary @jobs.xml
Multipart form upload:
curl -X POST \
"https://<project-id>.supabase.co/functions/v1/upload-feed-file" \
-H "Authorization: Bearer YOUR_API_KEY" \
-F "file=@jobs.xml" \
-F "feed_configuration_id=optional-feed-config-uuid"
Supported XML Schema
Your uploaded XML file should follow the same schema as hosted XML feeds. Here is a minimal example:
<source>
<job>
<title>Registered Nurse</title>
<reference_number>RN-2024-001</reference_number>
<company>Acme Health</company>
<description>Full job description here...</description>
<city>Austin</city>
<state>TX</state>
<country>US</country>
<postal_code>78701</postal_code>
<salary>$85,000 - $95,000</salary>
<job_type>Full-Time</job_type>
<category>Healthcare</category>
<job_url>https://example.com/jobs/rn-001</job_url>
<indeed_sponsor_value>$50.00</indeed_sponsor_value>
</job>
</source>
Optional fields include: branch, owner_id, address, notification_email, is_priority, statewide, nationwide, board_username, board_password, job_board, indeed_sponsor_value, and more. See the XML Feed docs for the full list.
File Requirements
- Format:
.xml - Max size: 20 MB
- Encoding: UTF-8 declared in XML header
- Content-Type:
application/xmlortext/xml