A RESTful API for submitting job opportunities directly through this portfolio site
This API allows recruiters, colleagues, and connections to submit job opportunities directly. It's designed to be simple, open, and easy to integrate into your workflows.
https://noconsonants.com/api/
Try out the API right here in your browser!
Fetch all submitted job opportunities:
Submit a new job opportunity for review.
{
"title": "Senior Software Engineer",
"company": "Example Corp",
"url": "https://example.com/careers/senior-engineer",
"description": "Looking for a Django expert with 5+ years experience...",
"submitted_by": "recruiter@example.com"
}
| Field | Type | Required | Description |
|---|---|---|---|
title |
string | Yes | Job title or position name |
company |
string | Yes | Company or organization name |
url |
string (URL) | Yes | Link to the job posting |
description |
string | No | Additional notes or context |
submitted_by |
string (email) | Yes | Email address of submitter |
{
"message": "Job submission received successfully! Thank you for thinking of me.",
"data": {
"title": "Senior Software Engineer",
"company": "Example Corp",
"url": "https://example.com/careers/senior-engineer",
"description": "Looking for a Django expert...",
"submitted_by": "recruiter@example.com"
}
}
{
"title": ["This field is required."],
"url": ["Enter a valid URL."]
}
Retrieve all submitted job opportunities.
[
{
"id": 1,
"title": "Senior Software Engineer",
"company": "Tech Startup",
"url": "https://example.com/jobs/123",
"description": "Looking for Django/React expertise",
"submitted_by": "recruiter@example.com",
"submitted_at": "2024-01-15T10:30:00Z",
"status": "pending"
},
{
"id": 2,
"title": "Full Stack Developer",
"company": "Another Company",
"url": "https://another.com/jobs/456",
"description": "Remote position",
"submitted_by": "friend@example.com",
"submitted_at": "2024-01-14T09:15:00Z",
"status": "pending"
}
]
Retrieve a specific job submission by ID.
| Parameter | Type | Description |
|---|---|---|
id |
integer | The unique identifier of the job submission |
{
"id": 1,
"title": "Senior Software Engineer",
"company": "Tech Startup",
"url": "https://example.com/jobs/123",
"description": "Looking for Django/React expertise",
"submitted_by": "recruiter@example.com",
"submitted_at": "2024-01-15T10:30:00Z",
"status": "pending"
}
{
"error": "Job submission not found"
}
| Field | Type | Description |
|---|---|---|
id |
integer | Unique identifier (auto-generated) |
title |
string | Job title |
company |
string | Company name |
url |
string | Job posting URL |
description |
string | Optional additional details |
submitted_by |
string | Email of submitter |
submitted_at |
datetime | Timestamp of submission (auto-generated) |
status |
string | Current status (read-only) |
curl -X POST https://noconsonants.com/api/jobs/ \
-H "Content-Type: application/json" \
-d '{
"title": "Senior Software Engineer",
"company": "Tech Startup",
"url": "https://example.com/jobs/123",
"description": "Looking for Django/React expertise",
"submitted_by": "recruiter@example.com"
}'
import httpx
url = "https://noconsonants.com/api/jobs/"
data = {
"title": "Senior Software Engineer",
"company": "Tech Startup",
"url": "https://example.com/jobs/123",
"description": "Looking for Django/React expertise",
"submitted_by": "recruiter@example.com"
}
response = httpx.post(url, json=data)
print(response.json())
fetch('https://noconsonants.com/api/jobs/', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify({
title: 'Senior Software Engineer',
company: 'Tech Startup',
url: 'https://example.com/jobs/123',
description: 'Looking for Django/React expertise',
submitted_by: 'recruiter@example.com'
})
})
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error('Error:', error));
const axios = require('axios');
async function submitJob() {
try {
const response = await axios.post('https://noconsonants.com/api/jobs/', {
title: 'Senior Software Engineer',
company: 'Tech Startup',
url: 'https://example.com/jobs/123',
description: 'Looking for Django/React expertise',
submitted_by: 'recruiter@example.com'
});
console.log(response.data);
} catch (error) {
console.error('Error:', error.response.data);
}
}
submitJob();
| Code | Meaning | Description |
|---|---|---|
200 |
OK | Request successful (GET requests) |
201 |
Created | Job submission created successfully |
400 |
Bad Request | Invalid data or missing required fields |
404 |
Not Found | Requested resource doesn't exist |
500 |
Server Error | Something went wrong on the server |
All error responses follow a consistent format. Validation errors return field-specific messages:
{
"field_name": ["Error message for this field"],
"another_field": ["Another error message"]
}
General errors return:
{
"error": "Error message describing what went wrong"
}
Built with Django REST Framework • Back to Resume