- Ajay's Quest
- Posts
- Interfacing with Ajay API
Interfacing with Ajay API
one of my weirder emails...
Version: 1.0 | Author: Ajay | Last Updated: Today
Ajay’s Quest Readers Note: This is a document I made to make communicating and working with me more efficient. Whilst this is made for my colleagues in mind - I hope there’s something to learn from it. Also formatting it like an API makes it more fun for me.
Overview
Welcome to the official documentation for the Ajay API! Whether you're sending updates, requesting decisions, or collaborating on projects, this guide will help you interact with Ajay efficiently. Remember, great inputs = great outputs. Let’s streamline communication and get things done!
Endpoints
For those who aren’t super familiar with APIs - to simplify it, a GET request is when you want something from me and a POST request is when you’re sending something to me.
Here is an overview of all the functions - feel free to crt + f your way around this email because it’s almost 1600 words. (Yeah this project ended up taking me hours lol)
|
|
GET /feedback
Use Case: Request actionable feedback on a specific task, project, or idea.
Parameters:
Parameter | Type | Required | Description |
---|---|---|---|
context | String | Yes | Provide a brief description of what you want feedback on. |
examples | String | Yes | Include links, mock-ups, or specific parts you need feedback on. |
focus_area | String | No | Optional: Highlight specific areas where you want feedback (e.g., "design," "copywriting"). |
deadline | String | No | If applicable, indicate when you need the feedback. |
Best Practices:
Be Actionable:
Specify exactly what you need feedback on.
Example:
"Can you review the homepage design for alignment with our brand guidelines?"
Provide Examples:
Share mock-ups, drafts, or concrete examples for context.
Example:
"Here’s the draft copy: [Link]. Thoughts on tone and clarity?"
Focus on Key Areas:
If there are specific aspects to prioritize (e.g., layout, messaging), call them out.
Response Codes:
200 OK
: Feedback provided.400 Bad Request
: Missing examples or unclear context.
GET /introduction
Use Case: Request an introduction from Ajay to someone in his network.
Parameters:
Parameter | Type | Required | Description |
---|---|---|---|
forwardable_email | String | Yes | A concise, well-written email that Ajay can forward. Clearly state your goals and why the introduction makes sense. |
social_signal | String | Yes | Provide strong context about why this introduction benefits both parties. Show you're working on something impressive. |
double_opt_in | Boolean | Yes | Always set to |
Best Practices:
Write a Forwardable Email:
Keep it concise and clear.
Include your goals, the value you bring, and why this introduction benefits everyone.
Example:
Hi [Ajay], I’m currently working on [cool project/initiative] and think [Contact Name] could provide valuable insights or collaborate with me. Would love your help connecting us! Thanks, [Your Name]
Show Strong Social Signals:
Demonstrate why you're worth the introduction by sharing the cool, impactful work you’re doing.
Help Ajay maintain his reputation by ensuring the introduction reflects positively on both parties.
Respect the Double Opt-In:
Ajay will first check with the other person to ensure they’re open to the introduction. No surprises!
Response Codes:
200 OK
: Introduction approved and completed.202 Accepted
: Pending double opt-in approval.400 Bad Request
: Missing required parameters or unclear request.
GET /meeting
Use Case: Request a meeting with Ajay.
Parameters:
Parameter | Type | Required | Description |
---|---|---|---|
type | String | Yes | The type of meeting. Accepted values: |
agenda | String | Yes | A clear description of what will be covered in the meeting. |
duration | Number | No | Time in minutes (default is 30 minutes). |
time | String | No | Preferred time. Afternoon slots are optimal. |
Additional Requirements by Meeting Type:
decision
Include all relevant data to make the decision.
Ensure all decision-makers are invited.
Example:
Data: Budget estimates, campaign timelines.
Decision-Makers: Marketing Lead, Finance Lead.
brainstorm
:Provide a detailed set of guiding questions to structure the brainstorm.
Example:
Questions:
1. What are the top three priorities for Q2?
2. How can we optimize our ad spend?
realignment
:These are typically short 10-minute huddles to address misalignments.
For minor issues, try Slack or channel updates first.
Example:
Context: The team seems misaligned on campaign deadlines. Agenda: Quick sync to clarify roles and next steps.
education
:Most educational requests should default to a Loom video.
Meetings are rare unless the topic requires live discussion.
Example:
Explaining how to use the new CRM
Response Codes:
200 OK
: Meeting successfully scheduled.304 Meeting Unnecessary
: Meeting deemed unnecessary. Record a Loom video or send a Slack message instead.400 Bad Request
: Missing or invalidtype
parameter.422 Unprocessable Entity
: Agenda or required details for the meeting type are incomplete.
Example Request:
GET /meeting
{
"type": "decision",
"agenda": "Finalize Q2 campaign timeline",
"duration": 45, "time": "3 PM Thursday",
"data": {
"budget": "Proposed $50,000",
"timeline": "May - August" },
"decision_makers": ["Marketing Lead", "Finance Lead"]
}
GET /idea & /thoughts
Use Case: Request Ajay's input or thoughts on an idea or proposal.
Parameters:
Parameter | Type | Required | Description |
---|---|---|---|
idea | String | Yes | Brief description of your idea. |
context | String | Yes | Background or problem your idea addresses, including all relevant data. |
constraints | Object | Yes | Constraints to consider (e.g., design, engineering, cost, time). |
resources | String | No | Suggested reading or links for additional context. |
Best Practices:
Share the problem, idea, and constraints upfront.
Include additional resources if it helps clarify the idea.
Be prepared for Ajay to ask follow-up questions.
Example Request:
GET /idea & /thoughts
{
"idea": "Launch a new gamification feature",
"context": "User retention is low after 30 days",
"constraints": {
"design": "Minimal changes to UI",
"engineering": "Max 4 sprint weeks",
"cost": "Under $20,000"
},
"resources": "Link to similar case studies"
}
Response Codes:
200 OK
: Feedback provided.400 Bad Request
: Missing idea or constraints.
GET /decision
Use Case: Request Ajay to make a decision between options.
Parameters:
Parameter | Type | Required | Description |
---|---|---|---|
context | String | Yes | The background or problem requiring the decision. |
options | Array | No | List of possible options (optional if the decision is open-ended). |
decision_type | String | Yes | Specify if the decision is |
recommendation | String | No | Your recommended course of action (optional but encouraged). |
Best Practices:
If the decision is reversible and you’re delegated responsibility, make it yourself.
For irreversible decisions, ensure all relevant data is included.
Clearly outline the pros and cons of each option if applicable.
Example Request:
GET /decision
{
"context": "Q2 launch timeline",
"options": ["Option A: March", "Option B: June"],
"decision_type": "irreversible",
"recommendation": "Option B for better alignment with marketing efforts"
}
Response Codes:
200 OK
: Decision made.400 Bad Request
: Missing or unclear context or options.304 Delegated
: Decision is reversible; Ajay delegated it to you.
POST /update
Use Case: Send Ajay a progress update on a task or project, with optional urgency.
Parameters:
Parameter | Type | Required | Description |
---|---|---|---|
context | String | Yes | Task or project you’re updating on. |
update_type | String | Yes | The type of update: |
details | Object | Yes | What happened, why it happened, and what’s next. |
urgent | Boolean | No | Set to |
Update Types Explanation:
Update Type | Description |
---|---|
FYI | "I’m doing this—just letting you know." No response is required. |
Approval | "I’m doing this—do you approve?" A clear yes/no response is expected. |
Decision | "Can you help me choose between A, B, and C?" Clearly outline the options and context. |
Closing the loop | "Remember that thing I was doing? This is what happened." Final update to inform the outcome. |
Best Practices:
Clearly label the type of update.
Use the following framework:
What happened?
Why did it happen?
So what:
Do you need something from Ajay?
What are you doing about it?
Example Request:
POST /update
{
"context": "Server outage",
"update_type": "FYI",
"details": {
"what_happened": "The website went down at 2 PM",
"why": "High traffic caused an overload",
"so_what": {
"need_from_ajay": "Approval to engage IT vendor",
"action_taken": "Monitoring logs to prevent further crashes"
}
},
"urgent": true
}
POST /task
Use Case: Assign Ajay a task with optional urgency.
Parameters:
Parameter | Type | Required | Description |
---|---|---|---|
task_name | String | Yes | Name of the task. |
details | String | Yes | Description of the task, including objectives and constraints. |
deadline | String | No | Optional: When you need the task completed. |
urgent | Boolean | No | Set to |
Best Practices:
Use Slack or Email to assign tasks (flows into Ajay’s task management system).
Clearly describe objectives and constraints.
Use the urgency flag sparingly.
Example Request:
POST /task
{
"task_name": "Review onboarding materials",
"details": "Ensure alignment with new team workflows",
"deadline": "Friday EOD",
"urgent": false
}
POST /feedback
Use Case: Provide Ajay with constructive feedback or input on his work or actions.
Parameters:
Parameter | Type | Required | Description |
---|---|---|---|
context | String | Yes | What you’re providing feedback on (e.g., a decision, action, or deliverable). |
feedback | String | Yes | Your specific, constructive feedback. |
examples | String | No | Optional: Provide examples to illustrate your points. |
suggestion | String | No | Optional: Suggestions for improvement or alternative approaches. |
Best Practices:
Be specific and actionable in your feedback.
Use examples to clarify points when possible.
Include suggestions for improvement where applicable.
No need to sandwich feedback with positives - be clear and concise.
Example Request:
POST /feedback
{
"context": "Ajay's recent presentation on Q2 strategy",
"feedback": "The slides were clear, but the timeline section felt rushed and could use more detail.",
"examples": "Perhaps expand on Slide 4 with specific milestones.",
"suggestion": "Add a visual timeline or chart for clarity."
}
I hope you found this entertaining / helpful!
Until next time,
Ajay
What did you think of this email?You can be honest - I can take it. Help me - help you. |
I made an AI Spy to track competitors - I’ve been told that it’s really cool. If you want a guide on how to build it - just refer 1 person. That’s it.